tuff human elevator frfr
Key RequiredUniversal

tuff human elevator frfr

Universal Scripthampterhampter 1.8K views 42 executesUpdated Aug 18, 2025
5.0/ 5(3 votes)
30100% Positive
Lua Script•137 lines (5107 chars)
local Players, RunService, UIS = game:GetService("Players"), game:GetService("RunService"), game:GetService("UserInputService")
local LP = Players.LocalPlayer
local FLOAT_SPEED, DIST_BELOW, conn = 5, 3

-- UI Setup
local gui = Instance.new("ScreenGui", LP:WaitForChild("PlayerGui"))
gui.Name, gui.ResetOnSpawn = "ElevatorUI", false

local function makeCorner(parent, radius)
	local c = Instance.new("UICorner", parent)
	c.CornerRadius = UDim.new(0, radius)
end

local frame = Instance.new("Frame", gui)
frame.AnchorPoint, frame.Position = Vector2.new(0.5, 0.5), UDim2.new(0.5, 0, 0.5, 0)
frame.Size, frame.BackgroundColor3, frame.BackgroundTransparency = UDim2.new(0, 200, 0, 260), Color3.fromRGB(25, 25, 25), 0.1
makeCorner(frame, 10)

local function makeTextBox(yPos, placeholder, default)
	local box = Instance.new("TextBox", frame)
	box.Size, box.Position = UDim2.new(1, -20, 0, 30), UDim2.new(0, 10, 0, yPos)
	box.PlaceholderText, box.Text = placeholder, default or ""
	box.TextScaled, box.BackgroundColor3, box.TextColor3 = true, Color3.fromRGB(50, 50, 50), Color3.fromRGB(255, 255, 255)
	makeCorner(box, 8)
	return box
end

local function makeButton(yPos, text, color)
	local btn = Instance.new("TextButton", frame)
	btn.Size, btn.Position = UDim2.new(1, -20, 0, 30), UDim2.new(0, 10, 0, yPos)
	btn.Text, btn.TextScaled, btn.BackgroundColor3, btn.TextColor3 = text, true, color, Color3.fromRGB(255, 255, 255)
	makeCorner(btn, 8)
	return btn
end

-- Title Bar
local titleBar = Instance.new("Frame", frame)
titleBar.Size, titleBar.BackgroundColor3 = UDim2.new(1, 0, 0, 30), Color3.fromRGB(40, 40, 40)
makeCorner(titleBar, 10)

local titleLabel = Instance.new("TextLabel", titleBar)
titleLabel.Size, titleLabel.Position = UDim2.new(1, -30, 1, 0), UDim2.new(0, 10, 0, 0)
titleLabel.Text, titleLabel.TextColor3, titleLabel.BackgroundTransparency = "Human Elevator", Color3.new(1, 1, 1), 1
titleLabel.TextXAlignment, titleLabel.Font, titleLabel.TextSize = Enum.TextXAlignment.Left, Enum.Font.GothamBold, 16

local closeBtn = makeButton(0, "X", Color3.fromRGB(170, 0, 0))
closeBtn.Size, closeBtn.Position, closeBtn.Parent = UDim2.new(0, 30, 1, 0), UDim2.new(1, -30, 0, 0), titleBar

-- Inputs
local usernameBox = makeTextBox(40, "Username or display name")
local distBox = makeTextBox(80, "Distance below", tostring(DIST_BELOW))
local speedBox = makeTextBox(120, "Float speed", tostring(FLOAT_SPEED))

-- Buttons
local startBtn = makeButton(170, "Start", Color3.fromRGB(0, 170, 0))
local stopBtn = makeButton(210, "Stop", Color3.fromRGB(170, 0, 0))

-- Dragging
local dragging, dragStart, startPos
local function updateDrag(input)
	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

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

titleBar.InputChanged:Connect(function(input)
	if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
		updateDrag(input)
	end
end)

-- Helpers
local function getHRP(char) return char and char:FindFirstChild("HumanoidRootPart") end

-- Dynamic player list
local playerList = {}

local function updatePlayerList()
	playerList = {}
	for _, p in ipairs(Players:GetPlayers()) do
		table.insert(playerList, p)
	end
end

updatePlayerList()
Players.PlayerAdded:Connect(updatePlayerList)
Players.PlayerRemoving:Connect(updatePlayerList)

-- Autofill on focus lost
usernameBox.FocusLost:Connect(function()
	local input = usernameBox.Text:lower()
	for _, p in ipairs(playerList) do
		if p.Name:lower():sub(1, #input) == input or p.DisplayName:lower():sub(1, #input) == input then
			usernameBox.Text = p.Name
			break
		end
	end
end)

-- Elevator Logic
local function startPlatform(target)
	if conn then conn:Disconnect() end
	local localHRP, targetHRP = getHRP(LP.Character), getHRP(target.Character)
	if not localHRP or not targetHRP then return end

	conn = RunService.RenderStepped:Connect(function(dt)
		if not targetHRP.Parent or not localHRP.Parent then return end
		localHRP.CFrame = CFrame.new(targetHRP.Position.X, targetHRP.Position.Y - DIST_BELOW + FLOAT_SPEED * dt, targetHRP.Position.Z)
	end)
end

local function stopPlatform()
	if conn then conn:Disconnect(); conn = nil end
end

-- Events
startBtn.MouseButton1Click:Connect(function()
	DIST_BELOW = tonumber(distBox.Text) or DIST_BELOW
	FLOAT_SPEED = tonumber(speedBox.Text) or FLOAT_SPEED
	local input = usernameBox.Text
	for _, p in ipairs(playerList) do
		if p.Name == input or p.DisplayName == input then
			startPlatform(p)
			return
		end
	end
	warn("Player not found:", input)
end)

stopBtn.MouseButton1Click:Connect(stopPlatform)
closeBtn.MouseButton1Click:Connect(function() stopPlatform(); gui:Destroy() end)

Features & Information

turns u into a human elevator frfr

Community Comments (10)

hampterhampterAug 18, 2025

frfr

BopIsmeBopIsmeAug 18, 2025

frfr

ifoneifoneAug 18, 2025

frfr

notwinnotwinAug 18, 2025

frfr

GuyWhoScriptsGuyWhoScriptsAug 18, 2025

frfr

saladin3216saladin3216Aug 19, 2025

frfr

ZERETETZERETETAug 21, 2025

don't work

Replying to @ZERETET
hampterhampterAug 24, 2025

@ZERETET worsk for me

Replying to @hampter
hampterhampterAug 24, 2025

works*

Replying to @hampter
ZERETETZERETETAug 24, 2025

@hampter ok 👍

More Scripts for Universal Scripts