1. --https://www.youtube.com/c/anto6666
  2. -- // Constants \\ --
  3. -- [ Services ] --
  4. local Services = setmetatable({}, {__index = function(Self, Index)
  5. local NewService = game.GetService(game, Index)
  6. if NewService then
  7. Self[Index] = NewService
  8. end
  9. return NewService
  10. end})
  11. -- [ Modules ] --
  12. local UserInterface = loadstring(game:HttpGet("https://raw.githubusercontent.com/icuck/collection-dump/main/AbstractUI", true))()
  13. local Drawing = loadstring(game:HttpGet("https://raw.githubusercontent.com/iHavoc101/Genesis-Studios/main/Modules/DrawingAPI.lua", true))()
  14. local ToolTip = require(Services.ReplicatedStorage.Modules_client.TooltipModule)
  15. -- [ LocalPlayer ] --
  16. local LocalPlayer = Services.Players.LocalPlayer
  17. local Camera = workspace.CurrentCamera
  18. -- [ Raycast Parameters ] --
  19. local RaycastParameters = RaycastParams.new()
  20. RaycastParameters.IgnoreWater = true
  21. RaycastParameters.FilterType = Enum.RaycastFilterType.Blacklist
  22. RaycastParameters.FilterDescendantsInstances = {LocalPlayer.Character}
  23. -- // Variables \\ --
  24. -- [ Info ] --
  25. local Info = {
  26. SilentAIMEnabled = false;
  27. TriggeredEnabled = false;
  28. ArmsCheckEnabled = true;
  29. TeamWhitelist = "";
  30. FieldOfView = 250;
  31. }
  32. local LastArrest = time()
  33. -- [ Interface ] --
  34. local FOVCircle = Drawing.new("Circle", {
  35. Thickness = 2.5,
  36. Color = Color3.fromRGB(200, 200, 200),
  37. NumSides = 25,
  38. Radius = _G.FOV
  39. })
  40. local Target = Drawing.new("Triangle", {
  41. Thickness = 5,
  42. Color = Color3.fromRGB(0, 200, 255)
  43. })
  44. -- [ Weapons ] --
  45. local Weapons = {
  46. "Remington 870";
  47. "AK-47";
  48. "M9";
  49. "M4A1";
  50. "Hammer";
  51. "Crude Knife";
  52. }
  53. -- [ Metatable ] --
  54. local RawMetatable = getrawmetatable(game)
  55. local __NameCall = RawMetatable.__namecall
  56. local __Index = RawMetatable.__index
  57. -- // Functions \\ --
  58. local function ValidCharacter(Character)
  59. return Character and (Character.FindFirstChildWhichIsA(Character, "Humanoid") and Character.FindFirstChildWhichIsA(Character, "Humanoid").Health ~= 0) or false
  60. end
  61. local function NotObstructing(Destination, Ancestor)
  62. -- [ Camera ] --
  63. local ObstructingParts = Camera.GetPartsObscuringTarget(Camera, {Destination}, {Ancestor, LocalPlayer.Character})
  64. for i,v in ipairs(ObstructingParts) do
  65. pcall(function()
  66. if v.Transparency >= 1 then
  67. table.remove(ObstructingParts, i)
  68. end
  69. end)
  70. end
  71. if #ObstructingParts <= 0 then
  72. return true
  73. end
  74. -- [ Raycast ] --
  75. RaycastParameters.FilterDescendantsInstances = {LocalPlayer.Character}
  76. local Origin = Camera.CFrame.Position
  77. local Direction = (Destination - Origin).Unit * 500
  78. local RayResult = workspace.Raycast(workspace, Origin, Direction, RaycastParameters) or {
  79. Instance = nil;
  80. Position = Origin + Direction;
  81. Material = Enum.Material.Air;
  82. }
  83. if RayResult.Instance and (RayResult.Instance.IsDescendantOf(RayResult.Instance, Ancestor) or RayResult.Instance == Ancestor) then
  84. return true
  85. end
  86. -- [ Obstructed ] --
  87. return false
  88. end
  89. local function IsArmed(Player)
  90. for i,v in ipairs(Weapons) do
  91. local Tool = Player.Backpack.FindFirstChild(Player.Backpack, v) or Player.Character.FindFirstChild(Player.Character, v)
  92. if Tool then
  93. return true
  94. end
  95. end
  96. return false
  97. end
  98. local function ClosestPlayerToCursor(Distance)
  99. local Closest = nil
  100. local Position = nil
  101. local ShortestDistance = Distance or math.huge
  102. local MousePosition = Services.UserInputService.GetMouseLocation(Services.UserInputService)
  103. for i, v in ipairs(Services.Players.GetPlayers(Services.Players)) do
  104. if v ~= LocalPlayer and (v.Team ~= LocalPlayer.Team and tostring(v.Team) ~= Info.TeamWhitelist) and ValidCharacter(v.Character) then
  105. if Info.ArmsCheckEnabled and (v.Team == Services.Teams.Inmates and IsArmed(v) == false) then
  106. continue
  107. end
  108. local ViewportPosition, OnScreen = Camera.WorldToViewportPoint(Camera, v.Character.PrimaryPart.Position)
  109. local Magnitude = (Vector2.new(ViewportPosition.X, ViewportPosition.Y) - MousePosition).Magnitude
  110. if OnScreen == false or NotObstructing(v.Character.PrimaryPart.Position, v.Character) == false then
  111. continue
  112. end
  113. if Magnitude < ShortestDistance then
  114. Closest = v
  115. Position = ViewportPosition
  116. ShortestDistance = Magnitude
  117. end
  118. end
  119. end
  120. return Closest, Position
  121. end
  122. local function SwitchGuns()
  123. if LocalPlayer.Character.FindFirstChild(LocalPlayer.Character, "Remington 870") then
  124. local Tool = LocalPlayer.Backpack.FindFirstChild(LocalPlayer.Backpack, "M4A1") or LocalPlayer.Backpack.FindFirstChild(LocalPlayer.Backpack, "AK-47") or LocalPlayer.Backpack.FindFirstChild(LocalPlayer.Backpack, "M9")
  125. local Humanoid = LocalPlayer.Character.FindFirstChildWhichIsA(LocalPlayer.Character, "Humanoid")
  126. Humanoid.EquipTool(Humanoid, Tool)
  127. else
  128. local Tool = LocalPlayer.Backpack.FindFirstChild(LocalPlayer.Backpack, "Remington 870")
  129. local Humanoid = LocalPlayer.Character.FindFirstChildWhichIsA(LocalPlayer.Character, "Humanoid")
  130. Humanoid.EquipTool(Humanoid, Tool)
  131. end
  132. end
  133. local function Crash(Gun, BulletCount, ShotCount)
  134. local ShootEvent = Services.ReplicatedStorage.ShootEvent
  135. local StartTime = time()
  136. local BulletTable = {}
  137. for i = 1, BulletCount do
  138. BulletTable[i] = {
  139. Cframe = CFrame.new(),
  140. Distance = math.huge
  141. }
  142. end
  143. for i = 1, ShotCount do
  144. ShootEvent:FireServer(BulletTable, Gun)
  145. if time() - StartTime > 5 then
  146. break
  147. end
  148. end
  149. end
  150. -- // User Interface \\ --
  151. -- [ Window ] --
  152. local Window = UserInterface.new("Confinement X", UDim2.new(0, 420, 0, 420))
  153. -- [ Assists ] --
  154. Window:Divider("Assists")
  155. Window:Toggle("Silent Aim", "Shoots toward the nearest player to your cursor.", false, function(State)
  156. Info.SilentAIMEnabled = State
  157. end)
  158. Window:Toggle("Trigger Bot", "Press G to temporarily disable.", false, function(State)
  159. Info.TriggeredEnabled = State
  160. end)
  161. Window:Slider("Field Of View", "Recommended: 250", 50, 500, 250, function(Value)
  162. Info.FieldOfView = Value
  163. end)
  164. Window:Dropdown("Team Whitelist", "Team for Silent-Aim to ignore.", {"Guards", "Inmates", "Criminals"}, function(Value)
  165. Info.TeamWhitelist = Value
  166. end)
  167. Window:Toggle("Danger Check", "Checks if an Inmate has gun.", false, function(State)
  168. Info.ArmsCheckEnabled = State
  169. end)
  170. -- [ Rage ] --
  171. Window:Divider("Rage")
  172. Window:Button("Kill All", "Kills everyone in-game", function()
  173. local GunScript = (LocalPlayer.Backpack:FindFirstChild("GunInterface", true) or LocalPlayer.Character:FindFirstChild("GunInterface", true))
  174. if GunScript then
  175. for i,v in ipairs(game.Players:GetPlayers()) do
  176. if v ~= LocalPlayer then
  177. local BulletInfo = {
  178. [1] = {
  179. ["RayObject"] = Ray.new(Vector3.new(845.555908, 101.429337, 2269.43945), Vector3.new(-391.152252, 8.65560055, -83.2166901)),
  180. ["Distance"] = 3.2524313926697,
  181. ["Cframe"] = CFrame.new(840.310791, 101.334137, 2267.87988, 0.0636406094, 0.151434347, -0.986416459, 0, 0.988420188, 0.151741937, 0.997972965, -0.00965694897, 0.0629036576),
  182. ["Hit"] = v.Character.Head
  183. },
  184. [2] = {
  185. ["RayObject"] = Ray.new(Vector3.new(845.555908, 101.429337, 2269.43945), Vector3.new(-392.481476, -8.44939327, -76.7261353)),
  186. ["Distance"] = 3.2699294090271,
  187. ["Cframe"] = CFrame.new(840.290466, 101.184189, 2267.93506, 0.0964837447, 0.0589403138, -0.993587971, 4.65661287e-10, 0.998245299, 0.0592165813, 0.995334625, -0.00571343815, 0.0963144377),
  188. ["Hit"] = v.Character.Head
  189. },
  190. [3] = {
  191. ["RayObject"] = Ray.new(Vector3.new(845.555908, 101.429337, 2269.43945), Vector3.new(-389.21701, -2.50536323, -92.2163162)),
  192. ["Distance"] = 3.1665518283844,
  193. ["Cframe"] = CFrame.new(840.338867, 101.236496, 2267.80371, 0.0166504811, 0.0941716284, -0.995416701, 1.16415322e-10, 0.995554805, 0.0941846818, 0.999861419, -0.00156822044, 0.0165764652),
  194. ["Hit"] = v.Character.Head
  195. },
  196. [4] = {
  197. ["RayObject"] = Ray.new(Vector3.new(845.555908, 101.429337, 2269.43945), Vector3.new(-393.353973, 3.13988972, -72.5452042)),
  198. ["Distance"] = 3.3218522071838,
  199. ["Cframe"] = CFrame.new(840.277222, 101.285957, 2267.9707, 0.117109694, 0.118740402, -0.985994935, -1.86264515e-09, 0.992826641, 0.119563118, 0.993119001, -0.0140019981, 0.116269611),
  200. ["Hit"] = v.Character.Head
  201. },
  202. [5] = {
  203. ["RayObject"] = Ray.new(Vector3.new(845.555908, 101.429337, 2269.43945), Vector3.new(-390.73172, 3.2097764, -85.5477524)),
  204. ["Distance"] = 3.222757101059,
  205. ["Cframe"] = CFrame.new(840.317993, 101.286423, 2267.86035, 0.0517584644, 0.123365127, -0.991010666, 0, 0.992340803, 0.123530701, 0.99865967, -0.00639375951, 0.0513620302),
  206. ["Hit"] = v.Character.Head
  207. }
  208. }
  209. Services.ReplicatedStorage.ShootEvent:FireServer(BulletInfo, GunScript.Parent)
  210. Services.ReplicatedStorage.ShootEvent:FireServer(BulletInfo, GunScript.Parent)
  211. end
  212. end
  213. else
  214. ToolTip.update("No gun found!")
  215. end
  216. end)
  217. Window:Button("Gun Modification", "Modifies the current gun you are holding.", function()
  218. local GunStates = LocalPlayer.Character:FindFirstChild("GunStates", true)
  219. if GunStates then
  220. local GunInfo = require(GunStates)
  221. GunInfo.ReloadTime = 0
  222. GunInfo.FireRate = 0
  223. GunInfo.AutoFire = true
  224. GunInfo.StoredAmmo = math.huge
  225. GunInfo.MaxAmmo = math.huge
  226. GunInfo.CurrentAmmo = math.huge
  227. end
  228. end)
  229. -- [ Miscellaneous ] --
  230. Window:Divider("Miscellaneous")
  231. Window:Button("Get Guns", "Grabs all", function()
  232. local HasSWAT = Services.MarketplaceService:UserOwnsGamePassAsync(LocalPlayer.UserId, 96651)
  233. workspace.Remote.ItemHandler:InvokeServer(workspace.Prison_ITEMS.giver["Remington 870"].ITEMPICKUP)
  234. if HasSWAT then
  235. workspace.Remote.ItemHandler:InvokeServer(workspace.Prison_ITEMS.giver["M4A1"].ITEMPICKUP)
  236. end
  237. workspace.Remote.ItemHandler:InvokeServer(workspace.Prison_ITEMS.giver["AK-47"].ITEMPICKUP)
  238. workspace.Remote.ItemHandler:InvokeServer(workspace.Prison_ITEMS.giver["M9"].ITEMPICKUP)
  239. if HasSWAT then
  240. workspace.Remote.ItemHandler:InvokeServer(workspace.Prison_ITEMS.clothes["Riot Police"].ITEMPICKUP)
  241. end
  242. end)
  243. -- [ Credits ] --
  244. Window:Divider("Credits")
  245. Window:Button("OminousVibes#7259", "Script Creator", function()
  246. setclipboard("OminousVibes#7259")
  247. end)
  248. -- // Metatable \\ --
  249. setreadonly(RawMetatable, false)
  250. RawMetatable.__index = newcclosure(function(Self, Index)
  251. if Info.SilentAIMEnabled == true and checkcaller() == false then
  252. if typeof(Self) == "Instance" and (Self:IsA("PlayerMouse") or Self:IsA("Mouse")) then
  253. if Index == "Hit" then
  254. local Closest = ClosestPlayerToCursor(Info.FieldOfView)
  255. if Closest then
  256. local Velocity = Closest.Character.PrimaryPart.AssemblyLinearVelocity
  257. local Prediction = Velocity.Unit
  258. if Velocity.Magnitude == 0 then
  259. Prediction = Vector3.new(0, 0, 0)
  260. end
  261. return CFrame.new(Closest.Character.Head.Position + Prediction)
  262. end
  263. end
  264. end
  265. end
  266. return __Index(Self, Index)
  267. end)
  268. setreadonly(RawMetatable, true)
  269. -- // Event Listeners \\ --
  270. Services.RunService.RenderStepped:Connect(function()
  271. if Info.SilentAIMEnabled == true then
  272. -- FOV --
  273. FOVCircle.Visible = true
  274. FOVCircle.Radius = Info.FieldOfView
  275. FOVCircle.Position = Services.UserInputService:GetMouseLocation()
  276. -- Target --
  277. local Closest, Position = ClosestPlayerToCursor(Info.FieldOfView)
  278. if Closest then
  279. Target.PointA = Vector2.new(Position.X - 25, Position.Y + 25)
  280. Target.PointB = Vector2.new(Position.X + 25, Position.Y + 25)
  281. Target.PointC = Vector2.new(Position.X, Position.Y - 25)
  282. if Info.TriggeredEnabled and not Services.UserInputService:IsKeyDown(Enum.KeyCode.G) then
  283. mouse1click()
  284. end
  285. end
  286. Target.Visible = Closest ~= nil
  287. else
  288. FOVCircle.Visible = false
  289. Target.Visible = false
  290. end
  291. end)
  292. LocalPlayer.Chatted:Connect(function(Message)
  293. if string.find(Message:lower(), "-lag") then
  294. local GunScript = (LocalPlayer.Backpack:FindFirstChild("GunInterface", true) or LocalPlayer.Character:FindFirstChild("GunInterface", true))
  295. if GunScript then
  296. ToolTip.update("Lagging...")
  297. Crash(GunScript.Parent, 100, 10)
  298. ToolTip.update("Lagged!")
  299. else
  300. ToolTip.update("Error: No gun found!")
  301. end
  302. end
  303. end)
  304. local LastShotDetected = time()
  305. for i,v in ipairs(getconnections(Services.ReplicatedStorage.ReplicateEvent.OnClientEvent)) do
  306. local OldFunction = v.Function
  307. v.Function = function(BulletStats, IsTaser)
  308. if #BulletStats > 25 or time() - LastShotDetected > 0.02 then
  309. ToolTip.update("Bullet Overload: Removing...")
  310. return
  311. end
  312. LastShotDetected = time()
  313. OldFunction(BulletStats, IsTaser)
  314. end
  315. end
  316. local LastSoundDetected = time()
  317. for i,v in ipairs(getconnections(Services.ReplicatedStorage.SoundEvent.OnClientEvent)) do
  318. local OldFunction = v.Function
  319. v.Function = function(Sound)
  320. if time() - LastSoundDetected > 0.02 then
  321. ToolTip.update("Audio Overload: Removing...")
  322. return
  323. end
  324. LastSoundDetected = time()
  325. OldFunction(Sound)
  326. end
  327. end
  328. -- // KeyBinds \\ --
  329. Services.UserInputService.InputBegan:Connect(function(Input, GameProcessed)
  330. if _G.ArrestAssist == false or GameProcessed or LocalPlayer.Character:FindFirstChild("Handcuffs") == nil then
  331. return
  332. end
  333. local Delta = time() - LastArrest
  334. if Delta <= 15 then
  335. ToolTip.update("Wait " .. tostring(math.floor(Delta)) .. " seconds before arresting again!")
  336. end
  337. if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  338. local Closest = ClosestPlayerToCursor(_G.FOV)
  339. if Closest then
  340. local Result = workspace.Remote.arrest:InvokeServer(Closest.Character.HumanoidRootPart)
  341. ToolTip.update(Result == true and "Successfully arrested!" or Result)
  342. if Result == true then
  343. LastArrest = time()
  344. end
  345. end
  346. end
  347. end)
  348. Services.ContextActionService:BindAction("Switch Bind", function(actionName, InputState, inputObject)
  349. if InputState == Enum.UserInputState.End then
  350. return
  351. end
  352. pcall(SwitchGuns)
  353. end, false, Enum.KeyCode.Q)
  354. -- // Actions \\ --
  355. LocalPlayer.PlayerGui.Home.fadeFrame.Visible = false
  356. return {};