I'm trying to make a sprint system that adjusts the max stamina based on a player value, game.workspace.Players.LocalPlayer.Data.MaxStamina.Value, but it says, "attempt to index number with "Data" which from my understanding (not much) means it's trying to access "Data" yet can't, but data is a part of the LocalPlayer, and the exact same line was used earlier and worked. How can I access the value of the MaxStamina?
local replicatedStorage = game:GetService("ReplicatedStorage") local players = game:GetService("Players") local runservice = game:GetService("RunService") local player = game.Players.LocalPlayer local staminaRegen = 2 local sprintModifier = 3 -- how much the players walk speed is amplified by sprinting local sprintStaminaCost=1 --how much stamina player uses per frame of sprinting local sprintingPlayers = {} players.PlayerAdded:Connect(function(player) wait(.01) local maxStamina= player.Data.MaxStamina.Value--this works, print(maxStamina) local stamina = Instance.new("IntValue",player.Data) stamina.Name = "Stamina" stamina.Value = maxStamina stamina.Changed:Connect(function(property) replicatedStorage.Remote.StaminaUpdate:FireClient(player,stamina.Value,maxStamina) end) end) --sprint key is pressed/released replicatedStorage.Remote.Sprint.OnServerEvent:Connect(function(player, state) local humanoid = player.Character.Humanoid if state == "Began" then--and humanoid:GetState() == Enum.HumanoidStateType.RunningNoPhysics and humanoid.MoveDirection.Magnitude >0 then, this part was part of a guide i followed, but prevented from working, and when removed didnt notice any error related to current issue sprintingPlayers[player.Name] = humanoid.WalkSpeed humanoid.WalkSpeed = humanoid.WalkSpeed * sprintModifier elseif state== "Ended"and sprintingPlayers[player.Name] then humanoid.WalkSpeed = sprintingPlayers[player.Name] sprintingPlayers[player.Name]= nil end end) --adjust stamina for each player every frame runservice.Heartbeat:Connect(function()--do I have to pass in player, maxStamina or someother value as a param? wait(0.1) local maxStamina = game.Players.LocalPlayer.Data.MaxStamina.Value--this doesn't print(maxStamina,"\n",maxStamina.Value) for index, player in pairs(players:GetChildren()) do local stamina= player.Stamina.Value local name = player.Name local maxStamina = player.MaxStamina.Value if not sprintingPlayers[name] then if stamina.Value > maxStamina then stamina.Value = maxStamina elseif stamina.Value < maxStamina then stamina.Value = stamina.Value + staminaRegen end else if stamina.Value >= sprintStaminaCost then stamina.Value= stamina.Value-sprintStaminaCost else player.Character.Humanoid.WalkSpeed = sprintingPlayers[name] sprintingPlayers[name]=nil end end end end)
here is a screenshot of the location of "Data" https://imgur.com/a/O1I1qRr and the code above is located in ServerScriptService
I've tried to fix this with my very limited knowledge for a couple of hours, so please someone explain how.