Yew Posted August 1, 2023 Report Posted August 1, 2023 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.
Yew Posted August 1, 2023 Author Report Posted August 1, 2023 Source code is located at:https://github.com/YewYew/Attributer
NukoSan Posted February 3, 2024 Report Posted February 3, 2024 Hi Yew, are you actively still modding? Do you need any help with the mod? I am a noob of Visual Studio, but can learn
Yew Posted February 3, 2024 Author Report Posted February 3, 2024 4 minutes ago, NukoSan said: Hi Yew, are you actively still modding? Do you need any help with the mod? I am a noob of Visual Studio, but can learn I do plan on getting around to Vintage Story modding eventually. I'm rather busy with other things at the moment though. I do have it up on Github in the case someone wants to contribute, so if you'd like to help feel free. Might be a good learning experience for Visual Studio and Vintage Story Modding.
NukoSan Posted February 3, 2024 Report Posted February 3, 2024 Opened your GitHub project, first time ever so would love some FAQ
NukoSan Posted February 8, 2024 Report Posted February 8, 2024 Don't count on me just yet, I will be modding much just not yet - will learn more before I can make mods
Recommended Posts