Get started
Minecraft versions
RP Engine runs on Paper, Folia or Spigot 1.19.4 or newer, on Java 17 or newer. This page says what you lose on an older version, so you can decide which version to run.
Everything works on a current server. On an older one most of the plugin works the same and a few things are reduced. At startup the plugin checks your server's version and prints what it cannot do and what you get instead.
Older than 1.19.4 is not supported at all: the plugin refuses to start, because placed models are display entities, which do not exist before 1.19.4.
If you can choose, choose 1.20.3 or newer
The two losses you would notice most, stacked bundles and models that glide when they move, are both below 1.20.3. Emotes from your own content folder, VFX and 3D objects need 1.21.4, and dialogs need 1.21.6.
What always works#
These do not change with your version at all:
- Custom items: their models, textures, names, lore, permissions and actions
- Custom blocks, including hardness and the right tool
- Models you place, sit on, animate and bind to entities
- Emotes pushed from Studio, including worn sets and held items
- Sounds, and the sound categories
- Icons in chat, GUI screens, and HUD overlays
- Recipes, apart from the smithing details below (and brewing, which needs Paper rather than a version), custom entities and custom liquids
- Pairing with Studio, and pushing a pack to a player
What needs a newer version#
| Feature | Needs | On an older server |
|---|---|---|
| Stacking several packs on a player | 1.20.3 | One pack at a time; a player due more than one bundle gets only the last. A server using a single bundle is unaffected. |
| Smithing templates and armour trims | 1.20 | Smithing recipes use the old two-slot table, so their template is not asked for, and trim recipes do nothing. |
| Models that glide when they move | 1.20.2 | A model that moves (a walking emote, a bound model following its entity) jumps between positions instead of gliding. Models that stay put are identical. |
| Per-item stack size, food and durability | 1.20.5 | Those options are reported at load and not applied. The item is otherwise itself. |
| Any item wearable as armour | 1.21.2 | Only materials that are already armour can be worn. |
| Per-item armour artwork | 1.21.4 | Worn armour draws with vanilla artwork. |
| Item models addressed by name | 1.21.4 | Items are addressed by an allocated number instead. See below. |
| Emotes from the content folder | 1.21.4 | No emote rigs (the copy of a player's skin an emote plays on) are built from players' skins, so a hand-written emote plays on nobody and /emote says so. Emotes pushed from Studio still work. |
| VFX | 1.21.4 | VFX do not play, and /rp cast says so. |
| 3D objects | 1.21.4 | 3D objects are not available. |
| Tinted water and lava | 1.21.6 | Liquids keep their vanilla colour. Everything else about a custom liquid works. |
| Dialogs | 1.21.6 | Dialogs do not open: the game has no dialog screen before this. A screen is the older way to do the same job, and works everywhere. |
| Player heads in dialogs | 1.21.9 | A Studio dialog's live player head is left empty. The rest of the dialog, its live words included, works as usual. |
| Driving vehicles with the movement keys | Paper 1.21.4 | Vehicles are driven with the mouse: the vehicle steers toward where you look, right-click speeds up a notch, left-click slows down or reverses. The driver cannot look around while driving. Spigot always gets these mouse controls, whatever its version. |
Below 1.21.4, items are numbered#
From 1.21.4 an item's model is chosen by its id: mypack:ruby is written
straight onto the item, and the pack has a file at that path. Nothing is
allocated, so two packs from two different people work side by side with
nothing to configure.
Before 1.21.4 the game matches a model by a number. RP Engine allocates
those for you and keeps them in plugins/RPEngine/model-numbers.json. Three
things follow:
- Do not delete or edit that file. Those numbers are on items in your players' inventories and on models placed in your world. Change them and those items become different items, and there is no way to undo it. The file says so in its own contents.
- Two packs can clash. On 1.21.4 and up, installing two content packs is never a negotiation. Below it, packs that were numbered separately can disagree, so combining content from two sources needs care.
- Your base item's own look can change. Below 1.21.4 a custom model is a
predicate inside the base material's own model file, which replaces vanilla's
copy of it. RP Engine reproduces vanilla for the ordinary cases, but a few
items (a bow, a compass, a crossbow, a shulker box) have models it cannot
reconstruct. Build a custom item on one of those and the build warns you: the
item works, but plain bows may look wrong for everybody on the server. Use a
simpler material like
PAPERorSTICK, or run 1.21.4.
The pack format#
The pack format is the number in a resource pack that tells the client which
Minecraft version it was made for. You do not set it. RP Engine reads your
server's version and writes the right pack_format into the built pack.
config.yml still has a pack.format key, commented out. It exists for one
case: a Minecraft newer than your copy of RP Engine, whose format number the
plugin cannot know yet. The startup log tells you when that has happened. Set
it, update the plugin, then remove it again.
What the plugin tells you#
On a current server, nothing. On an older one, it names each reduced feature, the version it needs, and what you get instead:
[RPEngine] Running on Minecraft 1.20.1, so 12 features are reduced:
[RPEngine] - Multiple resource packs per player (needs 1.20.3). Players hold one
pack at a time, so a player due more than one bundle gets only the last
of them and the rest do not arrive. Swapping bundles still works and
costs a full download each time rather than being instant. A server
that uses a single bundle is unaffected.
[RPEngine] - Item models addressed by name (needs 1.21.4). Custom items are
addressed by an allocated number instead. The engine keeps that
allocation itself, but two packs built by different people can no
longer be installed side by side without it.
[RPEngine] - Per-item stack size, food and durability (needs 1.20.5). ...
...On 1.21.4 and 1.21.5 it lists three (tinted liquids, dialogs, player heads in
dialogs). On 1.21.6 to 1.21.8 it lists one, player heads in dialogs. On 1.21.9
and newer it says nothing. Vehicle controls on Spigot are not listed; the
startup log and /rp info describe which controls vehicles use.
Individual items say so too, naming the item and the option, so an option that could not be applied is never a mystery:
[RPEngine] mypack:ruby: max-stack needs Minecraft 1.20.5 and this server is
older. An item's stack size, food values and durability are whatever
its base material's are. Those options are reported as unsupported
at load rather than applied.Everything here is about your server's version#
Not your players'. A plain Paper or Spigot server only accepts clients on its own version, so the two are the same number and there is one answer.
If you run ViaVersion so that clients on other versions can join, that does not change any of the above: the plugin runs on your server's version and builds one pack for it. A client joining through Via is shown a pack built for the server, which is the same thing every other pack on that server does.