Quick actions

cmd+k|ctrl+k

Navigation

Languages

TP_Tool_v3_XKey

Snippet info

Language

Lua

Visibility

public

Author

panickyhospital950

Created

2026-04-04T02:32:38.260108Z

Updated

2026-04-04T02:32:38.260108Z

--[[
    TP TOOL v3 | Advanced Executor Teleport
    Custom pixel font (no Roblox fonts), draggable UI
    
    [RIGHT CLICK]  = TP to mouse position
    [X]            = Toggle TP on/off
    [P]            = Open player TP menu
    [B]            = Set waypoint
    [N]            = TP to waypoint
    [DELETE]       = Clear waypoint
]]

local plrs = game:GetService("Players")
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local ts = game:GetService("TweenService")

local lp = plrs.LocalPlayer
local mouse = lp:GetMouse()

local char, hmn, hrp
local function grab()
    char = lp.Character
    if not char then return false end
    hmn = char:FindFirstChildOfClass("Humanoid")
    hrp = char:FindFirstChild("HumanoidRootPart")
    return hrp ~= nil and hmn ~= nil
end
grab()
lp.CharacterAdded:Connect(function(c)
    c:WaitForChild("HumanoidRootPart")
    task.wait(0.2)
    grab()
end)

local enabled = true
local waypoint = nil
local playerListOpen = false

------------------------------------------------------------------------
-- PIXEL FONT (5x7 grid per character, Minecraft-style blocky)
------------------------------------------------------------------------
local PIXEL_SIZE = 2
local CHAR_W = 5
local CHAR_H = 7
local SPACING = 1

-- Each char is a 7-row string of 5 bits (1=pixel, 0=empty)
local GLYPHS = {
    ["A"] = {"01110","10001","10001","11111","10001","10001","10001"},
    ["B"] = {"11110","10001","10001","11110","10001","10001","11110"},
    ["C"] = {"01110","10001","10000","10000","10000","10001","01110"},
    ["D"] = {"11100","10010","10001","10001","10001","10010","11100"},
    ["E"] = {"11111","10000","10000","11110","10000","10000","11111"},
    ["F"] = {"11111","10000","10000","11110","10000","10000","10000"},
    ["G"] = {"01110","10001","10000","10111","10001","10001","01110"},
    ["H"] = {"10001","10001","10001","11111","10001","10001","10001"},
    ["I"] = {"11111","00100","00100","00100","00100","00100","11111"},
    ["J"] = {"00111","00010","00010","00010","00010","10010","01100"},
    ["K"] = {"10001","10010","10100","11000","10100","10010","10001"},
    ["L"] = {"10000","10000","10000","10000","10000","10000","11111"},
    ["M"] = {"10001","11011","10101","10101","10001","10001","10001"},
    ["N"] = {"10001","11001","10101","10011","10001","10001","10001"},
    ["O"] = {"01110","10001","10001","10001","10001","10001","01110"},
    ["P"] = {"11110","10001","10001","11110","10000","10000","10000"},
    ["Q"] = {"01110","10001","10001","10001","10101","10010","01101"},
    ["R"] = {"11110","10001","10001","11110","10100","10010","10001"},
    ["S"] = {"01111","10000","10000","01110","00001","00001","11110"},
    ["T"] = {"11111","00100","00100","00100","00100","00100","00100"},
    ["U"] = {"10001","10001","10001","10001","10001","10001","01110"},
    ["V"] = {"10001","10001","10001","10001","01010","01010","00100"},
    ["W"] = {"10001","10001","10001","10101","10101","11011","10001"},
    ["X"] = {"10001","10001","01010","00100","01010","10001","10001"},
    ["Y"] = {"10001","10001","01010","00100","00100","00100","00100"},
    ["Z"] = {"11111","00001","00010","00100","01000","10000","11111"},
    ["0"] = {"01110","10011","10101","10101","10101","11001","01110"},
    ["1"] = {"00100","01100","00100","00100","00100","00100","01110"},
    ["2"] = {"01110","10001","00001","00110","01000","10000","11111"},
    ["3"] = {"01110","10001","00001","00110","00001","10001","01110"},
    ["4"] = {"00010","00110","01010","10010","11111","00010","00010"},
    ["5"] = {"11111","10000","11110","00001","00001","10001","01110"},
    ["6"] = {"00110","01000","10000","11110","10001","10001","01110"},
    ["7"] = {"11111","00001","00010","00100","01000","01000","01000"},
    ["8"] = {"01110","10001","10001","01110","10001","10001","01110"},
    ["9"] = {"01110","10001","10001","01111","00001","00010","01100"},
    [":"] = {"00000","00100","00100","00000","00100","00100","00000"},
    [","] = {"00000","00000","00000","00000","00000","00100","01000"},
    ["-"] = {"00000","00000","00000","11111","00000","00000","00000"},
    ["."] = {"00000","00000","00000","00000","00000","00000","00100"},
    ["["] = {"01110","01000","01000","01000","01000","01000","01110"},
    ["]"] = {"01110","00010","00010","00010","00010","00010","01110"},
    ["="] = {"00000","00000","11111","00000","11111","00000","00000"},
    [">"] = {"10000","01000","00100","00010","00100","01000","10000"},
    ["<"] = {"00010","00100","01000","10000","01000","00100","00010"},
    [" "] = {"00000","00000","00000","00000","00000","00000","00000"},
    ["+"] = {"00000","00100","00100","11111","00100","00100","00000"},
    ["@"] = {"01110","10001","10101","10111","10000","10001","01110"},
    ["("] = {"00010","00100","01000","01000","01000","00100","00010"},
    [")"] = {"01000","00100","00010","00010","00010","00100","01000"},
    ["/"] = {"00001","00010","00010","00100","01000","01000","10000"},
    ["!"] = {"00100","00100","00100","00100","00100","00000","00100"},
    ["?"] = {"01110","10001","00001","00110","00100","00000","00100"},
}

-- Render pixel text into a parent frame, returns the frame
local function RenderPixelText(parent, text, color, scale)
    scale = scale or 1
    local ps = PIXEL_SIZE * scale
    local container = Instance.new("Frame")
    container.BackgroundTransparency = 1
    container.BorderSizePixel = 0
    container.Parent = parent
    
    local totalW = 0
    local upText = string.upper(text)
    
    for i = 1, #upText do
        local ch = upText:sub(i, i)
        local glyph = GLYPHS[ch]
        if not glyph then
            -- unknown char = space
            totalW = totalW + (CHAR_W + SPACING) * ps
            continue
        end
        
        for row = 1, CHAR_H do
            local rowData = glyph[row]
            if not rowData then continue end
            for col = 1, CHAR_W do
                if rowData:sub(col, col) == "1" then
                    local px = Instance.new("Frame")
                    px.Size = UDim2.new(0, ps, 0, ps)
                    px.Position = UDim2.new(0, totalW + (col - 1) * ps, 0, (row - 1) * ps)
                    px.BackgroundColor3 = color
                    px.BorderSizePixel = 0
                    px.Parent = container
                end
            end
        end
        
        totalW = totalW + (CHAR_W + SPACING) * ps
    end
    
    container.Size = UDim2.new(0, totalW, 0, CHAR_H * ps)
    return container
end

-- Update existing pixel text (destroy + recreate)
local function UpdatePixelText(container, text, color, scale)
    for _, c in ipairs(container:GetChildren()) do
        c:Destroy()
    end
    
    scale = scale or 1
    local ps = PIXEL_SIZE * scale
    local totalW = 0
    local upText = string.upper(text)
    
    for i = 1, #upText do
        local ch = upText:sub(i, i)
        local glyph = GLYPHS[ch]
        if not glyph then
            totalW = totalW + (CHAR_W + SPACING) * ps
            continue
        end
        
        for row = 1, CHAR_H do
            local rowData = glyph[row]
            if not rowData then continue end
            for col = 1, CHAR_W do
                if rowData:sub(col, col) == "1" then
                    local px = Instance.new("Frame")
                    px.Size = UDim2.new(0, ps, 0, ps)
                    px.Position = UDim2.new(0, totalW + (col - 1) * ps, 0, (row - 1) * ps)
                    px.BackgroundColor3 = color
                    px.BorderSizePixel = 0
                    px.Parent = container
                end
            end
        end
        
        totalW = totalW + (CHAR_W + SPACING) * ps
    end
    
    container.Size = UDim2.new(0, totalW, 0, CHAR_H * ps)
end

------------------------------------------------------------------------
-- DRAGGABLE HANDLER
------------------------------------------------------------------------
local function MakeDraggable(frame, handle)
    handle = handle or frame
    local dragging = false
    local dragStart, startPos
    
    handle.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or
           input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = frame.Position
            
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)
    
    uis.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or
                         input.UserInputType == Enum.UserInputType.Touch) then
            local delta = input.Position - dragStart
            frame.Position = UDim2.new(
                startPos.X.Scale, startPos.X.Offset + delta.X,
                startPos.Y.Scale, startPos.Y.Offset + delta.Y
            )
        end
    end)
end

------------------------------------------------------------------------
-- GUI
------------------------------------------------------------------------
local old = lp.PlayerGui:FindFirstChild("TPGui")
if old then old:Destroy() end

local gui = Instance.new("ScreenGui")
gui.Name = "TPGui"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = lp.PlayerGui

-- main panel
local panel = Instance.new("Frame")
panel.Size = UDim2.new(0, 310, 0, 110)
panel.Position = UDim2.new(0.5, -155, 1, -130)
panel.BackgroundColor3 = Color3.fromRGB(60, 40, 20)
panel.BorderSizePixel = 0
panel.Parent = gui

-- MC-style layered border
local border1 = Instance.new("UIStroke")
border1.Thickness = 4
border1.Color = Color3.fromRGB(20, 12, 5)
border1.Parent = panel

-- inner
local inner = Instance.new("Frame")
inner.Size = UDim2.new(1, -8, 1, -8)
inner.Position = UDim2.new(0, 4, 0, 4)
inner.BackgroundColor3 = Color3.fromRGB(80, 55, 30)
inner.BorderSizePixel = 0
inner.Parent = panel

local innerStroke = Instance.new("UIStroke")
innerStroke.Thickness = 2
innerStroke.Color = Color3.fromRGB(110, 80, 45)
innerStroke.Parent = inner

-- darkened content area
local content = Instance.new("Frame")
content.Size = UDim2.new(1, -8, 1, -24)
content.Position = UDim2.new(0, 4, 0, 20)
content.BackgroundColor3 = Color3.fromRGB(30, 20, 10)
content.BackgroundTransparency = 0.3
content.BorderSizePixel = 0
content.Parent = inner

-- drag handle (title bar area)
local dragBar = Instance.new("Frame")
dragBar.Size = UDim2.new(1, 0, 0, 20)
dragBar.BackgroundTransparency = 1
dragBar.BorderSizePixel = 0
dragBar.Parent = inner

MakeDraggable(panel, dragBar)

-- title pixel text
local titleContainer = Instance.new("Frame")
titleContainer.Size = UDim2.new(0, 200, 0, 14)
titleContainer.Position = UDim2.new(0, 8, 0, 3)
titleContainer.BackgroundTransparency = 1
titleContainer.Parent = inner

local titleText = RenderPixelText(titleContainer, "TP TOOL", Color3.fromRGB(255, 200, 60), 1)
titleText.Position = UDim2.new(0, 0, 0, 0)

-- status row
local statusContainer = Instance.new("Frame")
statusContainer.Name = "StatusRow"
statusContainer.Size = UDim2.new(0, 280, 0, 14)
statusContainer.Position = UDim2.new(0, 6, 0, 4)
statusContainer.BackgroundTransparency = 1
statusContainer.Parent = content

local statusText = RenderPixelText(statusContainer, "TP ON  RCLICK=TP  X=TOGGLE", Color3.fromRGB(85, 255, 85), 1)

-- coords row
local coordsContainer = Instance.new("Frame")
coordsContainer.Name = "CoordsRow"
coordsContainer.Size = UDim2.new(0, 280, 0, 14)
coordsContainer.Position = UDim2.new(0, 6, 0, 22)
coordsContainer.BackgroundTransparency = 1
coordsContainer.Parent = content

local coordsText = RenderPixelText(coordsContainer, "POS 0 0 0", Color3.fromRGB(180, 180, 180), 1)

-- target row
local targetContainer = Instance.new("Frame")
targetContainer.Name = "TargetRow"
targetContainer.Size = UDim2.new(0, 280, 0, 14)
targetContainer.Position = UDim2.new(0, 6, 0, 40)
targetContainer.BackgroundTransparency = 1
targetContainer.Parent = content

local targetText = RenderPixelText(targetContainer, "TARGET ...", Color3.fromRGB(255, 255, 85), 1)

-- waypoint row
local wpContainer = Instance.new("Frame")
wpContainer.Name = "WPRow"
wpContainer.Size = UDim2.new(0, 280, 0, 14)
wpContainer.Position = UDim2.new(0, 6, 0, 58)
wpContainer.BackgroundTransparency = 1
wpContainer.Parent = content

local wpText = RenderPixelText(wpContainer, "WP NONE  B=SET N=GO", Color3.fromRGB(130, 130, 130), 1)

-- crosshair (pixel-built)
local crossFrame = Instance.new("Frame")
crossFrame.Size = UDim2.new(0, 12, 0, 12)
crossFrame.Position = UDim2.new(0.5, -6, 0.5, -6)
crossFrame.BackgroundTransparency = 1
crossFrame.Parent = gui

-- Build pixel crosshair
local cColor = Color3.fromRGB(200, 120, 255)
for _, pos in ipairs({
    {5,0},{5,2},{5,4},{5,6},{5,8},{5,10},
    {0,5},{2,5},{4,5},{6,5},{8,5},{10,5},
}) do
    local px = Instance.new("Frame")
    px.Size = UDim2.new(0, 2, 0, 2)
    px.Position = UDim2.new(0, pos[1], 0, pos[2])
    px.BackgroundColor3 = cColor
    px.BorderSizePixel = 0
    px.Parent = crossFrame
end

-- flash overlay
local flash = Instance.new("Frame")
flash.Size = UDim2.new(1, 0, 1, 0)
flash.BackgroundColor3 = Color3.fromRGB(140, 80, 255)
flash.BackgroundTransparency = 1
flash.BorderSizePixel = 0
flash.ZIndex = 10
flash.Parent = gui

------------------------------------------------------------------------
-- PLAYER LIST (P key)
------------------------------------------------------------------------
local plrPanel = Instance.new("Frame")
plrPanel.Size = UDim2.new(0, 210, 0, 200)
plrPanel.Position = UDim2.new(0, 12, 0.5, -100)
plrPanel.BackgroundColor3 = Color3.fromRGB(60, 40, 20)
plrPanel.BorderSizePixel = 0
plrPanel.Visible = false
plrPanel.Parent = gui

Instance.new("UIStroke", plrPanel).Color = Color3.fromRGB(20, 12, 5)
local plrInner = Instance.new("Frame")
plrInner.Size = UDim2.new(1, -8, 1, -8)
plrInner.Position = UDim2.new(0, 4, 0, 4)
plrInner.BackgroundColor3 = Color3.fromRGB(80, 55, 30)
plrInner.BorderSizePixel = 0
plrInner.ClipsDescendants = true
plrInner.Parent = plrPanel

local plrDrag = Instance.new("Frame")
plrDrag.Size = UDim2.new(1, 0, 0, 20)
plrDrag.BackgroundTransparency = 1
plrDrag.Parent = plrInner
MakeDraggable(plrPanel, plrDrag)

local plrTitleC = Instance.new("Frame")
plrTitleC.Size = UDim2.new(0, 150, 0, 14)
plrTitleC.Position = UDim2.new(0, 6, 0, 3)
plrTitleC.BackgroundTransparency = 1
plrTitleC.Parent = plrInner
RenderPixelText(plrTitleC, "PLAYERS", Color3.fromRGB(200, 120, 255), 1)

local plrScroll = Instance.new("ScrollingFrame")
plrScroll.Size = UDim2.new(1, -8, 1, -24)
plrScroll.Position = UDim2.new(0, 4, 0, 22)
plrScroll.BackgroundColor3 = Color3.fromRGB(30, 20, 10)
plrScroll.BackgroundTransparency = 0.3
plrScroll.BorderSizePixel = 0
plrScroll.ScrollBarThickness = 4
plrScroll.ScrollBarImageColor3 = Color3.fromRGB(110, 80, 45)
plrScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
plrScroll.Parent = plrInner

local plrLayout = Instance.new("UIListLayout", plrScroll)
plrLayout.Padding = UDim.new(0, 3)

local function refreshPlrList()
    for _, c in ipairs(plrScroll:GetChildren()) do
        if c:IsA("TextButton") then c:Destroy() end
    end
    local count = 0
    for _, p in ipairs(plrs:GetPlayers()) do
        if p ~= lp then
            count += 1
            local btn = Instance.new("TextButton")
            btn.Size = UDim2.new(1, -6, 0, 20)
            btn.BackgroundColor3 = Color3.fromRGB(50, 35, 18)
            btn.BorderSizePixel = 0
            btn.Text = ""
            btn.Parent = plrScroll
            
            Instance.new("UIStroke", btn).Color = Color3.fromRGB(70, 50, 28)
            
            -- pixel name
            local nc = Instance.new("Frame")
            nc.Size = UDim2.new(1, 0, 0, 14)
            nc.Position = UDim2.new(0, 4, 0, 3)
            nc.BackgroundTransparency = 1
            nc.Parent = btn
            RenderPixelText(nc, p.DisplayName, Color3.fromRGB(200, 200, 200), 1)
            
            btn.MouseEnter:Connect(function()
                btn.BackgroundColor3 = Color3.fromRGB(90, 55, 25)
            end)
            btn.MouseLeave:Connect(function()
                btn.BackgroundColor3 = Color3.fromRGB(50, 35, 18)
            end)
            btn.MouseButton1Click:Connect(function()
                if not grab() then return end
                local tc = p.Character
                if tc and tc:FindFirstChild("HumanoidRootPart") then
                    doTP(tc.HumanoidRootPart.Position + Vector3.new(0, 3, 0))
                end
            end)
        end
    end
    plrScroll.CanvasSize = UDim2.new(0, 0, 0, count * 23)
end

------------------------------------------------------------------------
-- TP
------------------------------------------------------------------------
function doTP(pos)
    if not grab() then return end
    flash.BackgroundTransparency = 0.4
    ts:Create(flash, TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
        BackgroundTransparency = 1
    }):Play()
    hrp.CFrame = CFrame.new(pos + Vector3.new(0, 0.5, 0))
end

------------------------------------------------------------------------
-- INPUT
------------------------------------------------------------------------
uis.InputBegan:Connect(function(inp, gpe)
    if gpe then return end
    
    if inp.KeyCode == Enum.KeyCode.X then
        enabled = not enabled
        if enabled then
            UpdatePixelText(statusContainer, "TP ON  RCLICK=TP  X=TOGGLE", Color3.fromRGB(85, 255, 85), 1)
        else
            UpdatePixelText(statusContainer, "TP OFF  RCLICK=TP  X=TOGGLE", Color3.fromRGB(255, 85, 85), 1)
        end
    end
    
    if inp.KeyCode == Enum.KeyCode.P then
        playerListOpen = not playerListOpen
        plrPanel.Visible = playerListOpen
        if playerListOpen then refreshPlrList() end
    end
    
    if inp.KeyCode == Enum.KeyCode.B then
        if grab() then
            waypoint = hrp.Position
            local w = waypoint
            UpdatePixelText(wpContainer, string.format("WP %d %d %d  N=GO", math.floor(w.X), math.floor(w.Y), math.floor(w.Z)), Color3.fromRGB(85, 255, 85), 1)
        end
    end
    
    if inp.KeyCode == Enum.KeyCode.N then
        if waypoint then doTP(waypoint) end
    end
    
    if inp.KeyCode == Enum.KeyCode.Delete then
        waypoint = nil
        UpdatePixelText(wpContainer, "WP NONE  B=SET N=GO", Color3.fromRGB(130, 130, 130), 1)
    end
end)

mouse.Button2Down:Connect(function()
    if not enabled then return end
    local hit = mouse.Hit
    if hit then
        doTP(hit.Position)
        local p = hit.Position
        UpdatePixelText(targetContainer, string.format("TP! %d %d %d", math.floor(p.X), math.floor(p.Y), math.floor(p.Z)), Color3.fromRGB(200, 120, 255), 1)
    end
end)

------------------------------------------------------------------------
-- UPDATE LOOP
------------------------------------------------------------------------
local tick2 = 0
rs.RenderStepped:Connect(function(dt)
    if not grab() then return end
    
    tick2 += dt
    -- throttle pixel text updates (heavy) to 5 fps
    if tick2 < 0.2 then return end
    tick2 = 0
    
    local p = hrp.Position
    UpdatePixelText(coordsContainer, string.format("POS %d %d %d", math.floor(p.X), math.floor(p.Y), math.floor(p.Z)), Color3.fromRGB(180, 180, 180), 1)
    
    if enabled then
        local mh = mouse.Hit
        if mh then
            local mp = mh.Position
            local dist = math.floor((mp - p).Magnitude)
            UpdatePixelText(targetContainer, string.format("AIM %d %d %d  D=%d", math.floor(mp.X), math.floor(mp.Y), math.floor(mp.Z), dist), Color3.fromRGB(255, 255, 85), 1)
        end
    end
end)

print("[TP v3] Loaded! RClick=TP X=Toggle P=Players B=WP N=GoWP")
INFO