Mods / All The Stats

Tags:
Crafting Library Classes Mechanic Statistics
Author:
Zetal
Side:
Both
Created:
May 13th at 11:58 PM
Last modified:
4 days ago
Downloads:
369
Follow Unfollow 17
Recommended download (for Vintage Story 1.22.0 - 1.22.3):
allthestats_1.7.0.zip  1-click install

For Players:

All The Stats is a mod that lets you configure and adjust the following stats dynamically using a simple config file by setting the Override Value to true:

  • Off-hand Hunger Rate: In vanilla, this is the 20% bonus hunger when holding a thing in your offhand. Want to disable it? Set this value in the ATS config to 0!
  • Hand-Smithing Hammer Swing Speed: By adjusting this config value, you can swing your hammer faster. For the impatient, but hard-working. ;)
  • Night Vision: '1' is normal vision, '2' is full night vision, and anything less is cursed anti-vision that's weirdly purple. 😅 But you could have 1.5 for half-night vision for instance.
    • The night vision smoothly fades in and out depending on your current darkness level, so it's not blinding you during the day.
  • Knapping Speed: Tap away at those rocks faster than ever :)
  • Clayforming Speed: Faster or slower, as desired!
  • Tempering Power Loss Rate: A percentage modifier on the amount of power lost by a player during the tempering process. 0 means no power lost at all!
  • Quenching Shatter Rate: A percentage modifier on the chance to shatter an item. 0 means it can never ever shatter. Tooltip won't be accurate, since it's an action performed by a specific player.
  • Healing Item Use Speed: A percentage modifier on how quickly healing items are used.
  • Bit Recovery Rate: A ratio of how many bits are recovered for the voxels in a smithed item. 1.5, for example would recover every other voxel as a bit.

For Modders:

  • This mod allows you to attach 'requiresTrait' onto Knapping, Clayforming, and Smithing recipes as if they were normal gridcrafting recipe. This means that a simple Content Mod can now have class-based recipes for these forms of crafting, too! :)
  • The same stats available to the players for overriding can be used for traits with the following codes:
    • ats:offhandhungerrate 
    • ats:handsmithingspeed
    • ats:nightvisionstrength
    • ats:handclayformingspeed
    • ats:handknappingspeed
    • ats:temperingpowerlossrate
    • ats:quenchshatterrate
    • ats:healitemusetime
    • ats:bitrecoveryrate
  • ALL stats, features, etc. in ATS can be toggled off with the config file, in the event of compatibility issues with other mods or overlapping Harmony patches.
  • Adds dynamic per-item damage stats. This allows you to be as broad or specific with the damage of items for a particular trait.
    • For example:

"attributes": { "ats:bow-?-rangedDamageMult": 0.5, "ats:bow-recurve-rangedDamageMult": 0.5, "ats:unarmed-meleeDamageMult": 0.33, "ats:blade-?-meleeDamageMult": 1.0, "ats:aculinaryartillery:cleaver-*-meleeDamageMult": 1.0 }

    • The above section of JSON would increase all damage dealt by bows by 50%, further increase that by another 50% for specifically recurves (for a total of 100% increase), unarmed punch damage by 33%, all blade melee damage (falx use this item code) by 33%, and specifically A Culinary Artillery modded cleavers by 100%.
    • These codes are completely dynamic, and work for any wildcard matching for all items in the game! The '?' is used as a wildcard character instead of '*' to avoid conflicting with vanilla VS.
  • Using the same system as the per-item damage, also supports:
    • Per-item Item Durability Loss modifications. For example:

"attributes": { "ats:bow-recurve-reduceDurabilityLoss": 0.5,
"ats:shovel-?-reduceDurabilityLoss": -3,
"ats:knife-?-reduceDurabilityLoss": 0.75 }

    • The above would reduce, on average, Recurve bow durability loss by 50%, increase shovel durability loss by 4x, and reduce knife durability loss by 75%. In the case of single digit losses of durability, this uses the standard built-in Vintage Story system for % chances of reduction/increase.
  • Using the same system as the per-item damage, also supports:
    • Per-item Harvest Speed modifications. For example:

"attributes": {
"ats:soil|shovel-?-harvestSpeed": 0.5,
"ats:wood|axe-?-harvestSpeed": -0.25,
"ats:plant|knife-obsidian-harvestSpeed": 2 }

    • The above would increase shovel harvest speed against soil by 50%, reduce axe harvest speed against wood by 25%, and increase specifically obsidian knife harvest speed against plants by 200%.
    • This section uses the EnumBlockMaterial array to supply the first parameter of the dynamic attribute. This value must be separated by the '|' character. These values can be seen in the VS API Github.
  • Adds in a new "ats:stonequarrying" stat that can be used to enable or disable usage of the Splitter Plugs from Stone Quarry.
    • There's a config option to determine whether the ability to use Splitter Plugs should be enabled or disabled for a stat value of exactly 1. If a player has a stat > 1, it's enabled. If it's less than 1, it's disabled.

 

Furthermore, when hosted on a server, the server config will be prioritized for the clients, preventing any sorts of unwanted shenanigans with the 'override' values provided above.

Future Content

I have a lot of things planned for new stuff to add to All The Stats!

 

Have a request? Feel free to drop it in the comments!

 

Special thanks to TheInsanityGod for their incredibly helpful work on all their mods, and their assistance. 🥳

Additional thanks to Aldi for their input and brainstorming for feature ideas!

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.7.0 allthestats
1.22.0 - 1.22.3
44 4 days ago allthestats_1.7.0.zip 1-click install

This should be considered an optional update for anyone not interested in using this specific feature. However, if you do want to update, it should be harmless.

  • Adds in a new "ats:stonequarrying" stat that can be used to enable or disable usage of the Splitter Plugs from Stone Quarry.
  • There's a config option to determine whether the ability to use Splitter Plugs should be enabled or disabled for a stat value of exactly 1. If a player has a stat > 1, it's enabled. If it's less than 1, it's disabled.
1.6.0 allthestats
1.22.0 - 1.22.3
19 5 days ago allthestats_1.6.0.zip 1-click install
  • New Bit Recovery Rate stat, which allows Smiths to recover bits. As with every other feature, this can be disabled wholesale in the config if it causes issues with other popular mods, but it shouldn't. Trait attribute values such as '0.5' would give bits every other voxel that is Split.
  • New Healing Item Use Speed stat, which modifies the usage speed of healing items such as bandages. It's a direct multiplier. :) 
1.5.1 allthestats
1.22.0 - 1.22.3
170 Jun 3rd at 12:51 PM allthestats_1.5.1.zip 1-click install

Adds some harmless extra error handling logic surrounding client stat updates. I don't think it'd ever really be necessary, but it might help with rare errors?

1.5.0 allthestats
1.22.0 - 1.22.3
24 May 31st at 9:41 PM allthestats_1.5.0.zip 1-click install

Fixes an issue where all of the dynamic traits were unlocalizable due to their usage of the '*' wildcard character, which vanilla VS was recognizing as a wildcard and excluding completely from localization. As a result, existing Traits and localization strings must be changed to use '?' as the wildcard character, and '|' as the material separation character. Description will be updated with these new characters.

1.4.0 allthestats
1.22.0 - 1.22.3
15 May 30th at 12:14 PM allthestats_1.4.0.zip 1-click install

Adds two more dynamic per-item attribute types:

  • Dynamic Harvest Speed
  • Dynamic Item Durability Loss Reduction
1.3.0 allthestats
1.22.0 - 1.22.2
16 May 29th at 6:15 PM allthestats_1.3.0.zip 1-click install

Adds in dynamic item-specific melee and ranged damage multiplier stats!

Check the new description section for more info. If it isn't there yet, you're early! Give me five minutes, sheesh!

1.2.0 allthestats
1.22.0 - 1.22.2
39 May 18th at 12:28 PM allthestats_1.2.0.zip 1-click install

Adds stats for Quenching and Tempering! One to modify Shatter rate when Quenching, and one to modify the Power Loss when Temperig.

1.1.0 allthestats
1.22.0 - 1.22.2
18 May 14th at 10:02 PM allthestats_1.1.0.zip 1-click install
  • Adds a Night Vision stat. '1' is normal vision, '2' is full night vision, and anything less is cursed anti-vision that's weirdly purple. 😅 But you could have 1.5 for half-night vision for instance.
    • The night vision smoothly fades in and out depending on your current darkness level, so it's not blinding you during the day.
  • Adds a Knapping Speed stat.
  • Adds a Clayforming Speed stat.
1.0.0 allthestats
1.22.0 - 1.22.2
24 May 13th at 11:59 PM allthestats_1.0.0.zip 1-click install

First release!


22 Comments (oldest first | newest first) (threaded | flat)

Coral, 2 days ago

I like the features here, i do have one question, is there a way to get traits added by other mods to work in for requiresTrait patching?

Zetal , 1 day ago (modified 1 day ago)
@Coral: I like the features here, i do have one question, is there a way to get traits added by other mods to work in for requiresTrait patching?

As long as All The Stats is a mod that's been loaded at the same time, any other mod can use the requiresTrait attribute on Clayforming, Knapping, or Smithing, and it will work. :) This is true for all of the features added here in ATS.

Zetal , 1 day ago (modified 1 day ago)
@Coral: Mmm is it supposed to show the trait requirement in the handbook then? Currently does not.

Sadly, it doesn't. It's a vanilla limitation that I wouldn't be able to correct without some incredibly invasive handbook patches, which might introduce mod compatibility issues. I may look into adding it regardless in the future, but it's a tricky issue, unfortunately, so I'm focused more on pure functionality at the moment. For now, I'd recommend that people adding traits make it clear what the traits do, and potentially modifying the lang of craftable items to include details on the traits needed to craft the items.

Raek, 6 days ago

Interesting for a first mod!

 

Have there been any issues getting it to work with Seraph Leveling? I can test it if you're not sure, of course-the mod in question improves your abilities passively as you play, so I don't know how it'd interact with this. (Example: You eat a hearty meal a few times and you'll reduce your overall hunger rate by one percent, or wear heavy armor and you'll improve your mobility in it over time. Completely hands-off, though it does offer ways to learn things from other classes-for example. You can learn to make a sewing kit by wearing twenty different pieces of clothing.)

Zetal , 6 days ago
@Raek: Interesting for a first mod! Have there been any issues getting it to work with Seraph Leveling? I can test it if you're not sure, of course-the mod in question improves your abilities passively as you play, so I don't know how it'd interact with this. (E

Seems like Seraph Leveling works using the base game traits, which I don't interfere with at all! So, I think it should work fine, but it won't have any interaction with any custom traits someone might add using ATS unless they manually configured Seraph Leveling to use them. :)

liv_on, Jun 2nd at 9:24 PM (modified Jun 2nd at 9:25 PM)

One of the players reported a crash with this mod, seems like a compatibility issue with XSkills. Not too sure myself, just wanted to let you know.

Crash Report
at AllTheStats.AllTheStatsModSystem.<>cDisplayClass11_0.<event_PlayerEntitySpawn>b0() in E:\Development\VintageStoryMods\AllTheStats\AllTheStats\AllTheStatsModSystem.cs:line 49
   at Vintagestory.API.Common.EntityStats.Remove(String category, String code) in VintagestoryApi\Common\Entity\EntityStats.cs:line 159
   at XSkills.XSkillsPlayerBehavior.ApplyAbilitiesHealth() in C:\sourcecode\xskills-fork_xlib-fork\mods\xskills\src\EntityBehaviors\XSkillsPlayerBehavior.cs:line 235
   at XSkills.XSkillsPlayerBehavior.OnGameTick(Single deltaTime) in C:\sourcecode\xskills-fork_xlib-fork\mods\xskills\src\EntityBehaviors\XSkillsPlayerBehavior.cs:line 340
   at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\Entity.cs:line 991
   at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\EntityAgent.cs:line 739
   at Vintagestory.API.Common.EntityPlayer.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\EntityPlayer.cs:line 711
   at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt) in VintagestoryLib\Client\Systems\Entities.cs:line 105
   at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 36
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 134
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 867
   at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 173
   at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 742
   at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 686
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 354
   at Vintagestory.Client.ClientProgram.<>cDisplayClass10_0.<.ctor>b1() in VintagestoryLib\Client\ClientProgram.cs:line 131
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Zetal , Jun 3rd at 12:50 AM (modified Jun 3rd at 11:48 AM)
@liv_on: One of the players reported a crash with this mod, seems like a compatibility issue with XSkills. Not too sure myself, just wanted to let you know. Crash Report at AllTheStats.AllTheStatsModSystem.<>cDisplayClass11_0.<event_PlayerEntitySpawn>b0() in E:\De

Hey! Thanks for the report. Do you have the full log? I'll start looking into this now--do you happen to know what version of xSkills and xLib was being used? If you have the full log, we can touch base on Discord and I can take a look through it.

 

Edit: Still haven't been able to reproduce the issue.. Not sure what could have caused it--been running ATS and the latest xSkills on AFK for the last 8 hours or so with no crash.

liv_on, Jun 3rd at 7:06 PM (modified Jun 3rd at 7:06 PM)
@Zetal: I wasn't able to reproduce the issue, but I added some extra error-handling in some places of the code. Hopefully fixes any edge cases? Not sure.

Sorry about that, I could not get the player to produce the full logs. XLib(fork) version was 1.0.9, xSkills(fork) version was 1.0.44. We have readded the mod for further testing, I will let you know with more details if such a crash happens again.

Zetal , Jun 3rd at 7:13 PM
@liv_on: Sorry about that, I could not get the player to produce the full logs. XLib(fork) version was 1.0.9, xSkills(fork) version was 1.0.44. We have readded the mod for further testing, I will let you know with more details if such a crash happens again.

I appreciate the testing! One way or another I want to make sure that the mod has the best compatibility I can manage, even if it's a bit of a process. 😅 I was testing with 1.0.12 and 1.0.49, so maybe that's why? I'll try downgrading and give it a go 👍

liv_on, May 30th at 12:50 PM

Oh, HELL yeah.

Aldi, May 18th at 3:34 PM

can't wait to finally have time to implement this in my classes! finally no clunky detour for clayforming

KardaLove, May 18th at 2:41 PM

Not sure if this is really possible, but do you have plans to add stats for specific weapon type damage? Like spears, falxes, etc. instead of blanket melee and ranged? Love the mod so far, looking forward to what else you put in!

Zetal , May 18th at 11:16 AM

Frepo I could definitely look into that! The list of stuff to add right now is pretty long at the moment 😅 but I've been prioritizing based on expected usage, so if there's other people that would like that sort of thing too, I hope they speak up, too! Currently working on some new stats related to the new quenching mechanic. :)

Frepo, May 17th at 1:58 AM

I like what you got going here! Tools for modders are always welcome :)

I've been looking for a mod that adds player stats (walkSpeed, hungerRate etc.) to clothes, which I can then patch to suit my modpack. I haven't really found a good one, the closest I found was a mod that randomly adds stats upon item spawn.
So, it would be nice if this mod could allow the user to set certain stats to certain clothes.

Looking forward to see what further features this mod brings! Have a nice day.