So I have a script in the StarterPlayerScripts, and it basically finds some values and sets the JumpPower and Health to that:
local p = game.Players.LocalPlayer print(p,'found') local hs = p:WaitForChild("Stats").HealthStat.Value local js = p:WaitForChild("Stats").JumpStat.Value print('values found') p.CharacterAdded:connect(function(c) print('character found') local hu = c:WaitForChild("Humanoid") print('humanoid found') hu.MaxHealth = hs + 100 hu.Health = hu.MaxHealth print('health set') hu.JumpPower = (js/10) + 50 print('jump set') end)
So, in game it does print 'jump set' and 'health set' but when I check the values, they remain the same.
Would I have to use a script in StarterCharacter and use RemoteEvents? If so could you provide me with the changes I would have to make.
Thank you.
Assuming you're using filtering enabled, they're staying the same because they're only changing locally. To change the values "officially", you have to do it from a serverscript.
OR
Make a script in "StarterCharacterScripts" (Serverside of course), and then edit the humanoid values. Though, in order to get the humanoid, you have to do this line of code first:
local humanoid = script.Parent:WaitForChild("Humanoid")
This is because everytime a player's character is loaded, this script will be parented to that player's character. :WaitForChild("Humanoid") is optional, but recommended, since the humanoid could have a chance of loading late, thus making the script think of it as "nil", causing an error.
You should put this script into PlayerStarterCharacter as it's modifying Humanoid properties