--! WARNING: LocalScript. Place in StarterPlayerScripts. local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Teams = game:GetService("Teams") local plr = Players.LocalPlayer local char = plr.Character or plr.CharacterAdded:Wait() local hrp = char:WaitForChild("HumanoidRootPart", 5) -- Billboard GUI IDs local idleId = "135320991090453" local walk1Id = "135320991090453" local walk2Id = "135320991090453" -- Billboard size & offset local baseSize = Vector2.new(9.2, 7) local studsOffsetY = 0.25 -- Billboard setup local gui = hrp:FindFirstChild("BillboardGui") if gui and gui:FindFirstChild("Idle") and gui:FindFirstChild("Walk1") and gui:FindFirstChild("Walk2") then gui.Idle.Image = "http://www.roblox.com/asset/?id="..idleId gui.Walk1.Image = "http://www.roblox.com/asset/?id="..walk1Id gui.Walk2.Image = "http://www.roblox.com/asset/?id="..walk2Id gui.StudsOffset = Vector3.new(0, studsOffsetY, 0) end -- Sound setup local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://138485686268988" sound.Parent = hrp sound.PlaybackSpeed = 1 sound.Volume = 0.75 sound.Looped = true sound:Play() -- Jiggle effect local prevPos = hrp.Position local velocityMag = 0 local squish = 0 RunService.RenderStepped:Connect(function(dt) local team = plr.Team if team and team.Name ~= "Bear" then if sound.Parent then sound:Stop() sound:Destroy() end return end local velocity = (hrp.Position - prevPos) / dt prevPos = hrp.Position velocityMag = velocity.Magnitude local target = math.clamp(velocityMag * 0.002, 0, 0.15) squish += (target - squish) * math.min(dt * 10, 1) if gui then local stretchX = 1 + squish * 0.8 -- widen slightly local stretchY = 1 - squish * 1.2 -- flatten slightly gui.Size = UDim2.new(baseSize.X * stretchX, 0, baseSize.Y * stretchY, 0) end end)