Pets
Official compatibility
| Element | Reference |
|---|---|
TypeWriter | Required. Use the official TypeWriter release supported by the extension release. |
| Related extensions | Install the related extensions listed on this page before using entries that depend on them. |
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.
User guide
- 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.
Troubleshooting
The extension is not visible
Check that the installed release matches the supported TypeWriter release and that the related extensions listed in the compatibility section are present.
An entry is missing
In the Typewriter Web panel, use the Search bar or the + button to find or create the entry with its exact identifier. Entry IDs and field names are case-sensitive; do not translate them.
The entry saves but nothing happens
Check that the entry is connected to the trigger, command, objective, event, or menu interaction required by its type. Test with optional permissions and criteria removed, then add them back one at a time.
An integration does not work
Verify the dependency and version shown in the extension card, then check the server log for the first error. Do not replace a missing dependency with a similarly named plugin unless the extension source explicitly supports it.