Sal_fish's Attribute Lib (双拼原味咸鱼罐头)
A lightweight attribute library for Minecraft Forge 1.20.1, designed to give modpack creators and players fine-grained control over entity properties through the vanilla attribute system. It also includes a cross-session command memory feature that persists command history across game sessions.
These attributes are automatically added to every living entity. Modpack makers can set default values globally or per entity type, and other mods can modify them dynamically.
generic.scale – Controls the visual size and hitbox of the entity. Default: 1.0
generic.step_height – The maximum block height the entity can walk up without jumping. Default: 0.6
generic.safe_fall_distance – The maximum vertical distance the entity can fall before taking fall damage. Default: 3.0
These are added only to players and affect gameplay balance and interaction ranges.
generic.creative_flight – If set to a value greater than 0, the player can fly regardless of game mode. Default: 0
player.block_interaction_range – The maximum distance at which the player can interact with blocks (place, break, use). Default: 4.5
player.entity_interaction_range – The maximum distance at which the player can interact with entities (attack, use). Default: 3.0
player.block_break_speed – A multiplier applied to the player’s block breaking speed. Default: 1.0
All attributes support any value (technically bounded by Java integer limits), allowing pack authors to fine-tune everything from movement to reach without creating dozens of separate modifiers.
The mod automatically remembers the last 50 commands typed in chat (messages starting with /) and saves them to a command_history.txt file in the Minecraft game directory.
History persists across world changes and even after completely exiting the game.
Commands are stored in order and are accessible via the ↑ / ↓ arrow keys in the chat screen, just like the vanilla chat history.
No extra configuration needed – it works out of the box.
Simply install this mod on both server and client. No configuration files or dependencies required.
For modpack authors: Use the provided attribute registries to assign custom values to players and mobs via command blocks, scripts (CraftTweaker, KubeJS), or your own mods.
For other developers: Add this library as a dependency and access the attribute registry objects directly from ModAttributes.
Attributes are registered using Forge’s DeferredRegister and are fully synced between server and client.
Entity rendering (scale, shadow size) is adjusted automatically via mixins, ensuring visual consistency.
The command history feature uses a local file to store commands; it never sends anything to a server.
Feel free to use, modify, and distribute in modpacks. Feedback and suggestions are always welcome!