Problem with teleporters

so i have these telporters in my game and they teleport you to a level i want it so when you touch them a loading ui will apear which i have made im just not sure how to make it fade out but i want it that the ui apears then after 2 seconds the player gets teleported and then the ui fades out so you cant see yourself getting teleported then a cutscene plays but the problem is that theres 2 teleporters that both teleport you back and forth between levels so when you teleport it just teleports you back how would i stop this from happening such as a debounce or something

i was also thinking of just adding 1 portal and a pause menu to leave the level

-- local Teleport = "CutsceneTouch2"
function Touch (hit) 
	wait(2)
	if script.Parent.Locked == false and script.Parent.Parent : FindFirstChild(Teleport).Locked == false then script.Parent.Locked = true script.Parent.Parent:FindFirstChild(Teleport).Locked=true
		local Pos = script.Parent.Parent:FindFirstChild(Teleport)
	hit.parent:moveTo(Pos.Position) wait(1)script.Parent.Locked = false script.Parent.Parent:FindFirstChild(Teleport).Locked = false
	    end
	       end
	script.Parent.Touched:connect(Touch)

What you could do is use shared, which is a table that can be accessible from any script. All you need to do to create an element inside the table is say

shared.ElementNameHere = "Name"

In this case, you can just make a new element inside the table, call it debounce, and set it to true when the player steps onto the first teleporter. There should be a delay of a few seconds before the script changes the debounce back to false. Then, if the player steps onto the second teleporter, it will access the debounce from shared, check if it is false, and if so, it will teleport the player.

You can read about shared here:
https://developer.roblox.com/en-us/api-reference/lua-docs/Roblox-Globals

Also, your script has a few errors, like

local Pos = script.Parent.Parent:FindFirstChild(Teleport) -- add quotation marks between the word "Teleport"
hit.parent:moveTo(Pos.Position) -- use MoveTo() instead of moveTo()
script.Parent.Touched:connect(Touch) -- capitalize Connect