Drop in a .glb or .obj file and it's in the game: textured, animated, clickable and rideable.

Spigot and Paper on Minecraft 26.3 · No client mods · The plugin builds and sends the resource pack itself
What is it?
Download a model from Sketchfab, export one from Blender, or use one you already have. Drop the .glb, .gltf or .obj file into plugins/3DEngine/models/, run /3d reload, and it is in your world: the real mesh, with its own textures and animations. No blocky remake, no texture squashed onto cubes.
Furniture and decorations, statues and trophies, cars and creatures, props for a map or a lobby. If it is a 3D file, it can be a thing players walk up to, click on and sit in.
Players need nothing installed. 3D Engine builds the resource pack from your models and sends it to them as they join.
What a model can do
- ✔ Animate: every animation in the file becomes a state (idle, walk, run, open), with smooth blends between them that you set up in a few lines of YAML.
- ✔ Be clicked and hit: hitboxes are fitted to the model, a row of them along a long one, or you draw your own. Plugins hear every click and every blow.
- ✔ Be sat in: give a model seats and players right-click to sit down. A seat can ride a moving part of the model.
- ✔ Be driven: give it a
drive:block and whoever sits in the driver's seat steers it where they look, sprints and jumps. - ✔ Look at players: the whole model turns to face whoever comes near, or with a head bone only the head turns, on its neck, while the rest keeps animating.
- ✔ Be solid: placed models can fill their space with barriers, so nobody walks through a statue.
- ✔ Be held: any model can be an item in a player's hand.
- ✔ Stay put: placed models are saved with the world and come back after a restart.
A model
plugins/3DEngine/models/furniture/armchair.glb, and beside it armchair.yml:
height: 1.1 # resize it to 1.1 blocks tall
seats:
seat: {at: [0, 0.45, 0.05]}
solid: true
look:
yaw: 30 # turns a little towards whoever is near
/3d reload, then /3d place furniture/armchair. Every key is optional: a file with no .yml at all comes in at its own size with its animations ready to play.
For developers
Spawn models, play their states, find where a bone is on any frame, seat riders, make them look at things, and give them legs that walk your world.
Engine3D engine = Engine3D.get();
ModelInstance chair = engine.place("furniture/armchair", location);
chair.mount(player, null);
chair.lookAt(player);
ModelInstance dog = engine.spawn("dog", location);
engine.mover(dog, EntityType.WOLF).follow(player);
Events: ModelInteractEvent, ModelDamageEvent, ModelMountEvent, ModelDismountEvent, ModelStateChangeEvent, ModelSpawnEvent and ModelRemoveEvent.
Commands
| Command | What it does | Permission |
|---|---|---|
| /3d list | Every model, and any that failed to load | 3dengine.admin |
| /3d place <model> [scale] | Put one down where you look | 3dengine.admin |
| /3d give <model> [player] | An item that places the model | 3dengine.admin |
| /3d remove, scale, rotate, state | Change the model you look at | 3dengine.admin |
| /3d sit [seat] | Sit in the model you look at | 3dengine.admin |
| /3d info [model] | Size, states, seats, hitboxes | 3dengine.admin |
| /3d reload | Load the models folder again | 3dengine.admin |
Right-clicking a model with seats sits you down (3dengine.ride, everyone by default).
Installing
- Drop
3DEngine.jarintoplugins/on a Spigot or Paper server for Minecraft 26.3 and start it. - Open port 8163 (or set
pack.port), and setpack.urlinconfig.ymlto the address players reach it on. That is where they download the pack from. - Put model files in
plugins/3DEngine/models/and run/3d reload.
Already sending your own pack? Turn off pack.send and merge plugins/3DEngine/pack.zip into yours.
What it connects to
- Usage count. Every 30 seconds the plugin sends resourcepack.ai a random id that it made up the first time it started, how many players are online (a single number), and the names of any installed plugins that depend on 3D Engine, so we know how many servers and players use it. It is anonymous: no address, server name, version, player names or UUIDs, or content. Turn it off with
telemetry: false. - The resource pack. 3D Engine runs a small web server on the port above that hands out its resource pack, and only the pack. Turn it off with
pack.host: false.
Support
Ask on Discord. Please don't post bugs in the reviews; we can't reply there, and we would rather fix it.
Made by ResourcePack AI
3D Engine comes from resourcepack.ai, a web editor for resource packs. Models are drawn with obj³'s shaders (MIT). The Labrador in the picture is "Labrador Dog" by kenchoo, after "Dog" by all of life (both CC BY 4.0); he comes with 3D Pets.
Information
Pinned Versions
- R26.3
Pages
Members
1Owner