Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Parts of script is only working for certain players only?

Asked by 4 years ago
Edited 4 years ago

Any help would be very appreciated

BackStory

Im trying to create a sprinting script. Which when pressed ctrl will change the players walking anim from a walking to a running aswell as increase its StamMin and StamMax values. StamMin and StamMin are sorta like the Humanoid.Health and Humanoid.MaxHealth of the stamina. StamMin and StamMax are int-values. and its value changes based on the number of another invalue called Stamina. StamMax,StamMin and Stamina all work together to tell the player how much stamina they have left to run(You proabably know how a stamina bar works). This is all displayed on a [bar.](Top one is Stamina)(https://gyazo.com/8c1f7962ed74dfb13ffdf9d77c0a156e) that tells the StamMin over the StamMax.

Problem

So here is my problem. Pretend there is Player1 and Player2 in one server. For some reason Player1 StamMin Max value would be set to whatever Player2's StamMax is. It's confusing but i've done test about 100 times and thats what i could figure out.

Attempts

I haven't figured out a set reason why this is happening meaning that i couldn't establish a good attempt. I've tried attempts but they are more guesses that attempts.

Server Script

--Strength DataStore
local DataStoreService = game:GetService("DataStoreService")
 StrengthD = DataStoreService:GetDataStore("PlayerStrength3")
--Armour DataStore
local DataStoreService = game:GetService("DataStoreService")
ArmourD = DataStoreService:GetDataStore("PlaryerArmour2")
--Regen DataStore
local DataStoreService = game:GetService("DataStoreService")
RegenD = DataStoreService:GetDataStore("PlaryerRegen2")
--RegenF
local DataStoreService = game:GetService("DataStoreService")
RegenFD = DataStoreService:GetDataStore("PlaryerRegen2")
--Agility DataStore
local DataStoreService = game:GetService("DataStoreService")
AgilityD = DataStoreService:GetDataStore("PlaryerAgility2")
--Stamina DataStore
local DataStoreService = game:GetService("DataStoreService")
StaminaD = DataStoreService:GetDataStore("PlaryerStamina2")
--StamMin DataStore
local DataStoreService = game:GetService("DataStoreService")
StamMinD = DataStoreService:GetDataStore("PlaryerStamMin2")
--StamMax DataStore
local DataStoreService = game:GetService("DataStoreService")
StamMaxD = DataStoreService:GetDataStore("PlaryerStamMax2")
--Rank DataStore
local DataStoreService = game:GetService("DataStoreService")
RankD = DataStoreService:GetDataStore("PlayerRanks3")
--DiceDR DataStore
local DataStoreService = game:GetService("DataStoreService")
DiceDRD = DataStoreService:GetDataStore("PlaryerDice2")




game.Players.PlayerAdded:Connect(function(Player)
    local char = Player.Character or Player.CharacterAdded:Wait()
    local Stats = Instance.new("Folder")
    Stats.Parent = Player
    Stats.Name = "Stats"
    --Strength--
    local Strength = Instance.new("IntValue",Stats)
    Strength.Name = "Strength"
    --Armour--
    local Armour = Instance.new("IntValue",Stats)
    Armour.Name = "Armour"
    --Regen--
    local Regen = Instance.new("IntValue",Stats)
    Regen.Name = "Regen"
     RegenF = Instance.new("IntValue",Player)
    RegenF.Name = "RegenF"
    RegenF.Value = Regen.Value/20
    --Agility--
    local Agility = Instance.new("IntValue",Stats)
    Agility.Name = "Agility"
    --Stamina--
    local Stamina = Instance.new("IntValue",Stats)
    Stamina.Name = "Stamina"
    local StamMin = Instance.new("IntValue",Stamina)
    StamMin.Name = "StamMin"
    StamMin.Value = Stamina.Value * 15 + 100
    local StamMax = Instance.new("IntValue",Stamina)
    StamMax.Name = "StamMax"
    StamMax.Value = Stamina.Value * 15 + 100
    --Rank--
    local Rank = Instance.new("IntValue",Stats)
    Rank.Name = "Rank"
    --DiceDR--
    local DiceDR = Instance.new("IntValue",Stats)
    DiceDR.Name = "DiceD-Rank"
    --GetAsync's--
    Strength.Value = StrengthD:GetAsync(Player.UserId) or 1
    Armour.Value = ArmourD:GetAsync(Player.UserId) or 0
    Regen.Value = RegenD:GetAsync(Player.UserId) or 1 
    Agility.Value = AgilityD:GetAsync(Player.UserId) or 1
    Stamina.Value = StaminaD:GetAsync(Player.UserId) or 1
    Rank.Value = RankD:GetAsync(Player.UserId) or 1
    DiceDR.Value = DiceDRD:GetAsync(Player.UserId) or 0
    StamMin.Value = StamMinD:GetAsync(Player.UserId) or 100
    StamMax.Value = StamMaxD:GetAsync(Player.UserId)
    RegenF.Value = RegenFD:GetAsync(Player.UserId)
    --Give Maxes--
   Strength.Changed:Connect(function() StrengthChange(Player,Strength) end) 
    function StrengthChange(Player,Strength)
     if Strength.Value > 200 then
        Strength.Value = 200
    end
    end
    Regen.Changed:Connect(function() RegenChange(Player,Regen,RegenF) end) 
    function RegenChange(Player,Regen,RegenF)
    RegenF.Value = Regen.Value/20
     if Regen.Value > 70 then
        Regen.Value = 70
    end
    end
    Agility.Changed:Connect(function() AgilityChange(Player,Agility) end) 
    function AgilityChange(Player,Agility)
     if Agility.Value > 70 then
        Agility.Value = 70
    end
    end
    DiceDR.Changed:Connect(function() DiceDRChange(Player,DiceDR) end) 
    function DiceDRChange(Player,DiceDR)
     if DiceDR.Value <= 0 then
        DiceDR.Value = 0
    end
    end
        Stamina.Changed:Connect(function() StaminaChange(Player,Stamina,StamMax) end) 
    function StaminaChange(Player,Stamina,StamMax)
        StamMax.Value = Stamina.Value * 15
        print(StamMax.Value)
     if Stamina.Value > 250 then
        Stamina.Value = 250
    end
    end
    StamMin.Changed:Connect(function() StamMinChange(Player,StamMin,StamMax) end) 
    function StamMinChange(Player,StamMin)
     if StamMin.Value > StamMax.Value then
        StamMin.Value = StamMax.Value
    end
    if StamMin.Value <= 0 then
        StamMin.Value = 0
    end
    end
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Names.Text = Player.Name
if Rank.Value == 1  then
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Rank.Text = "Rank D"
end
if Rank.Value == 2  then
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Rank.Text = "Rank C"
end 
if Rank.Value == 3  then
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Rank.Text = "Rank B"
end
if Rank.Value == 4  then
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Rank.Text = "Rank A"
end    
if Rank.Value == 5  then
    Player.PlayerGui.GuiStastictics.HealthBarLocater.Rank.Text = "Rank S"
end
if Rank.Value == 1  then
    Player.Character.Head.PlayerBill.Frame.PlayerRank.Text = "Rank D"
end
if Rank.Value == 2  then
    Player.Character.Head.PlayerBill.Frame.PlayerRank.Text = "Rank C"
end 
if Rank.Value == 3  then
    Player.Character.Head.PlayerBill.Frame.PlayerRank.Text = "Rank B"
end
if Rank.Value == 4  then
    Player.Character.Head.PlayerBill.Frame.PlayerRank.Text = "Rank A"
end    
if Rank.Value == 5  then
    Player.Character.Head.PlayerBill.Frame.PlayerRank.Text = "Rank S"
end
Player.Character.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end)




game.Players.PlayerRemoving:Connect(function(Player)
    StrengthD:SetAsync(Player.UserId, Player.Stats.Strength.Value)
    ArmourD:SetAsync(Player.UserId, Player.Stats.Armour.Value)
    RegenD:SetAsync(Player.UserId, Player.Stats.Regen.Value)
    AgilityD:SetAsync(Player.UserId, Player.Stats.Agility.Value)
    StaminaD:SetAsync(Player.UserId, Player.Stats.Stamina.Value)
    RankD:SetAsync(Player.UserId, Player.Stats.Rank.Value)
    DiceDRD:SetAsync(Player.UserId, Player.Stats["DiceD-Rank"].Value)
    StamMinD:SetAsync(Player.UserId, Player.Stats.Stamina.StamMin.Value)
    StamMaxD:SetAsync(Player.UserId, Player.Stats.Stamina.StamMax.Value)
end)




There are more scripts to this but i think this is where all the problems are happpening. If you need the whole thing please do so tell me.

Regards, Bl_ueHistory

0
the absolute worst way to save data. greatneil80 2647 — 4y
1
You can literally just make 1 datastore and put a table of data in it containing all your values, then you won't need this absolute mess User#834 0 — 4y

Answer this question