Data Attributes

Data Attributes

Mod

Overhauls the entity attribute system and exposes it with datapacks.

Client and server LibraryUtility

143.8k downloads
27 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter versions...

Changelog

-Reverted back to Fabric Loader 0.14.10 as config dependencies built using newer versions seem to not work in the dev environment.

This change does not impact end-users (who can continue to use this on more recent loader releases), only developers.

Changelog

This is primarily a bug-fixing and optimisation update.

*Changed the way /reload works to refresh attributes:

  • No longer saves the updateFlag to the level's nbt data.
  • No longer injects the updateFlag into vanilla packets.
  • Instead, we only use the updateFlag in runtime - not saving it at all, anywhere.

*Fixed #80: attribute tracking is handled differently now.

*Likely fixed an incompatibility between Data Attributes and ReplayMod: we no longer mess around with world properties at all.

*May have fixed long-standing issues 24 and 10: almost all networking has been removed - now we only send/receive two custom packets in the whole mod: on game join and when /reload is executed.

*Various performance improvements.

Changelog

+Added hierarchy entity types that can be used to apply attributes to all entities that are an instance of an entity class. Currently supported types are as follows:

Identifier Class Type
dataattributes:living_entity LivingEntity
dataattributes:mob_entity MobEntity
dataattributes:path_aware_entity PathAwareEntity
dataattributes:hostile_entity HostileEntity
dataattributes:passive_entity PassiveEntity
dataattributes:animal_entity AnimalEntity

These have a hierarchy of:

LivingEntity
  â”— MobEntity
      â”— PathAwareEntity
          ┣ HostileEntity
          â”— PassiveEntity
              â”— AnimalEntity

This feature is useful for when you want to modify the attributes of many different mobs, but do not know every mob's EntityType identifier.

Changelog

+Fixed minor bug that could sometimes result in max health percentages being incorrectly calculated if the Player spam died.

1.4.2

by clevernucleus on Feb 5, 2023
Download

1.3.2

by clevernucleus on Feb 5, 2023
Download

Fixed client attribute sync issue present in previous release.

1.4.1

by clevernucleus on Jan 28, 2023
Download

1.3.1

by clevernucleus on Jan 28, 2023
Download

*Changed how datapack is synced S2C:

Before, sent raw NBT through network. Now:

  1. converts NBT to SNBT;
  2. uses Java's Deflater to compress the SNBT;
  3. converts the compressed SNBT to byte array;
  4. sends the byte array over network;
  5. Reverses this using java's Inflater on the client.

This reduces the raw NBT network packet from aprox. 4KB to ~0.9KB. This was done in attempt to fix packet size issue with Velocity plugin, but also in general the player connection packet has the potential to get really massive really quickly depending on the datapack.

-Removed version checking between client and server. This was done in an attempt to make this compatible with Velocity plugin, which tends to get upset if we use regular Minecraft's connection packets.

*Changed MutableIntFlag to be implemented further up in the hierarchy (MutableWorldProperties). Added relevant casting checks. This is an attempt to fix bugs caused when other mods want to make 'dummy world properties' that don't respect the world properties hierarchy nor the client/server divide.

+Incremented version.

1.4.0

by clevernucleus on Jan 2, 2023
Download

1.3.0

by clevernucleus on Jan 2, 2023
Download

+Added multiplier based attribute functions.

Why: among other things such as being a requested enhancement, flat Attack Speed buffs are too OP and really need a multiplier type mechanic.

How: when defining attribute functions in JSON, instead of the value being a number/double, it is an object containing aforementioned number as well as a FunctionBehaviour reference. This lets the game know how the value should be used.

This is a breaking change, hence the buff in middle version number. All mods/datapacks will need to adjust their data JSON accordingly.

1.2.8

by clevernucleus on Dec 4, 2022
Download

1.2.7

by clevernucleus on Aug 28, 2022
Download

1.2.6

by clevernucleus on Aug 28, 2022
Download

1.1.12

by clevernucleus on Aug 28, 2022
Download

1.2.5

by clevernucleus on Aug 12, 2022
Download

1.2.4

by clevernucleus on Aug 6, 2022
Download

1.2.3

by clevernucleus on Aug 5, 2022
Download

1.2.2

by clevernucleus on Aug 3, 2022
Download

Project members

clevernucleus

Owner

Details

Licensed MIT
Published 2 years ago
Updated a year ago