Skip to main content

Battle Admin Script | Slap

local cmd = args[1] table.remove(args, 1)

local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end

-- Command prefix local PREFIX = "!"

-- Command processing AdminRemote.OnServerEvent:Connect(function(plr, cmd, args) if not hasPermission(plr, cmd) then plr:SendNotification("No permission.") return end Slap battle admin script

local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- Remote event for client -> server communication local AdminRemote = Instance.new("RemoteEvent") AdminRemote.Name = "AdminCommand" AdminRemote.Parent = ReplicatedStorage

-- Function to find a player by partial name local function findPlayer(search) for _, plr in pairs(Players:GetPlayers()) do if string.sub(plr.Name:lower(), 1, #search) == search:lower() then return plr end end return nil end

-- Random direction and power local direction = Vector3.new( math.random(-100, 100), math.random(30, 80), math.random(-100, 100) ).unit local cmd = args[1] table

-- Slap command (core to Slap Battle) local function slapPlayer(admin, target) local character = target.Character if not character then return end

if slapCounts[victim][attacker] >= 5 then -- Send flying with extra power victim.Character.HumanoidRootPart.Velocity = Vector3.new(0, 300, 0) attacker:SendNotification("COMBO! +100 style points") slapCounts[victim][attacker] = 0 end end -- Rate limiting local commandCooldowns = {} local function checkCooldown(plr, cmd) local key = plr.UserId .. "_" .. cmd local last = commandCooldowns[key] if last and tick() - last < 1 then return false end commandCooldowns[key] = tick() return true end

local function hasPermission(plr, cmd) local rank = Admins[plr.UserId] if not rank then return false end for _, perm in pairs(Ranks[rank]) do if perm == cmd then return true end end return false end 3. Command Handler (Server Script) Place this inside ServerScriptService or ReplicatedStorage . cmd local last = commandCooldowns[key] if last and

-- Remove prefix and split local args = {} for word in message:sub(2):gmatch("%S+") do table.insert(args, word) end

if cmd == "slap" then if not args[1] then slapPlayer(plr, plr) else local target = findPlayer(args[1]) if target then slapPlayer(plr, target) end end elseif cmd == "megaslap" then local target = args[1] and findPlayer(args[1]) or plr if target and target.Character then target.Character.HumanoidRootPart.Velocity = Vector3.new(0, 200, 0) * 5 end elseif cmd == "god" then local target = args[1] and findPlayer(args[1]) or plr if target and target.Character then target.Character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) target.Character.Humanoid.BreakJointsOnDeath = false end elseif cmd == "unslap" then -- Reset velocity for all players for _, player in pairs(Players:GetPlayers()) do if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then player.Character.HumanoidRootPart.Velocity = Vector3.new(0,0,0) player.Character.HumanoidRootPart.AssemblyLinearVelocity = Vector3.new(0,0,0) end end elseif cmd == "resetmap" then -- Reset all map parts to original positions (depends on your map structure) for _, part in pairs(workspace.Map:GetChildren()) do if part:IsA("BasePart") and part:GetAttribute("originalCFrame") then part.CFrame = part:GetAttribute("originalCFrame") end end end end) Place this in StarterPlayerScripts .