ADVERTISEMENTREMOVE ADS
ARREST ALL Script
50,910 views
Description
This script will arrest all the players on the criminal team
MUST BE ON GUARD TEAM
PLAYERS CANNOT BE NEAR CRIMINAL SPAWN
Features:
- Arrest all
Tested with
ADVERTISEMENTREMOVE ADS
225 Lines • 7.84 KiB
-- Services and Variables
local players = game:GetService("Players")
local replicatedStorage = game:GetService("ReplicatedStorage")
local workspace = game:GetService("Workspace")
local starterGui = game:GetService("StarterGui")
local teams = game:GetService("Teams")
local localPlayer = players.LocalPlayer
local eventsFolder = replicatedStorage:FindFirstChild("Events")
local arrestEvent = eventsFolder and eventsFolder:FindFirstChild("Arrest")
-- GUI Elements
local screenGui = Instance.new("ScreenGui", localPlayer:WaitForChild("PlayerGui"))
local mainFrame = Instance.new("Frame")
local titleBar = Instance.new("TextLabel")
local minimizeButton = Instance.new("TextButton")
local startButton = Instance.new("TextButton")
local stopButton = Instance.new("TextButton") -- New Stop button
-- Styling and Layout
screenGui.Name = "ArrestSequenceGUI"
screenGui.ResetOnSpawn = false
-- Main Frame
mainFrame.Size = UDim2.new(0, 250, 0, 100)
mainFrame.Position = UDim2.new(0.5, -125, 0.5, -50)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
mainFrame.Visible = true
mainFrame.Parent = screenGui
mainFrame.Active = true
mainFrame.Draggable = true
-- Title Bar
titleBar.Size = UDim2.new(1, 0, 0, 30)
titleBar.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
titleBar.BorderSizePixel = 0
titleBar.Text = "Arrest Sequence"
titleBar.TextColor3 = Color3.fromRGB(255, 255, 255)
titleBar.Font = Enum.Font.SourceSansBold
titleBar.TextSize = 18
titleBar.Parent = mainFrame
-- Minimize Button
minimizeButton.Size = UDim2.new(0, 25, 0, 25)
minimizeButton.Position = UDim2.new(1, -30, 0, 2)
minimizeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
minimizeButton.Text = "-"
minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeButton.Font = Enum.Font.SourceSansBold
minimizeButton.TextSize = 18
minimizeButton.Parent = mainFrame
-- Start Button
startButton.Size = UDim2.new(0.8, 0, 0.5, 0)
startButton.Position = UDim2.new(0.1, 0, 0.4, 0)
startButton.Text = "Start Arrest Sequence"
startButton.BackgroundColor3 = Color3.fromRGB(50, 150, 250)
startButton.TextColor3 = Color3.fromRGB(255, 255, 255)
startButton.Font = Enum.Font.SourceSans
startButton.TextSize = 16
startButton.BorderSizePixel = 0
startButton.Parent = mainFrame
startButton.Visible = true
-- Stop Button
stopButton.Size = UDim2.new(0.8, 0, 0.5, 0)
stopButton.Position = UDim2.new(0.1, 0, 0.4, 0)
stopButton.Text = "Stop Arrest Sequence"
stopButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
stopButton.TextColor3 = Color3.fromRGB(255, 255, 255)
stopButton.Font = Enum.Font.SourceSans
stopButton.TextSize = 16
stopButton.BorderSizePixel = 0
stopButton.Parent = mainFrame
stopButton.Visible = false
-- Notification Function
local function notify(message)
starterGui:SetCore("ChatMakeSystemMessage", {
Text = message;
Color = Color3.new(0, 1, 0);
Font = Enum.Font.SourceSansBold;
TextSize = 18;
})
end
-- Toggle for Minimizing/Maximizing the GUI
local isMinimized = false
minimizeButton.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
startButton.Visible = not isMinimized and not stopButton.Visible
mainFrame.Size = isMinimized and UDim2.new(0, 250, 0, 30) or UDim2.new(0, 250, 0, 100)
end)
-- Gather all Criminals Spawn locations
local spawnLocations = {}
local spawnFolder = workspace:FindFirstChild("Criminals Spawn")
if spawnFolder then
for _, spawnPoint in pairs(spawnFolder:GetDescendants()) do
if spawnPoint:IsA("BasePart") then
table.insert(spawnLocations, spawnPoint.Position)
end
end
end
-- Define the range around the spawn points to skip arrests
local spawnRange = 10
-- Variable to control stopping the sequence
local shouldStop = false
-- Function to equip the cuffs with refreshed character and backpack references
local function equipCuffs()
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local backpack = localPlayer:FindFirstChild("Backpack") or character:WaitForChild("Backpack")
local cuffs = backpack:FindFirstChild("Handcuffs")
if cuffs then
cuffs.Parent = character
notify("Handcuffs equipped.")
return true
else
notify("Handcuffs not found in Backpack.")
return false
end
end
-- Function to de-equip cuffs
local function unequipCuffs()
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local backpack = localPlayer:FindFirstChild("Backpack") or character:WaitForChild("Backpack")
local cuffs = character:FindFirstChild("Handcuffs")
if cuffs then
cuffs.Parent = backpack
notify("Handcuffs de-equipped.")
end
end
-- Function to check if the target is near any spawn point
local function isNearSpawn(targetPosition)
for _, spawnPosition in ipairs(spawnLocations) do
if (targetPosition - spawnPosition).Magnitude <= spawnRange then
return true
end
end
return false
end
-- Function to manipulate target position temporarily and attempt arrest with delay
local function attemptArrestWithDelay(targetPlayer)
if shouldStop then return end -- Stop the sequence if requested
local targetCharacter = targetPlayer.Character
if targetCharacter then
local originalPosition = targetCharacter:GetPivot().Position
if isNearSpawn(originalPosition) then
notify(targetPlayer.Name .. " is too close to the spawn area; skipping arrest.")
return
end
local randomOffset = Vector3.new(math.random(-2, 2), 0, math.random(-2, 2))
targetCharacter:SetPrimaryPartCFrame(localPlayer.Character:GetPivot() * CFrame.new(0, 0, -5) + randomOffset)
local success = arrestEvent:InvokeServer(targetPlayer)
if success == true then
notify("Successfully arrested " .. targetPlayer.Name)
else
notify("Arrest failed: " .. tostring(success))
end
targetCharacter:SetPrimaryPartCFrame(CFrame.new(originalPosition))
task.wait(6)
else
notify("Could not locate character for " .. targetPlayer.Name)
end
end
-- Main Function to Execute Arrest Sequence
local function executeArrestSequence()
if equipCuffs() then
shouldStop = false
stopButton.Visible = true -- Show the Stop button
startButton.Visible = false -- Hide the Start button
for _, player in pairs(players:GetPlayers()) do
if player.Team and player.Team.Name == "Criminals" then
attemptArrestWithDelay(player)
if shouldStop then break end -- Break if stop button is clicked
end
end
unequipCuffs()
notify("Arrest sequence completed. Click the button to restart.")
stopButton.Visible = false -- Hide the Stop button
startButton.Visible = true -- Show the Start button
else
notify("Could not equip handcuffs.")
end
end
-- Check if the player is on the Guards team before allowing the arrest sequence to run
local function checkGuardsTeam()
if localPlayer.Team and localPlayer.Team.Name == "Guards" then
executeArrestSequence()
else
notify("You must be on the Guards team to run the arrest sequence.")
startButton.Visible = true
end
end
-- Button Click Events
startButton.MouseButton1Click:Connect(function()
checkGuardsTeam() -- Ensure the player is on the Guards team before running the arrest sequence
end)
stopButton.MouseButton1Click:Connect(function()
shouldStop = true
stopButton.Visible = false -- Hide the Stop button
startButton.Visible = true -- Show the Start button
notify("Arrest sequence stopped.")
end)
ADVERTISEMENTREMOVE ADS
ADVERTISEMENTREMOVE ADS





Comments
does it work with velocity?