
KeylessUniversal

-- Cyber Run Script - Final Version
-- Normal character after images
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
-- Simple Configuration
local NORMAL_SPEED = 16
local SPRINT_SPEED = 48
local AFTER_IMAGE_DURATION = 0.4
local AFTER_IMAGE_TRANSPARENCY = 0.6
local JUMP_POWER_MULTIPLIER = 1.2
-- State variables
local isSprinting = false
local sprintButton = nil
local connection = nil
local originalJumpPower = humanoid.JumpPower
-- Simple button
local function createSprintButton()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CyberRunGui"
screenGui.Parent = player.PlayerGui
screenGui.ResetOnSpawn = false
local button = Instance.new("TextButton")
button.Name = "CyberRunButton"
button.Size = UDim2.new(0, 140, 0, 50)
button.Position = UDim2.new(0.85, 0, 0.6, 0)
button.BackgroundColor3 = Color3.fromRGB(20, 20, 40)
button.TextColor3 = Color3.fromRGB(0, 255, 255)
button.Text = "⚡ CYBER RUN"
button.TextSize = 16
button.Font = Enum.Font.SciFi
button.BorderSizePixel = 0
button.ZIndex = 10
button.AutoButtonColor = false
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = button
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(0, 200, 255)
stroke.Thickness = 2
stroke.Parent = button
button.Parent = screenGui
return button
end
-- Create normal after images that look like the character
local function createNormalAfterImage()
if not character or character.Parent == nil then return end
local afterImageFolder = Instance.new("Folder")
afterImageFolder.Name = "NormalAfterImage"
-- Create after images for every BasePart in the character
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
local afterImage = part:Clone()
-- Keep the original appearance (colors, textures, etc.)
for _, child in ipairs(afterImage:GetChildren()) do
if child:IsA("SpecialMesh") or child:IsA("Decal") or child:IsA("Texture") then
-- Keep these to maintain original appearance
else
child:Destroy()
end
end
-- Set after image properties (keep original colors)
afterImage.Name = "NormalTrail"
afterImage.CanCollide = false
afterImage.Anchored = true
afterImage.Material = part.Material -- Keep original material
afterImage.Color = part.Color -- Keep original color
afterImage.Transparency = AFTER_IMAGE_TRANSPARENCY
afterImage.CFrame = part.CFrame
afterImage.Parent = afterImageFolder
end
end
afterImageFolder.Parent = workspace
-- Simple fade animation
local startTime = tick()
local fadeConnection = RunService.Heartbeat:Connect(function()
local elapsed = tick() - startTime
local alpha = elapsed / AFTER_IMAGE_DURATION
if alpha >= 1 or afterImageFolder.Parent == nil then
fadeConnection:Disconnect()
afterImageFolder:Destroy()
return
end
-- Fade out all parts while keeping their original colors
for _, part in ipairs(afterImageFolder:GetChildren()) do
if part:IsA("BasePart") then
part.Transparency = AFTER_IMAGE_TRANSPARENCY + (alpha * (1 - AFTER_IMAGE_TRANSPARENCY))
end
end
end)
-- Auto cleanup
delay(AFTER_IMAGE_DURATION + 0.1, function()
if afterImageFolder and afterImageFolder.Parent then
afterImageFolder:Destroy()
end
if fadeConnection then
fadeConnection:Disconnect()
end
end)
end
-- Apply cyber run effects
local function applyCyberRunEffects()
if not character or not humanoid or humanoid.Health <= 0 then return end
if isSprinting then
humanoid.WalkSpeed = SPRINT_SPEED
-- Gentle forward boost
if rootPart and humanoid.MoveDirection.Magnitude > 0 then
local moveDirection = humanoid.MoveDirection
local currentVelocity = rootPart.Velocity
local boostPower = 12
local horizontalBoost = Vector3.new(
moveDirection.X * boostPower,
0,
moveDirection.Z * boostPower
)
rootPart.Velocity = Vector3.new(
currentVelocity.X + horizontalBoost.X,
currentVelocity.Y,
currentVelocity.Z + horizontalBoost.Z
)
end
-- Create normal after image that looks like the character
createNormalAfterImage()
else
humanoid.WalkSpeed = NORMAL_SPEED
end
end
-- Toggle function
local function toggleCyberRun()
isSprinting = not isSprinting
if isSprinting then
humanoid.WalkSpeed = SPRINT_SPEED
humanoid.JumpPower = originalJumpPower * JUMP_POWER_MULTIPLIER
sprintButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
sprintButton.TextColor3 = Color3.fromRGB(255, 255, 255)
sprintButton.Text = "🔥 ACTIVE"
local pulseTween = TweenService:Create(sprintButton, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 145, 0, 52)
})
pulseTween:Play()
if connection then
connection:Disconnect()
end
connection = RunService.Heartbeat:Connect(function()
if isSprinting and character and humanoid.Health > 0 then
if tick() % 0.15 < 0.05 then
applyCyberRunEffects()
end
else
if connection then
connection:Disconnect()
end
end
end)
else
humanoid.WalkSpeed = NORMAL_SPEED
humanoid.JumpPower = originalJumpPower
sprintButton.BackgroundColor3 = Color3.fromRGB(20, 20, 40)
sprintButton.TextColor3 = Color3.fromRGB(0, 255, 255)
sprintButton.Text = "⚡ CYBER RUN"
local resetTween = TweenService:Create(sprintButton, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 140, 0, 50)
})
resetTween:Play()
if connection then
connection:Disconnect()
end
end
end
-- Keybinds
local function setupKeybinds()
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.E then
toggleCyberRun()
end
end)
end
-- Cleanup
local function fullCleanup()
isSprinting = false
if humanoid and humanoid.Parent then
humanoid.WalkSpeed = NORMAL_SPEED
humanoid.JumpPower = originalJumpPower
end
if connection then
connection:Disconnect()
end
for _, obj in ipairs(workspace:GetDescendants()) do
if obj.Name == "NormalAfterImage" then
obj:Destroy()
end
end
end
-- Character handling
local function onCharacterAdded(newCharacter)
character = newCharacter
humanoid = character:WaitForChild("Humanoid")
rootPart = character:WaitForChild("HumanoidRootPart")
originalJumpPower = humanoid.JumpPower
fullCleanup()
if not sprintButton or not sprintButton.Parent then
sprintButton = createSprintButton()
sprintButton.MouseButton1Click:Connect(toggleCyberRun)
else
sprintButton.BackgroundColor3 = Color3.fromRGB(20, 20, 40)
sprintButton.TextColor3 = Color3.fromRGB(0, 255, 255)
sprintButton.Text = "⚡ CYBER RUN"
end
end
-- Initialize
if character then
originalJumpPower = humanoid.JumpPower
sprintButton = createSprintButton()
sprintButton.MouseButton1Click:Connect(toggleCyberRun)
setupKeybinds()
end
player.CharacterAdded:Connect(onCharacterAdded)
humanoid.Died:Connect(fullCleanup)
print("⚡ CYBER RUN - NORMAL AFTER IMAGES")
print("👤 After images match your character's appearance")
print("💨 Speed: " .. SPRINT_SPEED)
print("🎨 Original colors and textures preserved")



W good one 👍🏻 this is part of a piece I need to find the one piece