local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local PathfindingService = game:GetService("PathfindingService") local RunService = game:GetService("RunService") local Debris = game:GetService("Debris") local Player = Players.LocalPlayer local Backpack = Player:WaitForChild("Backpack") local Jarmeshbro = "rbxassetid://8880716186" local rushesface = "rbxassetid://6842825462" local blackaura = "rbxassetid://84277811" local sound = "rbxassetid://18695345785" local Rushseconds = 7 local rushspeed = 35 local rushummmhowmuchhegoes = 200 local jarsize = Vector3.new(3.625, 2.85, 4.4) local jaroffset = CFrame.new(0, 0, 0) local equipped = false local processing = false local smallRush local currentRush local followConnection for _, name in ipairs({ "RushJarActivatedConnection", "RushJarEquippedConnection", "RushJarUnequippedConnection" }) do if _G[name] then _G[name]:Disconnect() _G[name] = nil end end local oldTool = Backpack:FindFirstChild("Rush Jar") or (Player.Character and Player.Character:FindFirstChild("Rush Jar")) if oldTool then oldTool:Destroy() end local tool = Instance.new("Tool") tool.Name = "Rush Jar" tool.TextureId = "rbxassetid://139334452985607" tool.RequiresHandle = true tool.CanBeDropped = false local handle = Instance.new("Part") handle.Name = "Handle" handle.Size = Vector3.new(0.2, 0.2, 0.2) handle.Transparency = 1 handle.CanCollide = false handle.CanTouch = false handle.CanQuery = false handle.Massless = true handle.Parent = tool local jar = Instance.new("Part") jar.Name = "JarVisual" jar.Size = Vector3.new(1, 1, 1) jar.Transparency = 0.3 jar.Color = Color3.fromRGB(248, 248, 248) jar.Material = Enum.Material.Glass jar.CanCollide = false jar.CanTouch = false jar.CanQuery = false jar.Massless = true jar.Parent = tool local jarMesh = Instance.new("SpecialMesh") jarMesh.MeshType = Enum.MeshType.FileMesh jarMesh.MeshId = Jarmeshbro jarMesh.Scale = jarsize jarMesh.Parent = jar local jarWeld = Instance.new("WeldConstraint") jarWeld.Part0 = handle jarWeld.Part1 = jar jarWeld.Parent = handle jar.CFrame = handle.CFrame * jaroffset tool.Grip = CFrame.new(0, -0.1, -0.15) tool.Parent = Backpack local function createParticles(root, scale) local attachment = Instance.new("Attachment") attachment.Name = "RushAttachment" attachment.Parent = root local blackTrail = Instance.new("ParticleEmitter") blackTrail.Name = "BlackTrail" blackTrail.Texture = blackaura blackTrail.Enabled = true blackTrail.EmissionDirection = Enum.NormalId.Top blackTrail.Lifetime = NumberRange.new(0.4) blackTrail.Rate = 100 blackTrail.Rotation = NumberRange.new(-360, 360) blackTrail.RotSpeed = NumberRange.new(335533, 32323232) blackTrail.Speed = NumberRange.new(15 * scale) blackTrail.SpreadAngle = Vector2.new(360, 360) blackTrail.Brightness = 1 blackTrail.Color = ColorSequence.new(Color3.fromRGB(0, 7, 91)) blackTrail.LightEmission = 0 blackTrail.LightInfluence = 0 blackTrail.Orientation = Enum.ParticleOrientation.FacingCamera blackTrail.Size = NumberSequence.new(5 * scale) blackTrail.ZOffset = -1 blackTrail.Parent = attachment return attachment end local function createRush(position, scale) local model = Instance.new("Model") model.Name = "LocalRush" local root = Instance.new("Part") root.Name = "RushRoot" root.Size = Vector3.new(0.2, 0.2, 0.2) root.Transparency = 1 root.Anchored = true root.CanCollide = false root.CanTouch = false root.CanQuery = false root.CastShadow = false root.CFrame = CFrame.new(position) root.Parent = model model.PrimaryPart = root createParticles(root, scale) local faceGui = Instance.new("BillboardGui") faceGui.Name = "RushFace" faceGui.Adornee = root faceGui.Size = UDim2.fromScale(5 * scale, 5 * scale) faceGui.StudsOffset = Vector3.new(0, 0, 0) faceGui.AlwaysOnTop = true faceGui.LightInfluence = 0 faceGui.Parent = root local face = Instance.new("ImageLabel") face.Name = "Face" face.BackgroundTransparency = 1 face.Size = UDim2.fromScale(1, 1) face.Image = rushesface face.ScaleType = Enum.ScaleType.Fit face.Parent = faceGui model.Parent = workspace return model end local function updateSmallRush() if not equipped or not smallRush or not smallRush.Parent then return end if smallRush.PrimaryPart then smallRush:PivotTo( jar.CFrame * CFrame.new(0, 0, -0.2) ) end end local function playReleaseSound(parent) local soundEffect = Instance.new("Sound") soundEffect.Name = "RushIScOMING" soundEffect.SoundId = sound soundEffect.Volume = 1 soundEffect.RollOffMaxDistance = 150 soundEffect.RollOffMinDistance = 10 soundEffect.Parent = parent soundEffect:Play() Debris:AddItem(soundEffect, 10) end local function moveRush(rush, targetPosition) if not rush or not rush.PrimaryPart then return end local root = rush.PrimaryPart local flooroffset = 4 local rayheight = 50 local SPEED = rushspeed local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Exclude rayParams.FilterDescendantsInstances = { rush, Player.Character } local function getFloorPosition(position) local origin = Vector3.new( position.X, position.Y + rayheight, position.Z ) local result = workspace:Raycast( origin, Vector3.new(0, -rayheight * 2, 0), rayParams ) if result then return result.Position + Vector3.new(0, flooroffset, 0) end return position end local startPosition = getFloorPosition(root.Position) root.CFrame = CFrame.new(startPosition) local destination = getFloorPosition(targetPosition) local path = PathfindingService:CreatePath({ AgentRadius = 2, AgentHeight = 5, AgentCanJump = true, AgentCanClimb = true, WaypointSpacing = 6 }) local success = pcall(function() path:ComputeAsync(startPosition, destination) end) local waypoints = {} if success and path.Status == Enum.PathStatus.Success then waypoints = path:GetWaypoints() else waypoints = { {Position = destination} } end for _, waypoint in ipairs(waypoints) do if not rush.Parent or not root.Parent then return end local floorPosition = getFloorPosition(waypoint.Position) local offset = floorPosition - root.Position if offset.Magnitude > 0.1 then local direction = Vector3.new( offset.X, 0, offset.Z ) local duration = offset.Magnitude / SPEED local tween = TweenService:Create( root, TweenInfo.new( duration, Enum.EasingStyle.Linear ), { CFrame = CFrame.lookAt( floorPosition, floorPosition + ( direction.Magnitude > 0 and direction.Unit or Vector3.new(0, 0, -1) ) ) } ) tween:Play() tween.Completed:Wait() end end end local function releaseRush() if processing or not equipped then return end local character = Player.Character local humanoidRoot = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRoot or tool.Parent ~= character then return end processing = true if smallRush then smallRush:Destroy() smallRush = nil end smallRush = createRush( jar.Position, 0.12 ) local direction = humanoidRoot.CFrame.LookVector local startPosition = humanoidRoot.Position + direction * 5 + Vector3.new(0, 1.5, 0) local targetPosition = humanoidRoot.Position + direction * rushummmhowmuchhegoes local rush = createRush(startPosition, 1) currentRush = rush playReleaseSound(rush.PrimaryPart) task.spawn(function() moveRush(rush, targetPosition) end) task.delay(Rushseconds, function() if currentRush == rush then currentRush = nil end if rush and rush.Parent then rush:Destroy() end processing = false end) end _G.RushJarEquippedConnection = tool.Equipped:Connect(function() equipped = true if not processing and not smallRush then smallRush = createRush( jar.Position, 0.12 ) end if followConnection then followConnection:Disconnect() end followConnection = RunService.RenderStepped:Connect(updateSmallRush) end) _G.RushJarUnequippedConnection = tool.Unequipped:Connect(function() equipped = false if followConnection then followConnection:Disconnect() followConnection = nil end if smallRush then smallRush:Destroy() smallRush = nil end end) _G.RushJarActivatedConnection = tool.Activated:Connect(releaseRush) tool.Destroying:Connect(function() equipped = false if followConnection then followConnection:Disconnect() followConnection = nil end if smallRush then smallRush:Destroy() smallRush = nil end if currentRush then currentRush:Destroy() currentRush = nil end end)