Wally west script faster than egor
Key RequiredUniversal

Wally west script faster than egor

Universal Script*rac3*rac3 15.2K views 5.8K executesUpdated Aug 16, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•148 lines (6473 chars)
-- Speed Ramp + Multi-Point Blue Trails + 360° Lightning (Client-side, Delta-friendly)

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")

local lp = Players.LocalPlayer

--========== CONFIG ==========
local INCREMENT = 1
local INCREMENT_INTERVAL = 0.15
local MAX_SPEED = 9000
local RESET_IDLE_TIME = 0.25

local TRAIL_COLOR = Color3.fromRGB(80,170,255)
local TRAIL_LIFETIME = 0.28
local TRAIL_EMISSION = 0.8
local TRAIL_WIDTH_START = 0.5
local TRAIL_WIDTH_END = 0.0

local LIGHTNING_ENABLED = true
local LIGHTNING_COLOR = Color3.fromRGB(140,210,255)
local LIGHTNING_BASE_RATE = 0.20
local LIGHTNING_MIN_RATE = 0.045
local LIGHTNING_MAX_RATE = 0.30
local LIGHTNING_MAIN_COUNT = 2
local LIGHTNING_BRANCH_CHANCE = 0.45
local LIGHTNING_SPARKS = true
local LIGHTNING_SPARK_COUNT = 6

--========== UTIL ==========
local function qwait(n) if n and n > 0 then task.wait(n) end end
local function ensurePart(char, names)
    for _, n in ipairs(names) do
        local p = char:FindFirstChild(n)
        if p then return p end
    end
end

--========== CHARACTER ==========
local function getChar()
    local char = lp.Character or lp.CharacterAdded:Wait()
    local hum = char:FindFirstChildOfClass("Humanoid") or char:WaitForChild("Humanoid")
    local hrp = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
    return char, hum, hrp
end
local char, humanoid, hrp = getChar()
local baseSpeed = humanoid.WalkSpeed

--========== TRAILS ==========
local allTrails = {}
local function clearTrails()
    for _, t in ipairs(allTrails) do
        pcall(function()
            if t.trail then t.trail:Destroy() end
            if t.att0 then t.att0:Destroy() end
            if t.att1 then t.att1:Destroy() end
        end)
    end
    table.clear(allTrails)
end
local function makeTrail(part, id, offA, offB)
    if not part then return end
    local att0 = Instance.new("Attachment"); att0.Position = offA; att0.Parent = part
    local att1 = Instance.new("Attachment"); att1.Position = offB; att1.Parent = part
    local tr = Instance.new("Trail")
    tr.Attachment0 = att0; tr.Attachment1 = att1
    tr.Color = ColorSequence.new(TRAIL_COLOR)
    tr.Transparency = NumberSequence.new(0.05, 1)
    tr.WidthScale = NumberSequence.new(TRAIL_WIDTH_START, TRAIL_WIDTH_END)
    tr.LightEmission = TRAIL_EMISSION
    tr.Lifetime = TRAIL_LIFETIME
    tr.Enabled = false
    tr.Parent = part
    table.insert(allTrails, {trail=tr, att0=att0, att1=att1})
end
local function buildTrails()
    clearTrails()
    makeTrail(ensurePart(char,{"LeftFoot","LeftLowerLeg","Left Leg"}),"LF",Vector3.new(-.05,.05,.05),Vector3.new(.05,-.05,-.05))
    makeTrail(ensurePart(char,{"RightFoot","RightLowerLeg","Right Leg"}),"RF",Vector3.new(.05,.05,.05),Vector3.new(-.05,-.05,-.05))
    makeTrail(ensurePart(char,{"LeftHand","LeftLowerArm","Left Arm"}),"LH",Vector3.new(-.06,0,.08),Vector3.new(.06,0,-.08))
    makeTrail(ensurePart(char,{"RightHand","RightLowerArm","Right Arm"}),"RH",Vector3.new(.06,0,.08),Vector3.new(-.06,0,-.08))
    local torso = ensurePart(char,{"UpperTorso","LowerTorso","Torso"}) or hrp
    makeTrail(torso,"T1",Vector3.new(-.08,.1,.02),Vector3.new(.08,-.1,-.02))
    makeTrail(torso,"T2",Vector3.new(.08,.1,-.02),Vector3.new(-.08,-.1,.02))
end
local function setTrails(on) for _, t in ipairs(allTrails) do t.trail.Enabled = on end end
buildTrails()

--========== LIGHTNING ==========
local function fadeDebris(p,t) TweenService:Create(p,TweenInfo.new(t),{Transparency=1}):Play(); Debris:AddItem(p,t+0.05) end
local function seg(a,b,th)
    local s=Instance.new("Part");s.Anchored=true;s.CanCollide=false;s.Material=Enum.Material.Neon;s.Color=LIGHTNING_COLOR
    local dir=(b-a);s.Size=Vector3.new(th,th,math.max(0.05,dir.Magnitude))
    s.CFrame=CFrame.new(a,b)*CFrame.new(0,0,-s.Size.Z/2);s.Parent=workspace;return s
end
local function sparks(origin)
    if not LIGHTNING_SPARKS then return end
    for i=1,LIGHTNING_SPARK_COUNT do
        local p=Instance.new("Part");p.Anchored=true;p.CanCollide=false;p.Material=Enum.Material.Neon;p.Color=LIGHTNING_COLOR
        p.Shape=Enum.PartType.Ball;p.Size=Vector3.new(0.08,0.08,0.08)
        local dir=Vector3.new(math.random()-0.5, math.random()-0.5, math.random()-0.5).Unit
        p.CFrame=CFrame.new(origin + dir*(math.random()*2.2+0.4))
        p.Transparency=0.1;p.Parent=workspace;fadeDebris(p,0.12)
    end
end
local function spawnBoltSet()
    if not LIGHTNING_ENABLED then return end
    local base=hrp.Position+Vector3.new(0,1.2,0)
    sparks(hrp.Position+Vector3.new(0,0.2,0))
    for m=1,LIGHTNING_MAIN_COUNT do
        local segments=math.random(3,5)
        local radius=4+math.random()*5
        local dir=Vector3.new(math.random()-0.5, math.random()-0.5, math.random()-0.5).Unit*radius
        local prev=base
        for i=1,segments do
            local t=i/segments
            local nextPos=base+dir*t+Vector3.new((math.random()-0.5)*1.2,(math.random()-0.5)*1.0,(math.random()-0.5)*1.2)
            fadeDebris(seg(prev,nextPos,0.1),0.08)
            if math.random()<LIGHTNING_BRANCH_CHANCE then
                local branch=Vector3.new(math.random()-0.5, math.random()-0.5, math.random()-0.5).Unit*(1.5+math.random()*1.5)
                fadeDebris(seg(nextPos,nextPos+branch,0.08),0.07)
            end
            prev=nextPos
        end
    end
end

--========== RESPAWN ==========
lp.CharacterAdded:Connect(function() qwait(0.1); char, humanoid, hrp=getChar(); baseSpeed=humanoid.WalkSpeed; buildTrails() end)

--========== LOOP ==========
local incT,idleT,lastL=0,0,0
RunService.Heartbeat:Connect(function(dt)
    if not humanoid or humanoid.Health<=0 then return end
    local moving=humanoid.MoveDirection.Magnitude>0.05
    if moving then
        setTrails(true); idleT=0; incT+=dt
        if incT>=INCREMENT_INTERVAL then incT=0; humanoid.WalkSpeed=math.min(humanoid.WalkSpeed+INCREMENT,MAX_SPEED) end
        lastL+=dt
        local rate=math.clamp(LIGHTNING_BASE_RATE - math.clamp((humanoid.WalkSpeed-baseSpeed)/1200,0,1)*(LIGHTNING_BASE_RATE-LIGHTNING_MIN_RATE),LIGHTNING_MIN_RATE,LIGHTNING_MAX_RATE)
        if lastL>=rate then lastL=0; spawnBoltSet() end
    else
        setTrails(false); incT=0; lastL=0; idleT+=dt
        if idleT>=RESET_IDLE_TIME and humanoid.WalkSpeed~=baseSpeed then humanoid.WalkSpeed=baseSpeed end
    end
end)

Features & Information

Everytime you walk you gain speed and all the effects are visual but when you stop running it resets your speed to default

Community Comments (3)

*rac3*rac3Aug 16, 2025

I don't know how to actually like make links and user loadstring.

W SCRIPT BRO

Bean_1x1x1x1Bean_1x1x1x1Feb 23, 2026

thank you habibi

More Scripts for Universal Scripts