
Keyless

-- 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
El script parece bastante bueno,aunque estaría bien que le añadas y corrigas más cosas,si usarás IA te recomiendo mucho usar Claude,de ser posible, puedes explicarme más como funciona el script?