Sueta

denizen-utilities

2.10.0

Extending Denizen for greater capabilities

·Plugin
  1. 2.10.0latestdenizen-utilities 2.10.0Aug 25, 2026
    ## Client Version
    >
    ### <PlayerTag.version> and <ConnectionTag.version> tags
    Tags have been added to retrieve the exact version of the player’s client:
    - Returns a human-readable version name (e.g., "1.21.1", "26.2"):
    >   - narrate "Your client version: <player.version>"
    >   
    - Add .protocol to retrieve the exact integer protocol version identifier (e.g., 767):
    >   - if <context.connection.version.protocol> >= 767:
    >       - narrate "A modern client has been detected!"
    >   
    >
    ### The <util.client_version_by_address[<address>]> tag
    A tag has been added specifically for the on server list ping event to work around Paper’s limit on the number of versions:
    > on server list ping:
    >   - narrate <context.client_protocol_version>
    >   - narrate <util.client_version_by_address[<context.address>].protocol>
    > 
    >
    Note: In the standard version of Paper, <context.client_protocol_version> works correctly for versions that do not exceed the server kernel version. However, if a client connects using a version newer than the kernel (for example, when pinging from version 26.2 to server 1.21.11 via ViaVersion), Paper will cap the value and report 1.21.11 due to ViaVersion. This tag directly reads the raw network handshake data, returning the client’s true version in all cases without restrictions.
    >
    ## Removals and Changes That Break Compatibility
    >
    ### ViaVersion bridge
    <ConnectionTag.viaversion_version> and <ConnectionTag.viaversion_protocol> have been removed.
    Please switch to using the new universal tags <ConnectionTag.version> and <ConnectionTag.version.protocol>.
    205 downloads
  2. 2.9.0denizen-utilities 2.9.0Aug 24, 2026

    - `ConnectionTag` and `PlayerTag`:

    ### - `transfer` Mechanism (`ConnectionTag`):
    Added the `- adjust <connection> transfer:host:port` mechanism (or simply transfer:host) for direct, vanilla client redirection to any other server without BungeeCord/Velocity.
    > *Note: The destination server must have accepts-transfers=true enabled in its server.properties file, otherwise the client will be disconnected.*
    ### - `<PlayerTag.connection>` Tag:
    Added the `<player.connection>` tag, which returns the online player’s ConnectionTag:
    >  - adjust <player.connection> transfer:modrinth.cherry.pizza
    > 
    ### - `<ConnectionTag.is_connected>` Tag:
    Returns whether the connection is currently open and active (true/false).

    - Dialogs:

    ### - `DialogScriptContainer` (`procedural:` Generation):
    Added the ability to dynamically generate inputs, dialog bodies, and buttons via procedural scripts:
    >  procedural:
    >      - repeat 15 as:num:
    >          - definemap button:
    >              label: <[num]>
    >              script:
    >                  - adjust <context.connection> connect
    >          - define buttons.<[num]>:<[button]>
    >      - determine buttons:<[buttons]>
    > 
    ### - `player custom click` Event:
    Added full cross-plugin support, allowing safe interception and reading of dialogs created by other plugins on the server.
    - Switches: button_id:, namespace:.
    - Contexts: <context.connection>, <context.button_id>, <context.namespace>, <context.inputs>, and lazy-evaluated direct input retrieval via <context.[input_id]>.

    - `BiomeTag`:

    ### - Dynamic `attribute` Mechanism & Tag:
    Replaced hardcoded properties with a dynamic `<BiomeTag.attribute[<name>]>` tag and `attribute:` mechanism ([Minecraft Environment Attributes](https://minecraft.wiki/w/Environment_attribute)):
    >  - adjust <biome> attribute:[sky_color=red;fog_color=<color[green]>]

    - `BetterModel` Bridge:

    ### - bmmodel Command (Spawn Preconfigurations):
    The `- bmmodel` command now supports sub-blocks for conveniently preconfiguring model mechanisms right at the moment of its creation:
    > - bmmodel entity:<entity> model:dragon:
    >      glow: true
    >      glow_color: red
    >      model_scale: 1.5
    > 
    Some mechanisms are applied only after the animation plays, so we strongly recommend using this preset feature.
    ### - `model_rotation` Mechanism (`BMActiveModelTag`):
    Added the `- adjust <model> model_rotation:<QuaternionTag>` mechanism to rotate the entire model as a single unit (preserving shape and bone connections).
    ### - Geometry Preservation When Changing Skins:
    Fixed a bug where scale, positions, and bone offsets were reset when changing a model’s skin. Custom bone dimensions no longer break when using the skin mechanism.

    - New `ViaVersion` Bridge:

    ### - `<ConnectionTag.viaversion_protocol>` Tag:
    Returns the raw protocol number of the player’s client (e.g., 765).
    ### - `<ConnectionTag.viaversion_version>` Tag:
    Returns a human-readable name for the player’s client version (e.g., "1.20.4", "1.16.5").

    - Events:

    ### - `player connection configure` Event:
    - The WAIT determination now accepts a DurationTag (e.g., WAIT:5s or WAIT:1m).
    - Fixed an issue that prevented players from joining the server when using this event.

    - Compatibility:

    ### - Minecraft 26.2 Support:
    Added full support and fixed internal NMS version handlers for server version 26.2.
    22 downloads
  3. 2.9.0-beta.2denizen-utilities 2.9.0-beta.2Jul 10, 2026
    - ``player connection configure``:
    The WAIT determination now requires a DurationTag (e.g., WAIT:5s or WAIT:1m) instead of a fixed 1-minute timeout. (default 1m)
    88 downloads
  4. 2.9.0-beta.1denizen-utilities 2.9.0-beta.1Jul 9, 2026
    Support 26.2.
    DialogScriptContainer
    Add: * procedural: Added the ability to dynamically generate inputs, bodies, and buttons.
        procedural:
        - repeat 15 as:x:
            - definemap button:
                label: <[x]>
                script:
                - adjust <context.connection> connect
            - define buttons.<[x]>:<[button]>
        - determine buttons:<[buttons]>
        
    PlayerCustomClickScriptEvent
    * player custom click Event: Full cross-plugin support, allowing safe interception and reading of dialogs created by other plugins on the server. Switches*: button_id:, `namespace`. Contexts*: <context.connection>, <context.button_id>, <context.namespace>, <context.inputs>, and lazy-evaluated direct input retrieval via <context.[input_id]>.
    ConnectionTag
    Add: * <ConnectionTag.is_connected>: Returns whether the connection is currently open and active.
    BiomeTag
    Add: * attribute Mechanism & Tag: Replaced hardcoded properties with a dynamic <BiomeTag.attribute[<name>]> tag and attribute: mechanism.
        - adjust <biome> attribute:[sky_color=red;fog_color=<color[green]>]
        
    15 downloads
  5. 2.8.2denizen-utilities 2.8.2Jun 25, 2026

    PlayerConnectionConfigureEvent

    Fixed:
    - `Determinations`:
    Fixed an issue where event determinations (such as `determine WAIT`) were evaluated incorrectly or failed to register.
    Added:
    - `reflect_event Context`:
    Added the `<context.reflect_event>` context to allow reflective access to the underlying `AsyncPlayerConnectionConfigureEvent` via `JavaReflectedObjectTag`.
    108 downloads
  6. 2.8.1denizen-utilities 2.8.1Jun 20, 2026
    chore(config): change default fakeinternaldata to false
    17 downloads
  7. 2.8.0denizen-utilities 2.8.0Jun 20, 2026

    DialogScriptContainer

    Add:
    - `Condition`:
    Added ability to hide/show specific input fields, body elements, and buttons based on condition checks.
    > bodies:
    >    1:
    >      type: message
    >      condition: <player.inventory.contains_item[diamond]>
    >      message: <gray>You have a diamond in your inventory, so cool!
    > 
    10 downloads
  8. 2.7.1denizen-utilities 2.7.1Jun 14, 2026
    Fixed view range mechanism in tracker.
    25 downloads
  9. 2.7.0denizen-utilities 2.7.0Jun 13, 2026

    BetterModel

    Add:
    - `BMActiveModelTag/BMBoneTag.brightness`:
    Adds support for a brightness override, containing "block" and "sky" keys (0-15).
    - `BMActiveModelTag.model_scale`:
    Adds unified model scaling while preserving the relative positions of bones, geometry, and pivot points.
    14 downloads
  10. 2.6.3denizen-utilities 2.6.3Jun 13, 2026

    BetterModel

    Fix:
    - `SkinsRestorer`:
    Fixed crash on startup if SkinsRestorer is not installed.
    11 downloads
  11. 2.6.2denizen-utilities 2.6.2Jun 12, 2026

    BetterModel

    Fix:
    - `Animation signals`:
    Fixed dropped/missing BetterModel animation signals.
    13 downloads
  12. 2.6.1denizen-utilities 2.6.1Jun 10, 2026

    BetterModel

    Fix:
    - `SkinsRestorer`:
    Fixed a bug that prevented BetterModel from loading a new skin into the cache immediately after the player changed it.
    19 downloads
  13. 2.6.0denizen-utilities 2.6.0Jun 10, 2026

    Core

    Fixed compatibility issues with the [DenizenM](https://github.com/Energobro/DenizenM-Tjtoxshpilivili1) fork.

    BetterModel

    Add:
    - `BMModelCommand`:
    Added support for limb models.
    - `BMBoneTag/BMActiveModelTag.skin`:
    Changes the skin of the active model/bone to the player skin associated with the specified UUID or PlayerTag.
    This is especially useful when working with limb models.
    9 downloads
  14. 2.5.2denizen-utilities 2.5.2Jun 7, 2026
    Fixed target player context in show_dialog mechanism
    24 downloads
  15. 2.5.1denizen-utilities 2.5.1Jun 7, 2026
    Fix queue variables not processing in ConnectionTag show_dialog
    9 downloads
  16. 2.5.0denizen-utilities 2.5.0May 30, 2026

    Core

    DialogScriptContainer: * Added a new showdialog [<dialog>] (def:<ListTag>) command separately from the standard PlayerTag.show_dialog mechanism, allowing developers to pass parameter definitions (def:) directly into the dialog container.

    BetterModel

    Event: * Added the bm player model interact event, which triggers when a player interacts with any hitbox of an active model.
    41 downloads
  17. 2.4.0denizen-utilities 2.4.0May 28, 2026

    DialogScriptContainer

    - Added `base.after action` key with the following options: - CLOSE — Closes the dialog and returns to the previous non-dialog screen (if any). - NONE — Does nothing (keeps the current screen open). - WAIT_FOR_RESPONSE — Replaces dialog with a "waiting for response" screen.
    10 downloads
  18. 2.3.1denizen-utilities 2.3.1May 26, 2026

    DialogScriptContainer:

    * Fixed an issue where the initial: option in Text and Boolean inputs did not parse tags.
    30 downloads
  19. 2.3.0denizen-utilities 2.3.0May 26, 2026

    denizen-utilities 2.3.0

    Core

    DialogScriptContainer: * on_true / on_false: Boolean Input options now parse tags. Added compatibility support for the [DenizenM](https://github.com/Energobro/DenizenM-Tjtoxshpilivili1) fork (DialogScriptContainer)*.

    BetterModel

    Fix * Fixed an issue where bones would become desynchronized when animating specific bones using the bones: argument. Add * BMModelTag/BMActiveModelTag.type: available for both static and active models. Returns the model type (PLAYER, GENERAL). * BMActiveModelTag.entity: available for active models. Returns the underlying Bukkit entity that this active model is attached to. * override: a new argument added to the bmstate and bmlimb commands to control animation overrides.

    denizen-utilities 2.3.0

    Core

    DialogScriptContainer: * on_true / on_false: Boolean Input options now parse tags. * Added compatibility support for the [DenizenM](https://github.com/Energobro/DenizenM-Tjtoxshpilivili1) fork.

    BetterModel

    Fix * Fixed an issue where bones would become desynchronized when animating specific bones using the bones: argument. Add * BMModelTag/BMActiveModelTag.type: available for both static and active models. Returns the model type (PLAYER, GENERAL). * BMActiveModelTag.entity: available for active models. Returns the underlying Bukkit entity that this active model is attached to. * override: a new argument added to the bmstate and bmlimb commands to control animation overrides. Change * Changed the default start: (lerp) argument value from 0 to 1 in animation commands to match BetterModel's native behavior.
    21 downloads
  20. 2.2.0denizen-utilities 2.2.0May 24, 2026

    denizen-utilities 2.2.0

    **——————————————————**

    🏗️ Restructuring of the model system

    Model handling is divided into two types of objects: Static and Active. `<model[(model_name)]>` (BMModelTag):* A new object representing a model blueprint. Allows you to retrieve data directly from a model blueprint without creating an object in the world. `<EntityTag.model[(<model_name>)]>` (BMActiveModelTag):* A renamed legacy tag representing an active model. New general tags (available for BOTH object types): `.animations`*: Returns a ListTag containing all animation names available in the model. `.animation_duration[<name>]`*: Returns a DurationTag with the duration of the specified animation. New tags for active models only (`BMActiveModelTag`): `.viewers`*: Returns all players viewing the model. `.running_animation`*: Returns the name of the animation currently playing. `.running_animation.type`*: Returns the loop mode (loop, play_once, hold_on_last). Other new tags: EntityTag:* `.models`*: A list of the names of all active BetterModel models on an entity. PlayerTag:* `.limb`*: Direct access to the player’s limb tracker. BMBoneTag:* `.item`*: Returns the ItemTag of the item currently displayed on this bone. **——————————————————**

    ⚡ Animation signals

    Support for Blockbench scripts (Instructions/Effects track) has been implemented. 🚩 Global signals (`denizen:` prefix) Trigger exactly once at a specified time for the entire server. * denizen:name{metadata} — Triggers the on bm animation signal event. Contexts:* <context.model> and any data from {} via <context.key>. Example:* denizen:shoot. 👥 Personal signals (`signal:` prefix) Uses the official built-in BetterModel prefix signal:, which triggers the `on bm player animation signal` event. This is a per-player signal—it fires individually for each player currently viewing the model (for example, if 5 players are viewing the model, the event will execute 5 times—once for each player). Contexts:* <context.name>. **——————————————————** ⚠️ Known limitation and workaround: Currently, a peculiarity (likely a bug) has been observed in BetterModel 3.0: if there are multiple keys with the same prefix on the Instructions track (for example, two denizen: keys), only the last one will trigger. Solution: If you need multiple triggers in a row, use the Particle track in Blockbench. Write your scripts in the “Script”* field of the particle settings—there, all keys will trigger correctly and in sequence. ![BetterModel](https://cdn.modrinth.com/data/cached_images/3d0e3c6c49e4f…
    27 downloads
  21. 2.1.0denizen-utilities 2.1.0May 18, 2026
    Future versions will remain compatible, but the fakeinternaldata command will require an update to work.
    37 downloads
  22. 2.0Apr 28, 2026
    Important Requirement: This version now requires Java 25 or higher to run. This change is necessary to support the latest BetterModel 3.0+ API.
    Plugin Bridges:
    - Added integrations for BetterModel, DiscordSRV, and SkinsRestorer. This includes new tags, commands, and events that allow you to interact with these plugins directly from your scripts.
    FakeInternalData Patch:
    - Implemented a fix for the fakeinternaldata command. Since this command has remained broken in official Denizen releases for a long time without updates, I've added a custom patch to restore its functionality.
    60 downloads
  23. 1.0Mar 5, 2026
    34 downloads

Similar projects

Plugin →