Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

Can someone help me with a script that closes all doors in a room when a toggle is enabled?

Asked by 3 years ago

I have made an SCP game and I have a problem with a toggle button script this script used to work but is now broken for some reason and I am not sure if it has been broken or if roblox has changed the way scripts work and that script is no longer compatible. The script is supposed to get the rank of a player attempting to press the toggle and if their rank is above a certain rank it works if they are not it doesn't then all the doors in a certain room close.

Script:

local ReplicatedStorage = game:GetService('ReplicatedStorage')
local PlayerService = game:GetService('Players')
local Workspace = game:GetService('Workspace')
local TweenService = game:GetService('TweenService')

local DOOR_ROOT = Workspace:WaitForChild('Systems'):WaitForChild('Celldoors'):WaitForChild('Doors')

local NetworkEvents = ReplicatedStorage:WaitForChild("NewEvents")
local DoorRemote = NetworkEvents:WaitForChild('DoorReplicate')

local Permissions = {}

function HasPermissionToUse(Player)
    if Permissions[Player] == nil then
        Permissions[Player] = Player:GetRankInGroup(2874380) >= 200 or Player:GetRankInGroup(3857842) >= 20 or Player:IsInGroup(3857842) or Player:IsInGroup(3857860)
    end
    return Permissions[Player]
end

DoorRemote.OnServerEvent:Connect(function(Player, Type, Door, Switch)
    if not HasPermissionToUse(Player) then return end

    if Type == "ToggleDoor" then
        if Door and DOOR_ROOT:FindFirstChild(Door) then
            DOOR_ROOT:FindFirstChild(Door).Status.Value = Switch and Switch or false
            DOOR_ROOT:FindFirstChild(Door).Barrier.CanCollide = not DOOR_ROOT:FindFirstChild(Door).Status.Value
        end
    elseif Type == "ToggleAll" then
        DOOR_ROOT.Parent.AllStatus.Value = not DOOR_ROOT.Parent.AllStatus.Value
        for _,DoorModel in pairs(DOOR_ROOT:GetChildren()) do
            DoorModel.Status.Value = DOOR_ROOT.Parent.AllStatus.Value
            DoorModel.Barrier.CanCollide = not DoorModel.Status.Value
        end
    elseif Type == "ToggleRiot" then
        DOOR_ROOT.Parent.RiotAlarm.Value = not DOOR_ROOT.Parent.RiotAlarm.Value
        if DOOR_ROOT.Parent.RiotAlarm.Value then
            --Master Event Announcement
        end
    end
end)

Answer this question