Advertisement
Guest User

Vesteria script

a guest
Jan 16th, 2025
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.19 KB | None | 0 0
  1. local username = username or 'dev'
  2.  
  3. local DEBUG_MODE = false
  4. local services = setmetatable({}, { __index = function(self, key) return game:GetService(key) end })
  5. local client = services.Players.LocalPlayer;
  6.  
  7. local http_request = syn and syn.request or http_request
  8.  
  9. local KickClient, LoadFromGithub do
  10. function KickClient(reason)
  11. return client:Kick(reason)
  12. end
  13.  
  14. local function GetUrl(url)
  15. local response = http_request({ Url = url, Method = 'GET' })
  16.  
  17. local success = response.Success;
  18. local body = response.Body;
  19.  
  20. if not success then
  21. return false, 'Request failed. StatusCode: ' .. response.StatusCode
  22. end
  23.  
  24. return true, body
  25. end
  26.  
  27. function LoadFromGithub(owner, repo, file, branch)
  28. local url = 'https://raw.githubusercontent.com/' .. owner .. '/' .. repo .. '/' .. (branch or 'main') .. '/' .. file
  29. local success, body = GetUrl(url)
  30.  
  31. if not success then
  32. return KickClient('Failed to fetch from github. ' .. table.concat({ 'Url:', url, '\n', 'Error:', tostring(body) }))
  33. end
  34.  
  35. local fn, err = loadstring(body, '@' .. url)
  36. if not fn then
  37. return KickClient('Failed to load from github. ' .. table.concat({ 'Url:', url, '\n', 'Error:', tostring(err) }))
  38. end
  39.  
  40. local results = { pcall(fn) }
  41. local success = table.remove(results, 1)
  42.  
  43. if not success then
  44. return KickClient('Failed to execute from github. ' .. table.concat({ 'Url:', url, '\n', 'Error:', tostring(results[1]) }))
  45. end
  46.  
  47. return unpack(results)
  48. end
  49.  
  50. function LoadFromFile(path)
  51. local closure, err = loadstring(readfile(path), '@' .. path)
  52. assert(closure, err)
  53. return closure()
  54. end
  55. end
  56.  
  57. if not DEBUG_MODE then
  58. end
  59.  
  60. local ESP = DEBUG_MODE and LoadFromFile('ESP-lib/ESP.lua') or LoadFromGithub('wally-rblx', 'ESP-lib', 'ESP.lua')
  61. local UI = DEBUG_MODE and LoadFromFile('LinoriaLib/Library.lua') or LoadFromGithub('wally-rblx', 'LinoriaLib', 'Library.lua')
  62.  
  63. local ThemeManager = DEBUG_MODE and LoadFromFile('LinoriaLib/addons/ThemeManager.lua') or LoadFromGithub('wally-rblx', 'LinoriaLib', 'addons/ThemeManager.lua')
  64. local SaveManager = DEBUG_MODE and LoadFromFile('LinoriaLib/addons/SaveManager.lua') or LoadFromGithub('wally-rblx', 'LinoriaLib', 'addons/SaveManager.lua')
  65.  
  66. local broom = DEBUG_MODE and NEON:belkworks'broom' or LoadFromGithub('Belkworks', 'broom', 'init.lua', 'master')
  67. local show = DEBUG_MODE and NEON:belkworks'show' or LoadFromGithub('Belkworks', 'show', 'init.lua', 'master')
  68.  
  69. -- Library addons
  70. ThemeManager:SetFolder('misc-projects')
  71. SaveManager:SetFolder('misc-projects/bad-business')
  72.  
  73. ThemeManager:SetLibrary(UI)
  74. SaveManager:SetLibrary(UI)
  75.  
  76. SaveManager:IgnoreThemeSettings()
  77.  
  78. local syn_context_set = syn and syn.set_thread_identity or setthreadidentity
  79. local syn_context_get = syn and syn.get_thread_identity or getthreadidentity
  80.  
  81. do
  82. -- fart bypass
  83. syn.set_thread_identity(2)
  84. local s, e = pcall(PluginManager)
  85. syn.set_thread_identity(7)
  86.  
  87. hookfunction(PluginManager, function(...)
  88. error(e)
  89. end)
  90. end
  91.  
  92. -- Utilities
  93. local Utilities = {}
  94. do
  95. Utilities.MarkedJobIds = {}
  96. Utilities.Random = Random.new()
  97.  
  98. local ServerList = services.TeleportService:GetTeleportSetting('BadBusinessServerHop')
  99. if ServerList then
  100. Utilities.MarkedJobIds = services.HttpService:JSONDecode(ServerList)
  101. end
  102.  
  103. function Utilities.ServerHop(mode)
  104. table.insert(Utilities.MarkedJobIds, game.JobId)
  105. services.TeleportService:SetTeleportSetting('BadBusinessServerHop', services.HttpService:JSONEncode(Utilities.MarkedJobIds))
  106.  
  107. local ServerListUrl = 'https://games.roblox.com/v1/games/%s/servers/public?cursor=%s'
  108. local Cursor = ''
  109.  
  110. local ServerList = {}
  111.  
  112. local Start = os.clock()
  113. while true do
  114. local success, body = pcall(httpget, game, string.format(ServerListUrl, game.PlaceId, Cursor))
  115. if not success then
  116. UI:Notify('Failed to fetch server list because: ' .. body .. '.\nRetrying in 2 seconds.')
  117. wait(2)
  118.  
  119. continue
  120. end
  121.  
  122. local success, decoded = pcall(services.HttpService.JSONDecode, services.HttpService, body)
  123. if not success then
  124. UI:Notify('Failed to decode server list because: ' .. decoded .. '.\nRetrying in 2 seconds.')
  125. wait(2)
  126.  
  127. continue
  128. end
  129.  
  130. for _, server in next, decoded.data do
  131. if table.find(Utilities.MarkedJobIds, server.id) then continue end
  132. if not server.playing then continue end
  133. if server.playing >= services.Players.MaxPlayers then continue end
  134.  
  135. table.insert(ServerList, {
  136. id = server.id,
  137. count = server.playing,
  138. })
  139. end
  140.  
  141. if not decoded.nextPageCursor then
  142. break
  143. end
  144.  
  145. Cursor = decoded.nextPageCursor
  146. end
  147.  
  148. if not next(ServerList) then
  149. return UI:Notify('Server hop failed: No servers found!')
  150. end
  151.  
  152. UI:Notify('Hopping to another server...', 3)
  153. wait(1)
  154.  
  155. local server = ServerList[Utilities.Random:NextInteger(1, #ServerList)]
  156. services.TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id)
  157. end
  158. end
  159.  
  160. -- Auto hop
  161. do
  162. local function OnPlayerKicked(ForceHop)
  163. local ErrorCode = services.GuiService:GetErrorCode()
  164. local Message = services.GuiService:GetErrorMessage()
  165.  
  166. if ErrorCode == Enum.ConnectionError.DisconnectLuaKick then
  167. task.delay(0.5, function() services.GuiService:ClearError() end)
  168.  
  169. if (ForceHop or Toggles.AutoHopKick.Value) then
  170. UI:Notify('Automatically hopping servers because we got kicked!')
  171. Utilities.ServerHop()
  172. else
  173. UI:Notify('You have been kicked!\nWaiting for user input...', 1e9)
  174. end
  175. end
  176. end
  177.  
  178. Utilities.KickCon = services.GuiService.ErrorMessageChanged:Connect(function()
  179. Utilities.KickCon:Disconnect()
  180. OnPlayerKicked()
  181.  
  182. services.GuiService.ErrorMessageChanged:Connect(function()
  183. services.GuiService:ClearError()
  184. end)
  185. end)
  186.  
  187. task.spawn(OnPlayerKicked, true)
  188. end
  189.  
  190. -- local tsLoader = require(game:GetService("ReplicatedStorage").TS)
  191. local Tortoiseshell = table.foreach(getupvalues(tsLoader), function(key, val)
  192. if type(val) == 'table' and rawget(val, 'Signed') then
  193. local mt = getrawmetatable(val)
  194. local idx = mt and mt.__index
  195.  
  196. if type(idx) == 'function' then
  197. local upvs = debug.getupvalues(idx)
  198. if type(upvs[1]) == 'table' and rawget(upvs[1], 'PhysicsProjectiles') then
  199. return upvs[1]
  200. end
  201. end
  202. end
  203. end)
  204.  
  205. local Tortoiseshell = getupvalue(require(services.ReplicatedStorage:WaitForChild('TS')), 2)
  206. game.ScriptContext:SetTimeout(0.1)
  207.  
  208. -- Character shit
  209. local GetCharacter, GetTeam, GetPlayerFromCharacter, GetTeamColor
  210. do
  211. function GetCharacter(player)
  212. return Tortoiseshell.Characters:GetCharacter(player)
  213. end
  214.  
  215. function GetTeam(player)
  216. return Tortoiseshell.Teams:GetPlayerTeam(player)
  217. end
  218.  
  219. function GetPlayerFromCharacter(character)
  220. return Tortoiseshell.Characters:GetPlayerFromCharacter(character)
  221. end
  222.  
  223. function GetTeamColor(player)
  224. local IsTeamMate = ESP:IsTeamMate(player)
  225. return Tortoiseshell.Teams.Colors[IsTeamMate and 'Friendly' or 'Enemy']
  226. end
  227.  
  228. ESP.Font = 'Monospace'
  229. ESP.HighlightColor = Color3.new(1, 1, 1)
  230. ESP.HighlightColorDark = UI:GetDarkerColor(Color3.new(1, 1, 1))
  231.  
  232. ESP.Overrides.GetTeam = GetTeam
  233. ESP.Overrides.GetPlrFromChar = GetPlayerFromCharacter
  234.  
  235. ESP.Overrides.IsTeamMate = function(player)
  236. return Tortoiseshell.Teams:ArePlayersFriendly(player, client)
  237. end
  238.  
  239. ESP.Overrides.GetColor = function(character)
  240. local player = ESP:GetPlrFromChar(character)
  241. if not player then return nil end
  242.  
  243. if not ESP.TeamColor then
  244. return ESP:IsTeamMate(player) and Options.AllyColor.Value or Options.EnemyColor.Value
  245. end
  246.  
  247. return GetTeamColor(player)
  248. end
  249. end
  250.  
  251. -- Aimbot
  252. local Aimbot = {} do
  253. local function isInCircle(point, center, radius)
  254. local rX = point.x - center.x
  255. local rY = point.y - center.y
  256.  
  257. return (rX*rX) + (rY*rY) <= radius*radius
  258. end
  259.  
  260. local circle = ESP.Draw('Circle', {
  261. Position = workspace.CurrentCamera.ViewportSize / 2,
  262. Transparency = 1,
  263. NumSides = 16,
  264. Thickness = 1,
  265. Color = Color3.new(1, 1, 1),
  266. Visible = false,
  267. ZIndex = 2,
  268. })
  269.  
  270. local outline = ESP.Draw('Circle', {
  271. Position = workspace.CurrentCamera.ViewportSize / 2,
  272. Transparency = 1,
  273. NumSides = 16,
  274. Thickness = 3,
  275. Color = Color3.new(0, 0, 0),
  276. Visible = false
  277. })
  278.  
  279. function Aimbot.UpdateCircle(value)
  280. if type(value) == 'number' then outline.Radius = value; circle.Radius = value end
  281. if type(value) == 'boolean' then outline.Visible = value; circle.Visible = value end
  282. if typeof(value) == 'Color3' then circle.Color = value end
  283. end
  284.  
  285. Aimbot.PartNames = {}
  286.  
  287. local payload = require(game.ReplicatedStorage:findFirstChild('CharacterPayload', true))
  288. local scrambled = getupvalue(getconnections(workspace.Characters.ChildAdded)[1].Function, 6)
  289.  
  290. table.sort(payload, function(p0, p1) return p0 < p1 end)
  291.  
  292. for i, name in next, payload do
  293. Aimbot.PartNames[name] = scrambled[i]
  294. end
  295.  
  296.  
  297. function Aimbot.solveTime(proj_pos, proj_speed, target, gravity)
  298. local diff = target - proj_pos;
  299. local diffXZ = Vector3.new(diff.x, 0, diff.z);
  300. local groundDist = diffXZ.magnitude;
  301.  
  302. local speed2 = proj_speed * proj_speed;
  303. local speed4 = speed2 * speed2;
  304.  
  305. local y = diff.y;
  306. local x = groundDist;
  307.  
  308. local gx = gravity * x;
  309.  
  310. local root = speed4 - gravity * (gravity * x * x + 2 * y * speed2);
  311.  
  312. if (root < 0) then return nil end
  313.  
  314. root = math.sqrt(root);
  315.  
  316. local sol = math.atan2(speed2 - root, gx);
  317. local s0 = diffXZ.Unit * math.cos(sol) * proj_speed + Vector3.new(0, 1, 0) * math.sin(sol) * proj_speed;
  318. local t = x / (math.cos(sol) * proj_speed);
  319.  
  320. return s0, t;
  321. end
  322.  
  323. function Aimbot.VelocityPrediction(startpos, endpos, vel, speed) -- Kinematics is fun
  324. return endpos + (vel * ((endpos-startpos).Magnitude/speed))
  325. end
  326.  
  327. function Aimbot.GetAimBone()
  328. local choice = Options.HitBone.Value
  329. local bones = { 'Head', 'Torso' }
  330. local namesMap = { Torso = 'Abdomen' }
  331.  
  332. if choice == 'Random' then
  333. choice = bones[math.random(#bones)]
  334. end
  335.  
  336. return Aimbot.PartNames[namesMap[choice] or choice]
  337. end
  338.  
  339. table.insert(ESP.Objects, {
  340. Update = function()
  341. outline.Position = workspace.CurrentCamera.ViewportSize / 2
  342. circle.Position = workspace.CurrentCamera.ViewportSize / 2
  343. end
  344. })
  345.  
  346. services.RunService.Heartbeat:Connect(function(dt)
  347. local center = workspace.CurrentCamera.ViewportSize / 2
  348.  
  349. local clientCharacter = GetCharacter(client)
  350. local clientTeam = GetTeam(client)
  351.  
  352. if not clientCharacter then
  353. return
  354. end
  355.  
  356. local Choices = {}
  357. for _, plr in next, services.Players:GetPlayers() do
  358. if plr == client then continue end
  359.  
  360. local character = GetCharacter(plr)
  361. local hitbox = character and character:findFirstChild('Hitbox')
  362. local bone = hitbox and hitbox:findFirstChild(Aimbot.PartNames.Head)
  363.  
  364. local health = character and character:findFirstChild'Health'
  365. local shield = health and health:findFirstChild'Shield'
  366.  
  367. if character and (not ESP:IsTeamMate(plr)) and bone and (not shield) then
  368. local pos, vis = workspace.CurrentCamera:WorldToViewportPoint(bone.Position)
  369. if not vis then
  370. continue
  371. end
  372.  
  373. local screenPos = Vector2.new(pos.X, pos.Y)
  374. if (Toggles.FOVCircle and Toggles.FOVCircle.Value) then
  375. if (not isInCircle(screenPos, center, circle.Radius)) then
  376. continue
  377. end
  378. end
  379.  
  380. if Toggles.VisibleCheck.Value then
  381. local origin = workspace.CurrentCamera.CFrame.p;
  382. local point = bone.CFrame.p
  383.  
  384. local ray = Ray.new(origin, point - origin)
  385. local hit, pos = workspace:FindPartOnRayWithIgnoreList(ray, { workspace.CurrentCamera, workspace.Effects, workspace.Gameplay, workspace.Projectiles })
  386.  
  387. if hit and (not hit:IsDescendantOf(character)) then
  388. continue
  389. end
  390. end
  391.  
  392. local distance = math.floor((screenPos - center).magnitude)
  393. table.insert(Choices, {
  394. Player = plr,
  395. Distance = distance,
  396. Character = character,
  397. })
  398. end
  399. end
  400.  
  401. table.sort(Choices, function(a, b)
  402. return a.Distance < b.Distance
  403. end)
  404.  
  405. local choice = Choices[1]
  406. if choice then
  407. local plr = choice.Player;
  408.  
  409. Aimbot.target = plr;
  410. if Toggles.HighlightTarget.Value then
  411. ESP.Highlighted = choice.Character
  412. end
  413. else
  414. Aimbot.target = nil;
  415. ESP.Highlighted = nil
  416. end
  417. end)
  418. end
  419.  
  420. -- ESP
  421. do
  422. local HighlightStore = {}
  423. local function CreateChams(player, character)
  424. local cleaner = broom()
  425.  
  426. local highlight = UI:Create('Highlight', {
  427. Enabled = false,
  428. Adornee = character,
  429. Parent = game.CoreGui,
  430. })
  431.  
  432. cleaner:give(character:GetPropertyChangedSignal('Parent'):Connect(function()
  433. if not character:IsDescendantOf(workspace) then
  434. cleaner:clean()
  435. end
  436. end))
  437.  
  438. cleaner:give(highlight)
  439. cleaner:give(function() HighlightStore[player] = nil end)
  440.  
  441. HighlightStore[player] = highlight
  442. end
  443.  
  444. local function onCharacterAdded(character)
  445. local player = GetPlayerFromCharacter(character)
  446.  
  447. if player == client then return end
  448. if not player then return end
  449.  
  450. ESP:Add(character, { Name = player.Name, Player = player, PrimaryPart = character:WaitForChild('Root') })
  451. CreateChams(player, character)
  452.  
  453. if UI.CharacterAddedCallback then
  454. UI.CharacterAddedCallback(player, character)
  455. end
  456. end
  457.  
  458. for _, character in next, workspace:WaitForChild('Characters'):GetChildren() do
  459. task.defer(onCharacterAdded, character)
  460. end
  461.  
  462. workspace:WaitForChild('Characters').ChildAdded:Connect(function(character)
  463. task.defer(onCharacterAdded, character)
  464. end)
  465.  
  466. services.RunService.Heartbeat:Connect(function()
  467. for Player, Highlight in next, HighlightStore do
  468.  
  469. local DoesDraw = Toggles.ChamsEnabled.Value
  470. local IsTeamMate = ESP:IsTeamMate(Player)
  471.  
  472. if not Toggles.ChamsShowTeams.Value and DoesDraw then
  473. DoesDraw = (not IsTeamMate)
  474. end
  475.  
  476. local color = Toggles.ChamsTeamColors.Value and GetTeamColor(Player) or (IsTeamMate and Options.ChamsAllyFill.Value or Options.ChamsEnemyFill.Value)
  477. local outlineColor = Toggles.ChamsTeamColors.Value and GetTeamColor(Player) or (IsTeamMate and Options.ChamsAllyOutline.Value or Options.ChamsEnemyOutline.Value)
  478.  
  479. local transparency = Options.ChamsTransparency.Value
  480. local outlineTransparency = Options.ChamsOutlineTransparency.Value
  481.  
  482. if Player == Aimbot.target and Toggles.HighlightTarget.Value then
  483. color = ESP.HighlightColorDark
  484. outlineColor = ESP.HighlightColor
  485. end
  486.  
  487. Highlight.FillColor = color
  488. Highlight.OutlineColor = outlineColor
  489.  
  490. Highlight.FillTransparency = transparency
  491. Highlight.OutlineTransparency = outlineTransparency
  492. Highlight.DepthMode = Options.ChamsMode.Value == 'Always show' and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
  493. Highlight.Enabled = DoesDraw
  494. end
  495. end)
  496. end
  497.  
  498.  
  499. -- Anti cheat bypass
  500. local CreateProxy, sigged do
  501. local FireServer, random = clonefunction(Instance.new('RemoteEvent').FireServer), clonefunction(getrenv().math.random)
  502.  
  503. for _, fn in next, getgc() do
  504. if type(fn) == 'function' then
  505. getfenv(v) -- bai bai lil luau optimization
  506. end
  507. end
  508.  
  509. sigged = {}
  510. replaceclosure(getrenv().math.random, function(...)
  511. if select('#', ...) == 0 then return random(...) end
  512. if checkcaller() then return random(...) end
  513.  
  514. local min = select(1, ...)
  515. local max = select(2, ...)
  516.  
  517. if type(min) == 'number' and (min == 5 or min == 7) then
  518. if type(max) ~= 'number' then
  519. syn_context_set(7) UI:Notify('Detected anticheat flagging mechanism!') syn_context_set(2)
  520. sigged[getinfo(3).func] = true -- sig that poop
  521. end
  522. end
  523.  
  524. return random(...)
  525. end)
  526.  
  527. local namecall
  528. namecall = hookmetamethod(game, '__namecall', function(self, ...)
  529. local args = { ... }
  530. local mthd = getnamecallmethod()
  531.  
  532. if self.ClassName == 'RemoteEvent' and mthd == 'FireServer' then
  533.  
  534. local level = 3
  535. local block = false
  536. while debug.validlevel(level) do
  537. if sigged[debug.getinfo(level).func] then block = true break end
  538. level = level + 1
  539. end
  540.  
  541. if block then
  542. syn_context_set(7) UI:Notify(string.format('Blocked anticheat report (direct) (%s)', tostring(args[2]))) syn_context_set(2)
  543. return Instance.new('BindableEvent').Event:Wait()
  544. end
  545. end
  546.  
  547. return namecall(self, ...)
  548. end)
  549.  
  550. replaceclosure(Instance.new('RemoteEvent').FireServer, function(...)
  551. local self = select(1, ...)
  552. if typeof(self) ~= 'Instance' then return FireServer(...) end
  553. if self.ClassName ~= 'RemoteEvent' then return FireServer(...) end
  554.  
  555. local level = 3
  556. local block = false
  557. while debug.validlevel(level) do
  558. if sigged[debug.getinfo(level).func] then block = true break end
  559. level = level + 1
  560. end
  561.  
  562. if block then
  563. syn_context_set(7) UI:Notify(string.format('Blocked anticheat report (indirect) (%s)', tostring(args[2]))) syn_context_set(2)
  564. return Instance.new('BindableEvent').Event:Wait()
  565. end
  566.  
  567. return FireServer(...)
  568. end)
  569.  
  570. function CreateProxy(f)
  571. return function(...) -- since we can only have 1 upvalue :|
  572. return f(...)
  573. end
  574. end
  575. end
  576.  
  577. local Storage = {}
  578. do
  579. Storage.MarkedProjectiles = {}
  580. Storage.Random = Random.new()
  581.  
  582. local ProjecitleConfigs = getupvalue(Tortoiseshell.Projectiles.InitProjectile, 1)
  583.  
  584. -- backup functions
  585. local Fire, CastGeometryAndEnemies, Wait
  586.  
  587. local function FireProxy(self, event, ...)
  588. local args = { ... }
  589.  
  590. if event == 'Item_Paintball' and args[1] == 'Shoot' then
  591. if Toggles.SilentAim.Value and Storage.Random:NextNumber(1, 100) <= Options.HitChance.Value and Options.SilentAimBind:GetState() then
  592. local stack = debug.getstack(3)
  593. local weaponData = debug.getupvalue(3, 4)
  594.  
  595. local target = Aimbot.target;
  596. if target then
  597. local character = GetCharacter(target)
  598. local hitbox = character and character:findFirstChild('Hitbox')
  599. local root = character and character:findFirstChild('Root')
  600. local bone = hitbox and hitbox:findFirstChild(Aimbot.GetAimBone()) --Options.HitBone.Value)
  601.  
  602. if bone then
  603. local origin = args[3]
  604. local template = weaponData.Projectile.Template
  605.  
  606. local speed = ProjecitleConfigs[template].Speed
  607. local gravity = ProjecitleConfigs[template].Gravity
  608.  
  609. -- syn_context_set(7) UI:Notify(string.format('Speed: %*', speed)) syn_context_set(2)
  610.  
  611. local pos = Aimbot.VelocityPrediction(workspace.CurrentCamera.CFrame.p, bone.Position, root.Velocity, speed)
  612. local dir, travelTime = Aimbot.solveTime(origin, speed, pos, math.abs(gravity))
  613.  
  614. if dir then
  615. local projectiles = stack[4]
  616. for i = 1, #projectiles do
  617. projectiles[i][1] = dir.unit * 60
  618. end
  619. setstack(3, 4, projectiles)
  620. args[4] = projectiles
  621.  
  622. for _, p in next, projectiles do
  623. Storage.MarkedProjectiles[p[2]] = {
  624. Bone = bone,
  625. Character = character,
  626. }
  627. end
  628.  
  629. if Toggles.DoubleTap.Value and (not UI.Block) then
  630. UI.Block = true
  631. local s, err = pcall(debug.info(3, 'f'))
  632. if not s then
  633. UI:Notify('DT ERR: ' .. tostring(err), 3)
  634. end
  635. UI.Block = false
  636. end
  637. end
  638. end
  639. end
  640. end
  641.  
  642. local nups = getinfo(3).nups
  643. local recoilFunctionNames = { Recoil = true, WeaponRecoil = true, CameraRecoil = true }
  644.  
  645. for i = 1, nups do
  646. local upv = getupvalue(3, i)
  647. if type(upv) == 'function' and recoilFunctionNames[getinfo(upv).name] then
  648. setupvalue(3, i, function(...)
  649. if Toggles.NoRecoil.Value then return end
  650. return upv(...)
  651. end)
  652. end
  653. end
  654. end
  655.  
  656. if event == 'Character' and args[1] == 'State' then
  657. if args[2] == 'Look' and Toggles.AntiAim.Value then
  658. args[3] = '-nan(ind)'
  659. Fire(self, "Character", "State", "Stance", "Prone")
  660. end
  661. end
  662.  
  663. if args[1] == '__Hit' then
  664. local data = Storage.MarkedProjectiles[args[2]]
  665. if data then
  666. return Fire(self, "Projectiles", "__Hit", args[2], data.Bone.Position, data.Bone, Vector3.fromNormalId(Enum.NormalId.Top), data.Character)
  667. end
  668. end
  669.  
  670. if sigged[debug.getinfo(2).func] then
  671. syn_context_set(7) UI:Notify(string.format('Blocked anticheat report (module) (%s)', tostring(args[1]))) syn_context_set(2)
  672. return Instance.new('BindableEvent'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement