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

How do i fix the door script in my game? (Script Question)

In my new game i made a script for the doors to new areas, but the script i made doesn't work the way i wanted it will make you buy it again once you re-log! Here is my script can you tell me how to fix it and make it save?

local DSS = game:GetService("DataStoreService")
	local Storage = DSS:GetDataStore("Score")
	 
	local Door = script.Parent
	local debounce = true
	 
	game:GetService("Players").PlayerAdded:Connect(function(player)
	    local bool = Instance.new("BoolValue")
	    bool.Name = "RemoveINH"
	    bool.Value = false
	    bool.Parent = player
	 
	    local success, result = pcall(function()
	        Storage:GetAsync(player.UserId)
	    end)
	 
	    if not success then
	        warn(result)
	    else
	        local LoadValue = Storage:GetAsync(player.UserId)
	        if LoadValue then
	            bool.Value = LoadValue
	            print(bool.Value)
	        end
	    end
	end)
	 
	game:GetService("Players").PlayerRemoving:Connect(function(player)
	    Storage:SetAsync(player.UserId, player:WaitForChild("RemoveINH").Value)
	end)
	 
	Door.Touched:Connect(function(hit)
	    if debounce == false then return end
	    debounce = false
	    print("Door Hit")
	    local human = hit.Parent:FindFirstChild("Humanoid")
	    if human ~= nil then
	        print("Human touched door")
	        local player = game:GetService("Players"):GetPlayerFromCharacter(hit.Parent)
	        if player ~= nil then
	            local sp = player:WaitForChild("leaderstats"):WaitForChild("Money")
	            local check = player:WaitForChild("RemoveINH")
	            if check.Value == false and sp.Value >= 1500 then
	                print("Human passed test")
	                check.Value = true
	                sp.Value = sp.Value - 1500
	                Door.CanCollide = false
	                wait(0.129)
	                Door.CanCollide = true
	            elseif check.Value == true then
	                print("Human already has access")
	                Door.CanCollide = false
	                wait(0.129)
	                Door.CanCollide = true
	            end
	        end
	    end
	    debounce = true
	end)

1 answer

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