-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
- Paper (or a fork) 1.21+, Java 21. Folia is supported.
- BetterModel and/or ModelEngine if you want custom models. Without them mobs still spawn and run their AI and skills, they just keep their vanilla look.
- Download
bettermob-<version>.jarfrom the Releases page. - Put it into
plugins/together with BetterModel (and/or ModelEngine). - Start the server. BetterMob creates
plugins/BetterMob/with a few example files.
plugins/BetterMob/
├── config.yml # DisabledPacks, Language, Debug, Stats, factions
├── lang/ # message files (en.yml, de.yml, your own)
├── mobs/ # mob files
├── skills/ # skill files
├── items/ # item files
├── droptables/ # drop tables
└── packs/
└── some_pack/
├── mobs/
├── skills/
├── items/
└── droptables/
- Files can be nested in any depth of sub-folders.
- Folder names inside a pack are matched case-insensitively (
Mobs,mobs). - If two mobs, skills or items share an ID, the one loaded first wins and the console logs a warning for the other.
Console and command messages live in plugins/BetterMob/lang/<code>.yml. en and de are written there on first start. Pick one with Language: in config.yml (default en) and apply it with /bettermob reload.
To add a language, copy lang/en.yml to lang/<code>.yml, translate the values and set Language: <code>. Keys you leave out fall back to the bundled English text. Values use & colour codes and placeholders such as {mob}, {skill}, {folder} or {error}; keep the placeholders of the English original. Debug output (/bettermob debug) stays English.
Create plugins/BetterMob/mobs/my_pig.yml:
Type: PIG
Display: '&dFancy Pig'
Health: 20Then run /bettermob reload and /bettermob spawn my_pig.
To give it a model, add a model skill (see Skills):
Skills:
- model{mid=my_model_id} @self ~onSpawn
- model{mid=my_model_id} @self ~onLoadmy_model_id must exist in BetterModel. Test it first with /bettermodel spawn my_model_id.
With PlaceholderAPI installed BetterMob registers these placeholders:
| Placeholder | Value |
|---|---|
%bettermob_mobs_alive% |
Number of loaded BetterMob mobs |
%bettermob_mobs_alive_<id>% |
Number of loaded mobs with that id |
%bettermob_loaded_mobs% |
Registered mob definitions |
%bettermob_loaded_skills% |
Registered skills |
%bettermob_loaded_items% |
Registered items |
Placeholders from any expansion are also resolved in a mob's Display: name and in the text of the command{c=...} and message{m=...} mechanics. The player is the trigger if it is a player, otherwise the caster. Without PlaceholderAPI nothing changes.