AfroPets2 ⭐️ Head Pets ⭐️ Endless pets ⭐️ Fully customizable ⭐️ Placeholders ⭐️ MySQL ⭐️ Pets plugin icon

AfroPets2 ⭐️ Head Pets ⭐️ Endless pets ⭐️ Fully customizable ⭐️ Placeholders ⭐️ MySQL ⭐️ Pets plugin -----

Custom pets that follow players!




Fixed {PLAYER} placeholder in pets menu
Fixed errors if PlaceholderAPI is not loaded
Fixed issue after reload when pet is removed from config
Fixed issue with load groups that doesn't exists
----------, Aug 10, 2025

Fixed:
  • {PLAYER} placeholder doesn't work in pets menu
  • Performance of /pets admin about command
  • Pets still visible on spectator
⭐ Added:
  • Files updater
  • Command: /afropets admin help - Permission: afropets.admin.help
  • Command: /afropets show - Permission: afropets.show
  • Message format in config.yml
  • Permissions pack: afropets.player & afropets.admin
  • Pets don't show up if player is invisible (potion effect)
  • Debug mode (simple)
Changed:
  • Permissions:
    • /afropets menu - old: afropets.use / new: afropets.menu
    • /afropets help - old: afropets.use / new: afropets.help
❌ Removed:
  • Permission for /afropets about
----------, Aug 1, 2025

Fixed:
Code (YAML):
- /pets admin reload doesn't load changes for pets/colors
- Fixed Version checker based on Modrinth api (previous
: SpigotMC api )
- Change pet position now working : )
----------, Jul 30, 2025

⭐ New:
Code (Text):
- Player data is now saved in MySQL or SQLite (depends on configuration)
- Active pets are saved in activepets_data.yml file
- You can turn on/off notification when plugin get update
- Pets are now hidden when you enter spectator gamemode (shows again when you change gamemode)
- New commands:
  /afropets help <-- show available commands ; permission: afropets.use
  /afropets admin about <-- more informations about plugin and configuration ; permission: afropets.admin.about
⚠️Important: You need to add these lines to files! Otherwise, the plugin may not load and errors may appear!
Code (YAML):
# Data storage
#  Available data storage types:
#    - sqlite
#    - mysql
storage-type
: "sqlite"

sqlite
:
  name
: "playerdata.db"

mysql
:
  host
: 'localhost'
  username
: 'root'
  password
: ''
  database
: 'database'
  table
: 'afropets_playerdata'
  port
: '3306'
  useSSL
: false
Code (YAML):
update : "<white>A new plugin version has appeared! Your version: <red>%current% <gray>| <white>New version: <green>%latest%<white>! <#ae00f2><bold><click:open_url:https://www.spigotmc.org/resources/afropets.122242>[Download]</click>"
help
:
 - "<gradient:#ae00f2:#be5cff:#ae00f2><bold>AfroPets<reset><red><bold>2<reset> <dark_gray>| <yellow>Command list"
  - "<dark_gray>» <click:suggest_command:/afropets><#ae00f2>/afropets <gray>- <white>Open pets menu</click>"
  - "<dark_gray>» <click:suggest_command:/afropets menu><#ae00f2>/afropets menu <gray>- <white>Open pets menu</click>"
  - "<dark_gray>» <click:suggest_command:/afropets about><#ae00f2>/afropets about<gray>- <white>Informations about plugin</click>"
  - "<dark_gray>» <click:suggest_command:/afropets hide><#ae00f2>/afropets hide <gray>- <white>Hide current pet</click>"
  - "<dark_gray>» <click:suggest_command:/afropets admin reload><#ae00f2>/afropets admin reload <gray>- <white>Reload plugin</click>"
  - "<dark_gray>» <click:suggest_command:/afropets admin set><#ae00f2>/afropets admin set {player} {pet} <gray>- <white>Set target pet</click>"
  - "<dark_gray>» <click:suggest_command:/afropets admin remove><#ae00f2>/afropets admin remove {player} <gray>- <white>Remove target pet</click>"

# If you want add some option value from configuration files use this syntax in admin-about-values:
#   name: "file@path"
# then in message use %name%
# Important: You cannot get value from active_pets.yml and playerdata.db
admin-about
:
 - "<gradient:#ae00f2:#be5cff:#ae00f2><bold>AfroPets<reset><red><bold>2<reset> <dark_gray>| <yellow>Admin informations"
  - " <dark_gray>» <white>Author
: < #ae00f2>Afrodyzjak"
  - " <dark_gray>» <white>Docs
: < #ae00f2><click:open_url:https://afroplugins.gitbook.io/afroplugins-docs/afropets2/afropets2-home>[Click]</click>"
  - " <dark_gray>» <white>Plugin link
: < #ae00f2><click:open_url:https://www.spigotmc.org/resources/afropets.122242>[Click]</click>"
  - " <dark_gray>» <white>Database type
: < #ae00f2>%storage%"
  - " <dark_gray>» <white>Plugin version
: < #ae00f2>%current_version%"
  - " <dark_gray>» <white>Plugin latest version
: < #ae00f2>%latest_version%"
  - " <dark_gray>» <white>Server version
: < #ae00f2>%server_version%"
  - " <dark_gray>» <white>Server type
: < #ae00f2>%server_type%"
admin-about-values
:
  storage
: "config@storage-type"
  update-not
: "config@update-notification"
  filler-name
: "[email protected]"
----------, Jul 29, 2025

Code (YAML):
- When you install version 2.0 on your server, it will automatically create a new folder called "AfroPets2" with all the default configuration files.
- The "pets.yml" file remains mostly unchanged — the only difference is that now you can assign a group to a pet.
- A new file, "groups.yml", allows you to override specific pet attributes. An example group is included inside — groups don’t need to define all values, so you can, for example, assign a group that only changes the pet’s position : )
- Another new file, "menu.yml", helps organize the config — from now on, pets will only be shown in available slots in the menu.
- In "menu.yml", when creating or editing a slot, you can now specify multiple slots using commas — instead of writing "10-11", you can use "10,11". This should come in handy when customizing corner items in your menu.
- A new command has been added
: /afropets hide — this allows players to hide their pet via command, without needing to use the menu.
- Two new settings have been added to the config
: "remove-pet-distance" and "visible-distance".
- You can now define a default description for each pet directly in the config.
- Player commands now require specific permissions
:
 - /pets – afropets.use
  - /pets menu – afropets.use
  - /pets about – afropets.use
  - /pets hide – afropets.hide
- Pet data is now saved in NBT tags, and if the plugin detects that a pet shouldn't exist anymore — it will be removed automatically.
- Two new placeholders have been added for PlaceholderAPI
:
 - %afropets_pets_size%
  - %afropets_colors_size%
----------, Jul 29, 2025

Added:
  • Posibility to change position of pet
New values in the configuration:
Code (Text):
position:
  height_offset: 1.5
  distance_behind: 1.3
  radians: 220
----------, Mar 12, 2025

Added:
  • You can use more than 1 filler for pets menu
Changes:
  • Rename plugin from AfroPetsFriends to AfroPets
  • Rename all commands, permissions and placeholders from AfroPetsFriends to AfroPets
  • Modern pets now move smoooth
Fixes:
  • Filler material now can be changed from "BLACK_STAINED_GLASS_PANE" to other
  • If you want to change 1 slot for filler you can now use "1" instead of "1-1"
Remember to always make backup before update, and update config!
----------, Mar 6, 2025

Fixed:
Code (Text):
Improved the smoothness of pet movement slightly when pet_format is set to modern.
(not perfect, but better)
Added:
  • You can change pet name in menu, simply add "menu_name" to pet configuration
  • Placeholder {PLAYER} for pet displayname and menu_name
  • File "colors.yml" where you can define your own colors for pet nametag background
  • More option to customize pets menu
I recomend to check documentation and update your config file!
----------, Mar 4, 2025

From now, pets are displayed as Display Entity. If you use Geyser, change pets_format in config to "LEGACY"
(Geyser not supports Display Entities)

Example configuration for pets appearance:

Code (Text):
    appearance:
      scale: 1.2
      displayname:
        background_color: "BLACK"
        background_opacity: 50
Available background colors:
  • BLACK
  • WHITE
  • RED
  • GREEN
  • BLUE
  • YELLOW
  • ORANGE
  • PURPLE
  • GRAY
Background opacity value is percent and need to be i range 0-100 (%)
----------, Mar 1, 2025

Placeholders for PlaceholderAPI:
Code (Text):
%afropetsfriends_pet_name% - Return displayname of player's current pet
%afropetsfriends_has_pet% - Return "true" or "false" depending on whether player has an active pet
%afropetsfriends_pet_description% - Return description of player's current pet
Added:
- description
- lockDescription
for pets configuration. Description overwrites "status.can_use" from config, and "lockDescription" overwrites "status.no_permission" from config.
More informations and example in docs!

Fixed:
Code (Text):
When "menu.show_locked" in config is set to false, players cant see any pet
----------, Feb 27, 2025

Fixed:
Code (Text):
- After player hide pet, It shows when player rejoin
Added:
Code (Text):
Commands:
- /afropetsfriends admin set
- /afropetsfriends admin remove
Changed:
Code (Text):
Removed subcommand:
- /afropetsfriends reload

Added subcommand:
- /afropetsfriends admin reload
New permissions list:
Code (Text):
/afropetsfriends admin - afropetsfriends.admin
/afropetsfriends admin set - afropetsfriends.admin.set
/afropetsfriends admin remove - afropetsfriends.admin.remove
/afropetsfriends admin reload - afropetsfriends.admin.reload
Permission "afropetsfriends.reload" is no longer used
----------, Feb 25, 2025

Fixed:
Code (Text):
Pets stay in last location when player dead
----------, Feb 9, 2025

Fixed
Code (Text):
Pets stay in last known player world
----------, Feb 5, 2025

Fixed:
Code (Text):
Possibility to remove the head from the pet
Possibility to put armor on the armor stand pet
----------, Jan 29, 2025

Resource Information
Author:
----------
Total Downloads: 839
First Release: Jan 29, 2025
Last Update: Aug 10, 2025
Category: ---------------
All-Time Rating:
10 ratings
Find more info at afroplugins.gitbook.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings