Mods / Trait Tailor

Tags: #QoL #Tweak
Author: Otaku
Side: Both
Created: Dec 22nd 2024 at 4:26 AM
Last modified: May 3rd at 10:51 PM
Downloads: 1072
Follow Unfollow 84

Latest release (for outdated Vintage Story v1.19.8):
traitstailor_0.8.3.zip  1-click install


Change the attributes that come pre-selected with each class.
Comes with a server-side config for balancing the user experience.

Adds a command .ttailor that allows players for one time customization of class attributes.
Admins can use /player <playername> atto to allow the player to customize thier attributes one more time.

Important! Current workaround for showing selected attributes is using a command .ttailor show

Config explanation

With these config settings you can limit which attributes is the player able to choose
and how much big of a bonus or penalty is the player able to apply.

Inside ModConfig\TraitTailorConfig.json

  • classPerks

First value(key) is the ingame code name of the class.
Second value(value) is the ingame code name of the attribute.

In the current version of the mod the default configuration assigns unique class attribute[1] based on the selected class by the player. (exluding commoner)
Currently you can only assign one free attribute to class and it's valHundredths will be 1.

  • attributeValues

By default attributeValues is a list composed of all vanilla attributes.

  • Names
    • Code: The ingame code name[2] of the attribute
    • Name: Easier to read name of the attribute that will be shown to the player
  • Bools (true or false)
    • positiveValue: Only put false if the attribute being negative is actaully positive for the player
      (e.g. attribute armorWalkSpeedAffectedness being negative is actually slowing the player less while wearing armor if its negative)

    • percentileValue: Only false if the attribute affects the player stats by a rational number (e.g. 5, 1.5, 0.75) instead of %
      (e.g. attribute maxhealthExtraPoints adds or removes set number from the deafult player health value so its percentileValue is false)

  • Attribute value
    • valHundredths: If the percentileValue is:
      true: 0.01 will be 1% and 0.15 will be 15%
      false: is for attributes that read values as rational number or integer, 1 will be 1, 2.5 will be 2.5

  • Slider values
    • stepRangeNeg: how many times can the player move the slider under the value of 0
    • stepRangePos: how many times can the player move the slider over the value of 0
      Both accept only full positive numbers (To set only positive or negative range set the other value to 0)
      (e.g. for attribute maxhealthExtraPoints valHundredths=0.5, stepRangeNeg=3, stepRangePos=8
      With those settings the slider for this attribute can be moved maximally 3 times from 0 to the left
      resulting in possible range of attribute values being -0.5*1=-0.5, -0.5*2=-1 and finally  -0.5*3=-1.5
      or 8 times to the right resulting in maximal possible value being 0.5*8=4)

    • pointValue: Accepts only positive integers.
      This point value is multiplied by each "step" of selected attribute.
      (For each "step" to the left on the slider, the points will be multiplied by -n "steps" to the left or by +n when moving to the right
      unless positiveValue is set to false)

      In order for the player to finalize his selection, the sum of points must be 0 or higher

    • stepSetVal: leave at 0, it is set to the multiplied valHundredths when using the slider
  • Vanilla attributes table
    You can safely remove any whole {} from inside attributeValues list[].
    In case you want to re-add any attribute or just change default values remeber
    to set positiveValue and percentileValue according to the table below 
Code positiveValue percentileValue additional info
rangedWeaponsDamage true true  
rangedWeaponsAcc true true  
bowDrawingStrength true true  
animalLootDropRate true true  
animalHarvestingTime false true  
walkspeed true true  
forageDropRate true true  
wildCropDropRate true true  
vesselContentsDropRate true true  
rustyGearDropRate true true  
wholeVesselLootChance true true stepRangeNeg=0
animalSeekingRange false true  
mechanicalsDamage true true  
temporalGearTLRepairCost false false valHundredths = 1 or 2, stepRangePos=0
meleeWeaponsDamage true true  
armorDurabilityLoss false true  
armorWalkSpeedAffectedness false true  
miningSpeedMul true true  
maxhealthExtraPoints true false  
oreDropRate true true  
hungerrate false true  
healingeffectivness true true  

If you want unique perks to be selectable too
you can remove keys and values from classPerks and
add them to attributeValues with following values:

Code: Class,
Name: Class,
positiveValue: true,
percentileValue: false,
valHundredths: 1,
stepRangeNeg: 0,
stepRangePos: 1,
stepSetVal: 0
pointValue: You decide ;)

Class Class unique attribute
commoner  
hunter bowyer
malefactor improviser
clockmaker tinkerer
blackguard merciless
tailor clothier

 

Changelog

0.8.1

  • Added /ttailor <playername> reset command to remove all attributes from a player, remember
    to use /ttailor <playername> atto to allow the player to change his attributes again.
  • Now .ttailor show opens a gui instead of listing all the attributes in chat
  • Fixed a bug that allowed players to open .ttailor gui before confirming class

0.8.2

  • Players gain the privilege to use the .ttailor command after confirming thier class selection

0.8.3

  • Player can now disconnect without losing the ability to use .ttailor
  • Added healingeffectivness attribute to the default config
  • Added /ttailor config default command to reload the config file to the default settings (requires restart)

 

Known issues

  • Items vanishing from invetnory (for some re-connecting reappears the missing items for others disabling the mod)

Planned features

  1. More commands for admins (e.g. /attribute <playername> reset)
  2. Commands to configure the config ingame
  3. Gui for looking up selected attributes
  4. Support for translation
  5. Support for modded classes with custom attributes

Uncertain features

  • Integration of selected attributes into the character info GUI
  • Integration of the mod into the character creator screen

The mod will be public on GitHub after 1.0 relese

If you want to add your translation or add your custom class attributes from your mod please contact(ping) me(@Entheru) on official VS discord server.

Big thanks to ket_ler0 on Instagram for the thumbnail art!

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v0.8.4-rc.1 139 May 3rd at 10:51 PM Show traitstailor_0.8.4-rc.1.zip 1-click install
v0.8.3 658 Dec 27th 2024 at 5:25 PM Show traitstailor_0.8.3.zip 1-click install
v0.8.2 73 Dec 27th 2024 at 12:49 AM Show traitstailor_0.8.2.zip 1-click install
v0.8.1 89 Dec 25th 2024 at 11:02 PM Show traitstailor_0.8.1.zip 1-click install
v0.8.0 113 Dec 24th 2024 at 12:54 AM Show traitstailor_0.8.0.zip 1-click install

17 Comments (oldest first | newest first)

💬 _ulysses_, Mar 4th at 4:47 PM

In version 1.20.X game crashes once you use the command .ttailor which is very very sad, because this mod looks awsome and I want to be able to use it on custom servers.

 

It is a class creator and I love it. I would love to see it balanced with a trait picking system like in Stellaris to have it employed into severs with a manageable amount of balance- make it so you have a certain number of "trait points" which you can pick varying perks with but if you go negative in points you have to pick a disadvantage to bring the points to 0.

💬 Invataksi338472, Feb 8th at 2:20 PM

Hey! Just wanted to know how far 1.20.x support is at? Heck, I would download even the broken 1.20-rc versions, if the custom traits stick around even after the mod is removed!

💬 Overtank079, Feb 7th at 9:40 PM

In version 1.20.3 game crashes once you use the command .ttailor

💬 Yukari_75, Jan 12th at 10:03 AM

Is it just me, or do adjustments reset ever time I stop playing the game, making me have to remake adjustments every time I start playing with this mod?

💬 Sodon, Dec 28th 2024 at 4:00 AM

Otaku

It's ok, mods probably require a lot of effort to resolve unforseen issues. I disabled all other mods to root out conflict in 1.20-rc6, loaded a new world, tested to see if items disappeared from inventory, then saved and exited and returned. Same issue, it's exclusively this mod that's causing it.

💬 SteAStro88, Dec 27th 2024 at 8:10 PM

Hey! I just wanted to let you know that when this mod is active, whenever I create a world, exit the game completely and resuming the world, chunk loading is frozen and no I can no longer pickup objects. It basically renders the game unplayable. I haven't tested if deleting the mod resumes the world to its original state but I generally avoid playing on worlds with deleted mods.

💬 Otaku , Dec 27th 2024 at 5:46 PM

ambiguousentity
As of now I am unable to locate the source of this issue, During tests using version 1.19.8 I didnt manage to replicate this bug so for now I removed all mentions of 1.20-rc* versions from the mod files.
I want to point the finger at 1.20 still being unstable or another mod that comes in conflict with mine but probably Im just missing something to find the issue from my side so I need some more time to resolve this.
For now if you're playing on singleplayer you can safely disable the mod and the changes should stay with your character. 

💬 Otaku , Dec 27th 2024 at 5:33 PM

EKB133 The issue should now be fixed in the 0.8.3 version, if you still get a message about lacking permissions use /player <playername> atto command.
Let me know if you encounter this issue again

💬 Sodon, Dec 27th 2024 at 1:28 PM

Otaku Same here, I noticed my items disappeared when dropped, then I would have to reload the world in order to fix it. Once your mod was disabled the problem disappeared, and returned when reenabled.

 

Oh yes, also it only happens after saving and exiting. On first play session it seems to work fine.

💬 Otaku , Dec 26th 2024 at 8:27 PM

Leonix Thats really wierd, the mod doesnt change anything that has to do with vanilla GUI's.

Could you please try to restart the game, disable my mod and re-enter the world.
And if the issue really goes away restart again and enter with my mod re-enabled.

If the issue really comes from my mod while its enabled please send me your modlist on official VS discord, ill try to look into this issue

💬 Leonix, Dec 26th 2024 at 7:32 PM

The latest modification update for v1.20.0-rc.6, which I'm currently playing, is causing me problems with the inventory. Things are disappearing or duplicating, when they're not really there anymore... o.o

💬 EKB133, Dec 26th 2024 at 6:40 PM

I think there is a compatability issue between this mod and Kemono, no matter what class I pick, if I try to use .ttailor to bring up the menu, it tells me that I should use .charsel first to pick a class before using that command.

Edit: actually, It doesn't seem to be Kemono, for some reason the mod just isn't recognizing that I picked a class to allow me to use the command.

💬 Otaku , Dec 25th 2024 at 3:41 PM

Korcz Could you message me on discord and list me all the mods you had installed when the crash happend so i could pick out the one that causes the issue and try to fix it?

💬 Korcz, Dec 25th 2024 at 12:32 AM

Unfortunately crashes on 1.20 (possibly conflicting with something else), but otherwise sounds like a great idea

💬 JabZ, Dec 24th 2024 at 7:03 PM

What an amazing mod!

💬 Otaku , Dec 24th 2024 at 11:01 AM

Indeed project zomboid was a big inspiration for this mod, but I also wanted to have more control over class traits instead of making a whole new class everytime. 

💬 DanaCraluminum, Dec 24th 2024 at 8:46 AM

Looks like zomboid trait system

 (edit comment delete)