Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

This is my first time using data stores an i need a bit of help?

Every time I try to save the data it says the error message and UserId is not a valid member of RBLXScriptSignal and when I try to save it when leaving it says ServerScriptService.Data Stores:28: attempt to index number with 'Value'

player = game.Players.PlayerAdded
local DataStoreService = game:GetService("DataStoreService")

local GravelColor = DataStoreService:GetDataStore("GravelColor")

local ColorOfG = game.ReplicatedStorage.Color

game.Players.PlayerAdded:Connect(function(player)
	
	local data
	local success, errorMesage = pcall(function()
		data = GravelColor:GetAsync(player.UserId.."-color")
	end)
	
	if success then
		GravelColor = data
		ColorOfG = GravelColor
	else
		print("There was an error when getting your Data")
		warn(errorMesage)
	end
	
end)

game.Players.PlayerRemoving:Connect(function(player)
	
	local success, errorMesage = pcall(function()
		GravelColor:SetAsync(player.UserId.."-color", ColorOfG.Value)
	end)
	
	if success then
		print("Player Data Succesfully Saved")
	else
		print("There was an error when saving Data")
		warn(errorMesage)
	end
end)

while true do
	wait(20)
	local success, errorMesage = pcall(function()
		GravelColor:SetAsync(player.UserId.."-color", ColorOfG.Value)
	end)

	if success then
		print("Player Data Succesfully Saved")
	else
		print("There was an error when saving Data")
		warn(errorMesage)
	end
end

Sorry if this is really obvious or something this is my first time using data stores

1 answer

ColorOFG is a number because you set it to a datastore in line 17

ColorOFG = GravelColor

GravelColor is the same thing as GravelColor:GetAsync(player.UserId .. "-color") or the same thing as player.UserId so it's a number instead of the instance in ReplicatedStorage. To fix it, do this on the playerremoving event:

game.Players.PlayerRemoving:Connect(function(player)
	ColorOFG = game.ReplicatedStorage.Color
	-- code to save here
end

You can accept my answer if it works!

This discussion is preserved as it was. New answers, comments, and votes are closed.