door = script.Parent;
locked = true
function setform(v)
locked = v
if v then
door.Transparency = 0
door.Reflectance = 0.4
door.CanCollide = true
else
door.Transparency = 0.7
door.Reflectance = 0
door.CanCollide = false
end
end
function click()
if locked then
setform(false)
wait(5)
setform(true)
end
end
door.ClickDetector.MouseClick:connect(click)
How would I make it so that only a specific person can open this door?
1 answer
GENERAL ISSUES
Please indent your code so it is easier to understand / find issues
You can place the function connection with its definition for the ClickDetector
connect is deprecated in favor of Connect
REVISIONS
local door = script.Parent
local locked = true
local function setform(v)
locked = v
if v == false then
door.Transparency = 0
door.Reflectance = 0.4
door.CanCollide = true
else
door.Transparency = 0.7
door.Reflectance = 0
door.CanCollide = false
end
end
door.ClickDetector.MouseClick:Connect(function(player)
if locked then
setform(false)
wait(5)
setform(true)
end
end)
If you want the script to only appear to open to a single player, you will need to place the above code into a LocalScript since with FilteringEnabled, changes on the Client will not replicate to the Server.
If you only want a certain player (by team or name) to enter the door, you will need to add an additional clause where "if v then" is:
local door = script.Parent
local locked = true
local function setform(v, player)
locked = v
if v == false and player.Name == "UserNameHere" then
door.Transparency = 0
door.Reflectance = 0.4
door.CanCollide = true
else
door.Transparency = 0.7
door.Reflectance = 0
door.CanCollide = false
end
end
door.ClickDetector.MouseClick:Connect(function(player)
if locked then
setform(false, player)
wait(5)
setform(true, player)
end
end)
The above example depicts the door only being opened by a person with the username "UserNameHere" while "v" is false.
EDIT: Forgot the last parentheses, but going back over this, you dont even need the first local function, here is a revision:
local door = script.Parent
local locked = true
door.ClickDetector.MouseClick:Connect(function(player)
if locked == false then return end
locked = false
if player.Name == "GarrettlovesGTA" then
door.Transparency = 0.7
door.Reflectance = 0
door.CanCollide = false
wait(5)
door.Transparency = 0
door.Reflectance = 0.4
door.CanCollide = true
end
locked = true
end)
This discussion is preserved as it was. New answers, comments, and votes are closed.

1 comment
It does not work.