Savage TP OP
Key RequiredUniversal

Savage TP OP

Universal ScriptSavage_phirahna7Savage_phirahna7 264 views 712 executesUpdated Jan 20, 2026
Unrated
00
Lua Script•176 lines (4819 chars)
--// SERVICES
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local savedCFrame = nil
local markerPart = nil

--// FLY VARS
local flying = false
local flySpeed = 60
local bv, bg

--// GET CHARACTER
local function getChar()
    return player.Character or player.CharacterAdded:Wait()
end

--// MARKER
local function createMarker(cf)
    if markerPart then markerPart:Destroy() end

    markerPart = Instance.new("Part")
    markerPart.Size = Vector3.new(1.5,1.5,1.5)
    markerPart.Shape = Enum.PartType.Ball
    markerPart.Material = Enum.Material.Neon
    markerPart.Color = Color3.fromRGB(0,255,0)
    markerPart.Anchored = true
    markerPart.CanCollide = false
    markerPart.Position = cf.Position + Vector3.new(0,2,0)
    markerPart.Parent = workspace

    local bill = Instance.new("BillboardGui", markerPart)
    bill.Size = UDim2.new(0,100,0,30)
    bill.AlwaysOnTop = true

    local txt = Instance.new("TextLabel", bill)
    txt.Size = UDim2.new(1,0,1,0)
    txt.BackgroundTransparency = 1
    txt.Text = "📍 Saved Spot"
    txt.TextColor3 = Color3.new(1,1,1)
    txt.TextStrokeTransparency = 0
    txt.Font = Enum.Font.GothamBold
    txt.TextSize = 12
end

--// SAVE POSITION
local function savePosition()
    local char = getChar()
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if hrp then
        savedCFrame = hrp.CFrame
        createMarker(savedCFrame)
    end
end

--// TELEPORT
local function teleport()
    if not savedCFrame then return end
    local char = getChar()
    local hrp = char:FindFirstChild("HumanoidRootPart")
    if hrp then
        hrp.CFrame = savedCFrame
    end
end

--// SAVE ON DEATH
local function hookCharacter(char)
    local hum = char:WaitForChild("Humanoid")
    hum.Died:Connect(savePosition)
end

if player.Character then hookCharacter(player.Character) end
player.CharacterAdded:Connect(hookCharacter)

--// FLY FUNCTIONS
local function startFly()
    if flying then return end
    flying = true

    local char = getChar()
    local hrp = char:WaitForChild("HumanoidRootPart")
    local hum = char:WaitForChild("Humanoid")

    hum.PlatformStand = true

    bv = Instance.new("BodyVelocity")
    bv.MaxForce = Vector3.new(1e9,1e9,1e9)
    bv.Velocity = Vector3.zero
    bv.Parent = hrp

    bg = Instance.new("BodyGyro")
    bg.MaxTorque = Vector3.new(1e9,1e9,1e9)
    bg.CFrame = hrp.CFrame
    bg.Parent = hrp

    RunService.RenderStepped:Connect(function()
        if not flying then return end

        local cam = workspace.CurrentCamera
        local move = hum.MoveDirection
        bv.Velocity = cam.CFrame:VectorToWorldSpace(move) * flySpeed
        bg.CFrame = cam.CFrame
    end)
end

local function stopFly()
    flying = false
    local char = getChar()
    local hum = char:FindFirstChild("Humanoid")
    local hrp = char:FindFirstChild("HumanoidRootPart")

    if hum then hum.PlatformStand = false end
    if bv then bv:Destroy() end
    if bg then bg:Destroy() end
end

--// GUI
local gui = Instance.new("ScreenGui", game.CoreGui)
gui.ResetOnSpawn = false

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 200, 0, 170)
frame.Position = UDim2.new(0.5, -100, 0.55, 0)
frame.BackgroundColor3 = Color3.fromRGB(25,25,25)
frame.Active = true
frame.Draggable = true
Instance.new("UICorner", frame).CornerRadius = UDim.new(0,12)

--// SAVE BUTTON
local saveBtn = Instance.new("TextButton", frame)
saveBtn.Size = UDim2.new(1,-20,0,40)
saveBtn.Position = UDim2.new(0,10,0,10)
saveBtn.Text = "📍 Save Position"
saveBtn.BackgroundColor3 = Color3.fromRGB(60,160,255)
saveBtn.TextColor3 = Color3.new(1,1,1)
saveBtn.Font = Enum.Font.GothamBold
saveBtn.TextSize = 14
Instance.new("UICorner", saveBtn)

--// TP BUTTON
local tpBtn = Instance.new("TextButton", frame)
tpBtn.Size = UDim2.new(1,-20,0,40)
tpBtn.Position = UDim2.new(0,10,0,60)
tpBtn.Text = "⚡ Teleport"
tpBtn.BackgroundColor3 = Color3.fromRGB(120,255,120)
tpBtn.TextColor3 = Color3.new(0,0,0)
tpBtn.Font = Enum.Font.GothamBold
tpBtn.TextSize = 14
Instance.new("UICorner", tpBtn)

--// FLY BUTTON
local flyBtn = Instance.new("TextButton", frame)
flyBtn.Size = UDim2.new(1,-20,0,40)
flyBtn.Position = UDim2.new(0,10,0,110)
flyBtn.Text = "🕊 Fly: OFF"
flyBtn.BackgroundColor3 = Color3.fromRGB(255,170,60)
flyBtn.TextColor3 = Color3.new(0,0,0)
flyBtn.Font = Enum.Font.GothamBold
flyBtn.TextSize = 14
Instance.new("UICorner", flyBtn)

--// BUTTON LOGIC
saveBtn.MouseButton1Click:Connect(savePosition)
tpBtn.MouseButton1Click:Connect(teleport)

flyBtn.MouseButton1Click:Connect(function()
    if flying then
        stopFly()
        flyBtn.Text = "🕊 Fly: OFF"
    else
        startFly()
        flyBtn.Text = "🕊 Fly: ON"
    end
end)

Features & Information

You can tp and fly

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts