Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------
- --| WaitForChild |--
- --------------------
- -- Waits for parent.child to exist, then returns it
- local function WaitForChild(parent, childName)
- assert(parent, "ERROR: WaitForChild: parent is nil")
- while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
- return parent[childName]
- end
- -----------------
- --| Variables |--
- -----------------
- local GamePassService = Game:GetService('GamePassService')
- local PlayersService = Game:GetService('Players')
- local DebrisService = Game:GetService('Debris')
- local Teleporter = script.Parent
- local GamePassIdObject = WaitForChild(script, 'GamePassId')
- local ExitLocationObject = WaitForChild(script, 'ExitLocation')
- local JustTouched = {}
- -----------------
- --| Functions |--
- -----------------
- -- When a player with the game pass touches the door, teleport them to the other side
- local function OnTouched(otherPart)
- if otherPart and otherPart.Parent and otherPart.Parent:FindFirstChild('Humanoid') then
- local player = PlayersService:GetPlayerFromCharacter(otherPart.Parent)
- if player and not JustTouched[player] then
- JustTouched[player] = time()
- if GamePassService:PlayerHasPass(player, GamePassIdObject.Value) then
- local character = player.Character
- if not character:FindFirstChild('JustTeleported') then
- local justTeleported = Instance.new('StringValue')
- justTeleported.Name = 'JustTeleported'
- DebrisService:AddItem(justTeleported, 0.3)
- justTeleported.Parent = character
- character:MoveTo(ExitLocationObject.Value)
- end
- end
- end
- end
- end
- -- Removes old entries in JustTouched
- local function RemoveOldTouches()
- for player, touchTime in pairs(JustTouched) do
- if time() > touchTime + 0.3 then
- JustTouched[player] = nil
- end
- end
- end
- --------------------
- --| Script Logic |--
- --------------------
- Teleporter.Touched:connect(OnTouched)
- while true do
- RemoveOldTouches()
- wait(1/30)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement