local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Debris = game:GetService("Debris") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local bootsOn = false local sneaking = false local iceCooldown = 0 local lastHealth = nil local damageCooldown = 1.5 local lastDamageTime = 0 -- TOOL local tool = Instance.new("Tool") tool.Name = "FrostWalkerBoots" tool.TextureId = "rbxassetid://97625418048677" tool.RequiresHandle = true tool.CanBeDropped = true local handle = Instance.new("Part") handle.Name = "Handle" handle.Size = Vector3.new(1,1,1) handle.Transparency = 0.5 handle.Material = Enum.Material.Neon handle.Color = Color3.fromRGB(0,255,255) handle.Parent = tool tool.Parent = player:WaitForChild("Backpack") -- STUD TEXTURE local function addStudTexture(part) for _,face in ipairs({Enum.NormalId.Top, Enum.NormalId.Bottom}) do local t = Instance.new("Texture") t.Texture = "rbxassetid://1095708" t.Face = face t.StudsPerTileU = 4 t.StudsPerTileV = 4 t.Parent = part end end -- STORAGE local bootParts = {} local function weld(a,b) local w = Instance.new("WeldConstraint") w.Part0 = a w.Part1 = b w.Parent = a end -- CREATE BOOT ON LIMB (R15) local function createBootOnLimb(limb) if not limb then return end local boot = Instance.new("Part") boot.Size = limb.Size + Vector3.new(0.15,0.15,0.15) boot.Material = Enum.Material.Plastic boot.Color = Color3.fromRGB(50,150,255) boot.CanCollide = false boot.CFrame = limb.CFrame * CFrame.new(0,-0.1,0) addStudTexture(boot) boot.Parent = limb.Parent weld(boot, limb) table.insert(bootParts, boot) local glint = Instance.new("Part") glint.Size = boot.Size + Vector3.new(0.02,0.02,0.02) glint.Material = Enum.Material.ForceField glint.Transparency = 0.3 glint.Color = Color3.fromRGB(160,0,255) glint.CanCollide = false glint.CFrame = boot.CFrame glint.Parent = limb.Parent weld(glint, boot) table.insert(bootParts, glint) end -- CREATE BOOTS local function createBoots(character) local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return end -- R6 if humanoid.RigType == Enum.HumanoidRigType.R6 then for _,name in ipairs({"Left Leg","Right Leg"}) do local leg = character:FindFirstChild(name) if leg then createBootOnLimb(leg) end end -- R15 else for _,name in ipairs({ "LeftLowerLeg","LeftFoot", "RightLowerLeg","RightFoot" }) do createBootOnLimb(character:FindFirstChild(name)) end end end local function removeBoots() for _,p in ipairs(bootParts) do if p then p:Destroy() end end table.clear(bootParts) end -- HEALTH BOOST local function addHealthBoost(h) h.MaxHealth += 40 h.Health += 40 end local function removeHealthBoost(h) h.MaxHealth -= 40 if h.Health > h.MaxHealth then h.Health = h.MaxHealth end end -- TOOL TOGGLE tool.Activated:Connect(function() local char = player.Character local hum = char and char:FindFirstChildOfClass("Humanoid") bootsOn = not bootsOn if bootsOn then createBoots(char) if hum then addHealthBoost(hum) end else removeBoots() if hum then removeHealthBoost(hum) end end end) -- ICE WALK RunService.Heartbeat:Connect(function(dt) if not bootsOn then return end iceCooldown -= dt if iceCooldown > 0 then return end local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return end local params = RaycastParams.new() params.FilterDescendantsInstances = {char} params.FilterType = Enum.RaycastFilterType.Blacklist local ray = workspace:Raycast(root.Position, Vector3.new(0,-6,0), params) if ray and ray.Instance and not ray.Instance.CanCollide then local gx = math.floor(root.Position.X/3)*3 local gz = math.floor(root.Position.Z/3)*3 local ice = Instance.new("Part") ice.Size = Vector3.new(3,3,3) ice.Position = Vector3.new(gx+1.5, ray.Position.Y+1.5, gz+1.5) ice.Anchored = true ice.CanCollide = true ice.Material = Enum.Material.Plastic ice.Color = Color3.fromRGB(160,230,255) ice.Reflectance = 0.4 addStudTexture(ice) ice.Parent = workspace Debris:AddItem(ice,4) iceCooldown = 0.2 end end) -- DAMAGE FEEDBACK RunService.Heartbeat:Connect(function() local char = player.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if not hum then return end if not lastHealth then lastHealth = hum.Health return end if hum.Health < lastHealth and tick()-lastDamageTime > damageCooldown then lastDamageTime = tick() local h = Instance.new("Highlight") h.FillColor = Color3.new(1,0,0) h.FillTransparency = 0.5 h.OutlineTransparency = 1 h.Parent = char local s = Instance.new("Sound") s.SoundId = "rbxassetid://102904154168830" s.Volume = 1 s.Parent = char:FindFirstChild("HumanoidRootPart") s:Play() Debris:AddItem(h,0.3) Debris:AddItem(s,2) end lastHealth = hum.Health end) -- DEATH DROP player.CharacterAdded:Connect(function(char) bootsOn = false removeBoots() char:WaitForChild("Humanoid").Died:Connect(function() tool.Parent = workspace handle.CFrame = char.HumanoidRootPart.CFrame handle.CanCollide = true local spin = Instance.new("BodyAngularVelocity") spin.AngularVelocity = Vector3.new(0,6,0) spin.MaxTorque = Vector3.new(0,math.huge,0) spin.Parent = handle end) end)