ModsJava
DenizenM
A fork of Denizen for Paper with extended features, new events and bug fixes.
⬇ Download on HangarOpen in MCModsHubGet it on Google Play →
# The Denizen Scripting Language - Paper Impl (Unofficial version!)
An implementation of the Denizen Scripting Language for Paper servers, with strong Citizens interlinks to emphasize the power of using Denizen with NPCs!
Version 1.3.3M: Compatible with Paper 1.21.11, 26.1.2 and 26.2!
> ⚡ **Full Compatibility:** Works flawlessly with **[Denizen Utilities](https://modrinth.com/plugin/denizen-utilities)** and **[Denizen Reflect](https://modrinth.com/plugin/denizen-reflect)** right after installation.
## 💎 Extension Highlights
* **Next-Gen Support:** Fully updated extension for VS Code by `Humusus`.
* **All-in-One:** Includes all the latest changes and community-requested tweaks.
* **Source & Guide:** Check it out on 🔗 **[GitHub: refined-denizenScript](https://github.com/Humususus/refined-denizenScript)**

* **Events:**
* Added support for the Paper-specific event `on player unchecked sign edits`.
* Migrated `on player equips|unequips ...` to a generalized `on equips|unequips or armor|helmet|chestplate|leggings|boots|body` syntax, extending support to all entities and adding the new body slot.
* `` – The `EntityTag` involved.
* `` – The name of the equipment slot.
* `` / `` – The current and previous `ItemTag` in the slot.
* **Resource Pack:** Fully overhauled the logic for the `resourcepack` command to support adding multiple resource packs.
* Added a new `add` argument to the `resourcepack` command to send additional resource packs to a player.
* Added `PlayerTag.remove_resource_pack` mechanism to remove a specific resource pack by ID from a player.
* Added `PlayerTag.remove_resource_packs` mechanism to remove all resource packs from a player.
* **Text & Formatting:**
* New tags: `<&sprite>`, `<&shadow_color>`, `<&shadow_gradient>`, `<&dual_gradient>` and `<&head>`.
* Sprite usage example: `<&sprite[minecraft:items:item/porkchop]>`
* Shadow Color usage examples:
* Simple variant - `<&shadow_color[#51a2ff]>`
* With adjustable transparency - `<&shadow_color[]>`
* Shadow gradient usage examples:
* Simple variant - `<&shadow_gradient[from=#51a2ff;to=#FFF085]>`
* With adjustable transparency - `<&shadow_gradient[from=;to=]>`
* Dual gradient including Shadow color and Simple color gradients, usage examples:
* Simple variant - `<&dual_gradient[from=#51a2ff;to=#FFF085;s_from=#FFF085;s_to=#51a2ff]>`
* Tags `from` and `to` for simple color gradient adjusting.
* Tags `s_from` and `s_to` for shadow color gradient adjusting.
* Head usage examples:
* Full Face Texture - `<&head[Tjtoxshpilivili1]>`
* Only Face Texture (without surface pixels) - `<&head[!Tjtoxshpilivili1]>`
* Added `.shadow_color`, `.shadow_gradient` and `.dual_gradient` tags to `ElementTag`.
* **Internal Migration:** Fully migrated to **Paper Components** for improved performance and modern API compatibility.

* **Teleport**:
* An `async` option has been added that teleports the player to unloaded chunks without causing server lag; sometimes there is a slight delay in execution. Details: https://docs.papermc.io/paper/dev/entity-teleport/
* Added `~waitable` tag support for teleports utilizing the async parameter. This allows scripts to precisely track and wait until the asynchronous teleportation process is fully completed.
* Usage examples:
* Async teleport - `teleport async`
* Waitable async teleport - `~teleport async`
* **Playeffect**:
* Migrated to Paper's modern `ParticleBuilder` API, fixing a vanilla limitation where particles wouldn't render beyond 32 blocks from the player.
* Added automatic handling for the `forced` parameter. Previously, even if you specified a high visibility radius (e.g., visibility:100) for a particle spawned 50 blocks away, it wouldn't display. Forcing the particle now ensures it correctly renders at extended distances.
* Usage example - `playeffect effect:END_ROD quantity:100 visibility:100 forced`

* **Attributes:**
* Added new `.rarity_color` tag for items, returns ColorTag.
* Usage example - ``
* **Custom Model Data:**
* Updated `custom_model_data` mechanism and property, returns a MapTag of `floats`, `strings`, `flags` (booleans), and `colors`.
* Now accepts a `MapTag` containing `Lists` of `floats`, `strings`, `flags` (booleans), and `colors` (RGB) for advanced item model selection, while fully retaining backward compatibility for single-number inputs.
* Usage examples:
* Backward compatibility - `inventory adjust slot:hand custom_model_data:1000`
* New format - `inventory adjust slot:hand custom_model_data:;flags=;strings=;colors=]>]>`
* Simple usage - `custom_model_data:[floats=1000;flags=...;strings=foo:bar;colors=]`

* **Core Optimization:** Implementation of custom optimizations across several internal classes.
* **Tags Modification:**
* Added new sub-tag `.unsorted` to tag `.find_entities[<#.#>].within[<#.#>]` to bypass distance-based sorting. Use this for better performance when the order of entities in the list is not required.
* Optimized the `.distance` tag by replacing `Math.pow` with direct multiplication. This reduces computational overhead and results in faster distance calculations across the script.
* **Removals:**
* The `.scriptname` tag has been removed from all objects.
* `Denizen ASAP Strong warning` has been fully removed.

* **showfake:** Fixed an issue where the command would trigger an error message despite functioning correctly.
* **fakeinternaldata:** Fixed a critical bug where the command was non-functional and threw an error.
## Other links
- **Discord** - chat room (Modern, strongly recommended): https://dsc.gg/dsng
- **My Telegram Channel** - spoilers, works with Denizen, new features: https://t.me/energ0bro
DenizenM is a free Minecraft Java mod. Compatible with Minecraft 1.21.11, 26.1.2, 26.2. Downloaded 1 times (via Hangar). Download it and open it directly in the game.
Explore more