eruaaaaaaa

anotha

May 7th, 2022 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.01 KB | None | 0 0
  1. local Aimbot = {}
  2. Aimbot.__index = Aimbot
  3.  
  4. --//Localization
  5. local Instance = Instance
  6. local game = game
  7. local math = math
  8. local setmetatable = setmetatable
  9. local workspace = workspace
  10. local CFrame = CFrame
  11. local Vector3 = Vector3
  12. local Vector2 = Vector2
  13. local Random = Random
  14. local RaycastParams = RaycastParams
  15. local pairs = pairs
  16. local string = string
  17. local table = table
  18. local Enum = Enum
  19. local getrawmetatable = getrawmetatable
  20. local replaceclosure = replaceclosure
  21. local setreadonly = setreadonly
  22. local checkcaller = checkcaller
  23. local getclock = os.clock
  24. local mouse1press = mouse1press
  25. local mouse1release = mouse1release
  26. local mousemoverel = mousemoverel
  27. local hookfunction = hookfunction
  28. local newcclosure = newcclosure
  29.  
  30. --//Instance methods
  31. local Raycast = workspace.Raycast
  32. local GetPropertyChangedSignal = game.GetPropertyChangedSignal
  33. local Connect = game.ChildAdded.Connect
  34. local Destroy = game.Destroy
  35. local GetService = game.GetService
  36. local FindFirstChildOfClass = game.FindFirstChildOfClass
  37. local FindFirstChild = game.FindFirstChild
  38. local GetChildren = game.GetChildren
  39. local IsA = game.IsA
  40. local IsDescendantOf = game.IsDescendantOf
  41.  
  42. --//Services
  43. local Players = GetService(game, "Players")
  44. local UserInputService = GetService(game, "UserInputService")
  45. local RunService = GetService(game, "RunService")
  46. local GuiService = GetService(game, "GuiService")
  47.  
  48. --//Temporary instances
  49. local tempcam = Instance.new("Camera")
  50. local tempconn = Connect(game.AncestryChanged, function() end)
  51.  
  52. --//Other instance methods
  53. local WorldToViewportPoint = tempcam.WorldToViewportPoint
  54. local WorldToScreenPoint = tempcam.WorldToScreenPoint
  55. local GetPlayers = Players.GetPlayers
  56. local GetMouseLocation = UserInputService.GetMouseLocation
  57. local ViewportPointToRay = tempcam.ViewportPointToRay
  58. local Disconnect = tempconn.Disconnect
  59. local Lerp2D = Vector2.new().Lerp
  60.  
  61. --//Cleanup
  62. Destroy(tempcam)
  63. Disconnect(tempconn)
  64.  
  65. --//Local functions and constant variables
  66. Aimbot.DefaultSettings = {
  67. RadiusPercentAt1 = 130, --//Radius percent of screen width at 1 stud for aimbot
  68. XSmoothingPercent = .125,
  69. YSmoothingPercent = .15, --//Slows down mouse movement by a percentage of screen width
  70. DistanceBias = 1, --//Raises sensitivity of distance from camera when choosing target
  71. Offset = Vector2.new(0, 0), --//Mouse offset in pixels
  72. SilentRadiusPercentAt1 = 130, --//Radius percent of screen width at 1 stud for silent aim
  73. IgnoreTransparent = true, --//Whether to ignore transparent parts above the threshold or not in wallcheck
  74. IgnoreWater = false, --//Whether to ignore water in wallcheck
  75. TransparencyThreshold = .5, --//Threshold for what transparency or greater counts as ignorable
  76. DefaultIgnore = {}, --//List for what the aimbot should ignore during wallcheck
  77. IsAliveCheck = true, --//Ignore dead players
  78. TeamCheck = true,
  79. TriggerBot = true,
  80. InvisibleCheck = true,
  81. TriggerBotTime = 160,
  82. TriggerBotSemi = false,
  83. TriggerBotTimeBetweenClick = .3,
  84. HoldControl = false,
  85. Holding = false,
  86. SizeCheck = false,
  87. FlickSettings = {
  88. FlickXSmoothingPercent = .9, -- .6
  89. FlickYSmoothingPercent = .9, -- .6
  90. Flick = true -- false if only will track
  91. },
  92. AutoPeak = {
  93. Enabled = false,
  94. PointPosition = nil -- dont chage this
  95. },
  96. RadiusCap = nil
  97. }
  98.  
  99. local LocalPlayer = Players.LocalPlayer
  100. local Mouse = LocalPlayer.GetMouse(LocalPlayer)
  101. local GuiInset = GuiService.GetGuiInset(GuiService)
  102. local GameMeta = getrawmetatable(game)
  103.  
  104. local function OnCameraChange()
  105. local cam = workspace.CurrentCamera
  106.  
  107. Aimbot.Camera = cam
  108. Aimbot.ViewportSize = cam.ViewportSize
  109. Aimbot.WidthFactor = cam.ViewportSize.X / 100
  110. end
  111.  
  112. local function UpdateTable(tab, update)
  113. for name, value in pairs(update) do
  114. if tab[name] == nil then
  115. tab[name] = value
  116. end
  117. end
  118. end
  119.  
  120. local function GetChildrenWhichIsA(part, baseclass)
  121. local parts = GetChildren(part)
  122. local len = #parts
  123.  
  124. local filtered = {}
  125.  
  126. if len > 0 then
  127. for i = 1, len do
  128. local p = parts[i]
  129.  
  130. if IsA(p, baseclass) then
  131. table.insert(filtered, p)
  132. end
  133. end
  134. end
  135.  
  136. return filtered
  137. end
  138.  
  139.  
  140. local function GetChildrenWhichIsNotA(part, baseclass)
  141. local parts = GetChildren(part)
  142. local len = #parts
  143.  
  144. local filtered = {}
  145.  
  146. if len > 0 then
  147. for i = 1, len do
  148. local p = parts[i]
  149.  
  150. if not IsA(p, baseclass) then
  151. table.insert(filtered, p)
  152. end
  153. end
  154. end
  155.  
  156. return filtered
  157. end
  158.  
  159. if workspace.CurrentCamera then
  160. OnCameraChange()
  161. end
  162.  
  163. Connect(GetPropertyChangedSignal(workspace, "CurrentCamera"), OnCameraChange)
  164.  
  165. --//Methods
  166.  
  167. --//Gets bias value at a given distance
  168. function Aimbot:GetBiasAtDistance(distance)
  169. if self.Camera then
  170. return distance * self.DistanceBias * self.WidthFactor
  171. end
  172. end
  173.  
  174. --//Gets circle radius at a given distance
  175. function Aimbot:GetRadiusAtDistance(rpercent, distance)
  176. if self.Camera then
  177. if self.RadiusCap then
  178. if distance >= self.RadiusCap and rpercent ~= self.SilentRadiusPercentAt1 then
  179. distance = self.RadiusCap
  180. end
  181. end
  182.  
  183. return rpercent / distance * self.WidthFactor
  184. end
  185. end
  186.  
  187. --//Checks for parts obscuring camera, including terrain - unlike Camera:GetPartsObscuringTarget
  188. function Aimbot:GetBlockingPart(origin, position, ignore)
  189. self.WallCheckParams.FilterDescendantsInstances = self.DefaultIgnore --//Incase it got updated
  190.  
  191. local dir = position - origin
  192. local thisignore = self.WallCheckParams.FilterDescendantsInstances --//Copies table for you essentially
  193.  
  194. if ignore then
  195. table.move(ignore, 1, #ignore, #thisignore + 1, thisignore)
  196. end
  197.  
  198. while true do
  199. self.WallCheckParams.FilterDescendantsInstances = thisignore --//Copies
  200. local result = Raycast(workspace, origin, dir, self.WallCheckParams)
  201.  
  202. if result then
  203. if self.IgnoreTransparent and result.Instance.ClassName ~= "Terrain" and result.Instance.Transparency >= self.TransparencyThreshold then
  204. table.insert(thisignore, result.Instance)
  205. continue
  206. end
  207.  
  208. self.WallCheckParams.FilterDescendantsInstances = self.DefaultIgnore
  209. return result.Instance
  210. end
  211.  
  212. self.WallCheckParams.FilterDescendantsInstances = self.DefaultIgnore
  213. return nil
  214. end
  215. end
  216.  
  217. --//Gets target from viewport point
  218. function Aimbot:GetTargetFromViewportPoint(point, distance, ignore)
  219. local camera = self.Camera
  220.  
  221. if camera then
  222. local ray = ViewportPointToRay(camera, point.X, point.Y)
  223. return self:GetBlockingPart(ray.Origin, ray.Origin + ray.Direction * distance, ignore)
  224. end
  225. end
  226.  
  227. --//Gets closest edge on part from viewport point
  228. function Aimbot:GetClosestEdgeFromViewportPoint(point, part)
  229. local camera = self.Camera
  230.  
  231. if camera then
  232. local ray = ViewportPointToRay(camera, point.X, point.Y)
  233. local ppos = part.Position
  234.  
  235. local dist = (ray.Origin - ppos).Magnitude
  236. local dir = (ray.Origin + ray.Direction * dist - ppos).Unit
  237.  
  238. local size = part.Size
  239.  
  240. local half = size / 2
  241. local final = dir * size
  242.  
  243. return ppos + Vector3.new(
  244. final.X < 0 and math.max(final.X, -half.X + size.X / 10) or math.min(final.X, half.X - size.X / 10),
  245. final.Y < 0 and math.max(final.Y, -half.Y + size.Y / 10) or math.min(final.Y, half.Y - size.Y / 10),
  246. final.Z < 0 and math.max(final.Z, -half.Z + size.Z / 10) or math.min(final.Z, half.Z - size.Z / 10)
  247. )
  248. end
  249. end
  250.  
  251. --//Gets mouse location with offset accounted for
  252. function Aimbot:GetMouseViewportPoint()
  253. return GetMouseLocation(UserInputService) + self.Offset
  254. end
  255.  
  256. --//Gets best target from a list of parts and a viewport point, ignoreparent specifies whether to filter the entire parent
  257. function Aimbot:GetBestPartFromViewportPoint(position, parts, ignoreparent, ignore)
  258. local camera = self.Camera
  259.  
  260. if camera then
  261. local len = #parts
  262.  
  263. if len > 0 then
  264. local leastbias, leastwdist, leastpdist, part = math.huge, math.huge, math.huge, nil
  265. local campos = camera.CFrame.Position
  266.  
  267. ignore = ignore or {}
  268. local ipos = #ignore + 1
  269.  
  270. for i = 1, len do
  271. local cpart = parts[i]
  272. local cpos = cpart.Position
  273.  
  274. local point, onscreen = WorldToViewportPoint(camera, cpos)
  275. ignore[ipos] = ignoreparent and cpart.Parent or cpart
  276. local pdist = (position - Vector2.new(point.X, point.Y)).Magnitude --//Pixel Distance
  277. local wdist = (campos - cpos).Magnitude --//World Distance
  278. print(pdist)
  279. if onscreen and (not self:GetBlockingPart(campos, cpos, ignore) and self.PixelDistance and self.PixelDistance >= pdist) then
  280. local playerOb = cpart.Parent:FindFirstChildOfClass("Humanoid") and game:GetService("Players"):GetPlayerFromCharacter(cpart.Parent) or cpart.Parent.Parent:FindFirstChildOfClass("Humanoid") and game:GetService("Players"):GetPlayerFromCharacter(cpart.Parent.Parent)
  281.  
  282. if pdist <= self:GetRadiusAtDistance(self.Targets[playerOb] and self.RadiusPercentAt1 or self.FlickSettings.RadiusPercentAt1, wdist) then
  283. local bias = self:GetBiasAtDistance(wdist) + pdist
  284.  
  285. if bias < leastbias or (bias == leastbias and wdist < leastwdist) then
  286. leastbias = bias
  287. leastwdist = wdist
  288. leastpdist = pdist
  289. part = cpart
  290. end
  291. end
  292. end
  293. end
  294.  
  295. ignore[ipos] = nil
  296. return part, part and leastpdist <= self:GetRadiusAtDistance(self.SilentRadiusPercentAt1, leastwdist)
  297. end
  298. end
  299. end
  300.  
  301. --//Gets best player to target based on a viewport point
  302. function Aimbot:GetBestPlayerTargetFromViewportPoint(pos)
  303. if self.Camera then
  304. local plrs = GetPlayers(Players)
  305. local len = #plrs
  306.  
  307. if len > 0 then
  308. local parts = {}
  309. local lparts = 1
  310. local maxPlr = {}
  311. for i = 1, len do
  312. local plr = plrs[i]
  313. local charac = plr.Character
  314.  
  315. if plr ~= LocalPlayer and charac then
  316. if self.TeamCheck and not plr.Neutral and plr.Team == LocalPlayer.Team then
  317. continue
  318. end
  319.  
  320. if self.IsAliveCheck then
  321. local hum = FindFirstChildOfClass(charac, "Humanoid")
  322.  
  323. if not hum or hum.Health <= 0 then
  324. continue
  325. end
  326. end
  327.  
  328. if self.InvisibleCheck then
  329. local head = FindFirstChild(charac, "Head")
  330.  
  331. if not head or head.Transparency >= 1 then
  332. continue
  333. end
  334. end
  335.  
  336. if self.SizeCheck then
  337. local hum = FindFirstChild(charac, "HumanoidRootPart")
  338.  
  339. if not hum or hum.Size.X < 2 or hum.Size.Y < 2 or hum.Size.Z < 1 then
  340. continue
  341. end
  342. end
  343.  
  344. if self.AntiLag then
  345. local hum = FindFirstChild(charac, "HumanoidRootPart")
  346. if hum then
  347. if self.Camera then
  348. local camera = self.Camera
  349. local point, onscreen = WorldToViewportPoint(camera, hum.Position)
  350.  
  351. if onscreen and not self:GetBlockingPart(camera.CFrame.Position, hum.Position, {charac}) then
  352. local pdist = (self:GetMouseViewportPoint() - Vector2.new(point.X, point.Y)).Magnitude --//Pixel Distance
  353. local wdist = (camera.CFrame.Position - hum.Position).Magnitude
  354. local fov = self:GetRadiusAtDistance(self.Targets[plr] and self.RadiusPercentAt1 or self.FlickSettings.RadiusPercentAt1, wdist)
  355. if pdist > fov * 1.2 then
  356. continue
  357. else
  358. if #maxPlr >= 4 then continue end
  359. table.insert(maxPlr, plr)
  360. end
  361. else
  362. continue
  363. end
  364. else
  365. continue
  366. end
  367. else
  368. continue
  369. end
  370. end
  371.  
  372. local filtered = GetChildrenWhichIsA(charac, "BasePart")
  373. local lfiltered = #filtered
  374.  
  375. table.move(filtered, 1, lfiltered, lparts, parts)
  376. lparts = lparts + lfiltered
  377. end
  378. end
  379. local target, silent = self:GetBestPartFromViewportPoint(pos, parts, true)
  380. local plrz = target and game:GetService("Players"):GetPlayerFromCharacter(target.Parent) or "nil"
  381. for aa, _ in pairs(self.Targets) do
  382. if aa ~= plrz then self.Targets[aa] = false end
  383. end
  384. if target then
  385. return target, silent
  386. end
  387. end
  388. end
  389. end
  390.  
  391. --//Begins aimbot
  392.  
  393. function Aimbot:Start()
  394. self.Enabled = true
  395. self.LastTrigger = 0
  396. self.TriggerPaused = false
  397. self.Targets = {}; setmetatable(self.Targets, {__index = function(s, k)
  398. s[k] = false
  399. return false
  400. end})
  401.  
  402. local relative
  403. local holding = false
  404. local mspoof
  405.  
  406. local lastframe = getclock()
  407.  
  408. if not self.RenderStep then
  409. local totalTime = 0
  410. self.RenderStep = Connect(RunService.RenderStepped, function(delta)
  411. totalTime += delta
  412. if (totalTime < 1 / 144) then return end
  413. totalTime = 0
  414. if self.Enabled and relative then
  415. if self.HoldControl and self.Holding or not self.HoldControl then
  416. mousemoverel(relative.X, relative.Y)
  417. end
  418. end
  419. end)
  420. end
  421.  
  422. if not self.Heartbeat then
  423. local totalTime = 0
  424. self.Heartbeat = Connect(RunService.Heartbeat, function(delta)
  425. totalTime += delta
  426. if (totalTime < 1 / 144) then return end
  427. totalTime = 0
  428. relative = nil
  429.  
  430. if self.Enabled then
  431. local camera = self.Camera
  432.  
  433. if camera then
  434. local mpos = self:GetMouseViewportPoint()
  435. local target, silent = self:GetBestPlayerTargetFromViewportPoint(mpos)
  436.  
  437. if not target then
  438. if holding then
  439. holding = false
  440. mouse1release()
  441. end
  442. end
  443.  
  444. if target then
  445. local charac = target.Parent
  446. local plrz = game:GetService("Players"):GetPlayerFromCharacter(charac)
  447. local lcharac = LocalPlayer.Character
  448. local cignore = GetChildrenWhichIsNotA(charac, "BasePart")
  449.  
  450. --if cignore then
  451. table.insert(cignore, lcharac)
  452. local mtarget = self:GetTargetFromViewportPoint(mpos, 5000, cignore)
  453. local bodyPart = (FindFirstChild(lcharac, "Head") or FindFirstChild(lcharac, "HumanoidRootPart"))
  454. local BlockingParts = self:GetBlockingPart(bodyPart and bodyPart.Position, target.Position, cignore)
  455. if silent and self.TriggerBot and lcharac and BlockingParts and BlockingParts:IsDescendantOf(charac) then
  456. if not holding then
  457. holding = true
  458. mouse1press()
  459. else
  460. if self.TriggerBotSemi and (tick() - self.LastTrigger) >= self.TriggerBotTimeBetweenClick and not self.TriggerPaused then
  461. self.TriggerPaused = true
  462. task.wait(self.TriggerBotTime / 1000)
  463. mouse1press()
  464. self.LastTrigger = tick()
  465. self.TriggerPaused = false
  466. end
  467. end
  468. elseif silent and self.TriggerBot and lcharac and (not BlockingParts or not BlockingParts:IsDescendantOf(charac)) then
  469. if holding then
  470. holding = false
  471. mouse1release()
  472. end
  473. end
  474.  
  475. if mtarget and IsDescendantOf(mtarget, charac) then
  476. mspoof = nil
  477. self.Targets[plrz] = true
  478. if self.Deadzone.Enabled then
  479. target = (self.TargetPart and FindFirstChild(charac, self.TargetPart)) or target
  480. local pos, onscreen = WorldToViewportPoint(camera, target.Position)
  481. if onscreen then
  482. local g = (Vector2.new(pos.X, pos.Y) - mpos) / Vector2.new(self.Deadzone.XSmoothingPercent * self.WidthFactor, self.Deadzone.YSmoothingPercent * self.WidthFactor)
  483. mousemoverel(g.X, g.Y)
  484. end
  485. end
  486. if not self.TargetPart then
  487. return
  488. end
  489. elseif silent then
  490. mspoof = self:GetClosestEdgeFromViewportPoint(mpos, target)
  491. else
  492. mspoof = nil
  493. end
  494.  
  495. target = (self.TargetPart and FindFirstChild(charac, self.TargetPart)) or target
  496. --local pos, onscreen = WorldToViewportPoint(camera, target.Position)
  497. local pos, onscreen = WorldToViewportPoint(camera, self:GetClosestEdgeFromViewportPoint(mpos, target))
  498. if onscreen then
  499. if self.Targets[plrz] then
  500. relative = (Vector2.new(pos.X, pos.Y) - mpos) / Vector2.new(self.XSmoothingPercent * self.WidthFactor, self.YSmoothingPercent * self.WidthFactor)
  501. else
  502. relative = (Vector2.new(pos.X, pos.Y) - mpos) / Vector2.new(self.FlickSettings.FlickXSmoothingPercent * self.WidthFactor, self.FlickSettings.FlickYSmoothingPercent * self.WidthFactor)
  503. end
  504. end
  505. else
  506. if holding then
  507. holding = false
  508. mouse1release()
  509. end
  510.  
  511. mspoof = nil
  512. end
  513. else
  514. if holding then
  515. holding = false
  516. mouse1release()
  517. end
  518.  
  519. mspoof = nil
  520. end
  521. else
  522. if holding then
  523. holding = false
  524. mouse1release()
  525. end
  526.  
  527. mspoof = nil
  528. end
  529. end)
  530. end
  531. local Players2 = game.GetService(game, "Players");
  532. local Client2 = Players2.LocalPlayer;
  533. local Mouse2 = Client2.GetMouse(Client2);
  534.  
  535. local old; old = hookmetamethod(game, "__index", newcclosure(function(i,v)
  536. if string.lower(v) == "hit" then
  537. if old(i, "ClassName") == "Mouse" or old(i, "ClassName") == "PlayerMouse" then
  538. if not checkcaller() then
  539. if mspoof then
  540. return CFrame.new(mspoof)
  541. end
  542. end
  543. end
  544. end
  545. return old(i,v)
  546. end))
  547.  
  548. local old2; old2 = hookmetamethod(game, "__namecall", newcclosure(function(self2, ...)
  549. if getnamecallmethod() == "ViewportPointToRay" and not checkcaller() and mspoof then
  550. local args = {...}
  551. local pos = GetMouseLocation(UserInputService)
  552. if math.abs(args[1] - (pos.X + self.Offset.X)) <= 3 and math.abs(args[2] - (pos.Y + self.Offset.Y)) <= 3 then
  553. local newPos = workspace.CurrentCamera.WorldToViewportPoint(workspace.CurrentCamera, mspoof)
  554. args[1] = newPos.X
  555. args[2] = newPos.Y
  556. return old2(self2, table.unpack(args))
  557. else
  558. if math.abs(args[1] - (Mouse2.X + self.Offset.X)) <= 3 and math.abs(args[2] - (Mouse2.Y + self.Offset.Y)) <= 3 then
  559. local newPos = workspace.CurrentCamera.WorldToViewportPoint(workspace.CurrentCamera, mspoof)
  560. args[1] = newPos.X
  561. args[2] = newPos.Y
  562. return old2(self2, table.unpack(args))
  563. end
  564. end
  565. elseif getnamecallmethod() == "ScreenPointToRay" and not checkcaller() and mspoof then
  566. local args = {...}
  567. local pos = GetMouseLocation(UserInputService)
  568. if math.abs(args[1] - (pos.X + self.Offset.X)) <= 3 and math.abs(args[2] - (pos.Y + self.Offset.Y)) <= 3 then
  569. local newPos = workspace.CurrentCamera.WorldToScreenPoint(workspace.CurrentCamera, mspoof)
  570. args[1] = newPos.X
  571. args[2] = newPos.Y
  572. return old2(self2, table.unpack(args))
  573. else
  574. if math.abs(args[1] - (Mouse2.X + self.Offset.X)) <= 3 and math.abs(args[2] - (Mouse2.Y + self.Offset.Y)) <= 3 then
  575. local newPos = workspace.CurrentCamera.WorldToScreenPoint(workspace.CurrentCamera, mspoof)
  576. args[1] = newPos.X
  577. args[2] = newPos.Y
  578. return old2(self2, table.unpack(args))
  579. end
  580. end
  581. end
  582. return old2(self2, ...)
  583. end))
  584.  
  585. --[[
  586. local old2; old2 = hookmetamethod(game, "__namecall", function(self2, ...)
  587. local args = {...}
  588. if getnamecallmethod() == "ScreenPointToRay" or getnamecallmethod() == "ViewportPointToRay" and mspoof then
  589. local SecondPosition = game.GetService(game, "UserInputService").GetMouseLocation(game.GetService(game, "UserInputService"))
  590. if args[1] == Mouse2.X and args[2] == Mouse2.Y or args[1] == SecondPosition.X and args[2] == SecondPosition.Y then
  591. local newPos = workspace.CurrentCamera.WorldToScreenPoint(workspace.CurrentCamera, mspoof)
  592. args[1] = newPos.X
  593. args[2] = newPos.Y
  594. return old2(self2, table.unpack(args))
  595. end
  596. end
  597. return old2(self2, ...)
  598. end)
  599. --]]
  600. end
  601.  
  602. --//Completely kills aimbot, as opposed to enabled = false
  603. function Aimbot:Kill()
  604. self.Enabled = false
  605.  
  606. if self.RenderStep then
  607. Disconnect(self.RenderStep)
  608. self.RenderStep = nil
  609. end
  610.  
  611. if self.Heartbeat then
  612. Disconnect(self.Heartbeat)
  613. self.Heartbeat = nil
  614. end
  615. end
  616.  
  617. --//Constructor
  618. function Aimbot.new(presets)
  619. presets = presets or {}
  620. UpdateTable(presets, Aimbot.DefaultSettings)
  621.  
  622. local WallCheckParams = RaycastParams.new()
  623. WallCheckParams.FilterType = Enum.RaycastFilterType.Blacklist
  624. WallCheckParams.IgnoreWater = presets.IgnoreWater
  625. WallCheckParams.FilterDescendantsInstances = presets.DefaultIgnore
  626.  
  627. presets.WallCheckParams = WallCheckParams
  628. return setmetatable(presets, Aimbot)
  629. end
  630.  
  631. --//Return with default settings
  632. return Aimbot
Add Comment
Please, Sign In to add comment