XYZ Coordinates Teleporter
Key RequiredUniversal

XYZ Coordinates Teleporter

Universal ScriptAntagonistAntagonist 444 views 30 executesUpdated Dec 4, 2025
Unrated
00
Lua Script•477 lines (15818 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera

-- Create the ScreenGui if it doesn't exist
local function createUI()
    -- Check if the GUI already exists
    if player.PlayerGui:FindFirstChild("XYZCopierGui") then return end

    -- Create main UI
    local ScreenGui = Instance.new("ScreenGui")
    ScreenGui.Name = "XYZCopierGui"
    ScreenGui.Parent = player.PlayerGui

    local MainFrame = Instance.new("Frame")
    MainFrame.Name = "MainFrame"
    MainFrame.Size = UDim2.new(0, 250, 0, 180)
    MainFrame.Position = UDim2.new(0.5, -125, 0.5, -90)
    MainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    MainFrame.BorderSizePixel = 0
    MainFrame.Parent = ScreenGui

    -- Add UI corner
    local UICorner = Instance.new("UICorner")
    UICorner.CornerRadius = UDim.new(0, 10)
    UICorner.Parent = MainFrame

    -- Create gradient frame for gold animation
    local GradientFrame = Instance.new("Frame")
    GradientFrame.Name = "GradientFrame"
    GradientFrame.Size = UDim2.new(1, 0, 1, 0)
    GradientFrame.BackgroundTransparency = 0.7
    GradientFrame.BorderSizePixel = 0
    GradientFrame.Parent = MainFrame

    local UIGradient = Instance.new("UIGradient")
    UIGradient.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 215, 0)),
        ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 235, 100)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 215, 0))
    })
    UIGradient.Parent = GradientFrame

    -- Animate gradient
    local function animateGradient()
        local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1)
        local tween = TweenService:Create(UIGradient, tweenInfo, {Rotation = 360})
        tween:Play()
    end
    animateGradient()

    -- Create Title
    local Title = Instance.new("TextLabel")
    Title.Name = "Title"
    Title.Size = UDim2.new(1, 0, 0, 30)
    Title.BackgroundTransparency = 1
    Title.Text = "XYZ Copier & Teleporter"
    Title.TextColor3 = Color3.fromRGB(255, 215, 0)
    Title.TextSize = 18
    Title.Font = Enum.Font.GothamBold
    Title.Parent = MainFrame

    -- Create buttons and input box
    local function createButton(name, text, position)
        local button = Instance.new("TextButton")
        button.Name = name
        button.Size = UDim2.new(0, 100, 0, 30)
        button.Position = position
        button.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
        button.Text = text
        button.TextColor3 = Color3.fromRGB(255, 215, 0)
        button.Font = Enum.Font.GothamSemibold
        button.TextSize = 14
        button.Parent = MainFrame

        local buttonCorner = Instance.new("UICorner")
        buttonCorner.CornerRadius = UDim.new(0, 6)
        buttonCorner.Parent = button

        return button
    end

    local SelectButton = createButton("SelectButton", "Select", UDim2.new(0.1, 0, 0.3, 0))
    local CopyButton = createButton("CopyButton", "Copy", UDim2.new(0.1, 0, 0.5, 0))
    local GotoButton = createButton("GotoButton", "Goto", UDim2.new(0.55, 0, 0.5, 0))

    local InputBox = Instance.new("TextBox")
    InputBox.Name = "InputBox"
    InputBox.Size = UDim2.new(0.8, 0, 0, 30)
    InputBox.Position = UDim2.new(0.1, 0, 0.7, 0)
    InputBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    InputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
    InputBox.PlaceholderText = "Enter XYZ coordinates..."
    InputBox.PlaceholderColor3 = Color3.fromRGB(180, 180, 180)
    InputBox.Font = Enum.Font.Gotham
    InputBox.TextSize = 14
    InputBox.Parent = MainFrame

    local inputBoxCorner = Instance.new("UICorner")
    inputBoxCorner.CornerRadius = UDim.new(0, 6)
    inputBoxCorner.Parent = InputBox

    -- Make frame draggable
    local dragging
    local dragInput
    local dragStart
    local startPos

    local function update(input)
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
            startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end

    MainFrame.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = MainFrame.Position

            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

    MainFrame.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement then
            dragInput = input
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if input == dragInput and dragging then
            update(input)
        end
    end)

    -- Toggle GUI with F key
    local function toggleGui()
        ScreenGui.Enabled = not ScreenGui.Enabled
    end

    UserInputService.InputBegan:Connect(function(input, processed)
        if not processed and input.KeyCode == Enum.KeyCode.F then
            toggleGui()
        end
    end)
end

-- Ensure the UI stays across respawns
createUI()

-- Handle character respawn and ensure the GUI stays enabled
player.CharacterAdded:Connect(function(character)
    -- Ensure the UI is enabled after respawn
    local ScreenGui = player.PlayerGui:FindFirstChild("XYZCopierGui")
    if ScreenGui then
        ScreenGui.Enabled = true
    end
end)

-- Handle character removal (when player dies)
player.CharacterRemoving:Connect(function(character)
    -- Keep the UI from being destroyed when the player dies
    local ScreenGui = player.PlayerGui:FindFirstChild("XYZCopierGui")
    if ScreenGui then
        ScreenGui.Enabled = false  -- Optionally disable UI on death if desired
    end
end)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera

-- Create main UI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "XYZCopierGui"
ScreenGui.Parent = player.PlayerGui
ScreenGui.ResetOnSpawn = false  -- This ensures the GUI persists after death

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 250, 0, 180)
MainFrame.Position = UDim2.new(0.5, -125, 0.5, -90)
MainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui

-- Add UI corner
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 10)
UICorner.Parent = MainFrame

-- Create gradient frame for gold animation
local GradientFrame = Instance.new("Frame")
GradientFrame.Name = "GradientFrame"
GradientFrame.Size = UDim2.new(1, 0, 1, 0)
GradientFrame.BackgroundTransparency = 0.7
GradientFrame.BorderSizePixel = 0
GradientFrame.Parent = MainFrame

local UIGradient = Instance.new("UIGradient")
UIGradient.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 215, 0)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 235, 100)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 215, 0))
})
UIGradient.Parent = GradientFrame

-- Animate gradient
local function animateGradient()
    local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1)
    local tween = TweenService:Create(UIGradient, tweenInfo, {Rotation = 360})
    tween:Play()
end
animateGradient()

-- Create Title
local Title = Instance.new("TextLabel")
Title.Name = "Title"
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundTransparency = 1
Title.Text = "XYZ Copier & Teleporter"
Title.TextColor3 = Color3.fromRGB(255, 215, 0)
Title.TextSize = 18
Title.Font = Enum.Font.GothamBold
Title.Parent = MainFrame

-- Create Credits section
local Credits = Instance.new("TextLabel")
Credits.Name = "Credits"
Credits.Size = UDim2.new(0, 150, 0, 20)
Credits.Position = UDim2.new(-0.6, 0, 0, 0)  -- Positioned to the left of the main frame
Credits.BackgroundTransparency = 1
Credits.Text = "Made By Player T0mato"
Credits.TextColor3 = Color3.fromRGB(0, 255, 0)  -- Green color
Credits.TextSize = 14
Credits.Font = Enum.Font.GothamSemibold
Credits.Parent = MainFrame

-- Create buttons and input box
local function createButton(name, text, position)
    local button = Instance.new("TextButton")
    button.Name = name
    button.Size = UDim2.new(0, 100, 0, 30)
    button.Position = position
    button.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    button.Text = text
    button.TextColor3 = Color3.fromRGB(255, 215, 0)
    button.Font = Enum.Font.GothamSemibold
    button.TextSize = 14
    button.Parent = MainFrame
    
    local buttonCorner = Instance.new("UICorner")
    buttonCorner.CornerRadius = UDim.new(0, 6)
    buttonCorner.Parent = button
    
    return button
end

local SelectButton = createButton("SelectButton", "Select", UDim2.new(0.1, 0, 0.3, 0))
local CopyButton = createButton("CopyButton", "Copy", UDim2.new(0.1, 0, 0.5, 0))
local GotoButton = createButton("GotoButton", "Goto", UDim2.new(0.55, 0, 0.5, 0))

local InputBox = Instance.new("TextBox")
InputBox.Name = "InputBox"
InputBox.Size = UDim2.new(0.8, 0, 0, 30)
InputBox.Position = UDim2.new(0.1, 0, 0.7, 0)
InputBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
InputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
InputBox.PlaceholderText = "Enter XYZ coordinates..."
InputBox.PlaceholderColor3 = Color3.fromRGB(180, 180, 180)
InputBox.Font = Enum.Font.Gotham
InputBox.TextSize = 14
InputBox.Parent = MainFrame

local inputBoxCorner = Instance.new("UICorner")
inputBoxCorner.CornerRadius = UDim.new(0, 6)
inputBoxCorner.Parent = InputBox

-- Make frame draggable
local dragging
local dragInput
local dragStart
local startPos

local function update(input)
    local delta = input.Position - dragStart
    MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
        startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end

MainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

MainFrame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        update(input)
    end
end)

-- Variables for selection and copying
local selectedPart = nil
local copiedPosition = nil
local highlight = nil
local noclipConnection = nil

-- Create highlight
local function createHighlight(part)
    if highlight then highlight:Destroy() end
    highlight = Instance.new("SelectionBox")
    highlight.Name = "SelectionHighlight"
    highlight.Color3 = Color3.fromRGB(255, 215, 0)
    highlight.LineThickness = 0.05
    highlight.Adornee = part
    highlight.Parent = part
end

-- Selection function
SelectButton.MouseButton1Click:Connect(function()
    SelectButton.Text = "Selecting..."
    
    local connection
    connection = mouse.Button1Down:Connect(function()
        local target = mouse.Target
        if target and target:IsA("BasePart") then
            selectedPart = target
            createHighlight(target)
            SelectButton.Text = "Selected!"
            connection:Disconnect()
            wait(1)
            SelectButton.Text = "Select"
        end
    end)
end)

-- Copy function
CopyButton.MouseButton1Click:Connect(function()
    if selectedPart then
        copiedPosition = selectedPart.Position
        InputBox.Text = string.format("%.2f, %.2f, %.2f", 
            copiedPosition.X, copiedPosition.Y, copiedPosition.Z)
        CopyButton.Text = "Copied!"
        wait(6)
        CopyButton.Text = "Copy"
    end
end)

-- Noclip function
local function enableNoclip()
    if noclipConnection then return end
    noclipConnection = RunService.Stepped:Connect(function()
        if player.Character then
            for _, part in pairs(player.Character:GetDescendants()) do
                if part:IsA("BasePart") then
                    part.CanCollide = false
                end
            end
        end
    end)
end

local function disableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
        noclipConnection = nil
        if player.Character then
            for _, part in pairs(player.Character:GetDescendants()) do
                if part:IsA("BasePart") then
                    part.CanCollide = true
                end
            end
        end
    end
end

-- [Previous code remains the same until the teleport function]

-- Teleport function
GotoButton.MouseButton1Click:Connect(function()
    local targetPos = string.split(InputBox.Text, ",")
    if #targetPos == 3 then
        local x = tonumber(targetPos[1])
        local y = tonumber(targetPos[2])
        local z = tonumber(targetPos[3])
        
        if x and y and z then
            local character = player.Character
            if character and character:FindFirstChild("HumanoidRootPart") then
                local humanoidRootPart = character.HumanoidRootPart
                
                -- Calculate offset position (5 studs above the target)
                local targetPosition = Vector3.new(x, y, z)
                local offset = Vector3.new(0, 2, 0)  -- 5 studs up
                local finalPosition = targetPosition + offset
                
                -- Calculate the direction to slightly back away from the target
                local characterPosition = humanoidRootPart.Position
                local direction = (characterPosition - targetPosition).Unit
                finalPosition = finalPosition + (direction * 3)  -- Move 3 studs away from target
                
                local targetCFrame = CFrame.new(finalPosition)
                
                enableNoclip()
                
                -- Faster, less smooth tween
                local tweenInfo = TweenInfo.new(
                    2,  -- Reduced from 2 to 1 second
                    Enum.EasingStyle.Linear,  -- Changed to Linear for less smoothing
                    Enum.EasingDirection.Out
                )
                
                local tween = TweenService:Create(humanoidRootPart, tweenInfo, {
                    CFrame = targetCFrame
                })
                
                tween:Play()
                tween.Completed:Wait()
                disableNoclip()
            end
        end
    end
end)

-- [Rest of the code remains the same]

-- Toggle GUI with F key
local function toggleGui()
    ScreenGui.Enabled = not ScreenGui.Enabled
end

UserInputService.InputBegan:Connect(function(input, processed)
    if not processed and input.KeyCode == Enum.KeyCode.F then
        toggleGui()
    end
end)

-- Handle character respawn with GUI persistence
player.CharacterAdded:Connect(function()
    if highlight then highlight:Destroy() end
    selectedPart = nil
    copiedPosition = nil
    disableNoclip()
    -- Note: We no longer disable the ScreenGui here
end)

-- Initial setup
ScreenGui.Enabled = false  -- Start with GUI hidden

Features & Information

-- Simple And Lazy Script i made 2 yrs ago.. (Must Watch Video to understand it) https://www.youtube.com/watch?v=qO84hB4rfwc
#Antagonist#Simple#OpenSource

Community Comments (1)

AntagonistAntagonistDec 4, 2025

Goofy and Useless ahh script but i was feeling generous today so.....

More Scripts for Universal Scripts