-- Admin Debug (CLIENTSIDED) -- walkspeed changer removed -- AutoVote: when GameProperties.State == "SEC" fire vote once (toggle V). -- ESP: Highlight all players, dominant bodypart color. -- Anti-duplicate + Unload key (M) print("SCRIPT ROOT (client)") local function MAIN() -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer if not LocalPlayer then warn("No LocalPlayer, exiting.") return end -- ========================= -- Admin allowlist -- ========================= local ALLOWED_USERIDS = { 8740501, -- your id } local function isAllowed(uid) for _, id in ipairs(ALLOWED_USERIDS) do if uid == id then return true end end return false end if not isAllowed(LocalPlayer.UserId) then warn("Not allowed, exiting.") return end print("Allowed ✅") -- ========================= -- Anti-duplicate: unload old copies -- ========================= local SCRIPT_TAG = "ADMIN_CLIENT_WS_AUTOVOTE_ESP_V4" do local old = LocalPlayer:FindFirstChild(SCRIPT_TAG) if old and old:IsA("BindableEvent") then pcall(function() old:Fire() end) pcall(function() old:Destroy() end) end local control = Instance.new("BindableEvent") control.Name = SCRIPT_TAG control.Parent = LocalPlayer end local ControlEvent = LocalPlayer:FindFirstChild(SCRIPT_TAG) -- ========================= -- Maid (cleanup) -- ========================= local Maid = {} Maid.__index = Maid function Maid.new() return setmetatable({ tasks = {} }, Maid) end function Maid:Give(t) self.tasks[#self.tasks + 1] = t return t end function Maid:Clean() for i = #self.tasks, 1, -1 do local t = self.tasks[i] self.tasks[i] = nil local tt = typeof(t) if tt == "RBXScriptConnection" then pcall(function() t:Disconnect() end) elseif tt == "Instance" then pcall(function() t:Destroy() end) elseif tt == "function" then pcall(t) end end end local maid = Maid.new() local running = true local function Alive() return running == true end -- ========================= -- Config / Keys -- ========================= local UNLOAD_KEY = Enum.KeyCode.M local AUTOVOTE_TOGGLE_KEY = Enum.KeyCode.V -- WalkSpeed behavior local BASE_WS = 45 local STEP_ADD = 3 local MAX_STACK_WS = 55 local BUFF_SECONDS = 3 local BIG_HIT_THRESHOLD = 10 local BIG_HIT_WS = 59 -- AutoVote local SelectedMorph = "Silver" local autoVoteEnabled = true local votedThisSEC = false -- ESP local ESP_TAG = "ADMIN_DEBUG_ESP_HL" -- ========================= -- Helpers -- ========================= local function getHumanoid() local char = LocalPlayer.Character if not char then return nil end return char:FindFirstChildOfClass("Humanoid") end local function fireVote(morphName) local remotes = ReplicatedStorage:WaitForChild("Remotes", 10) if not remotes then return end local voted = remotes:WaitForChild("Voted", 10) if not voted then return end voted:FireServer(morphName) end local function findStateValue() local gp = Workspace:FindFirstChild("GameProperties") if gp then local s = gp:FindFirstChild("State") if s and s:IsA("ValueBase") then return s end end for _, d in ipairs(Workspace:GetDescendants()) do if d.Name == "GameProperties" then local s = d:FindFirstChild("State") if s and s:IsA("ValueBase") then return s end end end return nil end -- ========================= -- AutoVote (SEC) -- ========================= local stateObj = findStateValue() if stateObj then local function tryVote() if not Alive() or not autoVoteEnabled then return end local v = tostring(stateObj.Value) if v == "SEC" then if not votedThisSEC then votedThisSEC = true fireVote(SelectedMorph) end else votedThisSEC = false end end maid:Give(stateObj.Changed:Connect(tryVote)) maid:Give(RunService.Heartbeat:Connect(tryVote)) else warn("AutoVote: GameProperties.State not found (skipping).") end -- ========================= -- ESP (dominant bodypart color) -- ========================= local function dominantColor(character) local counts = {} for _, inst in ipairs(character:GetDescendants()) do if inst:IsA("BasePart") then local c = inst.Color local key = string.format("%d,%d,%d", math.floor(c.R * 255 + 0.5), math.floor(c.G * 255 + 0.5), math.floor(c.B * 255 + 0.5) ) local entry = counts[key] if entry then entry.count = entry.count + 1 else counts[key] = { count = 1, color = c } end end end local best = nil for _, entry in pairs(counts) do if (not best) or (entry.count > best.count) then best = entry end end return best and best.color or Color3.new(1, 1, 1) end local function applyESPToCharacter(char) task.wait(0.15) if not Alive() then return end if not char or not char.Parent then return end local hl = char:FindFirstChild(ESP_TAG) if not hl then hl = Instance.new("Highlight") hl.Name = ESP_TAG hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.FillTransparency = 0.6 hl.OutlineTransparency = 0 hl.Parent = char end hl.Adornee = char local dom = dominantColor(char) hl.FillColor = dom hl.OutlineColor = dom end local function applyESP(plr) local function onChar(char) applyESPToCharacter(char) end if plr.Character then onChar(plr.Character) end maid:Give(plr.CharacterAdded:Connect(onChar)) end for _, p in ipairs(Players:GetPlayers()) do applyESP(p) end maid:Give(Players.PlayerAdded:Connect(applyESP)) local function removeAllESP() for _, p in ipairs(Players:GetPlayers()) do local c = p.Character if c then local hl = c:FindFirstChild(ESP_TAG) if hl then pcall(function() hl:Destroy() end) end end end end -- ========================= -- Unload (M) -- ========================= local function Unload() if not Alive() then return end running = false -- remove ESP removeAllESP() -- cleanup maid:Clean() -- remove control event if ControlEvent then pcall(function() ControlEvent:Destroy() end) end print("Unloaded ✅") end -- allow next run to unload this one if ControlEvent then maid:Give(ControlEvent.Event:Connect(Unload)) end -- Keybinds maid:Give(UserInputService.InputBegan:Connect(function(input, gpe) if gpe or not Alive() then return end if input.KeyCode == AUTOVOTE_TOGGLE_KEY then autoVoteEnabled = not autoVoteEnabled print("AutoVote:", autoVoteEnabled and "ON" or "OFF") elseif input.KeyCode == UNLOAD_KEY then Unload() end end)) print("Fully Loaded ✅") end local ok, err = xpcall(MAIN, debug.traceback) if not ok then warn("SCRIPT CRASHED:\n" .. tostring(err)) end