Morning dev forum peeps, this question is very muich similar to my post yesterday which was:
And yes my question was answered but it seems like my value data is still saving when i press the gui button and get kicked and i have no idea why.
Heres what my script looks like currently, (take note of the section where its supposed to remove async)
--//Services
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
--//Variables
local ds = DataStoreService:GetDataStore("theboy1234")
local ResetData = ReplicatedStorage.ResetData
--//Tables
local questions = {
"Where are we?",
"Why am i here?",
"something even sillier",
"ghost",
"Tool",
"Tool2"
}
local actions = {
"pressed prompt",
"pressed prompt2",
"pressed button",
"has tool",
"has badge",
"has tool2",
"got the time!"
}
local pressedstuff = {
"pressed this"
}
--//Functions
local function SaveData(player, data)
local success, errorMessage = pcall(function()
ds:SetAsync(player.UserId, data)
end)
if not success then
warn(errorMessage)
end
end
local function OnPlayerRemoving(player)
local datasave = {}
for n, v in player.Booleans:GetChildren() do
table.insert(datasave, {name = v.Name, Booleans = {}})
for i, v in v:GetChildren() do
table.insert(datasave[n].Booleans, {name = v.Name, value = v.Value})
end
end
SaveData(player, datasave)
print(datasave)
end
ResetData.OnServerEvent:Connect(function(player)
player:Kick("Your data has been reset.")
ds:RemoveAsync(player.UserId)
end)
Players.PlayerAdded:Connect(function(Player)
local booleans = Instance.new('Folder')
booleans.Name = 'Booleans'
booleans.Parent = Player
local Answered = Instance.new("Folder")
Answered.Name = "Answered"
Answered.Parent = booleans
local Actions = Instance.new("Folder")
Actions.Name = "Actions"
Actions.Parent = booleans
local PressedStuffs = Instance.new("Folder")
PressedStuffs.Name = "PressedStuffs"
PressedStuffs.Parent = booleans
for i, PresseStuff in pressedstuff do
local booleanvalue = Instance.new("BoolValue")
booleanvalue.Name = PresseStuff
booleanvalue.Parent = PressedStuffs
end
for i, Action in actions do
local booleanvalue = Instance.new("BoolValue")
booleanvalue.Name = Action
booleanvalue.Parent = Actions
end
for i, Question in questions do
local booleanvalue = Instance.new("BoolValue")
booleanvalue.Name = Question
booleanvalue.Parent = Answered
end
local success, dataofuser = pcall(function()
return ds:GetAsync(Player.UserId)
end)
if dataofuser then -- anything but nil
print(dataofuser)
for i, k in dataofuser do
for i, v in k.Booleans do
booleans[k.name][v.name].Value = v.value
end
end
else
print(success, dataofuser)
end
end)
Players.PlayerRemoving:Connect(OnPlayerRemoving)
game:BindToClose(function()
for i, player in Players:GetPlayers() do
OnPlayerRemoving(player)
end
end)
So yea thas pr much it, i dont have anything to build off of because theres nothin in output and it isnt putting me into debug mode so im in the dark. Help would be appreciated and thanks in advanced