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

DBetterModel

Adds interop between BetterModel and Denizen!​ One jar for every BetterModel (1.15.x, 2.x, 3.x).

Оцените первым
384
5
Все версииDBetterModel 6.0.0 | BM 1.15.x / 2.0.x–2.2.x / 3.x

DBetterModel 6.0.0 | BM 1.15.x / 2.0.x–2.2.x / 3.x

Release11.07.2026

Список изменений

!dbettermodel-omni

DBetterModel 6.0 "Omni": one jar for every BetterModel (1.15.x, 2.x, 3.x).

One jar for every BetterModel. 6.0 detects the installed BetterModel at startup and selects the matching compat layer — the per-BM-version release matrix of 5.x is gone.

BetterModelDBetterModel
1.15.x / 2.0.x–2.2.x / 3.x6.0.0 (this jar)

Breaking changes: none. Every 5.0 script runs unchanged.

Highlights

  • Universal compat core — three statically compiled layers (v1/v2/v3), selected by BetterModel version at startup. Public BM API only, no private-field reflection. Future BM 4.x gets a best-effort probe instead of a crash.
  • Capability system — scripts query what the running BetterModel supports via <bm.capabilities>; unavailable features report clean errors, never stacktraces.
  • Blockbench keyframe signalsdenizen:name{key=value} instruction keyframes fire the bm animation signal event on all supported BM lines, including 1.15.x and 2.x.
  • bmsummon — location-bound models (dummy trackers) for props and cutscenes.
  • Read/write bone API — 5.x write-only display state (glow, tint, billboard, view range, brightness, scale, offset, item) now reads back.
  • Legacy aliases restoredworld_rotation, bone bm_entity, lerp_frames — pre-5.0 scripts work again.

New in the Denizen surface

  • Command: bmsummon [model:<model> location:<location>] / [handle:<bmmodel> remove] (with save-entry summoned_model).
  • Server tags: <bm.version>, <bm.compat_layer>, <bm.capabilities>, <bm.models>, <bm.limbs>.
  • Events (joining the existing bm starts/finishes reload): bm animation signal, bm player animation signal, bm animation starts, bm animation ends, bm model spawns for player, bm model despawns for player, bm tracker created, bm tracker closed, bm hitbox damaged, bm hitbox interacted, bm model mounted, bm model dismounted.
  • Mechanism: skin on BMBoneTag — - adjust <[bone]> skin:[part=head;from=<player>], the modern take on bmpart (which stays supported).
  • Tags: bone getters (glow, glow_color, tint, billboard, view_range, brightness, shadow_radius, scale, offset, item), <BMBoneTag.skin_parts>, <BMModelTag.viewers>, <BMModelTag.running_animations>, <context.model> on signal events, bmmodel@dummy:<id>,<model> identity form for summoned models.

Experimental (see docs/EXPERIMENTAL.md)

  • Keyframe script bridgedenizen:run{script=knight_strike;damage=8} on a Blockbench keyframe starts the named task script with the metadata as definitions. Toggle: experimental.keyframe-script-bridge.
  • Folia readiness — all internals are region-safe and the jar declares folia-supported: true. Waiting on Denizen's own Folia support to matter on vanilla Folia; works today on force-load forks.

Fixed 5.x bugs

  • Bone mechanisms fired their fulfill twice when applied via BMModelTag — now exactly once.
  • rotate mechanism accumulated rotation modifiers on repeated writes — now replaces.
  • Debug errors could be swallowed when the debug flag was off — errors always reach the console now.
  • Update checker rewritten: proper JSON parsing of /releases/latest, failures logged instead of ignored.

DBetterModel vs denizen-utilities (BetterModel bridge)

Both bridge BetterModel into Denizen. Verified against denizen-utilities 2.8.x (BetterModel bridge, compiled against bettermodel-bukkit-api:3.0.1):

DBetterModel 6.0denizen-utilities
BetterModel support1.15.x + 2.x + 3.x, one jar3.x only
BM API accesspublic API onlyreflection into a BM private field (RenderedBone.itemStack via getDeclaredField/setAccessible)
Off-thread workBukkit/region schedulersa raw new Thread with Thread.sleep(100)
Keyframe signals (bm animation signal)fire on all BM lines, incl. 1.15/2.x3.x only
Location-bound models (dummy trackers)yes — bmsummonno
Skin part → bonebmpart command and skin mechanism, resolved via BetterModel's tracked profile.skin mechanism (their bmpart is deprecated)
Mount / billboardcommands (bmmount, bmboard)mechanisms (.mount, .billboard)
Compat safetybuild fails if :core touches a BM class; per-version layerssingle build against one BM API

denizen-utilities is a capable, actively documented bridge; the table lists only differences that are verifiable in its source, not a quality judgement.

Testing

Verified on five automated headless stands + one manual in-game session, all green.

Automatedtests/minecraft/test-headless.dsc (console-driven, spawns its own rig, DBM-RESULT OK/FAIL line):

BMLayerServer / JavaResult
3.2.0v3Leaf 26.2 / Java 2519/19
3.0.1v3Leaf 26.1.2 / Java 2519/19
2.2.0v2Paper 1.21.10 / Java 2119/19
2.0.1v2 (reduced)Paper 1.21.4 / Java 2119/19
1.15.2v1Paper 1.21.10 / Java 2119/19

Manualtests/minecraft/test.dsc (in-game, visual + event checks): BetterModel 3.2.0 · Denizen 1.3.3-SNAPSHOT (build 7290-DEV) · SkinsRestorer 15.12.4 · Leaf 26.2 (build 17) · DBetterModel 6.0.0. All commands, tags, mechanisms, per-player animation events and keyframe signals confirmed.

Requirements

Java 21+ (Java 25 only when running BetterModel 3.x — BM 3.x itself requires it) · Paper 1.21.x+ · Denizen 1.3.1+.

Docs: wiki.meigo.pw/docs/dbettermodel and the in-repo docs/ folder.

Full Changelog: https://github.com/meigoc/DBetterModel/compare/v5.0.0...v6.0.0

Файлы

DBetterModel-6.0.0.jar(217.00 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

6.0.0

Загрузчики

Bukkit
Folia
Paper
Purpur
Spigot

Версии игры

1.21–26.2

Загрузок

29

Дата публикации

11.07.2026

Загрузил

ID версии

Главная