Yew Posted August 1 Report Share Posted August 1 A mod which allows the changing of item stats/properties (attributes) dynamically!For developers and server admins. Mod Page Why?: Items in Vintage Story can have attributes, which are properties of an item. For example, when you heat metal in a forge, it gets a "temperature" attribute on the specific item. Internally, the game then checks the attribute on the item (in this case, a bar of metal) to do things, such as letting you hammer it on an anvil. However, not all items in the game use per-item attributes, but rather just read them directly from the parent object. For example, weapons have an attackpower attribute, but it is only accessed from the parent object. Therefore, even if you gave the attribute to an individual weapon, the game would completely ignore it. Attributer changes this by patching in checks for attributes on individual items to take priority over the parent items. If it does find the attribute assigned, then it will use that, otherwise it will just act like normal. New Attributes: maxdurability. Supported Attributes: defaultProtLoss protectionModifiers protectionTier highDamageTierResistant flatDamageReduction relativeProtection statModifiers healingeffectiveness hungerrate rangedWeaponsAcc rangedWeaponsSpeed walkSpeed damage attackpower attackrange miningspeed miningtier health clothescategory breakChanceOnImpact requiresAnvilTier workableTemperature - Please note, some attributes are enabled by the api by default and do not need this mod. - Search the official API and official survival mod Github Repositorys to check. Attribute Exceptions: perTierFlatDamageReductionLoss perTierRelativeProtectionLoss These aren't mirrored as other attributes are, as arrays aren't supported by the API. Instead, they should be TreeAttributes, with the float values of "0" and "1" placed into them. This is a workaround until the API updates. How to use (For developers): Set an attribute on an item. Example (Set an items attack power): itemstack.Attributes.SetFloat("attackpower", 12f); Example (Set an items flat damage reduction): itemstack.Attributes.GetTreeAttribute("protectionModifiers").SetFloat("flatDamageReduction", 8f); That's it. It should work if the attribute is supported. How to use (Standalone): Use an command that supports or sets attributes. Example (Set the weapon in your hand's attack power.): /debug heldstattr attackpower float 1000000 That should do it. Please note you must mirror attributes exactly, including trees, to how the parent item is. Link to comment Share on other sites More sharing options...
Yew Posted August 1 Author Report Share Posted August 1 Source code is located at:https://github.com/YewYew/Attributer Link to comment Share on other sites More sharing options...
Recommended Posts