i want to make a gui that you click and it makes you teleport into a battle area, i also want it so that when you die you teleport to the same area as you started before you battled. i have multiple sections to the training ground and i need it to teleport you to the same section as you were before you died
Main Idea
What you want to do is make a gui to teleport a player to a position if they click it, and if they die, they teleport back to the lobby.
Getting Started
Checkpoint Script
, this is what we will be doing first. We want to make it so if you step on a certain brick, or touch a certain brick you will save that as your spawn position.
Make a brick
and put a script
inside of it. The script should look something like this:
local spawn = script.Parent spawn.Touched:connect(function(hit) if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then local player = game.Players:GetPlayerFromCharacter(hit.Parent) local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData") if not checkpointData then checkpointData = Instance.new("Model", game.ServerStorage) checkpointData.Name = "CheckpointData" end local checkpoint = checkpointData:FindFirstChild(tostring(player.userId)) if not checkpoint then checkpoint = Instance.new("ObjectValue", checkpointData) checkpoint.Name = tostring(player.userId) player.CharacterAdded:connect(function(character) wait() character:WaitForChild("HumanoidRootPart").CFrame = game.ServerStorage.CheckpointData[tostring(player.userId)].Value.CFrame + Vector3.new(0, 4, 0) end) end checkpoint.Value = spawn end end)
Now you have the check point system down, you want to teleport people if they click a button.
We will need to use a LocalScript
inside of your TextButton
We will be learning about CFrames
and Vector3
today. CFrames and vector3 can work togethor to change the position of the person. If you wanted to change the position of a brick, the CFrame wouldnt be neccecary. But if you did this to a person:
game.Workspace.Player.Torso.Position = Vector3.new(0, 50, 0)
The torso would be away from the body, therefore killing the player, Think about it, who can survive without a chest?
so we will be using the CFrame function with the Vector3:
game.Workspace.Player.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(0, 50, 0))
but this wont work either. We need to move the player not a random person so we will be using LocalPlayer
so we will make a function, lets begin.
This script goes inside the local script that is in the Text Button as Stated earlier.
function onClicked game.Players.LocalPlayer.HumanoidRootPart.CFrame = CFrame.new(Vector3.new("cords you want to teleport to")) end script.Parent.MouseButton1Click:Connect(onClicked)