local CUSTOM_SPINDASH_ID = 91212588897753 local ASSET_ID = 137500887840682 local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local currentSpindashModel = nil local spindashSpinConnection = nil local function stopSpindashFollow() if spindashSpinConnection then spindashSpinConnection:Disconnect() spindashSpinConnection = nil end if currentSpindashModel then currentSpindashModel:Destroy() currentSpindashModel = nil end local playersFolder = workspace:FindFirstChild("Players") local playerFolder = playersFolder and playersFolder:FindFirstChild(player.Name) local spindashFolder = playerFolder and playerFolder:FindFirstChild("Spindash") local originalPart = spindashFolder and spindashFolder:FindFirstChild("Spindash") if originalPart then originalPart.Transparency = 0 end end local function startSpindashFollow(spindashPart) if spindashSpinConnection then spindashSpinConnection:Disconnect() end spindashSpinConnection = RunService.Heartbeat:Connect(function() if not currentSpindashModel or not spindashPart or not spindashPart.Parent then stopSpindashFollow() return end local targetCFrame = spindashPart.CFrame if currentSpindashModel:IsA("BasePart") then currentSpindashModel.CFrame = targetCFrame else currentSpindashModel:PivotTo(targetCFrame) end end) end local function replaceSpindashMesh() local playersFolder = workspace:FindFirstChild("Players") if not playersFolder then return end local playerFolder = playersFolder:FindFirstChild(player.Name) if not playerFolder then return end local spindashFolder = playerFolder:FindFirstChild("Spindash") if not spindashFolder then return end local originalPart = spindashFolder:FindFirstChild("Spindash") if originalPart and originalPart:IsA("BasePart") and not currentSpindashModel then local ok, objects = pcall(game.GetObjects, game, "rbxassetid://" .. CUSTOM_SPINDASH_ID) if ok and objects and #objects > 0 then local newMesh = objects[1]:Clone() for _, part in ipairs(newMesh:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false part.Anchored = false part.Massless = true end end newMesh.Parent = originalPart.Parent currentSpindashModel = newMesh originalPart.Transparency = 1 for _, effect in ipairs(originalPart:GetDescendants()) do if effect:IsA("BasePart") then effect.Transparency = 1 elseif effect:IsA("PointLight") or effect:IsA("SpotLight") or effect:IsA("SurfaceLight") then effect.Enabled = false elseif effect:IsA("ParticleEmitter") or effect:IsA("Trail") or effect:IsA("Beam") then effect.Enabled = false end end startSpindashFollow(originalPart) end end end RunService.Heartbeat:Connect(function() local playersFolder = workspace:FindFirstChild("Players") local playerFolder = playersFolder and playersFolder:FindFirstChild(player.Name) local spindashFolder = playerFolder and playerFolder:FindFirstChild("Spindash") if spindashFolder and spindashFolder:FindFirstChild("Spindash") then if not currentSpindashModel then replaceSpindashMesh() end else if currentSpindashModel then stopSpindashFollow() end end end) local function loadAsset(id) local ok, objects = pcall(game.GetObjects, game, "rbxassetid://" .. id) if not ok or not objects or #objects == 0 then return nil end return objects[1]:Clone() end local function getPlayerModel() local playersFolder = workspace:FindFirstChild("Players") if playersFolder then return playersFolder:FindFirstChild(player.Name) end return nil end local function isLastLife() local model = getPlayerModel() return model and model:GetAttribute("LastLife") == true end local function setupCharacter(char) local originalParts = {} for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then table.insert(originalParts, v) end end for _, part in ipairs(originalParts) do part.Transparency = 1 end local playersFolder = workspace:FindFirstChild("Players") local oldVisual = playersFolder and playersFolder:FindFirstChild(player.Name) if oldVisual then for _, v in ipairs(oldVisual:GetDescendants()) do if v:IsA("BasePart") then v.Transparency = 1 end end end local mdl = loadAsset(ASSET_ID) if not mdl then return end if oldVisual then mdl.Parent = oldVisual else mdl.Parent = char end task.wait(0.5) local lastLifeActive = isLastLife() if lastLifeActive then local brokenFolder = mdl:FindFirstChild("Broken") if brokenFolder then for _, part in ipairs(brokenFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 0 end end end local circularFolder = mdl:FindFirstChild("Circular") if circularFolder then for _, part in ipairs(circularFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 1 end end end end local hrp = char:FindFirstChild("HumanoidRootPart") local newHrp = mdl:FindFirstChild("HumanoidRootPart") if not hrp or not newHrp then mdl:Destroy() return end newHrp.Anchored = true newHrp.Transparency = 1 local existingHum = mdl:FindFirstChildOfClass("Humanoid") if existingHum then existingHum:Destroy() end local existingAnim = mdl:FindFirstChildOfClass("Animator") if existingAnim then existingAnim:Destroy() end for _, v in ipairs(mdl:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end newHrp.CFrame = hrp.CFrame task.wait(0.1) newHrp.Transparency = 1 local syncConn syncConn = RunService.Stepped:Connect(function() if not char.Parent or not hrp.Parent or not newHrp.Parent then if syncConn then syncConn:Disconnect() end return end newHrp.CFrame = hrp.CFrame end) local function monitorLastLife() while char and char.Parent do local lastLifeActive = isLastLife() local brokenFolder = mdl:FindFirstChild("Broken") local circularFolder = mdl:FindFirstChild("Circular") if lastLifeActive then if brokenFolder then for _, part in ipairs(brokenFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 0 end end end if circularFolder then for _, part in ipairs(circularFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 1 end end end else if brokenFolder then for _, part in ipairs(brokenFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 1 end end end if circularFolder then for _, part in ipairs(circularFolder:GetDescendants()) do if part:IsA("BasePart") then part.Transparency = 0 end end end end task.wait(0.5) end end task.spawn(monitorLastLife) end task.spawn(function() while true do local playersFolder = workspace:FindFirstChild("Players") if playersFolder then local playerFolder = playersFolder:FindFirstChild(player.Name) if playerFolder then local defaultFolder = playerFolder:FindFirstChild("Default") if defaultFolder then local waist = defaultFolder:FindFirstChild("Waist") local hrpDefault = defaultFolder:FindFirstChild("HumanoidRootPart") if waist and waist:IsA("BasePart") then waist.Transparency = 1 end if hrpDefault and hrpDefault:IsA("BasePart") then hrpDefault.Transparency = 1 end end end end task.wait(0.1) end end) if character then setupCharacter(character) end player.CharacterAdded:Connect(function(newChar) character = newChar setupCharacter(newChar) end)