promotional bannermobile promotional banner

DenizenM

A heavily modified fork of Denizen that reworks core components, adds custom features, and significantly extends the base functionality.

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.4M: Compatible with Paper 1.21.11, 26.1.2, 26.2 and 26.3!

๐Ÿ’Ž Extension Highlights

  • Next-Gen Support: Fully updated extension for VS Code by Humususus.
  • All-in-One: Includes all the latest changes and community-requested tweaks.
  • Source & Guide: Check it out on GitHub: refined-denizenScript

โœจ New Features

  • Events:
    • Added support for the Paper-specific event on player unchecked sign edits.
    • Migrated on player equips|unequips ... to a generalized on <entity> equips|unequips <item> or armor|helmet|chestplate|leggings|boots|body syntax, extending support to all entities and adding the new body slot.
    • <context.entity> โ€“ The EntityTag involved.
    • <context.slot> โ€“ The name of the equipment slot.
    • <context.new_item> / <context.old_item> โ€“ The current and previous ItemTag in the slot.
  • Biome (by isnsest):
    • Added 'BiomeTag.attribute' mechanism and tag to set specific biome vanilla attributes, accepts a MapTag.
    • Note: Specify only the attribute name directly (e.g., SKY_COLOR, not visuals/SKY_COLOR).
    • Usage example: adjust <biome> attribute:[SKY_COLOR=<ColorTag or valid HEX>;CLOUD_HEIGHT=600]
    • More details can be found here.
  • 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[<color[#51a2ff].with_alpha[254]>]>
    • Shadow gradient usage examples:
      • Simple variant: <&shadow_gradient[from=#51a2ff;to=#FFF085]>
      • With adjustable transparency: <&shadow_gradient[from=<color[#51a2ff].with_alpha[0]>;to=<color[#FFF085].with_alpha[254]>]>
    • 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]>
      • Head tag also accepts <PlayerTag.skin_blob>, UUID and base64 skin textures.
    • 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.

๐Ÿ‘พ Commands

  • 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 <object> <location> async
    • Waitable async teleport: ~teleport <object> <location> 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 <location> visibility:100 forced
  • 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.

๐Ÿงช Items & Mechanics

  • Attributes:
    • Added new .rarity_color tag for items, returns ColorTag.
    • Usage example: <player.item_in_hand.rarity_color>
  • 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: custom_model_data: 1000
    • New format: custom_model_data: <map[floats=<list[1000]>;flags=<list[...]>;strings=<list[foo:bar]>;colors=<list[<color[127,0,0]>]>]>
    • Simple usage: custom_model_data: [floats=1000;flags=...;strings=foo:bar;colors=<color[127,0,0]>]

๐Ÿงน Optimization & Cleanup

  • 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.
    • [WIP] Removed NMSVersion checks for versions prior to 26.1.

๐Ÿ› Bug Fixes

  • 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.

DenizenM Team

profile avatar
  • 1
    Projects
  • 11
    Downloads