Don't Starve Together

Don't Starve Together

RPG Items (global edition)
Ultroman the Tacoman  [developer] 10 Nov, 2018 @ 9:16am
Balance Issue Discussion
Hello everyone

Please write your suggestions for balancing existing modifiers here. There is a separate discussion for suggestions for new modifiers.

Sincerely, Ultroman the Tacoman
< >
Showing 1-6 of 6 comments
BakaSchwarz 28 Dec, 2018 @ 4:51pm 
Hey! I got some things to say about the self-repairing modifier. In my world the players where set on trying to get a self-repairing thulecite crown. Eventually they got one, but it regenerates way to slow with just 1 HP every 20 seconds. Same with a self-repairing Pick/Axe.
My proposal would be to let the items regenerate relative to their max uses. Lets say we regenerate 5 % every 20 seconds and round that to a whole number so we at least get always one use. The code would be like this:

function RPGWeapon:selfrepairingpassivemod(inst) if inst.components.finiteuses then inst:DoPeriodicTask(20, function() local unit = math.ceil(inst.components.finiteuses.total * 0.05) local modvariable = inst.components.finiteuses.current + unit if modvariable > inst.components.finiteuses.total then modvariable = inst.components.finiteuses.current end inst.components.finiteuses:SetUses(modvariable) end) end end
function RPGArmor:selfrepairingpassivemod(inst) if inst.components.armor then inst:DoPeriodicTask(20, function() local unit = math.ceil(inst.components.armor.maxcondition * 0.05) local modvariable = inst.components.armor.condition + unit if modvariable > inst.components.armor.maxcondition then modvariable = inst.components.armor.condition end inst.components.armor:SetCondition(modvariable) end) elseif inst.components.fueled and inst.components.fueled.fueltype == "USAGE" then inst:DoPeriodicTask(20, function() inst.components.fueled:DoDelta(5) end) end end


This would mean the crown would regenerate 42 HP every 20 seconds. This is quite a good regeneration rate, but it IS hell to get it. If we take the Football Helmet as a comparison we see that it only would get 14 HP back every 20 seconds. In a fight this would not be suitable for tanking, but players that are good at avoiding would benifit from it and it wouldn't take forever to regenerate after a battle is won.
Last edited by BakaSchwarz; 28 Dec, 2018 @ 5:05pm
BakaSchwarz 28 Dec, 2018 @ 4:59pm 
I also think it's a bit confusing, that only the fire and ice staff can have effects. On my server i tested a bit around and came to this code:

local function MakeWeapon(inst) inst:AddComponent("weapon") inst.components.weapon:SetDamage(17) function inst.components.weapon:OnAttack(attacker, target, projectile) if self.onattack ~= nil then self.onattack(self.inst, attacker, target) end end end AddPrefabPostInit("orangestaff", MakeWeapon) AddPrefabPostInit("greenstaff", MakeWeapon) AddPrefabPostInit("yellowstaff", MakeWeapon) AddPrefabPostInit("opalstaff", MakeWeapon)

This changes every staff into a weapon, but modifies their attack function in a way so that they do not consume uses. If i don't do that you would drain 1 use everytime you hit something with your staff, which is not intended after all.
I gave them a base damage of 17, which is the same as the walking cane.

This makes it possible to try and get something like a self-repairing deconstruction staff, lol.
But i think it's not too broken, considering that you cannot craft a self-repairing construction amulet to create infinite items. The chance for a player to get such a staff is low in itself and it would certainly be a "legendary" drop :vanilla:
Last edited by BakaSchwarz; 28 Dec, 2018 @ 5:07pm
BakaSchwarz 28 Dec, 2018 @ 5:19pm 
The healing armor is basically useless, since even one spider gland is worth the time of waiting 160 seconds for 8 health. No player would wear it if its not a Tam 'o Shanter or something. I would also make this effect relative to the players total health. Not 5 % this time though. Maybe 2.5 %? In Wilsons case this would give him 3.75 health. In 160 seconds this would amount to 30 health instead of 8. Now we're talking :D Even if you think that this is still too much, i think you should at least think of giving the player 2% of their health back. Otherwise i don't think someone would use a healing tophat over just rocking that Tam 'o Shanter and using 1 spider gland.
Ultroman the Tacoman  [developer] 28 Dec, 2018 @ 8:19pm 
Thanks for the suggestions! I will definitely take them into consideration. And thanks for the code suggestions as well. Makes it much clearer what you want to accomplish.

I'm a bit on the fence about making some modifiers too OP. I always thought of the self-repairing items as ones which were then not useless, if you get them down to ~10%, because you can just leave them in a chest for 10 minutes (or stay out of combat) and they'll be ready to go. But since the armors have hundreds of "health", the current way it works is not useful at all, I can see that. I will put in the change you posted, so it's percentage-based, so you and your players can enjoy their hard-earned spoils (after a server restart) :)

I won't add your staff changes, though. They already have "powers", like "Orange Staff" allows you to blink/teleport, which is invaluable for kiting while others take down the enemies. I may add the possibility of this as a modifier specific to staves, though :) So thanks for the suggestion.

Since I just picked up the mantle from another modder, I haven't really been through all the code and balanced it yet. This is mostly a proof-of-concept, UNTIL I find some time to completely rework it. After exams in January, I should have some downtime.

Sincerely, Ultroman the Tacoman

EDIT: I've published a new version, in which:
- Self-repairing items regenerate durability/fuel from 0-100% in 10 minutes.
- Healing armors heal the wearer from 0-100% health in 5 minutes.

This should be enough to make a diffference in fights IMO. 10 minutes to regenerate an item fully, which would otherwise have to be grinded for, seems like a good deal to me. All of this will change to a better system, when I re-code everything.
Last edited by Ultroman the Tacoman; 28 Dec, 2018 @ 8:54pm
BakaSchwarz 5 Jan, 2019 @ 11:33am 
Hey, it's me again :)
I just found out that the morning star can get the self-repairing modfier, but it does not work on it at all. Thats because you didn't check for the fueled component in the rpgweapon component.

Adding an elseif block like this

elseif inst.components.fueled then inst:DoPeriodicTask(600 / inst.components.fueled.maxfuel, function() inst.components.fueled:DoDelta(1) end) end

fixes the issue. You cannot include the "USAGE" check here, because the morning star doesn't have the fueltype "USAGE".

I hope you had a great new year :vanilla:
Last edited by BakaSchwarz; 5 Jan, 2019 @ 11:33am
Ultroman the Tacoman  [developer] 6 Jan, 2019 @ 2:09am 
@BakaSchwarz: Thank you! Done! I did have a great new year. Hope you did, too :)
< >
Showing 1-6 of 6 comments
Per page: 1530 50