Server-Side Script:
local Base = script.Parent
local Reader1 = Base.Reader
local Reader2 = Base.Reader2
local Frame = Base.Frame
local Door = Base.Door1
local ExD = Base.Ex1
local Door2 = Base.Door2
local ExD2 = Base.Ex2
local Bool = Base.Opened
local Prompt = Reader1.P1.ProximityPrompt
local Prompt2 = Reader1.P2.ProximityPrompt
local Prompt1e = Reader2.P1.ProximityPrompt
local Prompt2e = Reader2.P2.ProximityPrompt
local Light = Reader1.Light
local Light1 = Reader2.Light
-- Sound
local Accept = Frame.Accepted
local Denied = Frame.Refused
local OpenS = Frame.Open
-- Clearance
local clearance = {
"[CCI] CID - III",
"[CCI] CID - IV",
"[CCI] CID - V",
"[CCI] Combative Card",
"[GOI] CID - III",
}
local PH = {
"[CCI] CID - 0",
"[CCI] CID - I",
"[CCI] CID - II",
"[GOI] CID - II",
}
-- Tween
local countdown = 3
local TS = game:GetService("TweenService")
local TInfo = TweenInfo.new(countdown)
local Door2Open = {CFrame = ExD2.CFrame}
local Door1Open = {CFrame = ExD.CFrame}
local Door1Close = {CFrame = Door.CFrame}
local Door2Close = {CFrame = Door2.CFrame}
local TOpen1 = TS:Create(Door, TInfo, Door1Open)
local TClose1 = TS:Create(Door, TInfo, Door1Close)
local TOpen2 = TS:Create(Door2, TInfo, Door2Open)
local TClose2 = TS:Create(Door2, TInfo, Door2Close)
-- Functions
local function acceptAccess()
print("Access Permitted")
Bool.Value = true
Prompt.Enabled = false
Prompt2.Enabled = false
Prompt1e.Enabled = false
Prompt2e.Enabled = false
Accept:Play()
Light.BrickColor = BrickColor.new("Lime green")
Light.Material = Enum.Material.Neon
Light1.BrickColor = BrickColor.new("Lime green")
Light1.Material = Enum.Material.Neon
OpenS:Play()
TOpen1:Play()
TOpen2:Play()
wait(countdown)
Bool.Value = false
Prompt.Enabled = true
Prompt2.Enabled = true
Prompt1e.Enabled = true
Prompt2e.Enabled = true
Light.BrickColor = BrickColor.new("White")
Light.Material = Enum.Material.Ice
Light1.BrickColor = BrickColor.new("White")
Light1.Material = Enum.Material.Ice
OpenS:Play()
TClose1:Play()
TClose2:Play()
end
local function refuseAccess()
print("Access Denied")
Bool.Value = true
Prompt.Enabled = false
Prompt2.Enabled = false
Prompt1e.Enabled = false
Prompt2e.Enabled = false
Denied:Play()
Light.BrickColor = BrickColor.new("Really red")
Light1.BrickColor = BrickColor.new("Really red")
wait(1)
Bool.Value = false
Prompt.Enabled = true
Prompt2.Enabled = true
Prompt1e.Enabled = true
Prompt2e.Enabled = true
Light.BrickColor = BrickColor.new("White")
Light1.BrickColor = BrickColor.new("White")
end
local function AcessHandler(player)
if not Bool.Value then
local PermittedIten = false
local DeniedItem = false
for _, item in pairs(player.Backpack:GetDescendants()) do
if table.find(clearance, item.Name) then
PermittedIten = true
elseif table.find(PH, item.Name) then
DeniedItem = true
end
end
if PermittedIten then
acceptAccess()
elseif DeniedItem then
Prompt.Enabled = false
Prompt2.Enabled = false
Prompt1e.Enabled = false
Prompt2e.Enabled = false
refuseAccess()
Prompt.Enabled = true
Prompt2.Enabled = true
Prompt1e.Enabled = true
Prompt2e.Enabled = true
else
Prompt.Enabled = false
Prompt2.Enabled = false
Prompt1e.Enabled = false
Prompt2e.Enabled = false
refuseAccess()
Prompt.Enabled = true
Prompt2.Enabled = true
Prompt1e.Enabled = true
Prompt2e.Enabled = true
end
end
end
-- Script
Prompt.Triggered:Connect(AcessHandler)
Prompt1e.Triggered:Connect(AcessHandler)
I know it’s impossible to detect the character from an server side, but still I need it so I can track the tools inside character as when you put the tool in your hand, it will go to your character. My script only detects the itens if they’re inside backpack but when they picked the tool, it will not detect anymore.
Any way to resolve this situation?