Easy Written By Varis_Marcell

Keycard Door Tutorial Created on: 01-01-2019

How to make a keycard door work.

Tutorial Outline

~Setup --Required to complete for tutorial. (Basic)

 ~Sensor Script --Required to complete for tutorial. (Basic)
 ~KeyCard Giver --Required to complete for extended tutorial. (Extended Edition)
 ~More Information --Required to complete if you want to create multiple different keycards and doors.
 ~Credits

Setup

First, create your door frame however you like. Next, create your door, and name it 'Door'. (Ignore the ' ' when typing the name.) After completing this, create another part which will detect the keycard touching it. Name this part 'Sensor'. For the next step, create a tool object, insert the part you want the keycard to look like, and name the part 'Handle'. Add a Humanoid object to the Handle part and rename it 'Real'. Finally, drag the tool into the StarterPack folder in the Explorer tab. Now you are ready to start coding your door sensor!

Sensor Script

Create a script, and drag it into the sensor part. Then copy this code into your script.

local function OnCardTouch(Hit)
	local Real = Hit:FindFirstChild("Real")
	if Real then
		script.Parent.Parent.Door.Transparency = 0.5
		script.Parent.Parent.Door.CanCollide = false
		wait(2) --This number is how long, in seconds, the door will stay open.
		script.Parent.Parent.Door.Transparency = 0
		script.Parent.Parent.Door.CanCollide = true
	end
end

script.Parent.Touched:connect(OnCardTouch)

Now that you have a door, a keycard, and a sensor, you have completed the basic tutorial. If you would like to make a keycard tool giver, continue reading. Otherwise, if you are fine with everyone getting a keycard, you finished the tutorial!

KeyCard Giver

The KeyCard giver is a part which a player clicks to recieve a KeyCard, similar to the tools you can click to get in Jailbreak or other games. Make a part which the player will click either identical to the KeyCard, or whatever you want the giver to look like. Insert a ClickDetector object into the giver part, then create a script object in the same part. Inside the script, insert the following code for the tool giver to work.

P.S. Make sure to name the KeyCard tool 'KeyCard' and drag it into the lighting folder from the StarterPack folder.

local tool = game.Lighting.KeyCard
script.Parent.ClickDetector.mouseClick:connect(function(plr)
	local klone = tool:Clone()
	klone.Parent = plr.Backpack
end)

More Information

Now that you have created one keycard door and giver, why not make more different keycards that will open different doors! To do this, duplicate the keycard tool, door (everything, the frame, the sensor, and the actual door), and the giver. Next, rename the humanoid in the tool, and change where indicated in the script. For example, you rename the humanoid 'Stuff'. Also, rename the Door part something else, for example, 'Door2'.

P.S. Remember to rename the KeyCard tool something else such as 'KeyCard2'.

local function OnCardTouch(hit)
	local Real = Hit:FindFirstChild("Stuff") --Rename the inside of the parentheses "Stuff".
	if Real then
		script.Parent.Parent.Door2.Transparency = 0.5 --Rename the Parent.Door  Parent.Door2
		script.Parent.Parent.Door2.CanCollide = false
		wait(2) 
		script.Parent.Parent.Door2.Transparency = 0
		script.Parent.Parent.Door2.CanCollide = true
	end
end

script.Parent.Touched:connect(OnCardTouch)

Now, for the other giver, nothing needs to be renamed, only changes to the script need to be made.

local tool = game.Lighting.KeyCard2 --I renamed the KeyCard tool KeyCard2 here.
script.Parent.ClickDetector.mouseClick:connect(function(plr)
	local klone = tool:Clone()
	klone.Parent = plr.Backpack
end)

This process can be repeated multiple times, ensuring that you will never run out

of variations for your KeyCard doors!    

Credits

~Thank you to the creators of this game for providing the platform to create this tutorial.

~My Discord is Varis_Marcell#7616 if something does not work.

Tutorial created by Varis_Marcell on February 5, 2018

Easy Written By Varis_Marcell

See Varis_Marcell's profile on Roblox

Discussion