Advertisement
Maks14a

AimBot+Infinity Yield

May 1st, 2025
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 119.36 KB | None | 0 0
  1. --[[⊹˚₊‧───────────────‧₊˚⊹·͙⁺˚*•̩̩͙✩•̩̩͙*˚⁺‧͙⁺˚*•̩̩͙✩•̩̩͙*˚⁺‧͙⁺˚*•̩̩͙✩•̩̩͙*˚⁺‧͙⊹˚₊‧───────────────‧₊˚⊹
  2.  
  3. ______ ______ __ __ __
  4. / \ / \| \ | \ | \
  5. | ▓▓▓▓▓▓\ ______ ______ _______ | ▓▓▓▓▓▓\\▓▓______ ____ | ▓▓____ ______ _| ▓▓_
  6. | ▓▓ | ▓▓/ \ / \| \ | ▓▓__| ▓▓ \ \ \| ▓▓ \ / \| ▓▓ \
  7. | ▓▓ | ▓▓ ▓▓▓▓▓▓\ ▓▓▓▓▓▓\ ▓▓▓▓▓▓▓\ | ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓\▓▓▓▓\ ▓▓▓▓▓▓▓\ ▓▓▓▓▓▓\\▓▓▓▓▓▓
  8. | ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓▓▓▓▓▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓ | ▓▓ | ▓▓ __
  9. | ▓▓__/ ▓▓ ▓▓__/ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓ | ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓__/ ▓▓ ▓▓__/ ▓▓ | ▓▓| \
  10. \▓▓ ▓▓ ▓▓ ▓▓\▓▓ \ ▓▓ | ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓\▓▓ ▓▓ \▓▓ ▓▓
  11. \▓▓▓▓▓▓| ▓▓▓▓▓▓▓ \▓▓▓▓▓▓▓\▓▓ \▓▓ \▓▓ \▓▓\▓▓\▓▓ \▓▓ \▓▓\▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓▓▓▓
  12. | ▓▓
  13. | ▓▓
  14. \▓▓
  15.  
  16. ༺☆༻____________☾✧ ✩ ✧☽____________༺☆༻༺☆༻____________☾✧ ✩ ✧☽____________༺☆༻
  17.  
  18. ✨Universal Aim Assist Framework✨
  19. Release 1.9.5
  20.  
  21. twix.cyou/pix
  22. twix.cyou/OpenAimbotV3rm
  23.  
  24. Author: ttwiz_z (ttwizz) <[email protected]>
  25. License: MIT
  26. GitHub: https://github.com/ttwizz/Open-Aimbot
  27.  
  28. Issues: https://github.com/ttwizz/Open-Aimbot/issues
  29. Pull requests: https://github.com/ttwizz/Open-Aimbot/pulls
  30. Discussions: https://github.com/ttwizz/Open-Aimbot/discussions
  31.  
  32. Wiki: https://moderka.org/Open-Aimbot
  33.  
  34. Trustpilot: https://www.trustpilot.com/review/moderka.org
  35.  
  36. •───────•°•❀•°•───────•୧‿̩͙ ˖︵ꕀ ⠀𓏶 ̣̣̥⠀ ꕀ︵˖ ̩͙‿୨•───────•°•❀•°•───────•]]
  37.  
  38.  
  39. --! Debugger
  40.  
  41. local DEBUG = false
  42.  
  43. if DEBUG then
  44. getfenv().getfenv = function()
  45. return setmetatable({}, {
  46. __index = function()
  47. return function()
  48. return true
  49. end
  50. end
  51. })
  52. end
  53. end
  54.  
  55.  
  56. --! Services
  57.  
  58. local HttpService = game:GetService("HttpService")
  59. local Players = game:GetService("Players")
  60. local UserInputService = game:GetService("UserInputService")
  61. local RunService = game:GetService("RunService")
  62. local TweenService = game:GetService("TweenService")
  63.  
  64.  
  65. --! Interface Manager
  66.  
  67. local UISettings = {
  68. TabWidth = 160,
  69. Size = { 580, 460 },
  70. Theme = "VSC Dark High Contrast",
  71. Acrylic = false,
  72. Transparency = true,
  73. MinimizeKey = "RightShift",
  74. ShowNotifications = true,
  75. ShowWarnings = true,
  76. RenderingMode = "RenderStepped",
  77. AutoImport = true
  78. }
  79.  
  80. local InterfaceManager = {}
  81.  
  82. function InterfaceManager:ImportSettings()
  83. pcall(function()
  84. if not DEBUG and getfenv().isfile and getfenv().readfile and getfenv().isfile("UISettings.ttwizz") and getfenv().readfile("UISettings.ttwizz") then
  85. for Key, Value in next, HttpService:JSONDecode(getfenv().readfile("UISettings.ttwizz")) do
  86. UISettings[Key] = Value
  87. end
  88. end
  89. end)
  90. end
  91.  
  92. function InterfaceManager:ExportSettings()
  93. pcall(function()
  94. if not DEBUG and getfenv().isfile and getfenv().readfile and getfenv().writefile then
  95. getfenv().writefile("UISettings.ttwizz", HttpService:JSONEncode(UISettings))
  96. end
  97. end)
  98. end
  99.  
  100. InterfaceManager:ImportSettings()
  101.  
  102. UISettings.__LAST_RUN__ = os.date()
  103. InterfaceManager:ExportSettings()
  104.  
  105.  
  106. --! Colors Handler
  107.  
  108. local ColorsHandler = {}
  109.  
  110. function ColorsHandler:PackColour(Colour)
  111. return typeof(Colour) == "Color3" and { R = Colour.R * 255, G = Colour.G * 255, B = Colour.B * 255 } or typeof(Colour) == "table" and Colour or { R = 255, G = 255, B = 255 }
  112. end
  113.  
  114. function ColorsHandler:UnpackColour(Colour)
  115. return typeof(Colour) == "table" and Color3.fromRGB(Colour.R, Colour.G, Colour.B) or typeof(Colour) == "Color3" and Colour or Color3.fromRGB(255, 255, 255)
  116. end
  117.  
  118.  
  119. --! Configuration Importer
  120.  
  121. local ImportedConfiguration = {}
  122.  
  123. pcall(function()
  124. if not DEBUG and getfenv().isfile and getfenv().readfile and getfenv().isfile(string.format("fix.ttwizz", game.GameId)) and getfenv().readfile(string.format("fix.ttwizz", game.GameId)) and UISettings.AutoImport then
  125. ImportedConfiguration = HttpService:JSONDecode(getfenv().readfile(string.format("fix.ttwizz", game.GameId)))
  126. for Key, Value in next, ImportedConfiguration do
  127. if Key == "FoVColour" or Key == "NameESPOutlineColour" or Key == "ESPColour" then
  128. ImportedConfiguration[Key] = ColorsHandler:UnpackColour(Value)
  129. end
  130. end
  131. end
  132. end)
  133.  
  134.  
  135. --! Configuration Initializer
  136.  
  137. local Configuration = {}
  138.  
  139. --? Aimbot
  140.  
  141. Configuration.Aimbot = ImportedConfiguration["Aimbot"] or false
  142. Configuration.OnePressAimingMode = ImportedConfiguration["OnePressAimingMode"] or false
  143. Configuration.AimKey = ImportedConfiguration["AimKey"] or "RMB"
  144. Configuration.AimMode = ImportedConfiguration["AimMode"] or "Camera"
  145. Configuration.SilentAimMethods = ImportedConfiguration["SilentAimMethods"] or { "Mouse.Hit / Mouse.Target", "GetMouseLocation" }
  146. Configuration.SilentAimChance = ImportedConfiguration["SilentAimChance"] or 100
  147. Configuration.OffAimbotAfterKill = ImportedConfiguration["OffAimbotAfterKill"] or false
  148. Configuration.AimPartDropdownValues = ImportedConfiguration["AimPartDropdownValues"] or { "Head", "HumanoidRootPart" }
  149. Configuration.AimPart = ImportedConfiguration["AimPart"] or "HumanoidRootPart"
  150. Configuration.RandomAimPart = ImportedConfiguration["RandomAimPart"] or false
  151.  
  152. Configuration.UseOffset = ImportedConfiguration["UseOffset"] or false
  153. Configuration.OffsetType = ImportedConfiguration["OffsetType"] or "Static"
  154. Configuration.StaticOffsetIncrement = ImportedConfiguration["StaticOffsetIncrement"] or 10
  155. Configuration.DynamicOffsetIncrement = ImportedConfiguration["DynamicOffsetIncrement"] or 10
  156. Configuration.AutoOffset = ImportedConfiguration["AutoOffset"] or false
  157. Configuration.MaxAutoOffset = ImportedConfiguration["MaxAutoOffset"] or 50
  158.  
  159. Configuration.UseSensitivity = ImportedConfiguration["UseSensitivity"] or false
  160. Configuration.Sensitivity = ImportedConfiguration["Sensitivity"] or 50
  161. Configuration.UseNoise = ImportedConfiguration["UseNoise"] or false
  162. Configuration.NoiseFrequency = ImportedConfiguration["NoiseFrequency"] or 50
  163.  
  164. --? Bots
  165.  
  166. Configuration.SpinBot = ImportedConfiguration["SpinBot"] or false
  167. Configuration.OnePressSpinningMode = ImportedConfiguration["OnePressSpinningMode"] or false
  168. Configuration.SpinKey = ImportedConfiguration["SpinKey"] or "Q"
  169. Configuration.SpinBotVelocity = ImportedConfiguration["SpinBotVelocity"] or 50
  170. Configuration.SpinPartDropdownValues = ImportedConfiguration["SpinPartDropdownValues"] or { "Head", "HumanoidRootPart" }
  171. Configuration.SpinPart = ImportedConfiguration["SpinPart"] or "HumanoidRootPart"
  172. Configuration.RandomSpinPart = ImportedConfiguration["RandomSpinPart"] or false
  173.  
  174. Configuration.TriggerBot = ImportedConfiguration["TriggerBot"] or false
  175. Configuration.OnePressTriggeringMode = ImportedConfiguration["OnePressTriggeringMode"] or false
  176. Configuration.SmartTriggerBot = ImportedConfiguration["SmartTriggerBot"] or false
  177. Configuration.TriggerKey = ImportedConfiguration["TriggerKey"] or "E"
  178. Configuration.TriggerBotChance = ImportedConfiguration["TriggerBotChance"] or 100
  179.  
  180. --? Checks
  181.  
  182. Configuration.AliveCheck = ImportedConfiguration["AliveCheck"] or false
  183. Configuration.GodCheck = ImportedConfiguration["GodCheck"] or false
  184. Configuration.TeamCheck = ImportedConfiguration["TeamCheck"] or false
  185. Configuration.FriendCheck = ImportedConfiguration["FriendCheck"] or false
  186. Configuration.FollowCheck = ImportedConfiguration["FollowCheck"] or false
  187. Configuration.VerifiedBadgeCheck = ImportedConfiguration["VerifiedBadgeCheck"] or false
  188. Configuration.WallCheck = ImportedConfiguration["WallCheck"] or false
  189. Configuration.WaterCheck = ImportedConfiguration["WaterCheck"] or false
  190.  
  191. Configuration.FoVCheck = ImportedConfiguration["FoVCheck"] or false
  192. Configuration.FoVRadius = ImportedConfiguration["FoVRadius"] or 100
  193. Configuration.MagnitudeCheck = ImportedConfiguration["MagnitudeCheck"] or false
  194. Configuration.TriggerMagnitude = ImportedConfiguration["TriggerMagnitude"] or 500
  195. Configuration.TransparencyCheck = ImportedConfiguration["TransparencyCheck"] or false
  196. Configuration.IgnoredTransparency = ImportedConfiguration["IgnoredTransparency"] or 0.5
  197. Configuration.WhitelistedGroupCheck = ImportedConfiguration["WhitelistedGroupCheck"] or false
  198. Configuration.WhitelistedGroup = ImportedConfiguration["WhitelistedGroup"] or 0
  199. Configuration.BlacklistedGroupCheck = ImportedConfiguration["BlacklistedGroupCheck"] or false
  200. Configuration.BlacklistedGroup = ImportedConfiguration["BlacklistedGroup"] or 0
  201.  
  202. Configuration.IgnoredPlayersCheck = ImportedConfiguration["IgnoredPlayersCheck"] or false
  203. Configuration.IgnoredPlayersDropdownValues = ImportedConfiguration["IgnoredPlayersDropdownValues"] or {}
  204. Configuration.IgnoredPlayers = ImportedConfiguration["IgnoredPlayers"] or {}
  205. Configuration.TargetPlayersCheck = ImportedConfiguration["TargetPlayersCheck"] or false
  206. Configuration.TargetPlayersDropdownValues = ImportedConfiguration["TargetPlayersDropdownValues"] or {}
  207. Configuration.TargetPlayers = ImportedConfiguration["TargetPlayers"] or {}
  208.  
  209. Configuration.PremiumCheck = ImportedConfiguration["PremiumCheck"] or false
  210.  
  211. --? Visuals
  212.  
  213. Configuration.FoV = ImportedConfiguration["FoV"] or false
  214. Configuration.FoVKey = ImportedConfiguration["FoVKey"] or "R"
  215. Configuration.FoVThickness = ImportedConfiguration["FoVThickness"] or 2
  216. Configuration.FoVOpacity = ImportedConfiguration["FoVOpacity"] or 0.8
  217. Configuration.FoVFilled = ImportedConfiguration["FoVFilled"] or false
  218. Configuration.FoVColour = ImportedConfiguration["FoVColour"] or Color3.fromRGB(255, 255, 255)
  219.  
  220. Configuration.SmartESP = ImportedConfiguration["SmartESP"] or false
  221. Configuration.ESPKey = ImportedConfiguration["ESPKey"] or "T"
  222. Configuration.ESPBox = ImportedConfiguration["ESPBox"] or false
  223. Configuration.ESPBoxFilled = ImportedConfiguration["ESPBoxFilled"] or false
  224. Configuration.NameESP = ImportedConfiguration["NameESP"] or false
  225. Configuration.NameESPFont = ImportedConfiguration["NameESPFont"] or "Monospace"
  226. Configuration.NameESPSize = ImportedConfiguration["NameESPSize"] or 16
  227. Configuration.NameESPOutlineColour = ImportedConfiguration["NameESPOutlineColour"] or Color3.fromRGB(0, 0, 0)
  228. Configuration.HealthESP = ImportedConfiguration["HealthESP"] or false
  229. Configuration.MagnitudeESP = ImportedConfiguration["MagnitudeESP"] or false
  230. Configuration.TracerESP = ImportedConfiguration["TracerESP"] or false
  231. Configuration.ESPThickness = ImportedConfiguration["ESPThickness"] or 2
  232. Configuration.ESPOpacity = ImportedConfiguration["ESPOpacity"] or 0.8
  233. Configuration.ESPColour = ImportedConfiguration["ESPColour"] or Color3.fromRGB(255, 255, 255)
  234. Configuration.ESPUseTeamColour = ImportedConfiguration["ESPUseTeamColour"] or false
  235.  
  236. Configuration.RainbowVisuals = ImportedConfiguration["RainbowVisuals"] or false
  237. Configuration.RainbowDelay = ImportedConfiguration["RainbowDelay"] or 5
  238.  
  239.  
  240. --! Constants
  241.  
  242. local Player = Players.LocalPlayer
  243. local Mouse = Player:GetMouse()
  244. local IsComputer = UserInputService.KeyboardEnabled and UserInputService.MouseEnabled
  245.  
  246. local MonthlyLabels = { "🎅%s❄️", "☃️%s🏂", "🌷%s☘️", "🌺%s🎀", "🐝%s🌼", "🌈%s😎", "🌞%s🏖️", "☀️%s💐", "🌦%s🍁", "🎃%s💀", "🍂%s☕", "🎄%s🎁" }
  247. local PremiumLabels = { "💫PREMIUM💫", "✨PREMIUM✨", "🌟PREMIUM🌟", "⭐PREMIUM⭐", "🤩PREMIUM🤩" }
  248.  
  249.  
  250. --! Names Handler
  251.  
  252. local function GetPlayerName(String)
  253. if typeof(String) == "string" and #String > 0 then
  254. for _, _Player in next, Players:GetPlayers() do
  255. if string.sub(string.lower(_Player.Name), 1, #string.lower(String)) == string.lower(String) then
  256. return _Player.Name
  257. end
  258. end
  259. end
  260. return ""
  261. end
  262.  
  263.  
  264. --! Fields
  265.  
  266. local Status = ""
  267.  
  268. local Fluent = nil
  269. local ShowWarning = false
  270.  
  271. local RobloxActive = true
  272. local Clock = os.clock()
  273.  
  274. local Aiming = false
  275. local Target = nil
  276. local Tween = nil
  277. local MouseSensitivity = UserInputService.MouseDeltaSensitivity
  278.  
  279. local Spinning = false
  280. local Triggering = false
  281. local ShowingFoV = false
  282. local ShowingESP = false
  283.  
  284. do
  285. if typeof(script) == "Instance" and script:FindFirstChild("Fluent") and script:FindFirstChild("Fluent"):IsA("ModuleScript") then
  286. Fluent = require(script:FindFirstChild("Fluent"))
  287. else
  288. local Success, Result = pcall(function()
  289. return game:HttpGet("https://twix.cyou/Fluent.txt", true)
  290. end)
  291. if Success and typeof(Result) == "string" and string.find(Result, "dawid") then
  292. Fluent = getfenv().loadstring(Result)()
  293. if Fluent.Premium then
  294. return getfenv().loadstring(game:HttpGet("https://twix.cyou/Aimbot.txt", true))()
  295. end
  296. local Success, Result = pcall(function()
  297. return game:HttpGet("https://twix.cyou/AimbotStatus.json", true)
  298. end)
  299. if Success and typeof(Result) == "string" and pcall(HttpService.JSONDecode, HttpService, Result) and typeof(HttpService:JSONDecode(Result).message) == "string" then
  300. Status = HttpService:JSONDecode(Result).message
  301. end
  302. else
  303. return
  304. end
  305. end
  306. end
  307.  
  308. local SensitivityChanged; SensitivityChanged = UserInputService:GetPropertyChangedSignal("MouseDeltaSensitivity"):Connect(function()
  309. if not Fluent then
  310. SensitivityChanged:Disconnect()
  311. elseif not Aiming or not DEBUG and (getfenv().mousemoverel and IsComputer and Configuration.AimMode == "Mouse" or getfenv().hookmetamethod and getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod and Configuration.AimMode == "Silent") then
  312. MouseSensitivity = UserInputService.MouseDeltaSensitivity
  313. end
  314. end)
  315.  
  316.  
  317. --! UI Initializer
  318.  
  319. do
  320. local Window = Fluent:CreateWindow({
  321. Title = string.format("%s <b><i>%s</i></b>", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"), #Status > 0 and Status or "🔥FREE🔥"),
  322. SubTitle = "By @ttwiz_z",
  323. TabWidth = UISettings.TabWidth,
  324. Size = UDim2.fromOffset(table.unpack(UISettings.Size)),
  325. Theme = UISettings.Theme,
  326. Acrylic = UISettings.Acrylic,
  327. MinimizeKey = UISettings.MinimizeKey
  328. })
  329.  
  330. local Tabs = { Aimbot = Window:AddTab({ Title = "Aimbot", Icon = "crosshair" }) }
  331.  
  332. Window:SelectTab(1)
  333.  
  334. Tabs.Aimbot:AddParagraph({
  335. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  336. Content = "✨Universal Aim Assist Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
  337. })
  338.  
  339. local AimbotSection = Tabs.Aimbot:AddSection("Aimbot")
  340.  
  341. local AimbotToggle = AimbotSection:AddToggle("Aimbot", { Title = "Aimbot", Description = "Toggles the Aimbot", Default = Configuration.Aimbot })
  342. AimbotToggle:OnChanged(function(Value)
  343. Configuration.Aimbot = Value
  344. if not IsComputer then
  345. Aiming = Value
  346. end
  347. end)
  348.  
  349. if IsComputer then
  350. local OnePressAimingModeToggle = AimbotSection:AddToggle("OnePressAimingMode", { Title = "One-Press Mode", Description = "Uses the One-Press Mode instead of the Holding Mode", Default = Configuration.OnePressAimingMode })
  351. OnePressAimingModeToggle:OnChanged(function(Value)
  352. Configuration.OnePressAimingMode = Value
  353. end)
  354.  
  355. local AimKeybind = AimbotSection:AddKeybind("AimKey", {
  356. Title = "Aim Key",
  357. Description = "Changes the Aim Key",
  358. Default = Configuration.AimKey,
  359. ChangedCallback = function(Value)
  360. Configuration.AimKey = Value
  361. end
  362. })
  363. Configuration.AimKey = AimKeybind.Value ~= "RMB" and Enum.KeyCode[AimKeybind.Value] or Enum.UserInputType.MouseButton2
  364. end
  365.  
  366. local AimModeDropdown = AimbotSection:AddDropdown("AimMode", {
  367. Title = "Aim Mode",
  368. Description = "Changes the Aim Mode",
  369. Values = { "Camera" },
  370. Default = Configuration.AimMode,
  371. Callback = function(Value)
  372. Configuration.AimMode = Value
  373. end
  374. })
  375. if getfenv().mousemoverel and IsComputer then
  376. table.insert(AimModeDropdown.Values, "Mouse")
  377. AimModeDropdown:BuildDropdownList()
  378. else
  379. ShowWarning = true
  380. end
  381. if getfenv().hookmetamethod and getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod then
  382. table.insert(AimModeDropdown.Values, "Silent")
  383. AimModeDropdown:BuildDropdownList()
  384.  
  385. local SilentAimMethodsDropdown = AimbotSection:AddDropdown("SilentAimMethods", {
  386. Title = "Silent Aim Methods",
  387. Description = "Sets the Silent Aim Methods",
  388. Values = { "Mouse.Hit / Mouse.Target", "GetMouseLocation", "Raycast", "FindPartOnRay", "FindPartOnRayWithIgnoreList", "FindPartOnRayWithWhitelist" },
  389. Multi = true,
  390. Default = Configuration.SilentAimMethods
  391. })
  392. SilentAimMethodsDropdown:OnChanged(function(Value)
  393. Configuration.SilentAimMethods = {}
  394. for Key, _ in next, Value do
  395. if typeof(Key) == "string" then
  396. table.insert(Configuration.SilentAimMethods, Key)
  397. end
  398. end
  399. end)
  400.  
  401. AimbotSection:AddSlider("SilentAimChance", {
  402. Title = "Silent Aim Chance",
  403. Description = "Changes the Hit Chance for Silent Aim",
  404. Default = Configuration.SilentAimChance,
  405. Min = 1,
  406. Max = 100,
  407. Rounding = 1,
  408. Callback = function(Value)
  409. Configuration.SilentAimChance = Value
  410. end
  411. })
  412. else
  413. ShowWarning = true
  414. end
  415.  
  416. local OffAimbotAfterKillToggle = AimbotSection:AddToggle("OffAimbotAfterKill", { Title = "Off After Kill", Description = "Disables the Aiming Mode after killing a Target", Default = Configuration.OffAimbotAfterKill })
  417. OffAimbotAfterKillToggle:OnChanged(function(Value)
  418. Configuration.OffAimbotAfterKill = Value
  419. end)
  420.  
  421. local AimPartDropdown = AimbotSection:AddDropdown("AimPart", {
  422. Title = "Aim Part",
  423. Description = "Changes the Aim Part",
  424. Values = Configuration.AimPartDropdownValues,
  425. Default = Configuration.AimPart,
  426. Callback = function(Value)
  427. Configuration.AimPart = Value
  428. end
  429. })
  430.  
  431. local RandomAimPartToggle = AimbotSection:AddToggle("RandomAimPart", { Title = "Random Aim Part", Description = "Selects every second a Random Aim Part from Dropdown", Default = Configuration.RandomAimPart })
  432. RandomAimPartToggle:OnChanged(function(Value)
  433. Configuration.RandomAimPart = Value
  434. end)
  435.  
  436. AimbotSection:AddInput("AddAimPart", {
  437. Title = "Add Aim Part",
  438. Description = "After typing, press Enter",
  439. Finished = true,
  440. Placeholder = "Part Name",
  441. Callback = function(Value)
  442. if #Value > 0 and not table.find(Configuration.AimPartDropdownValues, Value) then
  443. table.insert(Configuration.AimPartDropdownValues, Value)
  444. AimPartDropdown:SetValue(Value)
  445. end
  446. end
  447. })
  448.  
  449. AimbotSection:AddInput("RemoveAimPart", {
  450. Title = "Remove Aim Part",
  451. Description = "After typing, press Enter",
  452. Finished = true,
  453. Placeholder = "Part Name",
  454. Callback = function(Value)
  455. if #Value > 0 and table.find(Configuration.AimPartDropdownValues, Value) then
  456. if Configuration.AimPart == Value then
  457. AimPartDropdown:SetValue(nil)
  458. end
  459. table.remove(Configuration.AimPartDropdownValues, table.find(Configuration.AimPartDropdownValues, Value))
  460. AimPartDropdown:SetValues(Configuration.AimPartDropdownValues)
  461. end
  462. end
  463. })
  464.  
  465. AimbotSection:AddButton({
  466. Title = "Clear All Items",
  467. Description = "Removes All Elements",
  468. Callback = function()
  469. local Items = #Configuration.AimPartDropdownValues
  470. AimPartDropdown:SetValue(nil)
  471. Configuration.AimPartDropdownValues = {}
  472. AimPartDropdown:SetValues(Configuration.AimPartDropdownValues)
  473. Window:Dialog({
  474. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  475. Content = Items == 0 and "Nothing has been cleared!" or Items == 1 and "1 Item has been cleared!" or string.format("%s Items have been cleared!", Items),
  476. Buttons = {
  477. {
  478. Title = "Confirm"
  479. }
  480. }
  481. })
  482. end
  483. })
  484.  
  485. local AimOffsetSection = Tabs.Aimbot:AddSection("Aim Offset")
  486.  
  487. local UseOffsetToggle = AimOffsetSection:AddToggle("UseOffset", { Title = "Use Offset", Description = "Toggles the Offset", Default = Configuration.UseOffset })
  488. UseOffsetToggle:OnChanged(function(Value)
  489. Configuration.UseOffset = Value
  490. end)
  491.  
  492. AimOffsetSection:AddDropdown("OffsetType", {
  493. Title = "Offset Type",
  494. Description = "Changes the Offset Type",
  495. Values = { "Static", "Dynamic", "Static & Dynamic" },
  496. Default = Configuration.OffsetType,
  497. Callback = function(Value)
  498. Configuration.OffsetType = Value
  499. end
  500. })
  501.  
  502. AimOffsetSection:AddSlider("StaticOffsetIncrement", {
  503. Title = "Static Offset Increment",
  504. Description = "Changes the Static Offset Increment",
  505. Default = Configuration.StaticOffsetIncrement,
  506. Min = 1,
  507. Max = 50,
  508. Rounding = 1,
  509. Callback = function(Value)
  510. Configuration.StaticOffsetIncrement = Value
  511. end
  512. })
  513.  
  514. AimOffsetSection:AddSlider("DynamicOffsetIncrement", {
  515. Title = "Dynamic Offset Increment",
  516. Description = "Changes the Dynamic Offset Increment",
  517. Default = Configuration.DynamicOffsetIncrement,
  518. Min = 1,
  519. Max = 50,
  520. Rounding = 1,
  521. Callback = function(Value)
  522. Configuration.DynamicOffsetIncrement = Value
  523. end
  524. })
  525.  
  526. local AutoOffsetToggle = AimOffsetSection:AddToggle("AutoOffset", { Title = "Auto Offset", Description = "Toggles the Auto Offset", Default = Configuration.AutoOffset })
  527. AutoOffsetToggle:OnChanged(function(Value)
  528. Configuration.AutoOffset = Value
  529. end)
  530.  
  531. AimOffsetSection:AddSlider("MaxAutoOffset", {
  532. Title = "Max Auto Offset",
  533. Description = "Changes the Max Auto Offset",
  534. Default = Configuration.MaxAutoOffset,
  535. Min = 1,
  536. Max = 50,
  537. Rounding = 1,
  538. Callback = function(Value)
  539. Configuration.MaxAutoOffset = Value
  540. end
  541. })
  542.  
  543. local SensitivityNoiseSection = Tabs.Aimbot:AddSection("Sensitivity & Noise")
  544.  
  545. local UseSensitivityToggle = SensitivityNoiseSection:AddToggle("UseSensitivity", { Title = "Use Sensitivity", Description = "Toggles the Sensitivity", Default = Configuration.UseSensitivity })
  546. UseSensitivityToggle:OnChanged(function(Value)
  547. Configuration.UseSensitivity = Value
  548. end)
  549.  
  550. SensitivityNoiseSection:AddSlider("Sensitivity", {
  551. Title = "Sensitivity",
  552. Description = "Smoothes out the Mouse / Camera Movements when Aiming",
  553. Default = Configuration.Sensitivity,
  554. Min = 1,
  555. Max = 100,
  556. Rounding = 1,
  557. Callback = function(Value)
  558. Configuration.Sensitivity = Value
  559. end
  560. })
  561.  
  562. local UseNoiseToggle = SensitivityNoiseSection:AddToggle("UseNoise", { Title = "Use Noise", Description = "Toggles the Camera Shaking when Aiming", Default = Configuration.UseNoise })
  563. UseNoiseToggle:OnChanged(function(Value)
  564. Configuration.UseNoise = Value
  565. end)
  566.  
  567. SensitivityNoiseSection:AddSlider("NoiseFrequency", {
  568. Title = "Noise Frequency",
  569. Description = "Changes the Noise Frequency",
  570. Default = Configuration.NoiseFrequency,
  571. Min = 1,
  572. Max = 100,
  573. Rounding = 1,
  574. Callback = function(Value)
  575. Configuration.NoiseFrequency = Value
  576. end
  577. })
  578.  
  579. Tabs.Bots = Window:AddTab({ Title = "Bots", Icon = "bot" })
  580.  
  581. Tabs.Bots:AddParagraph({
  582. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  583. Content = "✨Universal Aim Assist Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
  584. })
  585.  
  586. local SpinBotSection = Tabs.Bots:AddSection("SpinBot")
  587.  
  588. SpinBotSection:AddParagraph({
  589. Title = "NOTE",
  590. Content = "SpinBot does not function normally in RenderStepped Rendering Mode. Set a different Rendering Mode value than RenderStepped to solve this problem."
  591. })
  592.  
  593. local SpinBotToggle = SpinBotSection:AddToggle("SpinBot", { Title = "SpinBot", Description = "Toggles the SpinBot", Default = Configuration.SpinBot })
  594. SpinBotToggle:OnChanged(function(Value)
  595. Configuration.SpinBot = Value
  596. if not IsComputer then
  597. Spinning = Value
  598. end
  599. end)
  600.  
  601. if IsComputer then
  602. local OnePressSpinningModeToggle = SpinBotSection:AddToggle("OnePressSpinningMode", { Title = "One-Press Mode", Description = "Uses the One-Press Mode instead of the Holding Mode", Default = Configuration.OnePressSpinningMode })
  603. OnePressSpinningModeToggle:OnChanged(function(Value)
  604. Configuration.OnePressSpinningMode = Value
  605. end)
  606.  
  607. local SpinKeybind = SpinBotSection:AddKeybind("SpinKey", {
  608. Title = "Spin Key",
  609. Description = "Changes the Spin Key",
  610. Default = Configuration.SpinKey,
  611. ChangedCallback = function(Value)
  612. Configuration.SpinKey = Value
  613. end
  614. })
  615. Configuration.SpinKey = SpinKeybind.Value ~= "RMB" and Enum.KeyCode[SpinKeybind.Value] or Enum.UserInputType.MouseButton2
  616. end
  617.  
  618. SpinBotSection:AddSlider("SpinBotVelocity", {
  619. Title = "SpinBot Velocity",
  620. Description = "Changes the SpinBot Velocity",
  621. Default = Configuration.SpinBotVelocity,
  622. Min = 1,
  623. Max = 50,
  624. Rounding = 1,
  625. Callback = function(Value)
  626. Configuration.SpinBotVelocity = Value
  627. end
  628. })
  629.  
  630. local SpinPartDropdown = SpinBotSection:AddDropdown("SpinPart", {
  631. Title = "Spin Part",
  632. Description = "Changes the Spin Part",
  633. Values = Configuration.SpinPartDropdownValues,
  634. Default = Configuration.SpinPart,
  635. Callback = function(Value)
  636. Configuration.SpinPart = Value
  637. end
  638. })
  639.  
  640. local RandomSpinPartToggle = SpinBotSection:AddToggle("RandomSpinPart", { Title = "Random Spin Part", Description = "Selects every second a Random Spin Part from Dropdown", Default = Configuration.RandomSpinPart })
  641. RandomSpinPartToggle:OnChanged(function(Value)
  642. Configuration.RandomSpinPart = Value
  643. end)
  644.  
  645. SpinBotSection:AddInput("AddSpinPart", {
  646. Title = "Add Spin Part",
  647. Description = "After typing, press Enter",
  648. Finished = true,
  649. Placeholder = "Part Name",
  650. Callback = function(Value)
  651. if #Value > 0 and not table.find(Configuration.SpinPartDropdownValues, Value) then
  652. table.insert(Configuration.SpinPartDropdownValues, Value)
  653. SpinPartDropdown:SetValue(Value)
  654. end
  655. end
  656. })
  657.  
  658. SpinBotSection:AddInput("RemoveSpinPart", {
  659. Title = "Remove Spin Part",
  660. Description = "After typing, press Enter",
  661. Finished = true,
  662. Placeholder = "Part Name",
  663. Callback = function(Value)
  664. if #Value > 0 and table.find(Configuration.SpinPartDropdownValues, Value) then
  665. if Configuration.SpinPart == Value then
  666. SpinPartDropdown:SetValue(nil)
  667. end
  668. table.remove(Configuration.SpinPartDropdownValues, table.find(Configuration.SpinPartDropdownValues, Value))
  669. SpinPartDropdown:SetValues(Configuration.SpinPartDropdownValues)
  670. end
  671. end
  672. })
  673.  
  674. SpinBotSection:AddButton({
  675. Title = "Clear All Items",
  676. Description = "Removes All Elements",
  677. Callback = function()
  678. local Items = #Configuration.SpinPartDropdownValues
  679. SpinPartDropdown:SetValue(nil)
  680. Configuration.SpinPartDropdownValues = {}
  681. SpinPartDropdown:SetValues(Configuration.SpinPartDropdownValues)
  682. Window:Dialog({
  683. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  684. Content = Items == 0 and "Nothing has been cleared!" or Items == 1 and "1 Item has been cleared!" or string.format("%s Items have been cleared!", Items),
  685. Buttons = {
  686. {
  687. Title = "Confirm"
  688. }
  689. }
  690. })
  691. end
  692. })
  693.  
  694. if getfenv().mouse1click and IsComputer then
  695. local TriggerBotSection = Tabs.Bots:AddSection("TriggerBot")
  696.  
  697. local TriggerBotToggle = TriggerBotSection:AddToggle("TriggerBot", { Title = "TriggerBot", Description = "Toggles the TriggerBot", Default = Configuration.TriggerBot })
  698. TriggerBotToggle:OnChanged(function(Value)
  699. Configuration.TriggerBot = Value
  700. end)
  701.  
  702. local OnePressTriggeringModeToggle = TriggerBotSection:AddToggle("OnePressTriggeringMode", { Title = "One-Press Mode", Description = "Uses the One-Press Mode instead of the Holding Mode", Default = Configuration.OnePressTriggeringMode })
  703. OnePressTriggeringModeToggle:OnChanged(function(Value)
  704. Configuration.OnePressTriggeringMode = Value
  705. end)
  706.  
  707. local SmartTriggerBotToggle = TriggerBotSection:AddToggle("SmartTriggerBot", { Title = "Smart TriggerBot", Description = "Uses the TriggerBot only when Aiming", Default = Configuration.SmartTriggerBot })
  708. SmartTriggerBotToggle:OnChanged(function(Value)
  709. Configuration.SmartTriggerBot = Value
  710. end)
  711.  
  712. local TriggerKeybind = TriggerBotSection:AddKeybind("TriggerKey", {
  713. Title = "Trigger Key",
  714. Description = "Changes the Trigger Key",
  715. Default = Configuration.TriggerKey,
  716. ChangedCallback = function(Value)
  717. Configuration.TriggerKey = Value
  718. end
  719. })
  720. Configuration.TriggerKey = TriggerKeybind.Value ~= "RMB" and Enum.KeyCode[TriggerKeybind.Value] or Enum.UserInputType.MouseButton2
  721.  
  722. TriggerBotSection:AddSlider("TriggerBotChance", {
  723. Title = "TriggerBot Chance",
  724. Description = "Changes the Hit Chance for TriggerBot",
  725. Default = Configuration.TriggerBotChance,
  726. Min = 1,
  727. Max = 100,
  728. Rounding = 1,
  729. Callback = function(Value)
  730. Configuration.TriggerBotChance = Value
  731. end
  732. })
  733. else
  734. ShowWarning = true
  735. end
  736.  
  737. Tabs.Checks = Window:AddTab({ Title = "Checks", Icon = "list-checks" })
  738.  
  739. Tabs.Checks:AddParagraph({
  740. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  741. Content = "✨Universal Aim Assist Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
  742. })
  743.  
  744. local SimpleChecksSection = Tabs.Checks:AddSection("Simple Checks")
  745.  
  746. local AliveCheckToggle = SimpleChecksSection:AddToggle("AliveCheck", { Title = "Alive Check", Description = "Toggles the Alive Check", Default = Configuration.AliveCheck })
  747. AliveCheckToggle:OnChanged(function(Value)
  748. Configuration.AliveCheck = Value
  749. end)
  750.  
  751. local GodCheckToggle = SimpleChecksSection:AddToggle("GodCheck", { Title = "God Check", Description = "Toggles the God Check", Default = Configuration.GodCheck })
  752. GodCheckToggle:OnChanged(function(Value)
  753. Configuration.GodCheck = Value
  754. end)
  755.  
  756. local TeamCheckToggle = SimpleChecksSection:AddToggle("TeamCheck", { Title = "Team Check", Description = "Toggles the Team Check", Default = Configuration.TeamCheck })
  757. TeamCheckToggle:OnChanged(function(Value)
  758. Configuration.TeamCheck = Value
  759. end)
  760.  
  761. local FriendCheckToggle = SimpleChecksSection:AddToggle("FriendCheck", { Title = "Friend Check", Description = "Toggles the Friend Check", Default = Configuration.FriendCheck })
  762. FriendCheckToggle:OnChanged(function(Value)
  763. Configuration.FriendCheck = Value
  764. end)
  765.  
  766. local FollowCheckToggle = SimpleChecksSection:AddToggle("FollowCheck", { Title = "Follow Check", Description = "Toggles the Follow Check", Default = Configuration.FollowCheck })
  767. FollowCheckToggle:OnChanged(function(Value)
  768. Configuration.FollowCheck = Value
  769. end)
  770.  
  771. local VerifiedBadgeCheckToggle = SimpleChecksSection:AddToggle("VerifiedBadgeCheck", { Title = "Verified Badge Check", Description = "Toggles the Verified Badge Check", Default = Configuration.VerifiedBadgeCheck })
  772. VerifiedBadgeCheckToggle:OnChanged(function(Value)
  773. Configuration.VerifiedBadgeCheck = Value
  774. end)
  775.  
  776. local WallCheckToggle = SimpleChecksSection:AddToggle("WallCheck", { Title = "Wall Check", Description = "Toggles the Wall Check", Default = Configuration.WallCheck })
  777. WallCheckToggle:OnChanged(function(Value)
  778. Configuration.WallCheck = Value
  779. end)
  780.  
  781. local WaterCheckToggle = SimpleChecksSection:AddToggle("WaterCheck", { Title = "Water Check", Description = "Toggles the Water Check if Wall Check is enabled", Default = Configuration.WaterCheck })
  782. WaterCheckToggle:OnChanged(function(Value)
  783. Configuration.WaterCheck = Value
  784. end)
  785.  
  786. local AdvancedChecksSection = Tabs.Checks:AddSection("Advanced Checks")
  787.  
  788. local FoVCheckToggle = AdvancedChecksSection:AddToggle("FoVCheck", { Title = "FoV Check", Description = "Toggles the FoV Check", Default = Configuration.FoVCheck })
  789. FoVCheckToggle:OnChanged(function(Value)
  790. Configuration.FoVCheck = Value
  791. end)
  792.  
  793. AdvancedChecksSection:AddSlider("FoVRadius", {
  794. Title = "FoV Radius",
  795. Description = "Changes the FoV Radius",
  796. Default = Configuration.FoVRadius,
  797. Min = 10,
  798. Max = 1000,
  799. Rounding = 1,
  800. Callback = function(Value)
  801. Configuration.FoVRadius = Value
  802. end
  803. })
  804.  
  805. local MagnitudeCheckToggle = AdvancedChecksSection:AddToggle("MagnitudeCheck", { Title = "Magnitude Check", Description = "Toggles the Magnitude Check", Default = Configuration.MagnitudeCheck })
  806. MagnitudeCheckToggle:OnChanged(function(Value)
  807. Configuration.MagnitudeCheck = Value
  808. end)
  809.  
  810. AdvancedChecksSection:AddSlider("TriggerMagnitude", {
  811. Title = "Trigger Magnitude",
  812. Description = "Distance between the Native and the Target Character",
  813. Default = Configuration.TriggerMagnitude,
  814. Min = 10,
  815. Max = 1000,
  816. Rounding = 1,
  817. Callback = function(Value)
  818. Configuration.TriggerMagnitude = Value
  819. end
  820. })
  821.  
  822. local TransparencyCheckToggle = AdvancedChecksSection:AddToggle("TransparencyCheck", { Title = "Transparency Check", Description = "Toggles the Transparency Check", Default = Configuration.TransparencyCheck })
  823. TransparencyCheckToggle:OnChanged(function(Value)
  824. Configuration.TransparencyCheck = Value
  825. end)
  826.  
  827. AdvancedChecksSection:AddSlider("IgnoredTransparency", {
  828. Title = "Ignored Transparency",
  829. Description = "Target is ignored if its Transparency is > than / = to the set one",
  830. Default = Configuration.IgnoredTransparency,
  831. Min = 0.1,
  832. Max = 1,
  833. Rounding = 1,
  834. Callback = function(Value)
  835. Configuration.IgnoredTransparency = Value
  836. end
  837. })
  838.  
  839. local WhitelistedGroupCheckToggle = AdvancedChecksSection:AddToggle("WhitelistedGroupCheck", { Title = "Whitelisted Group Check", Description = "Toggles the Whitelisted Group Check", Default = Configuration.WhitelistedGroupCheck })
  840. WhitelistedGroupCheckToggle:OnChanged(function(Value)
  841. Configuration.WhitelistedGroupCheck = Value
  842. end)
  843.  
  844. AdvancedChecksSection:AddInput("WhitelistedGroup", {
  845. Title = "Whitelisted Group",
  846. Description = "After typing, press Enter",
  847. Default = Configuration.WhitelistedGroup,
  848. Numeric = true,
  849. Finished = true,
  850. Placeholder = "Group Id",
  851. Callback = function(Value)
  852. Configuration.WhitelistedGroup = #tostring(Value) > 0 and tonumber(Value) or 0
  853. end
  854. })
  855.  
  856. local BlacklistedGroupCheckToggle = AdvancedChecksSection:AddToggle("BlacklistedGroupCheck", { Title = "Blacklisted Group Check", Description = "Toggles the Blacklisted Group Check", Default = Configuration.BlacklistedGroupCheck })
  857. BlacklistedGroupCheckToggle:OnChanged(function(Value)
  858. Configuration.BlacklistedGroupCheck = Value
  859. end)
  860.  
  861. AdvancedChecksSection:AddInput("BlacklistedGroup", {
  862. Title = "Blacklisted Group",
  863. Description = "After typing, press Enter",
  864. Default = Configuration.BlacklistedGroup,
  865. Numeric = true,
  866. Finished = true,
  867. Placeholder = "Group Id",
  868. Callback = function(Value)
  869. Configuration.BlacklistedGroup = #tostring(Value) > 0 and tonumber(Value) or 0
  870. end
  871. })
  872.  
  873. local ExpertChecksSection = Tabs.Checks:AddSection("Expert Checks")
  874.  
  875. local IgnoredPlayersCheckToggle = ExpertChecksSection:AddToggle("IgnoredPlayersCheck", { Title = "Ignored Players Check", Description = "Toggles the Ignored Players Check", Default = Configuration.IgnoredPlayersCheck })
  876. IgnoredPlayersCheckToggle:OnChanged(function(Value)
  877. Configuration.IgnoredPlayersCheck = Value
  878. end)
  879.  
  880. local IgnoredPlayersDropdown = ExpertChecksSection:AddDropdown("IgnoredPlayers", {
  881. Title = "Ignored Players",
  882. Description = "Sets the Ignored Players",
  883. Values = Configuration.IgnoredPlayersDropdownValues,
  884. Multi = true,
  885. Default = Configuration.IgnoredPlayers
  886. })
  887. IgnoredPlayersDropdown:OnChanged(function(Value)
  888. Configuration.IgnoredPlayers = {}
  889. for Key, _ in next, Value do
  890. if typeof(Key) == "string" then
  891. table.insert(Configuration.IgnoredPlayers, Key)
  892. end
  893. end
  894. end)
  895.  
  896. ExpertChecksSection:AddInput("AddIgnoredPlayer", {
  897. Title = "Add Ignored Player",
  898. Description = "After typing, press Enter",
  899. Finished = true,
  900. Placeholder = "Player Name",
  901. Callback = function(Value)
  902. Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or pcall(Players.GetUserIdFromNameAsync, Players, Value) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(Value)) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync, Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value, 2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync, Players, tonumber(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
  903. if #Value > 0 and not table.find(Configuration.IgnoredPlayersDropdownValues, Value) then
  904. table.insert(Configuration.IgnoredPlayersDropdownValues, Value)
  905. if not table.find(Configuration.IgnoredPlayers, Value) then
  906. IgnoredPlayersDropdown.Value[Value] = true
  907. table.insert(Configuration.IgnoredPlayers, Value)
  908. end
  909. IgnoredPlayersDropdown:BuildDropdownList()
  910. end
  911. end
  912. })
  913.  
  914. ExpertChecksSection:AddInput("RemoveIgnoredPlayer", {
  915. Title = "Remove Ignored Player",
  916. Description = "After typing, press Enter",
  917. Finished = true,
  918. Placeholder = "Player Name",
  919. Callback = function(Value)
  920. Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or pcall(Players.GetUserIdFromNameAsync, Players, Value) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(Value)) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync, Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value, 2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync, Players, tonumber(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
  921. if #Value > 0 and table.find(Configuration.IgnoredPlayersDropdownValues, Value) then
  922. if table.find(Configuration.IgnoredPlayers, Value) then
  923. IgnoredPlayersDropdown.Value[Value] = nil
  924. table.remove(Configuration.IgnoredPlayers, table.find(Configuration.IgnoredPlayers, Value))
  925. IgnoredPlayersDropdown:Display()
  926. end
  927. table.remove(Configuration.IgnoredPlayersDropdownValues, table.find(Configuration.IgnoredPlayersDropdownValues, Value))
  928. IgnoredPlayersDropdown:SetValues(Configuration.IgnoredPlayersDropdownValues)
  929. end
  930. end
  931. })
  932.  
  933. ExpertChecksSection:AddButton({
  934. Title = "Deselect All Items",
  935. Description = "Deselects All Elements",
  936. Callback = function()
  937. local Items = #Configuration.IgnoredPlayers
  938. IgnoredPlayersDropdown:SetValue({})
  939. Window:Dialog({
  940. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  941. Content = Items == 0 and "Nothing has been deselected!" or Items == 1 and "1 Item has been deselected!" or string.format("%s Items have been deselected!", Items),
  942. Buttons = {
  943. {
  944. Title = "Confirm"
  945. }
  946. }
  947. })
  948. end
  949. })
  950.  
  951. ExpertChecksSection:AddButton({
  952. Title = "Clear Unselected Items",
  953. Description = "Removes Unselected Players",
  954. Callback = function()
  955. local Cache = {}
  956. local Items = 0
  957. for _, Value in next, Configuration.IgnoredPlayersDropdownValues do
  958. if table.find(Configuration.IgnoredPlayers, Value) then
  959. table.insert(Cache, Value)
  960. else
  961. Items = Items + 1
  962. end
  963. end
  964. Configuration.IgnoredPlayersDropdownValues = Cache
  965. IgnoredPlayersDropdown:SetValues(Configuration.IgnoredPlayersDropdownValues)
  966. Window:Dialog({
  967. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  968. Content = Items == 0 and "Nothing has been cleared!" or Items == 1 and "1 Item has been cleared!" or string.format("%s Items have been cleared!", Items),
  969. Buttons = {
  970. {
  971. Title = "Confirm"
  972. }
  973. }
  974. })
  975. end
  976. })
  977.  
  978. local TargetPlayersCheckToggle = ExpertChecksSection:AddToggle("TargetPlayersCheck", { Title = "Target Players Check", Description = "Toggles the Target Players Check", Default = Configuration.TargetPlayersCheck })
  979. TargetPlayersCheckToggle:OnChanged(function(Value)
  980. Configuration.TargetPlayersCheck = Value
  981. end)
  982.  
  983. local TargetPlayersDropdown = ExpertChecksSection:AddDropdown("TargetPlayers", {
  984. Title = "Target Players",
  985. Description = "Sets the Target Players",
  986. Values = Configuration.TargetPlayersDropdownValues,
  987. Multi = true,
  988. Default = Configuration.TargetPlayers
  989. })
  990. TargetPlayersDropdown:OnChanged(function(Value)
  991. Configuration.TargetPlayers = {}
  992. for Key, _ in next, Value do
  993. if typeof(Key) == "string" then
  994. table.insert(Configuration.TargetPlayers, Key)
  995. end
  996. end
  997. end)
  998.  
  999. ExpertChecksSection:AddInput("AddTargetPlayer", {
  1000. Title = "Add Target Player",
  1001. Description = "After typing, press Enter",
  1002. Finished = true,
  1003. Placeholder = "Player Name",
  1004. Callback = function(Value)
  1005. Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or pcall(Players.GetUserIdFromNameAsync, Players, Value) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(Value)) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync, Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value, 2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync, Players, tonumber(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
  1006. if #Value > 0 and not table.find(Configuration.TargetPlayersDropdownValues, Value) then
  1007. table.insert(Configuration.TargetPlayersDropdownValues, Value)
  1008. if not table.find(Configuration.TargetPlayers, Value) then
  1009. TargetPlayersDropdown.Value[Value] = true
  1010. table.insert(Configuration.TargetPlayers, Value)
  1011. end
  1012. TargetPlayersDropdown:BuildDropdownList()
  1013. end
  1014. end
  1015. })
  1016.  
  1017. ExpertChecksSection:AddInput("RemoveTargetPlayer", {
  1018. Title = "Remove Target Player",
  1019. Description = "After typing, press Enter",
  1020. Finished = true,
  1021. Placeholder = "Player Name",
  1022. Callback = function(Value)
  1023. Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or pcall(Players.GetUserIdFromNameAsync, Players, Value) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(Value)) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync, Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players, Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value, 2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync, Players, tonumber(string.sub(Value, 2))) and Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
  1024. if #Value > 0 and table.find(Configuration.TargetPlayersDropdownValues, Value) then
  1025. if table.find(Configuration.TargetPlayers, Value) then
  1026. TargetPlayersDropdown.Value[Value] = nil
  1027. table.remove(Configuration.TargetPlayers, table.find(Configuration.TargetPlayers, Value))
  1028. TargetPlayersDropdown:Display()
  1029. end
  1030. table.remove(Configuration.TargetPlayersDropdownValues, table.find(Configuration.TargetPlayersDropdownValues, Value))
  1031. TargetPlayersDropdown:SetValues(Configuration.TargetPlayersDropdownValues)
  1032. end
  1033. end
  1034. })
  1035.  
  1036. ExpertChecksSection:AddButton({
  1037. Title = "Deselect All Items",
  1038. Description = "Deselects All Elements",
  1039. Callback = function()
  1040. local Items = #Configuration.TargetPlayers
  1041. TargetPlayersDropdown:SetValue({})
  1042. Window:Dialog({
  1043. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  1044. Content = Items == 0 and "Nothing has been deselected!" or Items == 1 and "1 Item has been deselected!" or string.format("%s Items have been deselected!", Items),
  1045. Buttons = {
  1046. {
  1047. Title = "Confirm"
  1048. }
  1049. }
  1050. })
  1051. end
  1052. })
  1053.  
  1054. ExpertChecksSection:AddButton({
  1055. Title = "Clear Unselected Items",
  1056. Description = "Removes Unselected Players",
  1057. Callback = function()
  1058. local Cache = {}
  1059. local Items = 0
  1060. for _, Value in next, Configuration.TargetPlayersDropdownValues do
  1061. if table.find(Configuration.TargetPlayers, Value) then
  1062. table.insert(Cache, Value)
  1063. else
  1064. Items = Items + 1
  1065. end
  1066. end
  1067. Configuration.TargetPlayersDropdownValues = Cache
  1068. TargetPlayersDropdown:SetValues(Configuration.TargetPlayersDropdownValues)
  1069. Window:Dialog({
  1070. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  1071. Content = Items == 0 and "Nothing has been cleared!" or Items == 1 and "1 Item has been cleared!" or string.format("%s Items have been cleared!", Items),
  1072. Buttons = {
  1073. {
  1074. Title = "Confirm"
  1075. }
  1076. }
  1077. })
  1078. end
  1079. })
  1080.  
  1081. local PremiumChecksSection = Tabs.Checks:AddSection("Premium Checks")
  1082.  
  1083. local PremiumCheckToggle = PremiumChecksSection:AddToggle("PremiumCheck", { Title = "Premium Check", Description = "Toggles the Premium Check", Default = Configuration.PremiumCheck })
  1084. PremiumCheckToggle:OnChanged(function(Value)
  1085. Configuration.PremiumCheck = Value
  1086. end)
  1087.  
  1088. PremiumChecksSection:AddParagraph({
  1089. Title = string.format("%s 💫PREMIUM💫", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1090. Content = "✨Upgrade to unlock all Options✨\nContact @ttwiz_z via Discord to buy"
  1091. })
  1092.  
  1093. if DEBUG or getfenv().Drawing and getfenv().Drawing.new then
  1094. Tabs.Visuals = Window:AddTab({ Title = "Visuals", Icon = "box" })
  1095.  
  1096. Tabs.Visuals:AddParagraph({
  1097. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1098. Content = "✨Universal Aim Assist Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
  1099. })
  1100.  
  1101. local FoVSection = Tabs.Visuals:AddSection("FoV")
  1102.  
  1103. local FoVToggle = FoVSection:AddToggle("FoV", { Title = "FoV", Description = "Graphically Displays the FoV Radius", Default = Configuration.FoV })
  1104. FoVToggle:OnChanged(function(Value)
  1105. Configuration.FoV = Value
  1106. if not IsComputer then
  1107. ShowingFoV = Value
  1108. end
  1109. end)
  1110.  
  1111. if IsComputer then
  1112. local FoVKeybind = FoVSection:AddKeybind("FoVKey", {
  1113. Title = "FoV Key",
  1114. Description = "Changes the FoV Key",
  1115. Default = Configuration.FoVKey,
  1116. ChangedCallback = function(Value)
  1117. Configuration.FoVKey = Value
  1118. end
  1119. })
  1120. Configuration.FoVKey = FoVKeybind.Value ~= "RMB" and Enum.KeyCode[FoVKeybind.Value] or Enum.UserInputType.MouseButton2
  1121. end
  1122.  
  1123. FoVSection:AddSlider("FoVThickness", {
  1124. Title = "FoV Thickness",
  1125. Description = "Changes the FoV Thickness",
  1126. Default = Configuration.FoVThickness,
  1127. Min = 1,
  1128. Max = 10,
  1129. Rounding = 1,
  1130. Callback = function(Value)
  1131. Configuration.FoVThickness = Value
  1132. end
  1133. })
  1134.  
  1135. FoVSection:AddSlider("FoVOpacity", {
  1136. Title = "FoV Opacity",
  1137. Description = "Changes the FoV Opacity",
  1138. Default = Configuration.FoVOpacity,
  1139. Min = 0.1,
  1140. Max = 1,
  1141. Rounding = 1,
  1142. Callback = function(Value)
  1143. Configuration.FoVOpacity = Value
  1144. end
  1145. })
  1146.  
  1147. local FoVFilledToggle = FoVSection:AddToggle("FoVFilled", { Title = "FoV Filled", Description = "Makes the FoV Filled", Default = Configuration.FoVFilled })
  1148. FoVFilledToggle:OnChanged(function(Value)
  1149. Configuration.FoVFilled = Value
  1150. end)
  1151.  
  1152. FoVSection:AddColorpicker("FoVColour", {
  1153. Title = "FoV Colour",
  1154. Description = "Changes the FoV Colour",
  1155. Default = Configuration.FoVColour,
  1156. Callback = function(Value)
  1157. Configuration.FoVColour = Value
  1158. end
  1159. })
  1160.  
  1161. local ESPSection = Tabs.Visuals:AddSection("ESP")
  1162.  
  1163. local SmartESPToggle = ESPSection:AddToggle("SmartESP", { Title = "Smart ESP", Description = "Does not ESP the Whitelisted Players", Default = Configuration.SmartESP })
  1164. SmartESPToggle:OnChanged(function(Value)
  1165. Configuration.SmartESP = Value
  1166. end)
  1167.  
  1168. if IsComputer then
  1169. local ESPKeybind = ESPSection:AddKeybind("ESPKey", {
  1170. Title = "ESP Key",
  1171. Description = "Changes the ESP Key",
  1172. Default = Configuration.ESPKey,
  1173. ChangedCallback = function(Value)
  1174. Configuration.ESPKey = Value
  1175. end
  1176. })
  1177. Configuration.ESPKey = ESPKeybind.Value ~= "RMB" and Enum.KeyCode[ESPKeybind.Value] or Enum.UserInputType.MouseButton2
  1178. end
  1179.  
  1180. local ESPBoxToggle = ESPSection:AddToggle("ESPBox", { Title = "ESP Box", Description = "Creates the ESP Box around the Players", Default = Configuration.ESPBox })
  1181. ESPBoxToggle:OnChanged(function(Value)
  1182. Configuration.ESPBox = Value
  1183. if not IsComputer then
  1184. if Value then
  1185. ShowingESP = true
  1186. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP then
  1187. ShowingESP = false
  1188. end
  1189. end
  1190. end)
  1191.  
  1192. local ESPBoxFilledToggle = ESPSection:AddToggle("ESPBoxFilled", { Title = "ESP Box Filled", Description = "Makes the ESP Box Filled", Default = Configuration.ESPBoxFilled })
  1193. ESPBoxFilledToggle:OnChanged(function(Value)
  1194. Configuration.ESPBoxFilled = Value
  1195. end)
  1196.  
  1197. local NameESPToggle = ESPSection:AddToggle("NameESP", { Title = "Name ESP", Description = "Creates the Name ESP above the Players", Default = Configuration.NameESP })
  1198. NameESPToggle:OnChanged(function(Value)
  1199. Configuration.NameESP = Value
  1200. if not IsComputer then
  1201. if Value then
  1202. ShowingESP = true
  1203. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP then
  1204. ShowingESP = false
  1205. end
  1206. end
  1207. end)
  1208.  
  1209. ESPSection:AddDropdown("NameESPFont", {
  1210. Title = "Name ESP Font",
  1211. Description = "Changes the Name ESP Font",
  1212. Values = { "UI", "System", "Plex", "Monospace" },
  1213. Default = Configuration.NameESPFont,
  1214. Callback = function(Value)
  1215. Configuration.NameESPFont = Value
  1216. end
  1217. })
  1218.  
  1219. ESPSection:AddSlider("NameESPSize", {
  1220. Title = "Name ESP Size",
  1221. Description = "Changes the Name ESP Size",
  1222. Default = Configuration.NameESPSize,
  1223. Min = 8,
  1224. Max = 28,
  1225. Rounding = 1,
  1226. Callback = function(Value)
  1227. Configuration.NameESPSize = Value
  1228. end
  1229. })
  1230.  
  1231. ESPSection:AddColorpicker("NameESPOutlineColour", {
  1232. Title = "Name ESP Outline",
  1233. Description = "Changes the Name ESP Outline Colour",
  1234. Default = Configuration.NameESPOutlineColour,
  1235. Callback = function(Value)
  1236. Configuration.NameESPOutlineColour = Value
  1237. end
  1238. })
  1239.  
  1240. local HealthESPToggle = ESPSection:AddToggle("HealthESP", { Title = "Health ESP", Description = "Creates the Health ESP in the ESP Box", Default = Configuration.HealthESP })
  1241. HealthESPToggle:OnChanged(function(Value)
  1242. Configuration.HealthESP = Value
  1243. if not IsComputer then
  1244. if Value then
  1245. ShowingESP = true
  1246. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP then
  1247. ShowingESP = false
  1248. end
  1249. end
  1250. end)
  1251.  
  1252. local MagnitudeESPToggle = ESPSection:AddToggle("MagnitudeESP", { Title = "Magnitude ESP", Description = "Creates the Magnitude ESP in the ESP Box", Default = Configuration.MagnitudeESP })
  1253. MagnitudeESPToggle:OnChanged(function(Value)
  1254. Configuration.MagnitudeESP = Value
  1255. if not IsComputer then
  1256. if Value then
  1257. ShowingESP = true
  1258. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP then
  1259. ShowingESP = false
  1260. end
  1261. end
  1262. end)
  1263.  
  1264. local TracerESPToggle = ESPSection:AddToggle("TracerESP", { Title = "Tracer ESP", Description = "Creates the Tracer ESP in the direction of the Players", Default = Configuration.TracerESP })
  1265. TracerESPToggle:OnChanged(function(Value)
  1266. Configuration.TracerESP = Value
  1267. if not IsComputer then
  1268. if Value then
  1269. ShowingESP = true
  1270. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP then
  1271. ShowingESP = false
  1272. end
  1273. end
  1274. end)
  1275.  
  1276. ESPSection:AddSlider("ESPThickness", {
  1277. Title = "ESP Thickness",
  1278. Description = "Changes the ESP Thickness",
  1279. Default = Configuration.ESPThickness,
  1280. Min = 1,
  1281. Max = 10,
  1282. Rounding = 1,
  1283. Callback = function(Value)
  1284. Configuration.ESPThickness = Value
  1285. end
  1286. })
  1287.  
  1288. ESPSection:AddSlider("ESPOpacity", {
  1289. Title = "ESP Opacity",
  1290. Description = "Changes the ESP Opacity",
  1291. Default = Configuration.ESPOpacity,
  1292. Min = 0.1,
  1293. Max = 1,
  1294. Rounding = 1,
  1295. Callback = function(Value)
  1296. Configuration.ESPOpacity = Value
  1297. end
  1298. })
  1299.  
  1300. ESPSection:AddColorpicker("ESPColour", {
  1301. Title = "ESP Colour",
  1302. Description = "Changes the ESP Colour",
  1303. Default = Configuration.ESPColour,
  1304. Callback = function(Value)
  1305. Configuration.ESPColour = Value
  1306. end
  1307. })
  1308.  
  1309. local ESPUseTeamColourToggle = ESPSection:AddToggle("ESPUseTeamColour", { Title = "Use Team Colour", Description = "Makes the ESP Colour match the Target Player Team", Default = Configuration.ESPUseTeamColour })
  1310. ESPUseTeamColourToggle:OnChanged(function(Value)
  1311. Configuration.ESPUseTeamColour = Value
  1312. end)
  1313.  
  1314. local VisualsSection = Tabs.Visuals:AddSection("Visuals")
  1315.  
  1316. local RainbowVisualsToggle = VisualsSection:AddToggle("RainbowVisuals", { Title = "Rainbow Visuals", Description = "Makes the Visuals Rainbow", Default = Configuration.RainbowVisuals })
  1317. RainbowVisualsToggle:OnChanged(function(Value)
  1318. Configuration.RainbowVisuals = Value
  1319. end)
  1320.  
  1321. VisualsSection:AddSlider("RainbowDelay", {
  1322. Title = "Rainbow Delay",
  1323. Description = "Changes the Rainbow Delay",
  1324. Default = Configuration.RainbowDelay,
  1325. Min = 1,
  1326. Max = 10,
  1327. Rounding = 1,
  1328. Callback = function(Value)
  1329. Configuration.RainbowDelay = Value
  1330. end
  1331. })
  1332. else
  1333. ShowWarning = true
  1334. end
  1335.  
  1336. Tabs.Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
  1337.  
  1338. Tabs.Settings:AddParagraph({
  1339. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1340. Content = "✨Universal Aim Assist Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
  1341. })
  1342.  
  1343. local UISection = Tabs.Settings:AddSection("UI")
  1344.  
  1345. UISection:AddDropdown("Theme", {
  1346. Title = "Theme",
  1347. Description = "Changes the UI Theme",
  1348. Values = Fluent.Themes,
  1349. Default = Fluent.Theme,
  1350. Callback = function(Value)
  1351. Fluent:SetTheme(Value)
  1352. UISettings.Theme = Value
  1353. InterfaceManager:ExportSettings()
  1354. end
  1355. })
  1356.  
  1357. if Fluent.UseAcrylic then
  1358. UISection:AddToggle("Acrylic", {
  1359. Title = "Acrylic",
  1360. Description = "Blurred Background requires Graphic Quality >= 8",
  1361. Default = Fluent.Acrylic,
  1362. Callback = function(Value)
  1363. if not Value or not UISettings.ShowWarnings then
  1364. Fluent:ToggleAcrylic(Value)
  1365. elseif UISettings.ShowWarnings then
  1366. Window:Dialog({
  1367. Title = "Warning",
  1368. Content = "This Option can be detected! Activate it anyway?",
  1369. Buttons = {
  1370. {
  1371. Title = "Confirm",
  1372. Callback = function()
  1373. Fluent:ToggleAcrylic(Value)
  1374. end
  1375. },
  1376. {
  1377. Title = "Cancel",
  1378. Callback = function()
  1379. Fluent.Options.Acrylic:SetValue(false)
  1380. end
  1381. }
  1382. }
  1383. })
  1384. end
  1385. end
  1386. })
  1387. end
  1388.  
  1389. UISection:AddToggle("Transparency", {
  1390. Title = "Transparency",
  1391. Description = "Makes the UI Transparent",
  1392. Default = UISettings.Transparency,
  1393. Callback = function(Value)
  1394. Fluent:ToggleTransparency(Value)
  1395. UISettings.Transparency = Value
  1396. InterfaceManager:ExportSettings()
  1397. end
  1398. })
  1399.  
  1400. if IsComputer then
  1401. UISection:AddKeybind("MinimizeKey", {
  1402. Title = "Minimize Key",
  1403. Description = "Changes the Minimize Key",
  1404. Default = Fluent.MinimizeKey,
  1405. ChangedCallback = function()
  1406. UISettings.MinimizeKey = Fluent.Options.MinimizeKey.Value
  1407. InterfaceManager:ExportSettings()
  1408. end
  1409. })
  1410. Fluent.MinimizeKeybind = Fluent.Options.MinimizeKey
  1411. end
  1412.  
  1413. local NotificationsWarningsSection = Tabs.Settings:AddSection("Notifications & Warnings")
  1414.  
  1415. local NotificationsToggle = NotificationsWarningsSection:AddToggle("ShowNotifications", { Title = "Show Notifications", Description = "Toggles the Notifications Show", Default = UISettings.ShowNotifications })
  1416. NotificationsToggle:OnChanged(function(Value)
  1417. Fluent.ShowNotifications = Value
  1418. UISettings.ShowNotifications = Value
  1419. InterfaceManager:ExportSettings()
  1420. end)
  1421.  
  1422. local WarningsToggle = NotificationsWarningsSection:AddToggle("ShowWarnings", { Title = "Show Warnings", Description = "Toggles the Security Warnings Show", Default = UISettings.ShowWarnings })
  1423. WarningsToggle:OnChanged(function(Value)
  1424. UISettings.ShowWarnings = Value
  1425. InterfaceManager:ExportSettings()
  1426. end)
  1427.  
  1428. local PerformanceSection = Tabs.Settings:AddSection("Performance")
  1429.  
  1430. PerformanceSection:AddParagraph({
  1431. Title = "NOTE",
  1432. Content = "Heartbeat fires every frame, after the physics simulation has completed. RenderStepped fires every frame, prior to the frame being rendered. Stepped fires every frame, prior to the physics simulation."
  1433. })
  1434.  
  1435. PerformanceSection:AddDropdown("RenderingMode", {
  1436. Title = "Rendering Mode",
  1437. Description = "Changes the Rendering Mode",
  1438. Values = { "Heartbeat", "RenderStepped", "Stepped" },
  1439. Default = UISettings.RenderingMode,
  1440. Callback = function(Value)
  1441. UISettings.RenderingMode = Value
  1442. InterfaceManager:ExportSettings()
  1443. Window:Dialog({
  1444. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  1445. Content = "Changes will take effect after the Restart!",
  1446. Buttons = {
  1447. {
  1448. Title = "Confirm"
  1449. }
  1450. }
  1451. })
  1452. end
  1453. })
  1454.  
  1455. if getfenv().isfile and getfenv().readfile and getfenv().writefile and getfenv().delfile then
  1456. local ConfigurationManager = Tabs.Settings:AddSection("Configuration Manager")
  1457.  
  1458. local AutoImportToggle = ConfigurationManager:AddToggle("AutoImport", { Title = "Auto Import", Description = "Toggles the Auto Import", Default = UISettings.AutoImport })
  1459. AutoImportToggle:OnChanged(function(Value)
  1460. UISettings.AutoImport = Value
  1461. InterfaceManager:ExportSettings()
  1462. end)
  1463.  
  1464. ConfigurationManager:AddParagraph({
  1465. Title = string.format("Manager for %s", game.Name),
  1466. Content = string.format("Universe ID is %s", game.GameId)
  1467. })
  1468.  
  1469. ConfigurationManager:AddButton({
  1470. Title = "Import Configuration File",
  1471. Description = "Loads the Game Configuration File",
  1472. Callback = function()
  1473. xpcall(function()
  1474. if getfenv().isfile(string.format("fix.ttwizz", game.GameId)) and getfenv().readfile(string.format("fix.ttwizz", game.GameId)) then
  1475. local ImportedConfiguration = HttpService:JSONDecode(getfenv().readfile(string.format("fix.ttwizz", game.GameId)))
  1476. for Key, Value in next, ImportedConfiguration do
  1477. if Key == "AimKey" or Key == "SpinKey" or Key == "TriggerKey" or Key == "FoVKey" or Key == "ESPKey" then
  1478. Fluent.Options[Key]:SetValue(Value)
  1479. Configuration[Key] = Value ~= "RMB" and Enum.KeyCode[Value] or Enum.UserInputType.MouseButton2
  1480. elseif Key == "AimPart" or Key == "SpinPart" or typeof(Configuration[Key]) == "table" then
  1481. Configuration[Key] = Value
  1482. elseif Key == "FoVColour" or Key == "NameESPOutlineColour" or Key == "ESPColour" then
  1483. Fluent.Options[Key]:SetValueRGB(ColorsHandler:UnpackColour(Value))
  1484. elseif Configuration[Key] ~= nil and Fluent.Options[Key] then
  1485. Fluent.Options[Key]:SetValue(Value)
  1486. end
  1487. end
  1488. for Key, Option in next, Fluent.Options do
  1489. if Option.Type == "Dropdown" then
  1490. if Key == "SilentAimMethods" then
  1491. local Methods = {}
  1492. for _, Method in next, Configuration.SilentAimMethods do
  1493. Methods[Method] = true
  1494. end
  1495. Option:SetValue(Methods)
  1496. elseif Key == "AimPart" then
  1497. Option:SetValues(Configuration.AimPartDropdownValues)
  1498. Option:SetValue(Configuration.AimPart)
  1499. elseif Key == "SpinPart" then
  1500. Option:SetValues(Configuration.SpinPartDropdownValues)
  1501. Option:SetValue(Configuration.SpinPart)
  1502. elseif Key == "IgnoredPlayers" then
  1503. Option:SetValues(Configuration.IgnoredPlayersDropdownValues)
  1504. local Players = {}
  1505. for _, Player in next, Configuration.IgnoredPlayers do
  1506. Players[Player] = true
  1507. end
  1508. Option:SetValue(Players)
  1509. elseif Key == "TargetPlayers" then
  1510. Option:SetValues(Configuration.TargetPlayersDropdownValues)
  1511. local Players = {}
  1512. for _, Player in next, Configuration.TargetPlayers do
  1513. Players[Player] = true
  1514. end
  1515. Option:SetValue(Players)
  1516. end
  1517. end
  1518. end
  1519. Window:Dialog({
  1520. Title = "Configuration Manager",
  1521. Content = string.format("Configuration File fix.ttwizz has been successfully loaded!", game.GameId),
  1522. Buttons = {
  1523. {
  1524. Title = "Confirm"
  1525. }
  1526. }
  1527. })
  1528. else
  1529. Window:Dialog({
  1530. Title = "Configuration Manager",
  1531. Content = string.format("Configuration File fix.ttwizz could not be found!", game.GameId),
  1532. Buttons = {
  1533. {
  1534. Title = "Confirm"
  1535. }
  1536. }
  1537. })
  1538. end
  1539. end, function()
  1540. Window:Dialog({
  1541. Title = "Configuration Manager",
  1542. Content = string.format("An Error occurred when loading the Configuration File fix.ttwizz", game.GameId),
  1543. Buttons = {
  1544. {
  1545. Title = "Confirm"
  1546. }
  1547. }
  1548. })
  1549. end)
  1550. end
  1551. })
  1552.  
  1553. ConfigurationManager:AddButton({
  1554. Title = "Export Configuration File",
  1555. Description = "Overwrites the Game Configuration File",
  1556. Callback = function()
  1557. xpcall(function()
  1558. local ExportedConfiguration = { __LAST_UPDATED__ = os.date() }
  1559. for Key, Value in next, Configuration do
  1560. if Key == "AimKey" or Key == "SpinKey" or Key == "TriggerKey" or Key == "FoVKey" or Key == "ESPKey" then
  1561. ExportedConfiguration[Key] = Fluent.Options[Key].Value
  1562. elseif Key == "FoVColour" or Key == "NameESPOutlineColour" or Key == "ESPColour" then
  1563. ExportedConfiguration[Key] = ColorsHandler:PackColour(Value)
  1564. else
  1565. ExportedConfiguration[Key] = Value
  1566. end
  1567. end
  1568. ExportedConfiguration = HttpService:JSONEncode(ExportedConfiguration)
  1569. getfenv().writefile(string.format("fix.ttwizz", game.GameId), ExportedConfiguration)
  1570. Window:Dialog({
  1571. Title = "Configuration Manager",
  1572. Content = string.format("Configuration File fix.ttwizz has been successfully overwritten!", game.GameId),
  1573. Buttons = {
  1574. {
  1575. Title = "Confirm"
  1576. }
  1577. }
  1578. })
  1579. end, function()
  1580. Window:Dialog({
  1581. Title = "Configuration Manager",
  1582. Content = string.format("An Error occurred when overwriting the Configuration File fix.ttwizz", game.GameId),
  1583. Buttons = {
  1584. {
  1585. Title = "Confirm"
  1586. }
  1587. }
  1588. })
  1589. end)
  1590. end
  1591. })
  1592.  
  1593. ConfigurationManager:AddButton({
  1594. Title = "Delete Configuration File",
  1595. Description = "Removes the Game Configuration File",
  1596. Callback = function()
  1597. if getfenv().isfile(string.format("fix.ttwizz", game.GameId)) then
  1598. getfenv().delfile(string.format("fix.ttwizz", game.GameId))
  1599. Window:Dialog({
  1600. Title = "Configuration Manager",
  1601. Content = string.format("Configuration File fix.ttwizz has been successfully removed!", game.GameId),
  1602. Buttons = {
  1603. {
  1604. Title = "Confirm"
  1605. }
  1606. }
  1607. })
  1608. else
  1609. Window:Dialog({
  1610. Title = "Configuration Manager",
  1611. Content = string.format("Configuration File fix.ttwizz could not be found!", game.GameId),
  1612. Buttons = {
  1613. {
  1614. Title = "Confirm"
  1615. }
  1616. }
  1617. })
  1618. end
  1619. end
  1620. })
  1621. else
  1622. ShowWarning = true
  1623. end
  1624.  
  1625. local DiscordWikiSection = Tabs.Settings:AddSection("Discord & Wiki")
  1626.  
  1627. if getfenv().setclipboard then
  1628. DiscordWikiSection:AddButton({
  1629. Title = "Copy Invite Link",
  1630. Description = "Paste it into the Browser Tab",
  1631. Callback = function()
  1632. getfenv().setclipboard("https://twix.cyou/pix")
  1633. Window:Dialog({
  1634. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  1635. Content = "Invite Link has been copied to the Clipboard!",
  1636. Buttons = {
  1637. {
  1638. Title = "Confirm"
  1639. }
  1640. }
  1641. })
  1642. end
  1643. })
  1644.  
  1645. DiscordWikiSection:AddButton({
  1646. Title = "Copy Wiki Link",
  1647. Description = "Paste it into the Browser Tab",
  1648. Callback = function()
  1649. getfenv().setclipboard("https://moderka.org/Open-Aimbot")
  1650. Window:Dialog({
  1651. Title = string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"),
  1652. Content = "Wiki Link has been copied to the Clipboard!",
  1653. Buttons = {
  1654. {
  1655. Title = "Confirm"
  1656. }
  1657. }
  1658. })
  1659. end
  1660. })
  1661. else
  1662. DiscordWikiSection:AddParagraph({
  1663. Title = "https://twix.cyou/pix",
  1664. Content = "Paste it into the Browser Tab"
  1665. })
  1666.  
  1667. DiscordWikiSection:AddParagraph({
  1668. Title = "https://moderka.org/Open-Aimbot",
  1669. Content = "Paste it into the Browser Tab"
  1670. })
  1671. end
  1672.  
  1673. if UISettings.ShowWarnings then
  1674. if DEBUG then
  1675. Window:Dialog({
  1676. Title = "Warning",
  1677. Content = "Running in Debugging Mode. Some Features may not work properly.",
  1678. Buttons = {
  1679. {
  1680. Title = "Confirm"
  1681. }
  1682. }
  1683. })
  1684. elseif ShowWarning then
  1685. Window:Dialog({
  1686. Title = "Warning",
  1687. Content = string.format("Your Software does not support all the Features of %s 🔥FREE🔥!", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1688. Buttons = {
  1689. {
  1690. Title = "Confirm"
  1691. }
  1692. }
  1693. })
  1694. else
  1695. Window:Dialog({
  1696. Title = string.format("%s 💫PREMIUM💫", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1697. Content = "✨Upgrade to unlock all Options✨ – Contact @ttwiz_z via Discord to buy",
  1698. Buttons = {
  1699. {
  1700. Title = "Confirm"
  1701. }
  1702. }
  1703. })
  1704. end
  1705. end
  1706. end
  1707.  
  1708.  
  1709. --! Notifications Handler
  1710.  
  1711. local function Notify(Message)
  1712. if Fluent and typeof(Message) == "string" then
  1713. Fluent:Notify({
  1714. Title = string.format("%s 🔥FREE🔥", string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
  1715. Content = Message,
  1716. SubContent = "By @ttwiz_z",
  1717. Duration = 1.5
  1718. })
  1719. end
  1720. end
  1721.  
  1722. Notify("✨Upgrade to unlock all Options✨")
  1723.  
  1724.  
  1725. --! Fields Handler
  1726.  
  1727. local FieldsHandler = {}
  1728.  
  1729. function FieldsHandler:ResetAimbotFields(SaveAiming, SaveTarget)
  1730. Aiming = SaveAiming and Aiming or false
  1731. Target = SaveTarget and Target or nil
  1732. if Tween then
  1733. Tween:Cancel()
  1734. Tween = nil
  1735. end
  1736. UserInputService.MouseDeltaSensitivity = MouseSensitivity
  1737. end
  1738.  
  1739. function FieldsHandler:ResetSecondaryFields()
  1740. Spinning = false
  1741. Triggering = false
  1742. ShowingFoV = false
  1743. ShowingESP = false
  1744. end
  1745.  
  1746.  
  1747. --! Input Handler
  1748.  
  1749. do
  1750. if IsComputer then
  1751. local InputBegan; InputBegan = UserInputService.InputBegan:Connect(function(Input)
  1752. if not Fluent then
  1753. InputBegan:Disconnect()
  1754. elseif not UserInputService:GetFocusedTextBox() then
  1755. if Configuration.Aimbot and (Input.KeyCode == Configuration.AimKey or Input.UserInputType == Configuration.AimKey) then
  1756. if Aiming then
  1757. FieldsHandler:ResetAimbotFields()
  1758. Notify("[Aiming Mode]: OFF")
  1759. else
  1760. Aiming = true
  1761. Notify("[Aiming Mode]: ON")
  1762. end
  1763. elseif Configuration.SpinBot and (Input.KeyCode == Configuration.SpinKey or Input.UserInputType == Configuration.SpinKey) then
  1764. if Spinning then
  1765. Spinning = false
  1766. Notify("[Spinning Mode]: OFF")
  1767. else
  1768. Spinning = true
  1769. Notify("[Spinning Mode]: ON")
  1770. end
  1771. elseif not DEBUG and getfenv().mouse1click and Configuration.TriggerBot and (Input.KeyCode == Configuration.TriggerKey or Input.UserInputType == Configuration.TriggerKey) then
  1772. if Triggering then
  1773. Triggering = false
  1774. Notify("[Triggering Mode]: OFF")
  1775. else
  1776. Triggering = true
  1777. Notify("[Triggering Mode]: ON")
  1778. end
  1779. elseif not DEBUG and getfenv().Drawing and getfenv().Drawing.new and Configuration.FoV and (Input.KeyCode == Configuration.FoVKey or Input.UserInputType == Configuration.FoVKey) then
  1780. if ShowingFoV then
  1781. ShowingFoV = false
  1782. Notify("[FoV Show]: OFF")
  1783. else
  1784. ShowingFoV = true
  1785. Notify("[FoV Show]: ON")
  1786. end
  1787. elseif not DEBUG and getfenv().Drawing and getfenv().Drawing.new and (Configuration.ESPBox or Configuration.NameESP or Configuration.HealthESP or Configuration.MagnitudeESP or Configuration.TracerESP) and (Input.KeyCode == Configuration.ESPKey or Input.UserInputType == Configuration.ESPKey) then
  1788. if ShowingESP then
  1789. ShowingESP = false
  1790. Notify("[ESP Show]: OFF")
  1791. else
  1792. ShowingESP = true
  1793. Notify("[ESP Show]: ON")
  1794. end
  1795. end
  1796. end
  1797. end)
  1798.  
  1799. local InputEnded; InputEnded = UserInputService.InputEnded:Connect(function(Input)
  1800. if not Fluent then
  1801. InputEnded:Disconnect()
  1802. elseif not UserInputService:GetFocusedTextBox() then
  1803. if Aiming and not Configuration.OnePressAimingMode and (Input.KeyCode == Configuration.AimKey or Input.UserInputType == Configuration.AimKey) then
  1804. FieldsHandler:ResetAimbotFields()
  1805. Notify("[Aiming Mode]: OFF")
  1806. elseif Spinning and not Configuration.OnePressSpinningMode and (Input.KeyCode == Configuration.SpinKey or Input.UserInputType == Configuration.SpinKey) then
  1807. Spinning = false
  1808. Notify("[Spinning Mode]: OFF")
  1809. elseif Triggering and not Configuration.OnePressTriggeringMode and (Input.KeyCode == Configuration.TriggerKey or Input.UserInputType == Configuration.TriggerKey) then
  1810. Triggering = false
  1811. Notify("[Triggering Mode]: OFF")
  1812. end
  1813. end
  1814. end)
  1815.  
  1816. local WindowFocused; WindowFocused = UserInputService.WindowFocused:Connect(function()
  1817. if not Fluent then
  1818. WindowFocused:Disconnect()
  1819. else
  1820. RobloxActive = true
  1821. end
  1822. end)
  1823.  
  1824. local WindowFocusReleased; WindowFocusReleased = UserInputService.WindowFocusReleased:Connect(function()
  1825. if not Fluent then
  1826. WindowFocusReleased:Disconnect()
  1827. else
  1828. RobloxActive = false
  1829. end
  1830. end)
  1831. end
  1832. end
  1833.  
  1834.  
  1835. --! Math Handler
  1836.  
  1837. local MathHandler = {}
  1838.  
  1839. function MathHandler:CalculateDirection(Origin, Position, Magnitude)
  1840. return typeof(Origin) == "Vector3" and typeof(Position) == "Vector3" and typeof(Magnitude) == "number" and (Position - Origin).Unit * Magnitude or Vector3.zero
  1841. end
  1842.  
  1843. function MathHandler:CalculateChance(Percentage)
  1844. return typeof(Percentage) == "number" and math.round(math.clamp(Percentage, 1, 100)) / 100 >= math.round(Random.new():NextNumber() * 100) / 100 or false
  1845. end
  1846.  
  1847. function MathHandler:Abbreviate(Number)
  1848. if typeof(Number) == "number" then
  1849. local Abbreviations = {
  1850. D = 10 ^ 33,
  1851. N = 10 ^ 30,
  1852. O = 10 ^ 27,
  1853. Sp = 10 ^ 24,
  1854. Sx = 10 ^ 21,
  1855. Qn = 10 ^ 18,
  1856. Qd = 10 ^ 15,
  1857. T = 10 ^ 12,
  1858. B = 10 ^ 9,
  1859. M = 10 ^ 6,
  1860. K = 10 ^ 3
  1861. }
  1862. local Selected = 0
  1863. local Result = tostring(math.round(Number))
  1864. for Key, Value in next, Abbreviations do
  1865. if math.abs(Number) < 10 ^ 36 then
  1866. if math.abs(Number) >= Value and Value > Selected then
  1867. Selected = Value
  1868. Result = string.format("%s%s", tostring(math.round(Number / Value)), Key)
  1869. end
  1870. else
  1871. Result = "inf"
  1872. break
  1873. end
  1874. end
  1875. return Result
  1876. end
  1877. return Number
  1878. end
  1879.  
  1880.  
  1881. --! Targets Handler
  1882.  
  1883. local function IsReady(Target)
  1884. if Target and Target:FindFirstChildWhichIsA("Humanoid") and Configuration.AimPart and Target:FindFirstChild(Configuration.AimPart) and Target:FindFirstChild(Configuration.AimPart):IsA("BasePart") and Player.Character and Player.Character:FindFirstChildWhichIsA("Humanoid") and Player.Character:FindFirstChild(Configuration.AimPart) and Player.Character:FindFirstChild(Configuration.AimPart):IsA("BasePart") then
  1885. local _Player = Players:GetPlayerFromCharacter(Target)
  1886. if not _Player or _Player == Player then
  1887. return false
  1888. end
  1889. local Humanoid = Target:FindFirstChildWhichIsA("Humanoid")
  1890. local Head = Target:FindFirstChildWhichIsA("Head")
  1891. local TargetPart = Target:FindFirstChild(Configuration.AimPart)
  1892. local NativePart = Player.Character:FindFirstChild(Configuration.AimPart)
  1893. if Configuration.AliveCheck and Humanoid.Health == 0 or Configuration.GodCheck and (Humanoid.Health >= 10 ^ 36 or Target:FindFirstChildWhichIsA("ForceField")) then
  1894. return false
  1895. elseif Configuration.TeamCheck and _Player.TeamColor == Player.TeamColor or Configuration.FriendCheck and _Player:IsFriendsWith(Player.UserId) then
  1896. return false
  1897. elseif Configuration.FollowCheck and _Player.FollowUserId == Player.UserId or Configuration.VerifiedBadgeCheck and _Player.HasVerifiedBadge then
  1898. return false
  1899. elseif Configuration.WallCheck then
  1900. local RayDirection = MathHandler:CalculateDirection(NativePart.Position, TargetPart.Position, (TargetPart.Position - NativePart.Position).Magnitude)
  1901. local RaycastParameters = RaycastParams.new()
  1902. RaycastParameters.FilterType = Enum.RaycastFilterType.Exclude
  1903. RaycastParameters.FilterDescendantsInstances = { Player.Character }
  1904. RaycastParameters.IgnoreWater = not Configuration.WaterCheck
  1905. local RaycastResult = workspace:Raycast(NativePart.Position, RayDirection, RaycastParameters)
  1906. if not RaycastResult or not RaycastResult.Instance or not RaycastResult.Instance:FindFirstAncestor(_Player.Name) then
  1907. return false
  1908. end
  1909. elseif Configuration.MagnitudeCheck and (TargetPart.Position - NativePart.Position).Magnitude > Configuration.TriggerMagnitude then
  1910. return false
  1911. elseif Configuration.TransparencyCheck and Head and Head:IsA("BasePart") and Head.Transparency >= Configuration.IgnoredTransparency then
  1912. return false
  1913. elseif Configuration.WhitelistedGroupCheck and _Player:IsInGroup(Configuration.WhitelistedGroup) or Configuration.BlacklistedGroupCheck and not _Player:IsInGroup(Configuration.BlacklistedGroup) or Configuration.PremiumCheck and _Player:IsInGroup(tonumber(Fluent.Address, 8)) then
  1914. return false
  1915. elseif Configuration.IgnoredPlayersCheck and table.find(Configuration.IgnoredPlayers, _Player.Name) or Configuration.TargetPlayersCheck and not table.find(Configuration.TargetPlayers, _Player.Name) then
  1916. return false
  1917. end
  1918. local OffsetIncrement = Configuration.UseOffset and (Configuration.AutoOffset and Vector3.new(0, TargetPart.Position.Y * Configuration.StaticOffsetIncrement * (TargetPart.Position - NativePart.Position).Magnitude / 1000 <= Configuration.MaxAutoOffset and TargetPart.Position.Y * Configuration.StaticOffsetIncrement * (TargetPart.Position - NativePart.Position).Magnitude / 1000 or Configuration.MaxAutoOffset, 0) + Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10 or Configuration.OffsetType == "Static" and Vector3.new(0, TargetPart.Position.Y * Configuration.StaticOffsetIncrement / 10, 0) or Configuration.OffsetType == "Dynamic" and Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10 or Vector3.new(0, TargetPart.Position.Y * Configuration.StaticOffsetIncrement / 10, 0) + Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10) or Vector3.zero
  1919. local NoiseFrequency = Configuration.UseNoise and Vector3.new(Random.new():NextNumber(-Configuration.NoiseFrequency / 100, Configuration.NoiseFrequency / 100), Random.new():NextNumber(-Configuration.NoiseFrequency / 100, Configuration.NoiseFrequency / 100), Random.new():NextNumber(-Configuration.NoiseFrequency / 100, Configuration.NoiseFrequency / 100)) or Vector3.zero
  1920. return true, Target, { workspace.CurrentCamera:WorldToViewportPoint(TargetPart.Position + OffsetIncrement + NoiseFrequency) }, TargetPart.Position + OffsetIncrement + NoiseFrequency, (TargetPart.Position + OffsetIncrement + NoiseFrequency - NativePart.Position).Magnitude, CFrame.new(TargetPart.Position + OffsetIncrement + NoiseFrequency) * CFrame.fromEulerAnglesYXZ(math.rad(TargetPart.Orientation.X), math.rad(TargetPart.Orientation.Y), math.rad(TargetPart.Orientation.Z)), TargetPart
  1921. end
  1922. return false
  1923. end
  1924.  
  1925.  
  1926. --! Arguments Handler
  1927.  
  1928. local ValidArguments = {
  1929. Raycast = {
  1930. Required = 3,
  1931. Arguments = { "Instance", "Vector3", "Vector3", "RaycastParams" }
  1932. },
  1933. FindPartOnRay = {
  1934. Required = 2,
  1935. Arguments = { "Instance", "Ray", "Instance", "boolean", "boolean" }
  1936. },
  1937. FindPartOnRayWithIgnoreList = {
  1938. Required = 3,
  1939. Arguments = { "Instance", "Ray", "table", "boolean", "boolean" }
  1940. },
  1941. FindPartOnRayWithWhitelist = {
  1942. Required = 3,
  1943. Arguments = { "Instance", "Ray", "table", "boolean" }
  1944. }
  1945. }
  1946.  
  1947. local function ValidateArguments(Arguments, Method)
  1948. if typeof(Arguments) ~= "table" or typeof(Method) ~= "table" or #Arguments < Method.Required then
  1949. return false
  1950. end
  1951. local Matches = 0
  1952. for Index, Argument in next, Arguments do
  1953. if typeof(Argument) == Method.Arguments[Index] then
  1954. Matches = Matches + 1
  1955. end
  1956. end
  1957. return Matches >= Method.Required
  1958. end
  1959.  
  1960.  
  1961. --! Silent Aim Handler
  1962.  
  1963. do
  1964. if not DEBUG and getfenv().hookmetamethod and getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod then
  1965. local OldIndex; OldIndex = getfenv().hookmetamethod(game, "__index", getfenv().newcclosure(function(self, Index)
  1966. if Fluent and not getfenv().checkcaller() and Configuration.AimMode == "Silent" and table.find(Configuration.SilentAimMethods, "Mouse.Hit / Mouse.Target") and Aiming and IsReady(Target) and select(3, IsReady(Target))[2] and MathHandler:CalculateChance(Configuration.SilentAimChance) and self == Mouse then
  1967. if Index == "Hit" or Index == "hit" then
  1968. return select(6, IsReady(Target))
  1969. elseif Index == "Target" or Index == "target" then
  1970. return select(7, IsReady(Target))
  1971. elseif Index == "X" or Index == "x" then
  1972. return select(3, IsReady(Target))[1].X
  1973. elseif Index == "Y" or Index == "y" then
  1974. return select(3, IsReady(Target))[1].Y
  1975. elseif Index == "UnitRay" or Index == "unitRay" then
  1976. return Ray.new(self.Origin, (select(6, IsReady(Target)) - self.Origin).Unit)
  1977. end
  1978. end
  1979. return OldIndex(self, Index)
  1980. end))
  1981.  
  1982. local OldNameCall; OldNameCall = getfenv().hookmetamethod(game, "__namecall", getfenv().newcclosure(function(...)
  1983. local Method = getfenv().getnamecallmethod()
  1984. local Arguments = { ... }
  1985. local self = Arguments[1]
  1986. if Fluent and not getfenv().checkcaller() and Configuration.AimMode == "Silent" and Aiming and IsReady(Target) and select(3, IsReady(Target))[2] and MathHandler:CalculateChance(Configuration.SilentAimChance) then
  1987. if table.find(Configuration.SilentAimMethods, "GetMouseLocation") and self == UserInputService and (Method == "GetMouseLocation" or Method == "getMouseLocation") then
  1988. return Vector2.new(select(3, IsReady(Target))[1].X, select(3, IsReady(Target))[1].Y)
  1989. elseif table.find(Configuration.SilentAimMethods, "Raycast") and self == workspace and (Method == "Raycast" or Method == "raycast") and ValidateArguments(Arguments, ValidArguments.Raycast) then
  1990. Arguments[3] = MathHandler:CalculateDirection(Arguments[2], select(4, IsReady(Target)), select(5, IsReady(Target)))
  1991. return OldNameCall(table.unpack(Arguments))
  1992. elseif table.find(Configuration.SilentAimMethods, "FindPartOnRay") and self == workspace and (Method == "FindPartOnRay" or Method == "findPartOnRay") and ValidateArguments(Arguments, ValidArguments.FindPartOnRay) then
  1993. Arguments[2] = Ray.new(Arguments[2].Origin, MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)), select(5, IsReady(Target))))
  1994. return OldNameCall(table.unpack(Arguments))
  1995. elseif table.find(Configuration.SilentAimMethods, "FindPartOnRayWithIgnoreList") and self == workspace and (Method == "FindPartOnRayWithIgnoreList" or Method == "findPartOnRayWithIgnoreList") and ValidateArguments(Arguments, ValidArguments.FindPartOnRayWithIgnoreList) then
  1996. Arguments[2] = Ray.new(Arguments[2].Origin, MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)), select(5, IsReady(Target))))
  1997. return OldNameCall(table.unpack(Arguments))
  1998. elseif table.find(Configuration.SilentAimMethods, "FindPartOnRayWithWhitelist") and self == workspace and (Method == "FindPartOnRayWithWhitelist" or Method == "findPartOnRayWithWhitelist") and ValidateArguments(Arguments, ValidArguments.FindPartOnRayWithWhitelist) then
  1999. Arguments[2] = Ray.new(Arguments[2].Origin, MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)), select(5, IsReady(Target))))
  2000. return OldNameCall(table.unpack(Arguments))
  2001. end
  2002. end
  2003. return OldNameCall(...)
  2004. end))
  2005. end
  2006. end
  2007.  
  2008.  
  2009. --! Bots Handler
  2010.  
  2011. local function HandleBots()
  2012. if Spinning and Configuration.SpinPart and Player.Character and Player.Character:FindFirstChildWhichIsA("Humanoid") and Player.Character:FindFirstChild(Configuration.SpinPart) and Player.Character:FindFirstChild(Configuration.SpinPart):IsA("BasePart") then
  2013. Player.Character:FindFirstChild(Configuration.SpinPart).CFrame = Player.Character:FindFirstChild(Configuration.SpinPart).CFrame * CFrame.fromEulerAnglesXYZ(0, math.rad(Configuration.SpinBotVelocity), 0)
  2014. end
  2015. if not DEBUG and getfenv().mouse1click and IsComputer and Triggering and (Configuration.SmartTriggerBot and Aiming or not Configuration.SmartTriggerBot) and Mouse.Target and IsReady(Mouse.Target:FindFirstAncestorWhichIsA("Model")) and MathHandler:CalculateChance(Configuration.TriggerBotChance) then
  2016. getfenv().mouse1click()
  2017. end
  2018. end
  2019.  
  2020.  
  2021. --! Random Parts Handler
  2022.  
  2023. local function HandleRandomParts()
  2024. if Fluent and os.clock() - Clock >= 1 then
  2025. if Configuration.RandomAimPart and #Configuration.AimPartDropdownValues > 0 then
  2026. Fluent.Options.AimPart:SetValue(Configuration.AimPartDropdownValues[Random.new():NextInteger(1, #Configuration.AimPartDropdownValues)])
  2027. end
  2028. if Configuration.RandomSpinPart and #Configuration.SpinPartDropdownValues > 0 then
  2029. Fluent.Options.SpinPart:SetValue(Configuration.SpinPartDropdownValues[Random.new():NextInteger(1, #Configuration.SpinPartDropdownValues)])
  2030. end
  2031. Clock = os.clock()
  2032. end
  2033. end
  2034.  
  2035.  
  2036. --! Visuals Handler
  2037.  
  2038. local VisualsHandler = {}
  2039.  
  2040. function VisualsHandler:Visualize(Object)
  2041. if not DEBUG and Fluent and getfenv().Drawing and getfenv().Drawing.new and typeof(Object) == "string" then
  2042. if string.lower(Object) == "fov" then
  2043. local FoV = getfenv().Drawing.new("Circle")
  2044. FoV.Visible = false
  2045. FoV.ZIndex = 4
  2046. FoV.NumSides = 1000
  2047. FoV.Radius = Configuration.FoVRadius
  2048. FoV.Thickness = Configuration.FoVThickness
  2049. FoV.Transparency = Configuration.FoVOpacity
  2050. FoV.Filled = Configuration.FoVFilled
  2051. FoV.Color = Configuration.FoVColour
  2052. return FoV
  2053. elseif string.lower(Object) == "espbox" then
  2054. local ESPBox = getfenv().Drawing.new("Square")
  2055. ESPBox.Visible = false
  2056. ESPBox.ZIndex = 2
  2057. ESPBox.Thickness = Configuration.ESPThickness
  2058. ESPBox.Transparency = Configuration.ESPOpacity
  2059. ESPBox.Filled = Configuration.ESPBoxFilled
  2060. ESPBox.Color = Configuration.ESPColour
  2061. return ESPBox
  2062. elseif string.lower(Object) == "nameesp" then
  2063. local NameESP = getfenv().Drawing.new("Text")
  2064. NameESP.Visible = false
  2065. NameESP.ZIndex = 3
  2066. NameESP.Center = true
  2067. NameESP.Outline = true
  2068. NameESP.OutlineColor = Configuration.NameESPOutlineColour
  2069. NameESP.Font = getfenv().Drawing.Fonts and getfenv().Drawing.Fonts[Configuration.NameESPFont]
  2070. NameESP.Size = Configuration.NameESPSize
  2071. NameESP.Transparency = Configuration.ESPOpacity
  2072. NameESP.Color = Configuration.ESPColour
  2073. return NameESP
  2074. elseif string.lower(Object) == "traceresp" then
  2075. local TracerESP = getfenv().Drawing.new("Line")
  2076. TracerESP.Visible = false
  2077. TracerESP.ZIndex = 1
  2078. TracerESP.Thickness = Configuration.ESPThickness
  2079. TracerESP.Transparency = Configuration.ESPOpacity
  2080. TracerESP.Color = Configuration.ESPColour
  2081. return TracerESP
  2082. end
  2083. end
  2084. return nil
  2085. end
  2086.  
  2087. local Visuals = { FoV = VisualsHandler:Visualize("FoV") }
  2088.  
  2089. function VisualsHandler:ClearVisual(Visual, Key)
  2090. local FoundVisual = table.find(Visuals, Visual)
  2091. if Visual and (FoundVisual or Key == "FoV") then
  2092. if Visual.Destroy then
  2093. Visual:Destroy()
  2094. elseif Visual.Remove then
  2095. Visual:Remove()
  2096. end
  2097. if FoundVisual then
  2098. table.remove(Visuals, FoundVisual)
  2099. elseif Key == "FoV" then
  2100. Visuals.FoV = nil
  2101. end
  2102. end
  2103. end
  2104.  
  2105. function VisualsHandler:ClearVisuals()
  2106. for Key, Visual in next, Visuals do
  2107. self:ClearVisual(Visual, Key)
  2108. end
  2109. end
  2110.  
  2111. function VisualsHandler:VisualizeFoV()
  2112. if not Fluent then
  2113. return self:ClearVisuals()
  2114. end
  2115. local MouseLocation = UserInputService:GetMouseLocation()
  2116. Visuals.FoV.Position = Vector2.new(MouseLocation.X, MouseLocation.Y)
  2117. Visuals.FoV.Radius = Configuration.FoVRadius
  2118. Visuals.FoV.Thickness = Configuration.FoVThickness
  2119. Visuals.FoV.Transparency = Configuration.FoVOpacity
  2120. Visuals.FoV.Filled = Configuration.FoVFilled
  2121. Visuals.FoV.Color = Configuration.FoVColour
  2122. Visuals.FoV.Visible = ShowingFoV
  2123. end
  2124.  
  2125. function VisualsHandler:RainbowVisuals()
  2126. if not Fluent then
  2127. self:ClearVisuals()
  2128. elseif Configuration.RainbowVisuals then
  2129. local Hue = os.clock() % Configuration.RainbowDelay / Configuration.RainbowDelay
  2130. Fluent.Options.FoVColour:SetValue({ Hue, 1, 1 })
  2131. Fluent.Options.NameESPOutlineColour:SetValue({ 1 - Hue, 1, 1 })
  2132. Fluent.Options.ESPColour:SetValue({ Hue, 1, 1 })
  2133. end
  2134. end
  2135.  
  2136.  
  2137. --! ESP Library
  2138.  
  2139. local ESPLibrary = {}
  2140.  
  2141. function ESPLibrary:Initialize(_Character)
  2142. if not Fluent then
  2143. VisualsHandler:ClearVisuals()
  2144. return nil
  2145. elseif typeof(_Character) ~= "Instance" then
  2146. return nil
  2147. end
  2148. local self = setmetatable({}, { __index = self })
  2149. self.Player = Players:GetPlayerFromCharacter(_Character)
  2150. self.Character = _Character
  2151. self.ESPBox = VisualsHandler:Visualize("ESPBox")
  2152. self.NameESP = VisualsHandler:Visualize("NameESP")
  2153. self.HealthESP = VisualsHandler:Visualize("NameESP")
  2154. self.MagnitudeESP = VisualsHandler:Visualize("NameESP")
  2155. self.PremiumESP = VisualsHandler:Visualize("NameESP")
  2156. self.TracerESP = VisualsHandler:Visualize("TracerESP")
  2157. table.insert(Visuals, self.ESPBox)
  2158. table.insert(Visuals, self.NameESP)
  2159. table.insert(Visuals, self.HealthESP)
  2160. table.insert(Visuals, self.MagnitudeESP)
  2161. table.insert(Visuals, self.PremiumESP)
  2162. table.insert(Visuals, self.TracerESP)
  2163. local Head = self.Character:FindFirstChild("Head")
  2164. local HumanoidRootPart = self.Character:FindFirstChild("HumanoidRootPart")
  2165. local Humanoid = self.Character:FindFirstChildWhichIsA("Humanoid")
  2166. if Head and Head:IsA("BasePart") and HumanoidRootPart and HumanoidRootPart:IsA("BasePart") and Humanoid then
  2167. local IsCharacterReady = true
  2168. if Configuration.SmartESP then
  2169. IsCharacterReady = IsReady(self.Character)
  2170. end
  2171. local HumanoidRootPartPosition, IsInViewport = workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position)
  2172. local HeadPosition = workspace.CurrentCamera:WorldToViewportPoint(Head.Position)
  2173. local TopPosition = workspace.CurrentCamera:WorldToViewportPoint(Head.Position + Vector3.new(0, 0.5, 0))
  2174. local BottomPosition = workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position - Vector3.new(0, 3, 0))
  2175. if IsInViewport then
  2176. self.ESPBox.Size = Vector2.new(2350 / HumanoidRootPartPosition.Z, TopPosition.Y - BottomPosition.Y)
  2177. self.ESPBox.Position = Vector2.new(HumanoidRootPartPosition.X - self.ESPBox.Size.X / 2, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2178. self.NameESP.Text = Aiming and IsReady(Target) and self.Character == Target and string.format("🎯@%s🎯", self.Player.Name) or string.format("@%s", self.Player.Name)
  2179. self.NameESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y + self.ESPBox.Size.Y / 2 - 25)
  2180. self.HealthESP.Text = string.format("[%s%%]", MathHandler:Abbreviate(Humanoid.Health))
  2181. self.HealthESP.Position = Vector2.new(HumanoidRootPartPosition.X, HeadPosition.Y)
  2182. self.MagnitudeESP.Text = string.format("[%sm]", Player.Character and Player.Character:FindFirstChild("Head") and Player.Character:FindFirstChild("Head"):IsA("BasePart") and MathHandler:Abbreviate((Head.Position - Player.Character:FindFirstChild("Head").Position).Magnitude) or "?")
  2183. self.MagnitudeESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y)
  2184. self.PremiumESP.Text = PremiumLabels[Random.new():NextInteger(1, #PremiumLabels)]
  2185. self.PremiumESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2186. self.TracerESP.From = Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y)
  2187. self.TracerESP.To = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2188. if Configuration.ESPUseTeamColour and not Configuration.RainbowVisuals then
  2189. local TeamColour = self.Player.TeamColor.Color
  2190. local InvertedTeamColour = Color3.fromRGB(255 - TeamColour.R * 255, 255 - TeamColour.G * 255, 255 - TeamColour.B * 255)
  2191. self.ESPBox.Color = TeamColour
  2192. self.NameESP.OutlineColor = InvertedTeamColour
  2193. self.NameESP.Color = TeamColour
  2194. self.HealthESP.OutlineColor = InvertedTeamColour
  2195. self.HealthESP.Color = TeamColour
  2196. self.MagnitudeESP.OutlineColor = InvertedTeamColour
  2197. self.MagnitudeESP.Color = TeamColour
  2198. self.PremiumESP.OutlineColor = InvertedTeamColour
  2199. self.PremiumESP.Color = TeamColour
  2200. self.TracerESP.Color = TeamColour
  2201. end
  2202. end
  2203. local ShowESP = ShowingESP and IsCharacterReady and IsInViewport
  2204. self.ESPBox.Visible = Configuration.ESPBox and ShowESP
  2205. self.NameESP.Visible = Configuration.NameESP and ShowESP
  2206. self.HealthESP.Visible = Configuration.HealthESP and ShowESP
  2207. self.MagnitudeESP.Visible = Configuration.MagnitudeESP and ShowESP
  2208. self.PremiumESP.Visible = Configuration.NameESP and self.Player:IsInGroup(tonumber(Fluent.Address, 8)) and ShowESP
  2209. self.TracerESP.Visible = Configuration.TracerESP and ShowESP
  2210. end
  2211. return self
  2212. end
  2213.  
  2214. function ESPLibrary:Visualize()
  2215. if not Fluent then
  2216. return VisualsHandler:ClearVisuals()
  2217. elseif not self.Character then
  2218. return self:Disconnect()
  2219. end
  2220. local Head = self.Character:FindFirstChild("Head")
  2221. local HumanoidRootPart = self.Character:FindFirstChild("HumanoidRootPart")
  2222. local Humanoid = self.Character:FindFirstChildWhichIsA("Humanoid")
  2223. if Head and Head:IsA("BasePart") and HumanoidRootPart and HumanoidRootPart:IsA("BasePart") and Humanoid then
  2224. local IsCharacterReady = true
  2225. if Configuration.SmartESP then
  2226. IsCharacterReady = IsReady(self.Character)
  2227. end
  2228. local HumanoidRootPartPosition, IsInViewport = workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position)
  2229. local HeadPosition = workspace.CurrentCamera:WorldToViewportPoint(Head.Position)
  2230. local TopPosition = workspace.CurrentCamera:WorldToViewportPoint(Head.Position + Vector3.new(0, 0.5, 0))
  2231. local BottomPosition = workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position - Vector3.new(0, 3, 0))
  2232. if IsInViewport then
  2233. self.ESPBox.Size = Vector2.new(2350 / HumanoidRootPartPosition.Z, TopPosition.Y - BottomPosition.Y)
  2234. self.ESPBox.Position = Vector2.new(HumanoidRootPartPosition.X - self.ESPBox.Size.X / 2, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2235. self.ESPBox.Thickness = Configuration.ESPThickness
  2236. self.ESPBox.Transparency = Configuration.ESPOpacity
  2237. self.ESPBox.Filled = Configuration.ESPBoxFilled
  2238. self.NameESP.Text = Aiming and IsReady(Target) and self.Character == Target and string.format("🎯@%s🎯", self.Player.Name) or string.format("@%s", self.Player.Name)
  2239. self.NameESP.Font = getfenv().Drawing.Fonts and getfenv().Drawing.Fonts[Configuration.NameESPFont]
  2240. self.NameESP.Size = Configuration.NameESPSize
  2241. self.NameESP.Transparency = Configuration.ESPOpacity
  2242. self.NameESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y + self.ESPBox.Size.Y / 2 - 25)
  2243. self.HealthESP.Text = string.format("[%s%%]", MathHandler:Abbreviate(Humanoid.Health))
  2244. self.HealthESP.Font = getfenv().Drawing.Fonts and getfenv().Drawing.Fonts[Configuration.NameESPFont]
  2245. self.HealthESP.Size = Configuration.NameESPSize
  2246. self.HealthESP.Transparency = Configuration.ESPOpacity
  2247. self.HealthESP.Position = Vector2.new(HumanoidRootPartPosition.X, HeadPosition.Y)
  2248. self.MagnitudeESP.Text = string.format("[%sm]", Player.Character and Player.Character:FindFirstChild("Head") and Player.Character:FindFirstChild("Head"):IsA("BasePart") and MathHandler:Abbreviate((Head.Position - Player.Character:FindFirstChild("Head").Position).Magnitude) or "?")
  2249. self.MagnitudeESP.Font = getfenv().Drawing.Fonts and getfenv().Drawing.Fonts[Configuration.NameESPFont]
  2250. self.MagnitudeESP.Size = Configuration.NameESPSize
  2251. self.MagnitudeESP.Transparency = Configuration.ESPOpacity
  2252. self.MagnitudeESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y)
  2253. self.PremiumESP.Text = PremiumLabels[Random.new():NextInteger(1, #PremiumLabels)]
  2254. self.PremiumESP.Font = getfenv().Drawing.Fonts and getfenv().Drawing.Fonts[Configuration.NameESPFont]
  2255. self.PremiumESP.Size = Configuration.NameESPSize
  2256. self.PremiumESP.Transparency = Configuration.ESPOpacity
  2257. self.PremiumESP.Position = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2258. self.TracerESP.Thickness = Configuration.ESPThickness
  2259. self.TracerESP.Transparency = Configuration.ESPOpacity
  2260. self.TracerESP.From = Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y)
  2261. self.TracerESP.To = Vector2.new(HumanoidRootPartPosition.X, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
  2262. if Configuration.ESPUseTeamColour and not Configuration.RainbowVisuals then
  2263. local TeamColour = self.Player.TeamColor.Color
  2264. local InvertedTeamColour = Color3.fromRGB(255 - TeamColour.R * 255, 255 - TeamColour.G * 255, 255 - TeamColour.B * 255)
  2265. self.ESPBox.Color = TeamColour
  2266. self.NameESP.OutlineColor = InvertedTeamColour
  2267. self.NameESP.Color = TeamColour
  2268. self.HealthESP.OutlineColor = InvertedTeamColour
  2269. self.HealthESP.Color = TeamColour
  2270. self.MagnitudeESP.OutlineColor = InvertedTeamColour
  2271. self.MagnitudeESP.Color = TeamColour
  2272. self.PremiumESP.OutlineColor = InvertedTeamColour
  2273. self.PremiumESP.Color = TeamColour
  2274. self.TracerESP.Color = TeamColour
  2275. else
  2276. self.ESPBox.Color = Configuration.ESPColour
  2277. self.NameESP.OutlineColor = Configuration.NameESPOutlineColour
  2278. self.NameESP.Color = Configuration.ESPColour
  2279. self.HealthESP.OutlineColor = Configuration.NameESPOutlineColour
  2280. self.HealthESP.Color = Configuration.ESPColour
  2281. self.MagnitudeESP.OutlineColor = Configuration.NameESPOutlineColour
  2282. self.MagnitudeESP.Color = Configuration.ESPColour
  2283. self.PremiumESP.OutlineColor = Configuration.NameESPOutlineColour
  2284. self.PremiumESP.Color = Configuration.ESPColour
  2285. self.TracerESP.Color = Configuration.ESPColour
  2286. end
  2287. end
  2288. local ShowESP = ShowingESP and IsCharacterReady and IsInViewport
  2289. self.ESPBox.Visible = Configuration.ESPBox and ShowESP
  2290. self.NameESP.Visible = Configuration.NameESP and ShowESP
  2291. self.HealthESP.Visible = Configuration.HealthESP and ShowESP
  2292. self.MagnitudeESP.Visible = Configuration.MagnitudeESP and ShowESP
  2293. self.PremiumESP.Visible = Configuration.NameESP and self.Player:IsInGroup(tonumber(Fluent.Address, 8)) and ShowESP
  2294. self.TracerESP.Visible = Configuration.TracerESP and ShowESP
  2295. else
  2296. self.ESPBox.Visible = false
  2297. self.NameESP.Visible = false
  2298. self.HealthESP.Visible = false
  2299. self.MagnitudeESP.Visible = false
  2300. self.PremiumESP.Visible = false
  2301. self.TracerESP.Visible = false
  2302. end
  2303. end
  2304.  
  2305. function ESPLibrary:Disconnect()
  2306. self.Player = nil
  2307. self.Character = nil
  2308. VisualsHandler:ClearVisual(self.ESPBox)
  2309. VisualsHandler:ClearVisual(self.NameESP)
  2310. VisualsHandler:ClearVisual(self.HealthESP)
  2311. VisualsHandler:ClearVisual(self.MagnitudeESP)
  2312. VisualsHandler:ClearVisual(self.PremiumESP)
  2313. VisualsHandler:ClearVisual(self.TracerESP)
  2314. end
  2315.  
  2316.  
  2317. --! Tracking Handler
  2318.  
  2319. local TrackingHandler = {}
  2320.  
  2321. local Tracking = {}
  2322. local Connections = {}
  2323.  
  2324. function TrackingHandler:VisualizeESP()
  2325. for _, Tracked in next, Tracking do
  2326. Tracked:Visualize()
  2327. end
  2328. end
  2329.  
  2330. function TrackingHandler:DisconnectTracking(Key)
  2331. if Key and Tracking[Key] then
  2332. Tracking[Key]:Disconnect()
  2333. Tracking[Key] = nil
  2334. end
  2335. end
  2336.  
  2337. function TrackingHandler:DisconnectConnection(Key)
  2338. if Key and Connections[Key] then
  2339. for _, Connection in next, Connections[Key] do
  2340. Connection:Disconnect()
  2341. end
  2342. Connections[Key] = nil
  2343. end
  2344. end
  2345.  
  2346. function TrackingHandler:DisconnectConnections()
  2347. for Key, _ in next, Connections do
  2348. self:DisconnectConnection(Key)
  2349. end
  2350. for Key, _ in next, Tracking do
  2351. self:DisconnectTracking(Key)
  2352. end
  2353. end
  2354.  
  2355. function TrackingHandler:DisconnectAimbot()
  2356. FieldsHandler:ResetAimbotFields()
  2357. FieldsHandler:ResetSecondaryFields()
  2358. self:DisconnectConnections()
  2359. VisualsHandler:ClearVisuals()
  2360. end
  2361.  
  2362. local function CharacterAdded(_Character)
  2363. if typeof(_Character) == "Instance" then
  2364. local _Player = Players:GetPlayerFromCharacter(_Character)
  2365. Tracking[_Player.UserId] = ESPLibrary:Initialize(_Character)
  2366. end
  2367. end
  2368.  
  2369. local function CharacterRemoving(_Character)
  2370. if typeof(_Character) == "Instance" then
  2371. for Key, Tracked in next, Tracking do
  2372. if Tracked.Character == _Character then
  2373. TrackingHandler:DisconnectTracking(Key)
  2374. end
  2375. end
  2376. end
  2377. end
  2378.  
  2379. function TrackingHandler:InitializePlayers()
  2380. if not DEBUG and getfenv().Drawing and getfenv().Drawing.new then
  2381. for _, _Player in next, Players:GetPlayers() do
  2382. if _Player ~= Player then
  2383. CharacterAdded(_Player.Character)
  2384. Connections[_Player.UserId] = { _Player.CharacterAdded:Connect(CharacterAdded), _Player.CharacterRemoving:Connect(CharacterRemoving) }
  2385. end
  2386. end
  2387. end
  2388. end
  2389.  
  2390. TrackingHandler:InitializePlayers()
  2391.  
  2392.  
  2393. --! Player Events Handler
  2394.  
  2395. local OnTeleport; OnTeleport = Player.OnTeleport:Connect(function()
  2396. if DEBUG or not Fluent or not getfenv().queue_on_teleport then
  2397. OnTeleport:Disconnect()
  2398. else
  2399. getfenv().queue_on_teleport("getfenv().loadstring(game:HttpGet(\"https://raw.githubusercontent.com/ttwizz/Open-Aimbot/master/source.lua\", true))()")
  2400. OnTeleport:Disconnect()
  2401. end
  2402. end)
  2403.  
  2404. local PlayerAdded; PlayerAdded = Players.PlayerAdded:Connect(function(_Player)
  2405. if DEBUG or not Fluent or not getfenv().Drawing or not getfenv().Drawing.new then
  2406. PlayerAdded:Disconnect()
  2407. else
  2408. Connections[_Player.UserId] = { _Player.CharacterAdded:Connect(CharacterAdded), _Player.CharacterRemoving:Connect(CharacterRemoving) }
  2409. end
  2410. end)
  2411.  
  2412. local PlayerRemoving; PlayerRemoving = Players.PlayerRemoving:Connect(function(_Player)
  2413. if not Fluent then
  2414. PlayerRemoving:Disconnect()
  2415. else
  2416. if _Player == Player then
  2417. Fluent:Destroy()
  2418. TrackingHandler:DisconnectAimbot()
  2419. PlayerRemoving:Disconnect()
  2420. else
  2421. TrackingHandler:DisconnectConnection(_Player.UserId)
  2422. TrackingHandler:DisconnectTracking(_Player.UserId)
  2423. end
  2424. end
  2425. end)
  2426.  
  2427.  
  2428. --! Aimbot Handler
  2429.  
  2430. local AimbotLoop; AimbotLoop = RunService[UISettings.RenderingMode]:Connect(function()
  2431. if Fluent.Unloaded then
  2432. Fluent = nil
  2433. TrackingHandler:DisconnectAimbot()
  2434. AimbotLoop:Disconnect()
  2435. elseif not Configuration.Aimbot and Aiming then
  2436. FieldsHandler:ResetAimbotFields()
  2437. elseif not Configuration.SpinBot and Spinning then
  2438. Spinning = false
  2439. elseif not Configuration.TriggerBot and Triggering then
  2440. Triggering = false
  2441. elseif not Configuration.FoV and ShowingFoV then
  2442. ShowingFoV = false
  2443. elseif not Configuration.ESPBox and not Configuration.NameESP and not Configuration.HealthESP and not Configuration.MagnitudeESP and not Configuration.TracerESP and ShowingESP then
  2444. ShowingESP = false
  2445. end
  2446. if RobloxActive then
  2447. HandleBots()
  2448. HandleRandomParts()
  2449. if not DEBUG and getfenv().Drawing and getfenv().Drawing.new then
  2450. VisualsHandler:VisualizeFoV()
  2451. VisualsHandler:RainbowVisuals()
  2452. TrackingHandler:VisualizeESP()
  2453. end
  2454. if Aiming then
  2455. local OldTarget = Target
  2456. local Closest = math.huge
  2457. if not IsReady(OldTarget) then
  2458. if OldTarget and not Configuration.OffAimbotAfterKill or not OldTarget then
  2459. for _, _Player in next, Players:GetPlayers() do
  2460. local IsCharacterReady, Character, PartViewportPosition = IsReady(_Player.Character)
  2461. if IsCharacterReady and PartViewportPosition[2] then
  2462. local Magnitude = (Vector2.new(Mouse.X, Mouse.Y) - Vector2.new(PartViewportPosition[1].X, PartViewportPosition[1].Y)).Magnitude
  2463. if Magnitude <= Closest and Magnitude <= (Configuration.FoVCheck and Configuration.FoVRadius or Closest) then
  2464. Target = Character
  2465. Closest = Magnitude
  2466. end
  2467. end
  2468. end
  2469. else
  2470. FieldsHandler:ResetAimbotFields()
  2471. end
  2472. end
  2473. local IsTargetReady, _, PartViewportPosition, PartWorldPosition = IsReady(Target)
  2474. if IsTargetReady then
  2475. if not DEBUG and getfenv().mousemoverel and IsComputer and Configuration.AimMode == "Mouse" then
  2476. if PartViewportPosition[2] then
  2477. FieldsHandler:ResetAimbotFields(true, true)
  2478. local MouseLocation = UserInputService:GetMouseLocation()
  2479. local Sensitivity = Configuration.UseSensitivity and Configuration.Sensitivity / 5 or 10
  2480. getfenv().mousemoverel((PartViewportPosition[1].X - MouseLocation.X) / Sensitivity, (PartViewportPosition[1].Y - MouseLocation.Y) / Sensitivity)
  2481. else
  2482. FieldsHandler:ResetAimbotFields(true)
  2483. end
  2484. elseif Configuration.AimMode == "Camera" then
  2485. UserInputService.MouseDeltaSensitivity = 0
  2486. if Configuration.UseSensitivity then
  2487. Tween = TweenService:Create(workspace.CurrentCamera, TweenInfo.new(math.clamp(Configuration.Sensitivity, 9, 99) / 100, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), { CFrame = CFrame.new(workspace.CurrentCamera.CFrame.Position, PartWorldPosition) })
  2488. Tween:Play()
  2489. else
  2490. workspace.CurrentCamera.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.Position, PartWorldPosition)
  2491. end
  2492. elseif not DEBUG and getfenv().hookmetamethod and getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod and Configuration.AimMode == "Silent" then
  2493. FieldsHandler:ResetAimbotFields(true, true)
  2494. end
  2495. else
  2496. FieldsHandler:ResetAimbotFields(true)
  2497. end
  2498. end
  2499. end
  2500. end)
  2501.  
  2502. loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement