Configuration
AstralPets is steered by two files in plugins/AstralPets/: config.yml (behavioural settings, below) and messages.yml (player-facing text, backed by the PetsMessages enum). Pet content itself — blueprints, rarities and food — is not in config.yml; it lives in its own files and is covered on the Pet Blueprints and Pet Food pages. Everything is reloaded together with /pets reload.
config.yml
pet-menu-title
Field | Type | Description |
|---|---|---|
| ComponentWrapper | Title of the native chest inventory opened for a pet's storage ( |
max-pet-name-length
Field | Type | Description |
|---|---|---|
| int | Default |
maximum-presets
Field | Type | Description |
|---|---|---|
| int | How many presets one player may keep. Checked by |
skin-confirmation-delay
Field | Type | Description |
|---|---|---|
| Duration | How long a player has to right-click a second time to actually apply a skin. Applying is irreversible and spends the item, so the first click only asks. Zero or negative turns the confirmation off and applies on the first click. A config written before this setting existed defaults to 10 seconds, not to no confirmation. |
max-active-pets
Caps how many pets a player can have active (equipped) at once, independent of how many pets they own. Checked by the equip-pet action before marking a new pet active; over the cap, the player gets active-pets-limit-reached.
Field | Type | Description |
|---|---|---|
| int | Default |
|
| Permission-node-keyed overrides, e.g. |
The effective cap, MaxPets#maxPets(Player), is the highest value among every permission the player holds, falling back to default if none match:
Removed blocks
Two blocks that older config.yml files still carry are no longer read at all:
Block | Status |
|---|---|
| Removed from |
| Never had a matching component; a leftover of a deleted |
Leaving either in place is harmless — Configurate ignores keys the record does not declare — but they do nothing.
Content files
Pet definitions, rarities and food are configured outside config.yml, each loaded from its own file(s) in the plugin's data folder:
File(s) | Contents |
|---|---|
| One pet blueprint per file — id, default name, display item, entity template, rarity, effects, max level, accepted skins. See Pet Blueprints. |
| The rarity ladder (id, display name, |
| One skin per file — the look a pet can permanently take on, and the item that grants it. See Pet Skins. |
| One food blueprint per file — id, item template, experience granted. See Pet Food. |
| The |
| The |
| Plugin-scoped transformers that render the effect and level-gauge lines a blueprint's lore calls — see Rendering effects. |
messages.yml
messages.yml is backed by the PetsMessages enum (implementing MessageEnum), loaded via AstralPets#loadEnum. Every value is a MiniMessage ComponentWrapper. The shipped file is French.
Pet lifecycle
Key | Placeholders | Sent when |
|---|---|---|
|
| A player right-clicks a pet-spawn item, consuming it and adding the pet to their collection ( |
|
|
|
|
|
|
|
| The pet's entity is unregistered, e.g. via |
| — |
|
| — |
|
| — |
|
Rename
Key | Placeholders | Sent when |
|---|---|---|
| — | An empty name was submitted to |
|
| Rename succeeded; both values are |
|
| The submitted name exceeds |
Leveling
Key | Placeholders | Sent when |
|---|---|---|
|
| Once per level gained while feeding a pet ( |
|
| The pet is already at its blueprint's |
|
|
|
|
| Not a chat message — rendered as a short-lived floating text display above the player's view after each feed. Default: |
Skins
Key | Placeholders | Sent when |
|---|---|---|
|
| A skin was applied to a pet. |
|
| The pet already wears this skin (skins stack, but only one of each). |
|
| The pet's blueprint does not list this skin. |
|
| The pet wears a skin this one conflicts with; |
|
| The first right-click, asking the player to confirm. |
Presets
Key | Placeholders | Sent when |
|---|---|---|
|
|
|
|
| A preset of that name already exists. |
| — | The player is at |
|
|
|
|
|
|
| — |
|
Miscellaneous
Key | Placeholders | Sent when |
|---|---|---|
|
| The async economy-effect task pays out a |
| — | See |
| — |
|
| — | An exception was thrown while building the item stack during |
Admin — give
Key | Placeholders | Sent when |
|---|---|---|
|
|
|
|
| Mailbox delivery failed or the item stack couldn't be built. |
|
|
|
|
| Same failure modes as |
|
|
|
|
| Same failure modes as |
Admin — reload
Key | Placeholders | Sent when |
|---|---|---|
| — | Sent to the command sender before |
| — | Reload completed without an exception. |
| — | An exception was thrown during reload; the stack trace is logged to console. |
Reloading
/pets reload calls AstralPets#loadConfiguration(), which reloads, in order: config.yml and rarities.yml, then messages.yml, then skins, pet blueprints (followed by the blueprint-skin cross-check) and food blueprints, then menus, dialogs and transformers, then re-registers the pet, food and skin item suppliers. There is no partial/per-file reload — every /pets reload touches all of it.