1. local library = loadstring(game:GetObjects("rbxassetid://7657867786")[1].Source)()
  2. local Wait = library.subs.Wait
  3. local plrs = game:GetService("Players")
  4. local Lplr = plrs.LocalPlayer.Name
  5. local plr = plrs.LocalPlayer
  6. local UI = library:CreateWindow({Name = "Big Paintball",Themeable = {Info = "made by tupsutumppu#3145"}, DefaultTheme = "{\"__Designer.Colors.main\":\"FB00FF\",\"__Designer.Colors.section\":\"FB00FF\",\"__Designer.Background.ImageAssetID\":\"rbxassetid://6071575925\",\"__Designer.Background.ImageColor\":\"000000\",\"__Designer.Colors.tabText\":\"1BFF00\",\"__Designer.Colors.otherElementText\":\"FFFFFF\",\"__Designer.Colors.elementText\":\"B0B0B0\",\"__Designer.Background.UseBackgroundImage\":\"false\"}"})
  7. local RS = game:GetService("RunService")
  8. local camera = game.Workspace.CurrentCamera
  9. local C_FOV = 250
  10. local main = UI:CreateTab({Name = "Main"})
  11. local Settings = {BOXESPENABLED = false,BOXESPCOLOR = Color3.fromRGB(255,255,255),BOXESPTHICKNESS = 1,MOVEMENT = false,WalkSpeed = 70,JumpPower = 70, SILENTAIM = false, SHOWFOV = false,}
  12. local boxes = {}
  13. local esp = main:CreateSection({Name = "Box ESP",Side = "Right"})
  14. local movement = main:CreateSection({Name = "Movement",Side = "Right"})
  15. local silentaim = main:CreateSection({Name = "Silent Aim",Side = "Left"})
  16. local gunmods = main:CreateSection({Name = "Gun Mods",Side = "Left"})
  17. --functions
  18. --Just dont look at these or you will get eye cancer...
  19. local function gunMods()
  20. local scripts = game:GetService("ReplicatedStorage").Framework.Modules["1 | Directory"].Guns
  21. for i,v in pairs(scripts:GetChildren()) do
  22. pcall(function()
  23. local script_i = tostring(i)
  24. require(v)[script_i].firerate = 0
  25. require(v)[script_i].velocity = 9999999
  26. require(v)[script_i].automatic = true
  27. require(v)[script_i].additionalSpeed = 10
  28. require(v)[script_i].damage = math.huge
  29. end)
  30. end
  31. local ch = {"Ammo", "ammo", "Damage", "damage", "Firerate", "firerate", "FireRate", "fireRate"}
  32. for i,v in pairs(getgc(true)) do
  33. pcall(function()
  34. for f = 1, 8 do
  35. if type(v) == "table" and rawget(v, ch[f]) then
  36. v.burstDelay = 0
  37. v.shotrate = 0.02
  38. end
  39. end
  40. end)
  41. end
  42. end
  43. local function newLine()
  44. local v = Drawing.new("Line")
  45. v.Color = Settings.BOXESPCOLOR
  46. v.From = Vector2.new(1,1)
  47. v.To = Vector2.new(0,0)
  48. v.Visible = true
  49. v.Thickness = Settings.BOXESPTHICKNESS
  50. return v
  51. end
  52. local function newBox(player)
  53. local box = {
  54. ["Player"] = player, newLine(), newLine(), newLine(), newLine()
  55. }
  56. table.insert(boxes,box)
  57. end
  58. local function shapeBox(box)
  59. local player = box["Player"]
  60. local TL = camera:WorldToViewportPoint(player.HumanoidRootPart.CFrame * CFrame.new(-3,3,0).p)
  61. local TR = camera:WorldToViewportPoint(player.HumanoidRootPart.CFrame * CFrame.new(3,3,0).p)
  62. local BL = camera:WorldToViewportPoint(player.HumanoidRootPart.CFrame * CFrame.new(-3,-3,0).p)
  63. local BR = camera:WorldToViewportPoint(player.HumanoidRootPart.CFrame * CFrame.new(3,-3,0).p)
  64. box[1].From = Vector2.new(TL.X, TL.Y)
  65. box[1].To = Vector2.new(BL.X, BL.Y)
  66. -- Top line
  67. box[2].To = Vector2.new(TR.X, TR.Y)
  68. box[2].From = Vector2.new(TL.X, TL.Y)
  69. -- Right line
  70. box[3].To = Vector2.new(BR.X, BR.Y)
  71. box[3].From = Vector2.new(TR.X, TR.Y)
  72. -- Bottom line
  73. box[4].To = Vector2.new(BR.X, BR.Y)
  74. box[4].From = Vector2.new(BL.X, BL.Y)
  75. end
  76. local function visBox(box, vis)
  77. for i,v in ipairs(box) do v.Visible = vis end
  78. end
  79. local function hasBox(player)
  80. for i, v in ipairs(boxes) do
  81. if v["Player"] == player then return true end
  82. end
  83. end
  84. local function clearBoxes()
  85. for i = #boxes, 1, -1 do
  86. local box = table.remove(boxes, i)
  87. visBox(box, false)
  88. for j = 2, #box do
  89. box[j]:Remove()
  90. end
  91. end
  92. end
  93. local function draw_Circle(val)
  94. if val then
  95. Circle = Drawing.new("Circle")
  96. Circle.Thickness = 2
  97. Circle.NumSides = 64
  98. Circle.Radius = C_FOV
  99. Circle.Filled = false
  100. Circle.Color = Color3.fromRGB(255,255,255)
  101. Circle.Visible = true
  102. Circle.Position = Vector2.new(game.Workspace.CurrentCamera.ViewportSize.X / 2, game.Workspace.CurrentCamera.ViewportSize.Y / 2)
  103. else
  104. Circle.Visible = false
  105. end
  106. end
  107. local function getClosestToCenter(FOV)
  108. local maxDist = FOV or math.huge
  109. local closestPlayer = nil
  110. local closestPlayerDist = math.huge
  111. local screenCenter = Vector2.new(game.Workspace.CurrentCamera.ViewportSize.X / 2, game.Workspace.CurrentCamera.ViewportSize.Y / 2)
  112. for _, player in pairs(game.Workspace:GetChildren()) do
  113. if player:IsA("Model") and player.Name ~= plrs.LocalPlayer.Name and plrs:FindFirstChild(player.Name) then
  114. local humanoid = player:FindFirstChild("Humanoid")
  115. local humanoidRootPart = player:FindFirstChild("HumanoidRootPart")
  116. local head = player:FindFirstChild("Head")
  117. if humanoid and humanoidRootPart and head then
  118. local pos, onScreen = camera:WorldToViewportPoint(head.Position)
  119. if onScreen then
  120. local distance = (screenCenter - Vector2.new(pos.X, pos.Y)).magnitude
  121. if distance <= maxDist and distance < closestPlayerDist then
  122. closestPlayer = player
  123. closestPlayerDist = distance
  124. end
  125. end
  126. end
  127. end
  128. end
  129. return closestPlayer
  130. end
  131. game:GetService("RunService").Heartbeat:Connect(function()
  132. if Settings.SILENTAIM then
  133. targetplayer = getClosestToCenter(C_FOV)
  134. else end
  135. end)
  136. local nameCallHook; nameCallHook = hookmetamethod(game, "__namecall", newcclosure(function(...)
  137. local args = {...}
  138. local method = getnamecallmethod()
  139. local call = getcallingscript()
  140. if string.lower(method) == "findpartonraywithwhitelist" and tostring(call) == "First Person Controller" then
  141. local toHit = targetplayer and targetplayer.Head and targetplayer.Head.Position or nil
  142. if Settings.SILENTAIM and toHit then
  143. local startFrom = toHit + Vector3.new(0,6,0)
  144. local endTo = toHit - startFrom
  145. args[2] = Ray.new(startFrom, endTo)
  146. return nameCallHook(unpack(args))
  147. else
  148. return nameCallHook(...)
  149. end
  150. end
  151. return nameCallHook(...)
  152. end))
  153. RS.RenderStepped:connect(function()
  154. for i, player in ipairs(game.Workspace:GetChildren()) do
  155. if player.Name ~= plr.Name and player:IsA("Model") then
  156. if not hasBox(player) then
  157. newBox(player)
  158. end
  159. end
  160. end
  161. for i, v in ipairs(boxes) do
  162. local player = v["Player"]
  163. if Settings.BOXESPENABLED and player:FindFirstChild("HumanoidRootPart") and player:FindFirstChild("Humanoid") then
  164. shapeBox(v)
  165. local _, withinScreenBounds = camera:WorldToScreenPoint(player.HumanoidRootPart.Position)
  166. if withinScreenBounds then
  167. visBox(v,true)
  168. else
  169. visBox(v,false)
  170. end
  171. else
  172. visBox(v, false)
  173. end
  174. end
  175. if Settings.MOVEMENT then
  176. game.Workspace[Lplr].Humanoid.WalkSpeed = Settings.WalkSpeed
  177. game.Workspace[Lplr].Humanoid.JumpPower = Settings.JumpPower
  178. end
  179. end)
  180. game.Workspace.ChildRemoved:Connect(function(a)
  181. if a:IsA("Model") and game.Players:FindFirstChild(a.Name) then
  182. clearBoxes()
  183. end
  184. end)
  185. --Buttons&etc
  186. silentaim:AddToggle({Name = "Enabled",Flag = "HI_THERE_WHAT_ARE_YOU_LOOKING_FOR",Callback = function(fff)if fff then Settings.SILENTAIM = true else Settings.SILENTAIM = false end end})
  187. silentaim:AddToggle({Name = "Show FOV Circle",Flag = "HI_THERE_WHAT_ARE_YOU_LOOKING_FOR2",Callback = function(sigmaballsjuhani)if sigmaballsjuhani then Settings.SHOWFOV = true draw_Circle(true) else Settings.SHOWFOV = false draw_Circle(false) end end})
  188. silentaim:AddColorPicker({Name = "FOV Color",Flag = "fcpicker",Callback = function(fcolor) wait() Circle.Color = fcolor end})
  189. silentaim:AddSlider({Name = "FOV Thickness",Flag = "fthickness",Value = 2,Min = 1,Max = 4,Callback = function(Value) Circle.Thickness = Value end})
  190. gunmods:AddButton({Name = "Enable Gun Mods",Callback = function() gunMods() end})
  191. esp:AddToggle({Name = "Enabled",Flag = "besp",Callback = function(ff)if ff then Settings.BOXESPENABLED = true else Settings.BOXESPENABLED = false end end})
  192. esp:AddColorPicker({Name = "Color",Flag = "cpicker",Callback = function(ecolor)Settings.BOXESPCOLOR = ecolor clearBoxes() end})
  193. esp:AddSlider({Name = "Thickness",Flag = "ethickness",Value = 1,Min = 1,Max = 4,Callback = function(Value) Settings.BOXESPTHICKNESS = Value clearBoxes() end})
  194. movement:AddToggle({Name = "Enable Movement Sliders",Flag = "m",Callback = function(wd) if wd then Settings.MOVEMENT = true else Settings.MOVEMENT = false end end})
  195. movement:AddSlider({Name = "WalkSpeed",Flag = "ws",Value = nil,Min = 0,Max = 150,Callback = function (ws) if Settings.MOVEMENT then Settings.WalkSpeed = ws end end})
  196. movement:AddSlider({Name = "JumpPower",Flag = "jp",Value = nil,Min = 0,Max = 200,Callback = function (jp) if Settings.MOVEMENT then Settings.JumpPower = jp end end})
  197. movement:AddSlider({Name = "Gravity",Flag = "gr",Value = 90,Min = 0,Max = 200,Callback = function (g) if Settings.MOVEMENT then game.Workspace.Gravity = g end end})