I ask too many questions. Anyways, I am trying to save a string value in a datastore, output returns the same error: Workspace.Errors:24: bad argument #3 to 'Value' (string expected, got nil)
I have looked at other similar questions on this site however none of the solutions have worked. How can I fix the error?
local DSS = game:GetService("DataStoreService") local datastore = DSS:GetDataStore("GeneralSaveData", "Players") function generateDataKey(player) local ret = "uid_" .. player.userId return ret end function generateDataTable(player) local dataTable = { BusinessName = player.BusinessName.Value } return dataTable end function saveDataForPlayer(player) local key = generateDataKey(player) local data = generateDataTable(player) datastore:SetAsync(key, data) end function inputDataToPlayer(player, data) player.BusinessName.Value = data.BusinessName end function loadDataForPlayer(player) local key = generateDataKey(player) local data = datastore:GetAsync(key) inputDataToPlayer(player, data) end game.Players.PlayerAdded:connect(function(player) local businessName = Instance.new("StringValue") businessName.Name = 'BusinessName' businessName.Parent = player loadDataForPlayer(player) end) game.Players.PlayerRemoving:connect(saveDataForPlayer)
It means data is nil. On line 24, data.BusinessName is nil, think like your a new player, you have no data. So you could:
if data ~= nil then code else datastore:SetAsync(key, defaultdata) end