• Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the community!

    Now, what are you waiting for? Join the community now!

Release Highlights
- Command QOL Changes
- Breaking API Changes
- Bug Fixes

Command Changes
- Renamed /deu anim showpoint to /deu anim showpoints
- Minimalized listings for all commands
- Command pages are now less cluttered and info about it can be seen by hovering over it
- Improved tab completion across all commands

API Changes
New Version: 3.5.3
Breaking Changes
- Moved DisplayUtils#getPivotLocation into WorldUtils#getPivotLocation
- Moved Interaction entity related methods from DisplayUtils into InteractionUtils

Bug Fixes / QOL
- Fixed instances where invalid tags could be added to groups, parts, animations, etc.
- This primarily occurred when using Skript or the plugin's API

What's Changed
* 3.5.4 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/73

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.5.3...3.5.4
Release Highlights
- Many New Commands
- BDEngine API Project Import
- API Changes
- Bug Fixes

Changes and help for content regarding this release can be found on the Wiki

General
- Tags can no longer contain spaces in animations, groups, parts, etc.
- Dropped support for legacy BDEngine datapack conversion
- This applies to datapacks created before Dec. 8th 2024
- Added importing and conversion of BDEngine Projects directly from the website to your game
- ALL Animation Frames now have a default Frame Point, located at a group's origin

Command Changes
- New Command: /deu bdengine import
- Import and convert a BDEngine project's model and animations
- Permission: deu.bdengine.import
- New Command: /deu anim adddefaultparticle
- Add particles to an animation at a frame's default point (group origin)
- Permission: deu.anim.addparticle
- New Command: /deu anim adddefaultsound
- Add sounds to an animation at a frame's default point (group origin)
- Permission: deu.anim.addsound
- New Command: /deu anim showpoints
- Show the Frame Points of an animation frame
- Permission: deu.anim.info
- New Command: /deu group spawnat
- Spawn a group at a specified location
- Permission deu.group.spawn
- New Command: /deu group despawnat
- Despawn groups within a given range of a location
- Permission: deu.group.despawn
- Changed /deu group clone
- Added -here argument to spawn clone the group at the player's location

- Added an -all argument to all commands that accept frame-ids/frame-tag

- Removed Commands:
- /deu bdengine convertdpleg
- /deu group clonehere
- /deu anim editallframes

API Changes
New Version: 3.5.3

Additions/Changes
- Added DEUSound#fromCommand
- Get a DEUSound from a playsound command
- Updated #equals, #hashCode, and #clone for SpawnedDisplayAnimationFrame, DisplayTransformation and AnimationCamera
- Added BDEngineUtils#convertDatapack
- Converts a BDEngine datapack into group and animation formats for DEU
- Uses the new BDEDatapackConvertEvent to get converted resources
- Added BDEngineUtils#importProject
- Imports and converts a BDEngine Project by its export ID
- Uses the new BDEAPIConvertEvent to get converted resources
- Added SpawnedDisplayAnimationFrame#getDefaultFramePoint
- Gets the default FramePoint of an animation frame, located at the group's origin
- The default point's location and tag are immutable
- Added PacketDisplayEntityGroup#getNearbyGroups
- Get nearby PacketDisplayEntityGroups in a given range of a location
- Added #removeParticle and #removeAllParticles to FramePoint

Breaking Changes
- Removed BDEngineUtils#requestModel

Bug Fixes / QOL
- Updated version checking logic
- Improved logic for BDEngine datapack conversion
- Fixed issues where adding particles to an animation could fail
- Fixed an issue where loading an animation's particles could fail
- Changed the range and step of the delta and extra in Animation Particle creation dialogs, for more fine control
- Improved tab completion of optional command arguments
- Fixed a NullPointerException occuring when attempting to remove an invalid PartSelection
- Sounds and Particles can now be removed from Frame Points

What's Changed
* 3.5.3 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/72

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.5.2...3.5.3
Release Highlights
- New, Removed, & Changed Commands
- Updated Skript Syntax
- DisplayController Changes
- API Changes
- Many Bug Fixes

General
- Added support for Minecraft 26.1.2
- Added support for Skript 2.15.2

Command Changes
- New Command: /deu group ridedespawn
- Make a group ride an entity, but despawn the group if the entity dies/despawns/disconnects
- Permission: deu.group.ride
- New Command: /deu mannequin spawn
- Spawn a mannequin entity at your location, and optionally add it to your selected group
- Permission: deu.mannequin.spawn
- New Command /deu interaction spawn
- Spawn an interaction entity at your location, and optionally add it to your selected group
- Permission: deu.interaction.spawn

- Added -nodata option to /deu anim play to optionally disable texture changes for block/item displays and text display text changes
- Removed /deu anim toggletexturechanges
- Removed /deu interaction addtogroup
- Removed /deu interaction spawnhere

Display Controller
- Added group.allowAnimationDataChanges to determine an animation played on a group should be able to change non-transformation data
- Added animationDataChangesOverride boolean (true/false) to animation states, optionally overriding the group.allowAnimationDataChanges value. (Example: states.death.animationDataChanges: true)
- Updated MythicMobs Skill Mechanic:
- - deuanimate{id=controller-id;anim=animation-tag;t=animation-type;s=storage-location,datachanges=true}

Skript
- Display & Interaction entities can now be used in Skript syntax that previously only allowed parts.
- For getting/setting properties of the entity
- Removed Toggle Animation Texture Changes syntax
- Updated Create Display Animator
- set {[i]animator} to a linear animator using {[/i]animation} without data changes

![SkriptHubViewTheDocs](http://skripthub.net/docs/?addon=DisplayEntityUtils)

Bug Fixes / QOL
- Fixed an issue causing DisplayController animation states to not work correctly
- Fixed an issue causing rideOffset for DisplayControllers to not work correctly
- Included a group's Ride Offset in auto culling calculations
- Packet-based group passengers are correctly unregistered when the group should despawn after the vehicle becomes invalid
- Fixed vehicle / group passenger(s) desync when changing worlds
- Fixed an issue causing players to be unable to teleport when they have a group passenger
- Internally changed how group parts are registered, reducing inconsistencies in some cases
- Fixed an issue where non-packet based parts were not being registered correctly
- Duplicate items no longer appear across pages in /deu listgroups, /deu listanims, /deu group list, or /deu anim list commands
- Invulnerable mannequins in groups no longer take damage from players in creative mode
- Fixed BDEngine Datapack conversion sometimes not working in the[i]end or the[/i]nether

API Changes
- Added #setBlockReplacement and #setItemReplacement to GroupSpawnSettings to replace blocks/items of a given type when spawning a group
- Added new constructors to DisplayAnimator with a Boolean parameter allowDataChanges to determine if a block/item textures and text display text should changed based on animation frame data.
- Removed SpawnedDisplayAnimation#allowTextureChanges methods

What's Changed
* 3.5.2 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/71

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.5.1...3.5.2
❗ Previous pre-releases on Discord
Release Highlights
- Command Changes
- Updated Skript Syntax
- API Changes
- Bug Fixes

General
- Added support for Minecraft 26.1.2
- Added support for Skript 2.15.2

Command Changes
- New Command: /deu group ridedespawn
- Make a group ride an entity, but despawn the group if the entity dies/despawns/disconnects
- Permission: deu.group.ride
- Added -nodata option to /deu anim play to optionally disable texture changes for block/item displays and text display text changes
- Removed /deu anim toggletexturechanges

Display Controller
- Added group.allowAnimationDataChanges to determine an animation played on a group should be able to change non-transformation data
- Added animationDataChangesOverride boolean (true/false) to animation states, optionally overriding the group.allowAnimationDataChanges value. (Example: states.death.animationDataChanges: true)
- Updated MythicMobs Skill Mechanic:
- - deuanimate{id=controller-id;anim=animation-tag;t=animation-type;s=storage-location,datachanges=true}

Skript
- Display & Interaction entities can now be used in Skript syntax that previously only allowed parts.
- For getting/setting properties of the entity
- Removed Toggle Animation Texture Changes syntax
- Updated Create Display Animator
- set {[i]animator} to a linear animator using {[/i]animation} without data changes

Bug Fixes
- Fixed an issue causing DisplayController animation states to not work correctly
- Fixed an issue causing rideOffset for DisplayControllers to not work correctly
- Included a group's Ride Offset in auto culling calculations
- Packet-based group passengers are correctly unregistered when the group should despawn after vehicle invalidity
- Fixed vehicle/passenger desync when changing worlds
- Fixed an issue causing players to be unable to teleport when they have a group passenger
- Internally changed how group parts are registered, reducing inconsistencies in some cases
- Fixed an issue where non-packet based parts were not being registered correctly

API Changes
- Added #setBlockReplacement and #setItemReplacement to GroupSpawnSettings to replace blocks/items of a given type when spawning a group
- Added new constructors to DisplayAnimator with a Boolean parameter allowDataChanges to determine if a block/item textures and text display text should changed based on animation frame data.
- Removed SpawnedDisplayAnimation#allowTextureChanges methods

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.3.8...3.5.2-PRE-4
Release Highlights
- New Wiki
- New Command
- Reworked & Recoded Skript Syntax
- API Changes

A new Wiki has been released improving clarity in many areas and a better visual look

Commands
New Command
- Added /deu parts deselect
- Deselect your currently selected part
- Permission: deu.parts.select

Skript Changes
- Updated to Skript v2.14.3
- Reworked many of the syntaxes, avoiding conflicts, reducing redundancy, and overall improving syntax
![SkriptHubViewTheDocs](http://skripthub.net/docs/?addon=DisplayEntityUtils)

API Changes
New Version: 3.5.0
Breaking Changes
- Removed playSpawnAnimation parameter from DisplayEntityGroup#createPacketGroup methods
- DisplayGroupManager#getOrCreateNearbySpawnedGroups now returns a set of SpawnedDisplayEntityGroups instead of GroupResults

Additions / Changes
- Added ActivePart#getItemDisplayTransform
- Added ActivePart#getInterpolationDelay and ActivePart#getInterpolationDuration
- Added methods to ActivePart
- #getItemDisplayTransform
- #getInterpolationDuration
- #getInterpolationDelay
- #getBillboard
- Added GroupSpawnSettings#playSpawnAnimation
- DisplayUtils#getFixedModelLocation now accepts an ActivePart rather than just a PacketDisplayEntityPart

QOL
- Fixed incorrect messages when using commands or clicking clickable points

What's Changed
* 3.5.0 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/68

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.4.3...3.5.0
Release Highlights
- New Skript Syntax
- API Changes
- Bug Fixes

Skript Changes
- Updated to Skript v2.14.0
- Added Player's Selected Active Part to get the selected active part of a player
Code:
set {_activepart} to player's selected part

- Added Rotate Active Group/Part to update the axis rotation of an active group/part, in degrees.
Code:
deu rotate y of {_activegroup} by 45
deu rotate z of {_activepart} by 20
deu rotate world y of {_activepart} by 90

![SkriptHubViewTheDocs](http://skripthub.net/docs/?addon=DisplayEntityUtils)

API Changes
DisplayGroupManager Changes
[!IMPORTANT]
Many changes have been made regarding how a group is retrieved from an entity, a location, chunk, or world

Group From Location
- #getSpawnedGroups() - get all spawned groups registered in the current play session
- #getSpawnedGroups(World) - get all spawned groups registered in a world
- #getSpawnedGroups(Chunk) - get all spawned groups registered in a chunk
- #getSpawnedGroupsByCreationTime(Chunk) - get all spawned groups registered in a chunk, keyed in a map by group creation time
- #getNearbySpawnedGroups(Location, double) - get all nearby registered spawned groups in a radius
- #getOrCreateNearestSpawnedGroup(Location, radius) - get and/or create many registered spawned groups in a radius
- #getNearestSpawnedGroup(Location) - get the nearest registered spawned group in a radius
- #getOrCreateNearestSpawnedGroup(Location, radius) - get and/or create the nearest registered spawned group in a radius


Group From Entity
- #getSpawnedGroup(Display) - get a registered spawned group that a given Display is part of
- #getOrCreateSpawnedGroup(Display) - get and/or create a registered spawned group that a given Display is part of
- #getSpawnedGroup(Entity, radius) - get a registered spawned group that an eligible part entity is part of (Interaction, Mannequin)

Bug Fixes / QOL
- Improved speed of group detection when a chunk loads for the first time
- Fixed per-player animations not working
- Fixed logic of AcitvePart#rotateDisplay
- Fixed non-display parts (Interaction, Mannequin) becoming ungrouped after their chunk unloads and loads again
- Fixed a memory leak related to group detection during chunk loads

What's Changed
* 3.4.3 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/67

Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.4.2...3.4.3
Release Highlights
- Command Change
- New Skript Syntax
- API Changes
- Bug Fixes

Command Change
- duration and delay arguments are now optional for /deu interaction scale command

Skript Changes
- Added Active Group Player Scale Multiplier to apply a scale multiplier to a player's view of an ActiveGroup, on top of the group's current scale multiplier
Code:
set extra scale multiplier of {[i]activegroup} to 1.75 for {[/i]player}

set extra scale multiplier of {[i]activegroup} to 2 for {[/i]player} and ignore interaction entities

#Reset
set extra scale multiplier of {[i]activegroup} to 1 for {[/i]player}

API Changes
New Version: 3.4.2
- Added ActiveGroup#getId to the unique ID of a group
- Added ActiveGroup#setPlayerScaleMultiplier to set the scale multiplier of a player's view of an ActiveGroup, on top of the group's current scale multiplier.

Bug Fixes / QOL
- Fixed a NPE that could occur when placing a placaeble group
- Fixed Interaction Click Types (iClickType) not being recognized in Skript syntax
- Added missing tab completion to /deu parts move
- PlaceholderAPI placeholders can now be used in Interaction commands

What's Changed
* 3.4.2 by @PZDonny in https://github.com/PZDonny/DisplayEntityUtils/pull/66


Full Changelog: https://github.com/PZDonny/DisplayEntityUtils/compare/3.4.1...3.4.2
NEW UPDATE (3.3.6)

- JSON File Format
- Animation Camera
- Added and Changed Commands
- New Skript Syntax and Change
- New API Additions & Breaking Changes
- Bug Fixes


More info here
- Folia Support
- New Animation Particle & Fixes
- Updated Skript Syntax
- API Changes
- Bug Fixes

More info here
NEW UPDATE (3.3.4)

- Config Changes ⚙
- Changes to commands
- Packet-Based groups through commands
- New and Changed Skript Syntax
- API Changes
- Many Bug Fixes

More info here