Astral Realms Documentation Help

Commands

Base aliases: /pets, /pet, /familiers, /familier. A second, standalone base command /pokedex (aliases /animalerie, /bestiaire) opens the bestiary menu.

Command

Permission

Completion

Description

/pets

Open the main pet menu. Player-only.

/pets give <player> <blueprint>

pets.give

@players @petBlueprints

Mail a built pet item to player.

/pets food <player> <blueprint>

pets.give.food

@players @foodBlueprints

Mail a built food item to player.

/pets reset <player>

pets.reset

@players

Wipe player's pet data.

/pets reload

pets.reload

Reload configuration and data.

/pokedex

Open the bestiary menu of all blueprints. Player-only.

/pets

Permission: none. Player-only — the handler method takes a Player, not a CommandSender.

The @Default subcommand opens the plugin's main pet menu (AstralPets#menus().openMainMenu(player)).

/pets > [opens the main pet menu]

/pets give <player> <blueprint>

Permission: pets.give. Syntax: <player> <blueprint>. Works from console (the handler takes a CommandSender, and the target is resolved as an OnlinePlayer — it must currently be online).

Builds an item stack for blueprint — a fresh Pet instance with a new UUID at its blueprint's base state — via PetService#buildItemStack(PetBlueprint), then delivers it through AstralCore's mailbox system (MailboxService#giveOrAdd), so the item reaches the target even without inventory space. On success the sender gets give-success; on failure (mailbox delivery error, or any exception while building the item) the sender gets give-failed and the error is logged to console.

/pets give Steve dragon

/pets food <player> <blueprint>

Permission: pets.give.food. Syntax: <player> <blueprint>. Same console/online-target rules as give.

Builds an item stack for blueprint via FoodBlueprintService#buildItemStack(FoodBlueprint) and delivers it the same way through MailboxService#giveOrAdd. Reports give-food-success or give-food-failed to the sender; failures are logged to console. See Pet Food for what a food blueprint does.

/pets food Steve golden-apple-treat

/pets reset <player>

Permission: pets.reset. Syntax: <player>. player is resolved as an OnlinePlayer — the target must be online, since their PetPlayerData is only resolvable through SyncAPI.findData while loaded in memory.

If found, calls PetPlayerData#clear() — empties the player's owned pets list, clears their set of active pet ids, and unselects the currently-selected pet — and confirms with a plain (non-MessageEnum) chat message: Successfully reset pets data for player <name>. If the data isn't found, the sender gets Failed to reset pets data: data not found for player <name> and the failure is logged to console.

/pets reset Steve

/pets reload

Permission: pets.reload. No arguments; works from console.

Calls AstralPets#loadConfiguration(), which reloads, in order:

  1. config.yml and rarities.yml.

  2. messages.yml.

  3. Pet blueprints and food blueprints (BlueprintService#load()/FoodBlueprintService#load()).

  4. Menus and dialogs.

  5. The pet and food item suppliers.

The sender gets reloading first, then reloaded-successfully on success or reload-failed (with a stack trace to console) on failure.

/pets reload > Rechargement du plugin... > Plugin rechargé avec succès !

/pokedex

Permission: none. Player-only.

Registered as its own base command (@CommandAlias("pokedex|animalerie|bestiaire")), not a subcommand of /pets. The @Default subcommand opens the pokedex/bestiary menu (AstralPets#menus().openPokedexMenu(player)), which lists every loaded pet blueprint.

/pokedex > [opens the bestiary menu]

Blueprint arguments

<blueprint> in /pets give and <blueprint> in /pets food are resolved through ACF context resolvers, not plain strings:

  • PetBlueprintPetBlueprintContextResolver pops the next argument and looks it up with AstralPets#blueprints().findById(id); an unknown id throws InvalidCommandArgument ("No pet blueprint found with id: <id> "). Tab completion (@petBlueprints) lists AstralPets#blueprints().ids() — the ids of every loaded pet blueprint.

  • FoodBlueprintFoodBlueprintContextResolver looks it up with AstralPets#foodBlueprints().findById(id), failing the same way for an unknown id. Tab completion (@foodBlueprints) lists AstralPets#foodBlueprints().ids() — the ids of every loaded food blueprint.

Both id sets are populated at load (and on /pets reload) from the files under blueprints/ and the plugin's food/ blueprint folder respectively; an id is whatever key the blueprint file registers under.

Permission summary

Node

Grants

pets.give

/pets give.

pets.give.food

/pets food.

pets.reset

/pets reset.

pets.reload

/pets reload.

Last modified: 25 July 2026