
Key Required VerifiedUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local player = Players.LocalPlayer
local CLIMB_SPEED = 12
local RAY_DISTANCE = 2.5
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CompactSpiderHax"
screenGui.ResetOnSpawn = false
pcall(function() screenGui.Parent = CoreGui end)
if not screenGui.Parent then screenGui.Parent = player:WaitForChild("PlayerGui") end
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 240, 0, 100)
mainFrame.Position = UDim2.new(0.5, -120, 0.5, -50)
mainFrame.BackgroundColor3 = Color3.fromRGB(235, 242, 250)
mainFrame.BorderSizePixel = 1
mainFrame.BorderColor3 = Color3.fromRGB(130, 165, 200)
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 24)
titleBar.BackgroundColor3 = Color3.fromRGB(185, 215, 240)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -35, 1, 0)
titleLabel.Position = UDim2.new(0, 8, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "cool spider script for cool people"
titleLabel.TextColor3 = Color3.fromRGB(30, 60, 90)
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Font = Enum.Font.SourceSans
titleLabel.TextSize = 13
titleLabel.Parent = titleBar
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 32, 0, 16)
closeBtn.Position = UDim2.new(1, -36, 0, 4)
closeBtn.BackgroundColor3 = Color3.fromRGB(230, 90, 90)
closeBtn.BorderSizePixel = 1
closeBtn.BorderColor3 = Color3.fromRGB(170, 50, 50)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.TextSize = 12
closeBtn.Parent = titleBar
closeBtn.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
local injectButton = Instance.new("TextButton")
injectButton.Size = UDim2.new(0, 200, 0, 28)
injectButton.Position = UDim2.new(0.5, -100, 0, 34)
injectButton.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
injectButton.BorderSizePixel = 1
injectButton.BorderColor3 = Color3.fromRGB(160, 160, 160)
injectButton.Text = "Enable"
injectButton.TextColor3 = Color3.fromRGB(30, 30, 30)
injectButton.Font = Enum.Font.SourceSans
injectButton.TextSize = 14
injectButton.Parent = mainFrame
local checkboxFrame = Instance.new("Frame")
checkboxFrame.Size = UDim2.new(1, 0, 0, 24)
checkboxFrame.Position = UDim2.new(0, 0, 0, 68)
checkboxFrame.BackgroundTransparency = 1
checkboxFrame.Parent = mainFrame
local checkboxBtn = Instance.new("TextButton")
checkboxBtn.Size = UDim2.new(0, 12, 0, 12)
checkboxBtn.Position = UDim2.new(0, 20, 0.5, -6)
checkboxBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
checkboxBtn.BorderSizePixel = 1
checkboxBtn.BorderColor3 = Color3.fromRGB(140, 170, 200)
checkboxBtn.Text = "✓"
checkboxBtn.TextColor3 = Color3.fromRGB(50, 120, 200)
checkboxBtn.Font = Enum.Font.SourceSansBold
checkboxBtn.TextSize = 11
checkboxBtn.Parent = checkboxFrame
local checkboxLabel = Instance.new("TextLabel")
checkboxLabel.Size = UDim2.new(0, 100, 1, 0)
checkboxLabel.Position = UDim2.new(0, 38, 0, 0)
checkboxLabel.BackgroundTransparency = 1
checkboxLabel.Text = "Add cool eyeglasses"
checkboxLabel.TextColor3 = Color3.fromRGB(40, 60, 80)
checkboxLabel.TextXAlignment = Enum.TextXAlignment.Left
checkboxLabel.Font = Enum.Font.SourceSans
checkboxLabel.TextSize = 12
checkboxLabel.Parent = checkboxFrame
local watermarkLabel = Instance.new("TextLabel")
watermarkLabel.Size = UDim2.new(0, 100, 1, 0)
watermarkLabel.Position = UDim2.new(1, -115, 0, 0)
watermarkLabel.BackgroundTransparency = 1
watermarkLabel.Text = "made by tuxx"
watermarkLabel.TextColor3 = Color3.fromRGB(140, 150, 160)
watermarkLabel.TextXAlignment = Enum.TextXAlignment.Right
watermarkLabel.Font = Enum.Font.SourceSansItalic
watermarkLabel.TextSize = 9
watermarkLabel.Parent = checkboxFrame
local useGlasses = true
checkboxBtn.MouseButton1Click:Connect(function()
useGlasses = not useGlasses
if useGlasses then
checkboxBtn.Text = "✓"
else
checkboxBtn.Text = ""
end
end)
local isFeatureEnabled = false
local spiderConnection = nil
local bodyVelocity = nil
local function removeGlasses(character)
if character then
local oldGlasses = character:FindFirstChild("CoolGlasses")
if oldGlasses then oldGlasses:Destroy() end
end
end
local function addGlasses(character, head)
removeGlasses(character)
local glasses = Instance.new("Part")
glasses.Name = "CoolGlasses"
glasses.Size = Vector3.new(1, 0.5, 1)
glasses.CanCollide = false
glasses.Massless = true
local mesh = Instance.new("SpecialMesh")
mesh.MeshId = "rbxassetid://1577360"
mesh.TextureId = "rbxassetid://1577349"
mesh.Scale = Vector3.new(1.05, 1.05, 1.05)
mesh.Parent = glasses
local weld = Instance.new("Weld")
weld.Part0 = head
weld.Part1 = glasses
weld.C0 = CFrame.new(0, 0.18, -0.15)
weld.Parent = glasses
glasses.Parent = character
end
local function stopClimbing(character)
if bodyVelocity then
bodyVelocity:Destroy()
bodyVelocity = nil
end
if character and character.Parent then
for _, part in ipairs(character:GetChildren()) do
if part:IsA("BasePart") then part.CanCollide = true end
end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local rootJoint = character.HumanoidRootPart:FindFirstChild("RootJoint")
local animator = humanoid and humanoid:FindFirstChildOfClass("Animator")
if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Running) end
if rootJoint then rootJoint.Transform = CFrame.new() end
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do track:AdjustSpeed(1) end
end
end
end
local function cleanUp()
if spiderConnection then
spiderConnection:Disconnect()
spiderConnection = nil
end
if player.Character then
stopClimbing(player.Character)
removeGlasses(player.Character)
end
end
local function startSpider(character)
if spiderConnection then spiderConnection:Disconnect() end
local rootPart = character:WaitForChild("HumanoidRootPart", 10)
local humanoid = character:WaitForChild("Humanoid", 10)
local head = character:WaitForChild("Head", 10)
if not rootPart or not humanoid or not head then return end
humanoid.RequiresNeck = false
if useGlasses then addGlasses(character, head) end
local rootJoint = rootPart:WaitForChild("RootJoint", 5)
local animator = humanoid:WaitForChild("Animator", 5)
local isClimbing = false
spiderConnection = RunService.Heartbeat:Connect(function()
if not character or not character.Parent or not rootPart or not humanoid or not humanoid.Parent or humanoid.Health <= 0 then
cleanUp()
return
end
local isTouchingWall = false
if humanoid.MoveDirection.Magnitude > 0 then
local raycastOrigin = rootPart.Position
local raycastDirection = rootPart.CFrame.LookVector * RAY_DISTANCE
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {character}
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local raycastResult = workspace:Raycast(raycastOrigin, raycastDirection, raycastParams)
if raycastResult then
isTouchingWall = true
isClimbing = true
for _, part in ipairs(character:GetChildren()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
part.CanCollide = false
end
end
if not bodyVelocity then
bodyVelocity = Instance.new("LinearVelocity")
bodyVelocity.MaxForce = math.huge
bodyVelocity.VelocityConstraintMode = Enum.VelocityConstraintMode.Vector
bodyVelocity.Attachment0 = rootPart:FindFirstChildOfClass("Attachment") or Instance.new("Attachment", rootPart)
bodyVelocity.Parent = rootPart
end
bodyVelocity.VectorVelocity = Vector3.new(rootPart.AssemblyLinearVelocity.X, CLIMB_SPEED, rootPart.AssemblyLinearVelocity.Z)
rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
local pushBack = raycastResult.Normal * 0.1
rootPart.CFrame = CFrame.new(rootPart.Position + pushBack) * CFrame.lookAt(Vector3.new(), -raycastResult.Normal).Rotation
if rootJoint then
rootJoint.Transform = CFrame.Angles(math.rad(-90), math.rad(180), 0) * CFrame.Angles(math.rad(-12), 0, 0)
end
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
if track.Name:lower():find("fall") or track.Name:lower():find("jump") then
track:Stop()
else
track:AdjustSpeed(0)
end
end
end
else
if isClimbing then
local ledgeCheckOrigin = rootPart.Position + Vector3.new(0, 2, 0)
local ledgeCheckDirection = rootPart.CFrame.LookVector * RAY_DISTANCE
local ledgeResult = workspace:Raycast(ledgeCheckOrigin, ledgeCheckDirection, raycastParams)
if not ledgeResult and isClimbing then
isTouchingWall = false
rootPart.CFrame = rootPart.CFrame * CFrame.new(0, 3, -1.8)
humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end
end
end
if not isTouchingWall and isClimbing then
isClimbing = false
stopClimbing(character)
end
end)
end
injectButton.MouseButton1Click:Connect(function()
isFeatureEnabled = not isFeatureEnabled
if isFeatureEnabled then
injectButton.Text = "Disable"
injectButton.BackgroundColor3 = Color3.fromRGB(255, 220, 220)
injectButton.BorderColor3 = Color3.fromRGB(220, 100, 100)
if player.Character then task.spawn(startSpider, player.Character) end
else
injectButton.Text = "Enable"
injectButton.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
injectButton.BorderColor3 = Color3.fromRGB(160, 160, 160)
cleanUp()
end
end)
player.CharacterAdded:Connect(function(character)
if isFeatureEnabled then
task.spawn(startSpider, character)
end
end)No comments yet for this script.



