▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/denizen-bulletphys
denizen-bulletphys

denizen-bulletphys

Real physics for Minecraft, powered by Denizen: falling blocks, suspension-based vehicles, and more.

Оцените первым
37
0

denizen-bulletphys — 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: 1.0.0-alpha. The falling-blocks command and the vehicle/suspension command are both implemented and working on a live server. What's still missing for a real 1.0: Denizen ObjectTags/events for bodies and vehicles (right now they're addressed by a plain numeric id).

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.

main thread (20 TPS)  ──commands/terrain──►  physics thread (60 Hz, Bullet)
       ▲                                              │
       └──────────  transform snapshot  ◄─────────────┘
       │
   block_display (client-side interpolation)

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.

Requirements

Java21+ (one jar runs on both 1.21.x / Java 21 and 26.x / Java 25)
ServerPaper 1.21.x+ (tested on Leaf 26.2)
Denizen1.3.3+
Enginelibbulletjme 23.1.0 — natives for Linux x64/ARM64, Windows x64, macOS x64/ARM64 bundled in the jar

License

All Rights Reserved.

Партнёрский материал

Сервер для плагина denizen-bulletphys - как у профи

Плагин denizen-bulletphys создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином denizen-bulletphys для друзей можно за пару минут - BungeeHost всё уже подготовил.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:
Опубликован:2 месяца назад
Обновлён:2 месяца назад
Главная