resourcepack.ai
DOCS

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#

FeatureNeedsOn an older server
Stacking several packs on a player1.20.3One 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 trims1.20Smithing recipes use the old two-slot table, so their template is not asked for, and trim recipes do nothing.
Models that glide when they move1.20.2A 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 durability1.20.5Those options are reported at load and not applied. The item is otherwise itself.
Any item wearable as armour1.21.2Only materials that are already armour can be worn.
Per-item armour artwork1.21.4Worn armour draws with vanilla artwork.
Item models addressed by name1.21.4Items are addressed by an allocated number instead. See below.
Emotes from the content folder1.21.4No 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.
VFX1.21.4VFX do not play, and /rp cast says so.
3D objects1.21.43D objects are not available.
Tinted water and lava1.21.6Liquids keep their vanilla colour. Everything else about a custom liquid works.
Dialogs1.21.6Dialogs 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 dialogs1.21.9A 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 keysPaper 1.21.4Vehicles 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 PAPER or STICK, 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.