Whenever I increase max health in studio when a stat is changed, the health regens to the max health. However, in the actual game, the health only regens up to 100 regardless of how much the max health is. Here is the script:
player = game.Players.LocalPlayer local Str = player.Stats.Strength.Value local Agi = player.Stats.Agility.Value local Int = player.Stats.Intelligence.Value local Def = player.Stats.Defense.Value local Vit = player.Stats.Vitality.Value local Dex = player.Stats.Dexterity.Value local Damage = 0 local Speed = 0 local Critical = 0 local CriticalDamage = 0 local weapon function damage() for j,k in pairs(player.Equip:GetChildren()) do if k.itemType.Value == "Weapon" then Damage = k.itemDamage.Value Speed = k.itemSpeed.Value Critical = k.itemCritical.Value CriticalDamage = k.itemCritDamage.Value weapon = k script.Parent.Parent.Information.ATKDMG.Text = "ATKDMG: " .. tostring(Damage) script.Parent.Parent.Information.CRITCHANCE.Text = "Critical %: " .. tostring(Critical) .. "%" script.Parent.Parent.Information.CRITDMG.Text = "Critical DMG: " .. tostring(CriticalDamage) end end end function removeDamage() if weapon == nil then Damage = 0 Speed = 0 Critical = 0 CriticalDamage = 0 script.Parent.Parent.Information.ATKDMG.Text = "ATKDMG: " .. tostring(Damage) end end function onstatChange(x) wait(0.03) --Health-- if x == "Strength" then player.Character.Humanoid.MaxHealth = player.Character.Humanoid.MaxHealth+2 player.Character.Humanoid.Health = player.Character.Humanoid.Health + 4 script.Parent.Parent.Information.HP.Text = "HP: " .. tostring(player.Character.Humanoid.MaxHealth) script.Parent.Parent.Information.ATKDMG.Text = "ATKDMG: " .. tostring(Damage) end print("Lmao") if x == "Agility" then script.Parent.Parent.Information.ATKSpeed.Text = "ATKSpeed: " .. tostring(Speed) end if x == "Intelligence" then script.Parent.Parent.Information.MP.Text = "MP: " .. tostring((player.Stats.Intelligence.Value*4)+100) end if x == "Defense" then script.Parent.Parent.Information.damageResistance.Text = "DMG Resist%: " .. tostring(player.Stats.Defense.Value/5) .. "%" end if x == "Vitality" then player.Character.Humanoid.MaxHealth = player.Character.Humanoid.MaxHealth+4 player.Character.Humanoid.Health = player.Character.Humanoid.Health + 4 wait(0.1) script.Parent.Parent.Information.HP.Text = "HP: " .. tostring(player.Character.Humanoid.MaxHealth) script.Parent.Parent.Information.Stamina.Text = "Stamina: " .. tostring(player.PlayerGui.mainUI.statHolder.staminaHolder.staminaBar.MaxStamina.Value) end if x == "Dexterity" then script.Parent.Parent.Information.CRITCHANCE.Text = "Critical %: " .. tostring(Critical) .. "%" script.Parent.Parent.Information.CRITDMG.Text = "Critical DMG: " .. tostring(CriticalDamage) end end function addChar() wait(0.1) player.Character.Humanoid.MaxHealth = player.Character.Humanoid.MaxHealth+(2*Str)+(4*Vit) player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth script.Parent.Parent.Information.HP.Text = "HP: " .. tostring(player.Character.Humanoid.MaxHealth) script.Parent.Parent.Information.MP.Text = "MP: " .. tostring((player.Stats.Intelligence.Value*4)+100) script.Parent.Parent.Information.ATKSpeed.Text = "ATKSpeed: " .. tostring(Speed) script.Parent.Parent.Information.ATKDMG.Text = "ATKDMG: " .. tostring(Damage) script.Parent.Parent.Information.Stamina.Text = "Stamina: " .. tostring(player.PlayerGui.mainUI.statHolder.staminaHolder.staminaBar.MaxStamina.Value) script.Parent.Parent.Information.CRITCHANCE.Text = "Critical %: " .. tostring(Critical) .. "%" script.Parent.Parent.Information.CRITDMG.Text = "Critical DMG: " .. tostring(CriticalDamage) end player.CharacterAdded:Connect(addChar) player.Equip.ChildAdded:Connect(damage) player.Equip.ChildRemoved:Connect(removeDamage) player.Stats.Strength.Changed:Connect(function() onstatChange("Strength") end) player.Stats.Agility.Changed:Connect(function() onstatChange("Agility") end) player.Stats.Intelligence.Changed:Connect(function() onstatChange("Intelligence") end) player.Stats.Defense.Changed:Connect(function() onstatChange("Defense") end) player.Stats.Vitality.Changed:Connect(function() onstatChange("Vitality") end) player.Stats.Dexterity.Changed:Connect(function() onstatChange("Dexterity") end)
So I tried this in my local script
if x == "Strength" then game.ReplicatedStorage.AddHealth:FireServer() script.Parent.Parent.Information.HP.Text = "HP: " .. tostring(player.Character.Humanoid.MaxHealth) script.Parent.Parent.Information.ATKDMG.Text = "ATKDMG: " .. tostring(Damage) end
and in my server script in workspace
game.ReplicatedStorage.AddHealth.OnServerEvent:connect(function(player) player.Character.Humanoid.MaxHealth = player.Character.Humanoid.MaxHealth+2 end)
it says AddHealth is not a valid member
If you're using FilteringEnabled, you'll need to do that in a Script instead of a LocalScript.
--You cant use game.Players.LocalPlayer --In a script you can only use it in a local script