CustomStore = game:GetService("DataStoreService"):GetDataStore("DataStore")
function PlayerEntered(player)
local helm = Instance.new("StringValue")
helm.Parent = group
helm.Name = "Helm"
------------------------------------------------
if CustomStore:GetAsync("Helm_"..player.Name) ~= nil then
helm.Value = CustomStore:GetAsync("Helm_"..player.Name)
else
helm.Value = "Really red"
end
helm.Changed:connect(function(Val)
CustomStore:SetAsync("Helm_"..player.Name, Val)
end)
------------------------------------------------
end
game.Players.PlayerAdded:connect(PlayerEntered)
This is my script. For some reason, it creates the string value, says "Oh. it's got a value already" (changed from "Really red" to "Really blue"), But won't save NEW changes?
anyone got any ideas?

6 comments
Should user player.UserId instead of player.Name because name can change but UserId can't
okay, but will that change the fact that new values dont save?
Sorry, that sounded rude. Thank you for your advice, i'm pretty sure that'd REALLY screw over some save files. so thanks!
I don't see anything wrong with the script that would cause it to not save
hmm. maybe it's the changing of it?
Did you try confirming that it's running helm.Changed with a print inside of it?