Road runner script (Universal)
Key RequiredUniversal

Road runner script (Universal)

Universal ScriptZolbezzzZolbezzz 425 views 1.1K executesUpdated Oct 1, 2026
Unrated
00
Lua Script•352 lines (12914 chars)
local Superbird_Gui = Instance.new('ScreenGui')
local ImageLabel = Instance.new('ImageLabel')
local Drag = Instance.new('LocalScript')
local TextLabel = Instance.new('TextLabel')
local Road_Runner = Instance.new('TextButton')
local LocalScript = Instance.new('LocalScript')
Superbird_Gui.Parent = game:GetService('CoreGui')
Superbird_Gui.Name = "Superbird Gui"
ImageLabel.BackgroundColor3 = Color3.new(1.000000, 1.000000, 1.000000)
ImageLabel.BorderColor3 = Color3.new(0.000000, 0.000000, 0.000000)
ImageLabel.BorderSizePixel = 0.000000
ImageLabel.Position = UDim2.new(0.159064, 0, 0.260954, 0)
ImageLabel.Size = UDim2.new(0.000000, 423, 0.000000, 278)
ImageLabel.Image = "rbxassetid://123447980354679"
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Parent = Superbird_Gui
Drag.Name = "Drag"
Drag.Parent = ImageLabel
TextLabel.BackgroundColor3 = Color3.new(1.000000, 1.000000, 1.000000)
TextLabel.BackgroundTransparency = 1.000000
TextLabel.BorderColor3 = Color3.new(0.000000, 0.000000, 0.000000)
TextLabel.BorderSizePixel = 0.000000
TextLabel.Size = UDim2.new(0.000000, 423, 0.000000, 52)
TextLabel.Font = Enum.Font.Fantasy
TextLabel.Text = "Holy is that Road Runner? Gui"
TextLabel.TextColor3 = Color3.new(0.019608, 0.690196, 1.000000)
TextLabel.TextSize = 26.000000
TextLabel.TextTransparency = 0.020000
TextLabel.Parent = ImageLabel
Road_Runner.BackgroundColor3 = Color3.new(1.000000, 1.000000, 1.000000)
Road_Runner.BackgroundTransparency = 1.000000
Road_Runner.BorderColor3 = Color3.new(0.000000, 0.000000, 0.000000)
Road_Runner.BorderSizePixel = 0.000000
Road_Runner.Name = "Road Runner"
Road_Runner.Position = UDim2.new(0.131349, 0, 0.326149, 0)
Road_Runner.Size = UDim2.new(0.000000, 310, 0.000000, 96)
Road_Runner.Font = Enum.Font.Fantasy
Road_Runner.Text = "Click Here to become Road Runner"
Road_Runner.TextColor3 = Color3.new(0.082353, 0.831373, 1.000000)
Road_Runner.TextSize = 25.000000
Road_Runner.Parent = ImageLabel
LocalScript.Parent = Road_Runner
local function Drag_generatedScript()
    local script = Instance.new('LocalScript')
    script.Name = "Drag"
    script.Parent = ImageLabel
    local UserInputService = game:GetService("UserInputService")
    local gui = script.Parent
    local dragging
    local dragInput
    local dragStart
    local startPos
    local function update(input)
    	local delta = input.Position - dragStart
    	gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
    gui.InputBegan:Connect(function(input)
    	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
    		dragging = true
    		dragStart = input.Position
    		startPos = gui.Position
    		
    		input.Changed:Connect(function()
    			if input.UserInputState == Enum.UserInputState.End then
    				dragging = false
    			end
    		end)
    	end
    end)
    gui.InputChanged:Connect(function(input)
    	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
    		dragInput = input
    	end
    end)
    UserInputService.InputChanged:Connect(function(input)
    	if input == dragInput and dragging then
    		update(input)
    	end
    end)
end
task.spawn(Drag_generatedScript)
local function LocalScript_generatedScript()
    local script = Instance.new('LocalScript')
    script.Name = "LocalScript"
    script.Parent = Road_Runner
    local Players = game:GetService("Players")
    local UserInputService = game:GetService("UserInputService")
    local RunService = game:GetService("RunService")
    local player = Players.LocalPlayer
    local camera = workspace.CurrentCamera
    local StarterGui = game:GetService("StarterGui")
    local COOLDOWN_SECONDS = 8
    local NORMAL_FOV = 70
    local MAX_FOV = 120
    local FOV_LERP_SPEED = 8
    local FLASH_THRESHOLD = 99
    local MIN_SPEED = 50
    local MAX_SPEED = 399
    local RAMP_TIME = 3
    local BRAKE_DECEL = 600
    local BRAKE_THRESHOLD = 0.5
    local IDLE_ANIM_ID = "rbxassetid://78248850714817"
    local RUN_ANIM_ID = "rbxassetid://89672669390681"
    local BRAKE_ANIM_ID = "rbxassetid://78248850714817"
    local BRAKE_SOUND_ID = "rbxassetid://137696124683766"
    local FLASH_SOUND_ID = "rbxassetid://89600026835906"
    local RUN_SOUND_ID = "rbxassetid://93035214379043"
    local FLASH_FADE_IN_STEPS = 0.05
    local FLASH_FADE_OUT_STEPS = 0.03
    local FLASH_HOLD_DURATION = 0.15
    local FLASH_TICK = 0.016
    local isActive = false
    local isCooldown = false
    local connections = {}
    local flashGui = nil
    local flashFrame = nil
    local runSound = nil
    local flashSound = nil
    local SuperbirdBtn = script.Parent
    if not SuperbirdBtn:IsA("TextButton") then
    	warn("❌ This LocalScript must be placed inside a TextButton!")
    	return
    end
    local playerGui = player:WaitForChild("PlayerGui", 15)
    if not playerGui then
    	warn("❌ PlayerGui not found")
    	return
    end
    print("✅ Button found: " .. SuperbirdBtn.Name)
    local function FullReset()
    	isActive = false
    	for _, c in ipairs(connections) do
    		if c then c:Disconnect() end
    	end
    	table.clear(connections)
    	local char = player.Character
    	if char then
    		local hum = char:FindFirstChild("Humanoid")
    		if hum then
    			hum.WalkSpeed = MIN_SPEED
    			local an = hum:FindFirstChildOfClass("Animator")
    			if an then
    				for _, t in ipairs(an:GetPlayingAnimationTracks()) do
    					t:Stop()
    				end
    			end
    		end
    		local hrp = char:FindFirstChild("HumanoidRootPart")
    		if hrp then
    			for _, s in ipairs(hrp:GetChildren()) do
    				if s:IsA("Sound") then s:Destroy() end
    			end
    		end
    	end
    	camera.FieldOfView = NORMAL_FOV
    	if flashGui then flashGui:Destroy() flashGui = nil end
    	if runSound then runSound:Stop() runSound = nil end
    	if flashSound then flashSound:Stop() flashSound = nil end
    	print("🔄 Reset complete")
    end
    local function StartSuperbird()
    	if isCooldown then return end
    	if isActive then FullReset() end
    	local character = player.Character
    	if not character then character = player.CharacterAdded:Wait() end
    	local humanoid = character:WaitForChild("Humanoid")
    	local hrp = character:WaitForChild("HumanoidRootPart")
    	local animator = humanoid:WaitForChild("Animator")
    	isActive = true
    	isCooldown = true
    	SuperbirdBtn.AutoLocalize = false
    	task.spawn(function()
    		for i = COOLDOWN_SECONDS, 1, -1 do
    			SuperbirdBtn.Text = "Wait: "..i.."s"
    			task.wait(1)
    		end
    		SuperbirdBtn.Text = SuperbirdBtn.Name
    		isCooldown = false
    	end)
    	local function MakeAnim(id)
    		local a = Instance.new("Animation")
    		a.AnimationId = id
    		return a
    	end
    	local idleTrack = animator:LoadAnimation(MakeAnim(IDLE_ANIM_ID))
    	local runTrack = animator:LoadAnimation(MakeAnim(RUN_ANIM_ID))
    	local brakeTrack = animator:LoadAnimation(MakeAnim(BRAKE_ANIM_ID))
    	idleTrack.Looped = true
    	runTrack.Looped = true
    	local brakeSound = Instance.new("Sound")
    	brakeSound.Name = "BrakeSound_Superbird"
    	brakeSound.SoundId = BRAKE_SOUND_ID
    	brakeSound.Volume = 1
    	brakeSound.Parent = hrp
    	flashSound = Instance.new("Sound")
    	flashSound.Name = "FlashSound_Superbird"
    	flashSound.SoundId = FLASH_SOUND_ID
    	flashSound.Volume = 1
    	flashSound.Parent = hrp
    	runSound = Instance.new("Sound")
    	runSound.Name = "RunSound_Superbird"
    	runSound.SoundId = RUN_SOUND_ID
    	runSound.Volume = 0.8
    	runSound.Looped = true
    	runSound.Parent = hrp
    	-- FLASH GUI
    	flashGui = Instance.new("ScreenGui")
    	flashGui.Name = "SpeedFlashGui"
    	flashGui.IgnoreGuiInset = true
    	flashGui.ResetOnSpawn = false
    	flashGui.Parent = playerGui
    	flashFrame = Instance.new("Frame")
    	flashFrame.Size = UDim2.new(1, 0, 1, 0)
    	flashFrame.BackgroundColor3 = Color3.new(1, 1, 1)
    	flashFrame.BackgroundTransparency = 1
    	flashFrame.BorderSizePixel = 0
    	flashFrame.Parent = flashGui
    	local currentSpeed = MIN_SPEED
    	local isMoving, isBraking, isIdle = false, false, false
    	local moveInputActive = false
    	local hasFlashed = false
    	local moveKeys = {
    		Enum.KeyCode.W, Enum.KeyCode.A, Enum.KeyCode.S, Enum.KeyCode.D,
    		Enum.KeyCode.Up, Enum.KeyCode.Down, Enum.KeyCode.Left, Enum.KeyCode.Right
    	}
    	local inputBegan = UserInputService.InputBegan:Connect(function(input, gpe)
    		if gpe or not isActive then return end
    		for _, k in ipairs(moveKeys) do
    			if input.KeyCode == k then
    				moveInputActive = true
    				return
    			end
    		end
    	end)
    	table.insert(connections, inputBegan)
    	local inputEnded = UserInputService.InputEnded:Connect(function(input)
    		if not isActive then return end
    		for _, k in ipairs(moveKeys) do
    			if input.KeyCode == k then
    				local stillDown = false
    				for _, k2 in ipairs(moveKeys) do
    					if UserInputService:IsKeyDown(k2) then
    						stillDown = true
    					end
    				end
    				moveInputActive = stillDown
    				return
    			end
    		end
    	end)
    	table.insert(connections, inputEnded)
    	local function PlayFlashEffect()
    		if flashSound then flashSound:Play() end
    		task.spawn(function()
    			for t = 0, 1, FLASH_FADE_IN_STEPS do
    				flashFrame.BackgroundTransparency = 1 - t
    				task.wait(FLASH_TICK)
    			end
    			flashFrame.BackgroundTransparency = 0
    			task.wait(FLASH_HOLD_DURATION)
    			for t = 0, 1, FLASH_FADE_OUT_STEPS do
    				flashFrame.BackgroundTransparency = t
    				task.wait(FLASH_TICK)
    			end
    			flashFrame.BackgroundTransparency = 1
    		end)
    	end
    	local mainLoop = RunService.RenderStepped:Connect(function(dt)
    		if not isActive or humanoid.Health <= 0 then
    			FullReset()
    			return
    		end
    		local vel = hrp.AssemblyLinearVelocity
    		local horizontalSpeed = Vector3.new(vel.X, 0, vel.Z).Magnitude
    		local tryingToMove = moveInputActive and humanoid.MoveDirection.Magnitude > 0.01
    		if tryingToMove and horizontalSpeed > 1 then
    			if isBraking then
    				isBraking = false
    				brakeTrack:Stop()
    			end
    			if not isMoving then
    				isMoving = true
    				if isIdle then isIdle = false; idleTrack:Stop() end
    				runTrack:Play()
    				if runSound then runSound:Play() end
    			end
    			if runSound then
    				local speedRatio = (currentSpeed - MIN_SPEED) / (MAX_SPEED - MIN_SPEED)
    				runSound.Volume = 0.4 + speedRatio * 0.6
    			end
    			currentSpeed = math.min(currentSpeed + (MAX_SPEED - MIN_SPEED) / RAMP_TIME * dt, MAX_SPEED)
    			humanoid.WalkSpeed = currentSpeed
    			local ratio = (currentSpeed - MIN_SPEED) / (MAX_SPEED - MIN_SPEED)
    			camera.FieldOfView += (NORMAL_FOV + (MAX_FOV - NORMAL_FOV) * ratio - camera.FieldOfView)
    				* math.min(dt * FOV_LERP_SPEED, 1)
    			if currentSpeed >= FLASH_THRESHOLD and not hasFlashed then
    				hasFlashed = true
    				PlayFlashEffect()
    			end
    		elseif not tryingToMove and horizontalSpeed > BRAKE_THRESHOLD then
    			if not isBraking then
    				isBraking = true
    				isMoving = false
    				runTrack:Stop()
    				if runSound then runSound:Stop() end
    				if isIdle then isIdle = false; idleTrack:Stop() end
    				brakeTrack:Play()
    				brakeSound:Play()
    			end
    			currentSpeed = math.max(currentSpeed - BRAKE_DECEL * dt, MIN_SPEED)
    			humanoid.WalkSpeed = currentSpeed
    			camera.FieldOfView += (NORMAL_FOV - camera.FieldOfView) * math.min(dt * FOV_LERP_SPEED, 1)
    		else
    			if isBraking then
    				isBraking = false
    				brakeTrack:Stop()
    			end
    			if isMoving then
    				isMoving = false
    				runTrack:Stop()
    				if runSound then runSound:Stop() end
    			end
    			if not isIdle then
    				isIdle = true
    				idleTrack:Play()
    			end
    			currentSpeed = MIN_SPEED
    			humanoid.WalkSpeed = MIN_SPEED
    			hasFlashed = false
    			camera.FieldOfView += (NORMAL_FOV - camera.FieldOfView) * math.min(dt * FOV_LERP_SPEED, 1)
    		end
    	end)
    	table.insert(connections, mainLoop)
    	-- RESET ON RESPAWN
    	local respawnCheck = character.AncestryChanged:Connect(function(_, parent)
    		if not parent then FullReset() end
    	end)
    	table.insert(connections, respawnCheck)
    	print("✅ Superbird activated")
    end
    SuperbirdBtn.MouseButton1Click:Connect(StartSuperbird)
    print("✅ Ready — Click your button to start!")
    task.spawn(function()
    	task.wait(1)
    	StarterGui:SetCore("SendNotification", {
    		Title = "Credit",
    		Text = "Hey! there " .. player.Name .. " This Script was Create By Venora!",
    		Duration = 5,
    	})
    end)
end
task.spawn(LocalScript_generatedScript)

Features & Information

# Road Runner Script A showcase of the Road Runner script for Roblox. This script is shared for demonstration and entertainment purposes. Please use it responsibly and respect the rules of the games you play. (Script are not mine) Thanks for checking it out!
#roadrunner#script#fe#roleplaytrolling

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts