Pets
The Pets Extension allows players to collect, level up, and customize companion pets. These companions follow the player and can provide both cosmetic flair and practical combat assistance.
Features
- Companions — Head or Ground following modes.
- Progression — Leveling system with XP rewards.
- Visuals — Custom textures and ModelEngine support.
- Combat — Retaliation system for defense.
Architecture
Build variants
This private variant targets BornToCraft's custom Typewriter engine and custom GUI extension. It is built with JDK 25 and keeps the custom MiniPlaceholder/resolvePlain path; it must not depend on the public PlaceholderAPI bridge or legacy command-event compatibility. Persistence uses asynchronous I/O and companion updates use Folia-safe scheduling.
Entries
- Actions — Add XP: Grant pet experience. Open Menu: Management GUI. Set State: Activate/Hide/Dismiss.
- Definitions — Pet Definition: Species config.
- Artifacts — Pet Storage: Player data.
Quick Start
- 1. Configure Settings — Start with the configuration entry: pet_definition. This defines global settings for the extension. → pet_definition
- 2. Trigger Actions — Use action entries to interact with the extension: add_xp, open_menu, state. Trigger them from commands, NPCs, events, or other entries. → add_xp → open_menu
Commands
| Command | Description | Permission |
|---|---|---|
/pets | Open menu | typewriter.pets.open |
/pets activate <id> | Activate pet | typewriter.pets.activate |
/pets give <id> | Give pet | typewriter.pets.give |
Placeholders
Prefix: %pets_*%
| Placeholder | Description |
|---|---|
%pets_active_name% | Active pet name |
%pets_active_level% | Active pet level |
%pets_pet_<id>_owned% | Owns specific pet? |
Permissions
| Permission | Description |
|---|---|
typewriter.pets | Base access to pet commands. |
typewriter.pets.open | Open the pets menu. |
typewriter.pets.give | Give a pet to a player. |
typewriter.pets.remove | Remove a pet. |
typewriter.pets.activate | Activate a pet. |
typewriter.pets.deactivate | Deactivate a pet. |
typewriter.pets.show | Show a pet. |
typewriter.pets.hide | Hide a pet. |
Dependencies
| Extension | Required | Usage |
|---|---|---|
| Custom GUI Extension | Required | Menu rendering and registered pet_menu command handlers. |
| Custom Typewriter engine | Required | Entries, scheduling, storage and MiniPlaceholder resolution. |
The public distribution is documented separately and uses the official GUI extension and public PlaceholderAPI bridge. The two artifacts share gameplay concepts but are intentionally not interchangeable.