HomeJavaModsdenizen-physics
denizen-physics
1_96.png
denizen-physics — a real rigid-body physics engine for Denizen.
Falling blocks with inertia and rotation, collisions between bodies and with the terrain, and vehicles on raycast suspension that reacts directly to the blocks under their wheels.
STATUS: ALPHA



How it works
The actual physics runs on libbulletjme (a JNI binding to Bullet) on its own thread, stepped at a fixed 60 Hz — decoupled from server TPS. Once per game tick, the main thread reads an immutable snapshot of every body's transform and reflects it into the world through block_display entities with client-side interpolation. MC blocks around active bodies are streamed into a static Bullet collider (loaded/unloaded as bodies move, not a fixed radius around a spawn point) — that's what falling blocks and vehicle wheels actually rest and collide against.

Using it from Denizen
- physicsbody spawn [<location>] (material:<material>) (size:<#.#>) (mass:<#.#>) (count:<#>)
- physicsvehicle spawn [<location>] (mass:<#.#>) (size:<#.#>,<#.#>,<#.#>) (material:<material>) (save:<name>)
- physicsvehicle <#(id)> addwheel offset:<#.#>,<#.#>,<#.#> (radius:<#.#>) (resting:<#.#>) (steering:<boolean>)
- physicsvehicle <#(id)> drive (wheel:<#>) (steer:<#.#>) (throttle:<#.#>) (brake:<#.#>)
- physicsvehicle <#(id)> remove


Why libbulletjme, not ode4j/jbullet
jBullet has been abandoned since 2008. ode4j is pure Java, but its raycast vehicle suspension would have had to be hand-rolled. libbulletjme is actively maintained, ships PhysicsVehicle with working suspension out of the box, and is already used by the DynamX physics mod for Minecraft.

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

denizen-physics is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1, 26.2. Downloaded 31 times (via Spigot). Download it and open it directly in the game.

Explore more