kele666CN

acccc

Apr 11th, 2025
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 55.35 KB | Cybersecurity | 0 0
  1. local Library = loadstring(game:HttpGet("https://gitee.com/yxexdddd/vision/raw/master/LinoriaLib/Library.lua"))()
  2.  
  3. Library:Notify("[vision] adonis bypassed!", 8)
  4. Library:Notify("[vision] 📼/devlogs\n[+] walkspeed🌴\n[+] mouse aim🎯\n[+] aim part🎯\n[+] camera aim🎯\n[+] sticky aim🎯\n[+] prediction🎯", 20)
  5. local sound = Instance.new("Sound", workspace) do
  6.     sound.SoundId = "rbxassetid://4590662766"
  7.     sound.Volume = 1
  8.     sound.PlayOnRemove = true
  9.     sound:Destroy()
  10. end
  11.  
  12. local SilentAimSettings = {
  13.     Enabled = false,
  14.    
  15.     ClassName = "vision",
  16.     ToggleKey = "RightAlt",
  17.    
  18.     TeamCheck = false,
  19.     VisibleCheck = false,
  20.     TargetPart = "HumanoidRootPart",
  21.     SilentAimMethod = "Raycast",
  22.    
  23.     FOVRadius = 130,
  24.     FOVVisible = false,
  25.     ShowSilentAimTarget = false,
  26.    
  27.     MouseHitPrediction = false,
  28.     MouseHitPredictionAmount = 0.165,
  29.     HitChance = 100
  30. }
  31.  
  32. getgenv().SilentAimSettings = Settings
  33. local MainFileName = "vision"
  34. local SelectedFile, FileToSave = "", ""
  35.  
  36. local Camera = workspace.CurrentCamera
  37. local Players = game:GetService("Players")
  38. local RunService = game:GetService("RunService")
  39. local GuiService = game:GetService("GuiService")
  40. local UserInputService = game:GetService("UserInputService")
  41. local HttpService = game:GetService("HttpService")
  42.  
  43. local LocalPlayer = Players.LocalPlayer
  44. local Mouse = LocalPlayer:GetMouse()
  45.  
  46. local GetChildren = game.GetChildren
  47. local GetPlayers = Players.GetPlayers
  48. local WorldToScreen = Camera.WorldToScreenPoint
  49. local WorldToViewportPoint = Camera.WorldToViewportPoint
  50. local GetPartsObscuringTarget = Camera.GetPartsObscuringTarget
  51. local FindFirstChild = game.FindFirstChild
  52. local RenderStepped = RunService.RenderStepped
  53. local GuiInset = GuiService.GetGuiInset
  54. local GetMouseLocation = UserInputService.GetMouseLocation
  55.  
  56. local resume = coroutine.resume
  57. local create = coroutine.create
  58.  
  59. local ValidTargetParts = {"Head", "HumanoidRootPart"}
  60. local PredictionAmount = 0.165
  61.  
  62.  
  63. local ExpectedArguments = {
  64.     FindPartOnRayWithIgnoreList = {
  65.         ArgCountRequired = 3,
  66.         Args = {
  67.             "Instance", "Ray", "table", "boolean", "boolean"
  68.         }
  69.     },
  70.     FindPartOnRayWithWhitelist = {
  71.         ArgCountRequired = 3,
  72.         Args = {
  73.             "Instance", "Ray", "table", "boolean"
  74.         }
  75.     },
  76.     FindPartOnRay = {
  77.         ArgCountRequired = 2,
  78.         Args = {
  79.             "Instance", "Ray", "Instance", "boolean", "boolean"
  80.         }
  81.     },
  82.     Raycast = {
  83.         ArgCountRequired = 3,
  84.         Args = {
  85.             "Instance", "Vector3", "Vector3", "RaycastParams"
  86.         }
  87.     }
  88. }
  89.  
  90. function CalculateChance(Percentage)
  91.     -- // Floor the percentage
  92.     Percentage = math.floor(Percentage)
  93.  
  94.     -- // Get the chance
  95.     local chance = math.floor(Random.new().NextNumber(Random.new(), 0, 1) * 100) / 100
  96.  
  97.     -- // Return
  98.     return chance <= Percentage / 100
  99. end
  100.  
  101.  
  102. --[[file handling]] do
  103.     if not isfolder(MainFileName) then
  104.         makefolder(MainFileName);
  105.     end
  106.    
  107.     if not isfolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId))) then
  108.         makefolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId)))
  109.     end
  110. end
  111.  
  112. local Files = listfiles(string.format("%s/%s", "vision", tostring(game.PlaceId)))
  113.  
  114. -- functions
  115. local function GetFiles() -- credits to the linoria lib for this function, listfiles returns the files full path and its annoying
  116.     local out = {}
  117.     for i = 1, #Files do
  118.         local file = Files[i]
  119.         if file:sub(-4) == '.lua' then
  120.             -- i hate this but it has to be done ...
  121.  
  122.             local pos = file:find('.lua', 1, true)
  123.             local start = pos
  124.  
  125.             local char = file:sub(pos, pos)
  126.             while char ~= '/' and char ~= '\\' and char ~= '' do
  127.                 pos = pos - 1
  128.                 char = file:sub(pos, pos)
  129.             end
  130.  
  131.             if char == '/' or char == '\\' then
  132.                 table.insert(out, file:sub(pos + 1, start - 1))
  133.             end
  134.         end
  135.     end
  136.    
  137.     return out
  138. end
  139.  
  140. local function UpdateFile(FileName)
  141.     assert(FileName or FileName == "string", "oopsies");
  142.     writefile(string.format("%s/%s/%s.lua", MainFileName, tostring(game.PlaceId), FileName), HttpService:JSONEncode(SilentAimSettings))
  143. end
  144.  
  145. local function LoadFile(FileName)
  146.     assert(FileName or FileName == "string", "oopsies");
  147.    
  148.     local File = string.format("%s/%s/%s.lua", MainFileName, tostring(game.PlaceId), FileName)
  149.     local ConfigData = HttpService:JSONDecode(readfile(File))
  150.     for Index, Value in next, ConfigData do
  151.         SilentAimSettings[Index] = Value
  152.     end
  153. end
  154.  
  155. local function getPositionOnScreen(Vector)
  156.     local Vec3, OnScreen = WorldToScreen(Camera, Vector)
  157.     return Vector2.new(Vec3.X, Vec3.Y), OnScreen
  158. end
  159.  
  160. local function ValidateArguments(Args, RayMethod)
  161.     local Matches = 0
  162.     if #Args < RayMethod.ArgCountRequired then
  163.         return false
  164.     end
  165.     for Pos, Argument in next, Args do
  166.         if typeof(Argument) == RayMethod.Args[Pos] then
  167.             Matches = Matches + 1
  168.         end
  169.     end
  170.     return Matches >= RayMethod.ArgCountRequired
  171. end
  172.  
  173. local function getDirection(Origin, Position)
  174.     return (Position - Origin).Unit * 1000
  175. end
  176.  
  177. local function getMousePosition()
  178.     return GetMouseLocation(UserInputService)
  179. end
  180.  
  181. local function IsPlayerVisible(Player)
  182.     local PlayerCharacter = Player.Character
  183.     local LocalPlayerCharacter = LocalPlayer.Character
  184.    
  185.     if not (PlayerCharacter or LocalPlayerCharacter) then return end
  186.    
  187.     local PlayerRoot = FindFirstChild(PlayerCharacter, Options.TargetPart.Value) or FindFirstChild(PlayerCharacter, "HumanoidRootPart")
  188.    
  189.     if not PlayerRoot then return end
  190.    
  191.     local CastPoints, IgnoreList = {PlayerRoot.Position, LocalPlayerCharacter, PlayerCharacter}, {LocalPlayerCharacter, PlayerCharacter}
  192.     local ObscuringObjects = #GetPartsObscuringTarget(Camera, CastPoints, IgnoreList)
  193.    
  194.     return ((ObscuringObjects == 0 and true) or (ObscuringObjects > 0 and false))
  195. end
  196.  
  197. local function getClosestPlayer()
  198.     if not Options.TargetPart.Value then return end
  199.     local Closest
  200.     local DistanceToMouse
  201.     for _, Player in next, GetPlayers(Players) do
  202.         if Player == LocalPlayer then continue end
  203.         if Toggles.TeamCheck.Value and Player.Team == LocalPlayer.Team then continue end
  204.  
  205.         local Character = Player.Character
  206.         if not Character then continue end
  207.        
  208.         if Toggles.VisibleCheck.Value and not IsPlayerVisible(Player) then continue end
  209.  
  210.         local HumanoidRootPart = FindFirstChild(Character, "HumanoidRootPart")
  211.         local Humanoid = FindFirstChild(Character, "Humanoid")
  212.         if not HumanoidRootPart or not Humanoid or Humanoid and Humanoid.Health <= 0 then continue end
  213.  
  214.         local ScreenPosition, OnScreen = getPositionOnScreen(HumanoidRootPart.Position)
  215.         if not OnScreen then continue end
  216.  
  217.         local Distance = (getMousePosition() - ScreenPosition).Magnitude
  218.         if Distance <= (DistanceToMouse or Options.Radius.Value or 2000) then
  219.             Closest = ((Options.TargetPart.Value == "Random" and Character[ValidTargetParts[math.random(1, #ValidTargetParts)]]) or Character[Options.TargetPart.Value])
  220.             DistanceToMouse = Distance
  221.         end
  222.     end
  223.     return Closest
  224. end
  225.  
  226. getgenv().azureConnections = {}
  227. do
  228.     function azureConnections:DisconnectAll()
  229.         for _, connection in next, azureConnections do
  230.             if connection then connection:Disconnect() end
  231.         end
  232.         if draw.currDrawings then
  233.             for _, drawing in next, draw.currDrawings do
  234.                 drawing:Remove()
  235.             end
  236.         end
  237.     end
  238. end
  239.  
  240. local LPH_JIT_ULTRA = LPH_JIT_ULTRA or function(...) return ... end
  241.  
  242. getgenv().serv = {}
  243.  
  244. function serv:get(serv)
  245.     local suc, res = pcall(function()
  246.         return game:GetService(serv)
  247.     end)
  248.     if suc then
  249.         return game:GetService(serv)
  250.     elseif suc == false then
  251.         print("invalid service")
  252.         return print(res)
  253.     end
  254. end
  255.  
  256. getgenv().event = {
  257.     names = {}
  258. }
  259.  
  260. function event:new(eventName): listener
  261.     local listener = {}
  262.     function listener:bindConnection(connection, identifier, callback): bind_connection
  263.         local connection = connection:Connect(callback)
  264.         azureConnections[identifier] = connection
  265.         table.insert(azureConnections, connection)
  266.         return connection
  267.     end
  268.     function listener:unbindConnection(identifier): unbind_connection
  269.         if azureConnections[identifier] then
  270.             local function unBind(connection)
  271.                 return connection:Disconnect()
  272.             end
  273.             unBind(azureConnections[identifier])
  274.         end
  275.     end
  276.     return listener
  277. end
  278. local Players = serv:get("Players")
  279. local runservice = serv:get("RunService")
  280. local workspace = serv:get("Workspace")
  281. local userinputservice = serv:get("UserInputService")
  282. local lighting = serv:get("Lighting")
  283. local stats = serv:get("Stats")
  284.  
  285. local camera = workspace.CurrentCamera
  286. local localplayer = Players.LocalPlayer
  287. local mouse = localplayer:GetMouse()
  288. local cameraupdate = event.new("cameraUpdate")
  289. cameraupdate:bindConnection(runservice.Heartbeat, "asdionionj", LPH_JIT_ULTRA(function()
  290.     camera = workspace.CurrentCamera
  291. end))
  292.  
  293. getgenv().aimbot = {}
  294.  
  295. function aimbot.isAlive(plr): alive
  296.     if plr then
  297.         return plr and plr.Character and plr.Character.Parent ~= nil and plr.Character:FindFirstChild("HumanoidRootPart") and plr.Character:FindFirstChild("Head") and plr.Character:FindFirstChild("Humanoid")
  298.     end
  299. end
  300.  
  301. getgenv().character = {}
  302.  
  303. function character.isAlive(): alive
  304.     local character = localplayer.Character
  305.     if not character then return false end
  306.     local humanoid = character.Humanoid
  307.     return humanoid.Health > 0
  308. end
  309.  
  310. function character.getPosition(): vec
  311.     if character.isAlive() then
  312.         local character = localplayer.Character
  313.         local characterposition = character.PrimaryPart.Position
  314.         return Vector3.new(characterposition.X, characterposition.Y, characterposition.Z)
  315.     end
  316. end
  317.  
  318. function character.getHealth(): health
  319.     if character.isAlive() then
  320.         local character = localplayer.Character
  321.         local characterHealth = character.Humanoid.Health
  322.         return characterHealth
  323.     else
  324.         return 0
  325.     end
  326. end
  327.  
  328. function character.getMaxHealth(): max_health
  329.     if character.isAlive() then
  330.         local character = localplayer.Character
  331.         local characterMaxHealth = character.Humanoid.MaxHealth
  332.         return characterMaxHealth
  333.     end
  334. end
  335.  
  336. function character.setBaseWalkSpeed(speed)
  337.     if character.isAlive() then
  338.         local character = localplayer.Character
  339.         local humanoid = character.Humanoid
  340.         humanoid.WalkSpeed = speed
  341.     end
  342. end
  343.  
  344. getgenv().draw = {
  345.     currDrawings = {}
  346. }
  347.  
  348. function draw.new(object, properties): new_drawing
  349.     local object = Drawing.new(object)
  350.     for i, v in next, properties do
  351.         object[i] = v
  352.     end
  353.     table.insert(draw.currDrawings, object)
  354.     return object
  355. end
  356.  
  357. getgenv().esp = {
  358.     players = {},
  359.  
  360.     enabled = false,
  361.  
  362.     fading = false,
  363.     espfadespeed = 5,
  364.  
  365.     box = false,
  366.     boxcolor = Color3.fromRGB(255,255,255),
  367.     boxoutline = Color3.fromRGB(0,0,0),
  368.     boxtransparency = 0,
  369.     boxoutlinetransparency = 0,
  370.    
  371.     health = false,
  372.     healthcolor = Color3.fromRGB(0,255,0),
  373.     healthoutline = Color3.fromRGB(0,0,0),
  374.     healthtransparency = 0,
  375.     healthoutlinetransparency = 0,
  376.  
  377.     chams = false,
  378.     chamscolor = Color3.fromRGB(255,255,255),
  379.     chamsoutline = Color3.fromRGB(0,0,0),
  380.     chamstransparencyinline = 0.5,
  381.     chamstransparencyoutline = 0.5,
  382.  
  383.     name = false,
  384.     useDisplayName = false,
  385.     namecolor = Color3.fromRGB(255,255,255),
  386.     nameoutline = Color3.fromRGB(0,0,0),
  387.     nametransparency = 0,
  388.     nameFontSize = 13,
  389.  
  390.     healthbartext = false,
  391.     healthbartextcolor = Color3.fromRGB(255,255,255),
  392.     healthbartextoutline = Color3.fromRGB(0,0,0),
  393.     healthbartexttransparency = 0,
  394.     healthFontSize = 12,
  395.  
  396.     renderdistance = 1000
  397. }
  398.  
  399. spawn(function()
  400.     while task.wait() do
  401.         for i, v in next, Players:GetPlayers() do
  402.             if v ~= localplayer and aimbot.isAlive(v) then
  403.                 local drawingInstances = esp.players[v]
  404.                 if not drawingInstances then continue end
  405.    
  406.                 if esp.enabled then
  407.                     local character = v.Character
  408.                     local _, onscreen = camera:WorldToScreenPoint(character.HumanoidRootPart.Position)
  409.                     local distfromchar = (camera.CFrame.Position - v.Character.HumanoidRootPart.Position).Magnitude
  410.                     if esp.renderdistance < distfromchar then
  411.                         drawingInstances.Box.Visible = false
  412.                         drawingInstances.BoxOutline.Visible = false
  413.                         drawingInstances.Health.Visible = false
  414.                         drawingInstances.HealthOutline.Visible = false
  415.                         drawingInstances.Cham.Parent = nil
  416.                         drawingInstances.Name.Visible = false
  417.                         drawingInstances.HealthText.Visible = false
  418.                     else
  419.                         if onscreen then
  420.                             local charhum2D = camera:WorldToViewportPoint(character.HumanoidRootPart.Position)
  421.                             local charSize = (camera:WorldToViewportPoint(character.HumanoidRootPart.Position - Vector3.new(0, 3, 0)).Y - camera:WorldToViewportPoint(character.HumanoidRootPart.Position + Vector3.new(0, 2.6, 0)).Y) / 2
  422.                             local boxSize = Vector2.new(math.floor(charSize * 1.1), math.floor(charSize * 1.9))
  423.                             local boxPosition = Vector2.new(math.floor(charhum2D.X - charSize * 1.1 / 2), math.floor(charhum2D.Y - charSize * 1.6 / 2))
  424.            
  425.                             if esp.box then
  426.                                 drawingInstances.Box.Size = boxSize
  427.                                 drawingInstances.Box.Position = boxPosition
  428.                                 drawingInstances.Box.Visible = true
  429.                                 drawingInstances.Box.Color = esp.boxcolor
  430.                                 drawingInstances.BoxOutline.Size = boxSize
  431.                                 drawingInstances.BoxOutline.Position = boxPosition
  432.                                 drawingInstances.BoxOutline.Visible = true
  433.                                 drawingInstances.BoxOutline.Color = esp.boxoutline
  434.                                 if esp.fading then
  435.                                     drawingInstances.Box.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  436.                                     drawingInstances.BoxOutline.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  437.                                 else
  438.                                     drawingInstances.Box.Transparency = 1 - esp.boxtransparency
  439.                                     drawingInstances.BoxOutline.Transparency = 1 - esp.boxoutlinetransparency
  440.                                 end
  441.                             else
  442.                                 drawingInstances.Box.Visible = false
  443.                                 drawingInstances.BoxOutline.Visible = false
  444.                             end
  445.                             if esp.health then
  446.                                 drawingInstances.Health.From = Vector2.new((boxPosition.X - 5), boxPosition.Y + boxSize.Y)
  447.                                 drawingInstances.Health.To = Vector2.new(drawingInstances.Health.From.X, drawingInstances.Health.From.Y - (character.Humanoid.Health / character.Humanoid.MaxHealth) * boxSize.Y)
  448.                                 drawingInstances.Health.Color = esp.healthcolor
  449.                                 drawingInstances.Health.Visible = true
  450.                
  451.                                 drawingInstances.HealthOutline.From = Vector2.new(drawingInstances.Health.From.X, boxPosition.Y + boxSize.Y + 1)
  452.                                 drawingInstances.HealthOutline.To = Vector2.new(drawingInstances.Health.From.X, (drawingInstances.Health.From.Y - 1 * boxSize.Y) -1)
  453.                                 drawingInstances.HealthOutline.Color = esp.healthoutline
  454.                                 drawingInstances.HealthOutline.Visible = true
  455.            
  456.                                 if esp.fading then
  457.                                     drawingInstances.Health.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  458.                                     drawingInstances.HealthOutline.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  459.                                 else
  460.                                     drawingInstances.Health.Transparency = 1 - esp.healthtransparency
  461.                                     drawingInstances.HealthOutline.Transparency = 1 - esp.healthoutlinetransparency
  462.                                 end
  463.                                 if esp.healthbartext then
  464.                                     drawingInstances.HealthText.Visible = true
  465.                                     drawingInstances.HealthText.Text = string.format("%s", math.round(character.Humanoid.Health) .. "")
  466.                                     drawingInstances.HealthText.Position = Vector2.new(drawingInstances.Health.From.X - 15, drawingInstances.Health.From.Y - (character.Humanoid.Health / character.Humanoid.MaxHealth) * boxSize.Y)
  467.                                     drawingInstances.HealthText.Color = esp.healthbartextcolor
  468.                                     drawingInstances.HealthText.OutlineColor = esp.healthbartextoutline
  469.                                     drawingInstances.HealthText.Font = Drawing.Fonts.Plex
  470.                                     if esp.fading then
  471.                                         drawingInstances.HealthText.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  472.                                     else
  473.                                         drawingInstances.HealthText.Transparency = 1 - esp.healthbartexttransparency
  474.                                     end
  475.                                 else
  476.                                     drawingInstances.HealthText.Visible = false
  477.                                 end
  478.                             else
  479.                                 drawingInstances.Health.Visible = false
  480.                                 drawingInstances.HealthOutline.Visible = false
  481.                                 drawingInstances.HealthText.Visible = false
  482.                             end
  483.                             if esp.chams then
  484.                                 drawingInstances.Cham.Parent = character
  485.                                 drawingInstances.Cham.FillColor = esp.chamscolor
  486.                                 drawingInstances.Cham.OutlineColor = esp.chamsoutline
  487.                                 if esp.fading then
  488.                                     drawingInstances.Cham.FillTransparency = (math.sin(tick() * esp.espfadespeed) + 1) / 2
  489.                                     drawingInstances.Cham.OutlineTransparency = (math.sin(tick() * esp.espfadespeed) + 1) / 2
  490.                                 else
  491.                                     drawingInstances.Cham.FillTransparency = esp.chamstransparencyinline
  492.                                     drawingInstances.Cham.OutlineTransparency = esp.chamstransparencyoutline
  493.                                 end
  494.                             else
  495.                                 drawingInstances.Cham.Parent = nil
  496.                             end
  497.                             if esp.name then
  498.                                 drawingInstances.Name.Visible = true
  499.                                 drawingInstances.Name.Text = esp.useDisplayName and character.Humanoid.DisplayName or v.Name
  500.                                 drawingInstances.Name.Position = Vector2.new(boxSize.X / 2 + boxPosition.X, boxPosition.Y - 16)
  501.                                 drawingInstances.Name.Color = esp.namecolor
  502.                                 drawingInstances.Name.OutlineColor = esp.nameoutline
  503.                                 drawingInstances.Name.Font = Drawing.Fonts.Plex
  504.                                 if esp.fading then
  505.                                     drawingInstances.Name.Transparency = 1 - (math.sin(tick() * esp.espfadespeed) + 1) / 2
  506.                                 else
  507.                                     drawingInstances.Name.Transparency = 1 - esp.nametransparency
  508.                                 end
  509.                             else
  510.                                 drawingInstances.Name.Visible = false
  511.                             end
  512.                         else
  513.                             drawingInstances.Box.Visible = false
  514.                             drawingInstances.BoxOutline.Visible = false
  515.                             drawingInstances.Health.Visible = false
  516.                             drawingInstances.HealthOutline.Visible = false
  517.                             drawingInstances.Cham.Parent = nil
  518.                             drawingInstances.Name.Visible = false
  519.                             drawingInstances.HealthText.Visible = false
  520.                         end
  521.                     end
  522.                 else
  523.                     drawingInstances.Box.Visible = false
  524.                     drawingInstances.BoxOutline.Visible = false
  525.                     drawingInstances.Health.Visible = false
  526.                     drawingInstances.HealthOutline.Visible = false
  527.                     drawingInstances.Cham.Parent = nil
  528.                     drawingInstances.Name.Visible = false
  529.                     drawingInstances.HealthText.Visible = false
  530.                 end
  531.             end
  532.         end
  533.     end
  534. end)
  535.  
  536. Players.PlayerAdded:Connect(function(player)
  537.     esp.players[player] = {
  538.         Box = draw.new("Square", {Visible = false, Filled = false, ZIndex = 999, Thickness = 1, Transparency = 1}),
  539.         BoxOutline = draw.new("Square", {Visible = false, Filled = false, ZIndex = 1, Color = Color3.fromRGB(0,0,0), Thickness = 3, Transparency = 1}),
  540.         Health = draw.new("Line", {Visible = false, ZIndex = 999, Thickness = 1, Color = Color3.fromRGB(0,255,0), Transparency = 1}),
  541.         HealthOutline = draw.new("Line", {Visible = false, ZIndex = 0, Thickness = 3, Color = Color3.fromRGB(0,0,0), Transparency = 1}),
  542.         Cham = Instance.new("Highlight"),
  543.         Name = draw.new("Text", {Visible = false, Size = 13, Center = true, Outline = true, Font = Drawing.Fonts.Plex, Color = Color3.fromRGB(255,255,255),Transparency = 1}),
  544.         HealthText = draw.new("Text", {Visible = false, Size = 13, Center = true, Outline = true, Font = Drawing.Fonts.Plex, Color = Color3.fromRGB(255,255,255), Transparency = 1})
  545.     }
  546. end)
  547.  
  548. Players.PlayerRemoving:Connect(function(player)
  549.     if esp.players[player] then
  550.         for i, v in pairs(esp.players[player]) do
  551.             if v then
  552.                 if v == "Cham" then
  553.                     v.Parent = nil
  554.                 else
  555.                     v:Remove()
  556.                 end
  557.             end
  558.         end
  559.         esp.players[player] = nil
  560.     end
  561. end)
  562.  
  563. for i, v in next, Players:GetPlayers() do
  564.     if v ~= localplayer then
  565.         esp.players[v] = {
  566.             Box = draw.new("Square", {Visible = false, Filled = false, ZIndex = 999, Thickness = 1}),
  567.             BoxOutline = draw.new("Square", {Visible = false, Filled = false, ZIndex = 1, Color = Color3.fromRGB(0,0,0), Thickness = 3}),
  568.             Health = draw.new("Line", {Visible = false, ZIndex = 999, Thickness = 1, Color = Color3.fromRGB(0,255,0)}),
  569.             HealthOutline = draw.new("Line", {Visible = false, ZIndex = 0, Thickness = 3, Color = Color3.fromRGB(0,0,0)}),
  570.             Cham = Instance.new("Highlight"),
  571.             Name = draw.new("Text", {Visible = false, Size = 11, Center = true, Outline = true, Font = Drawing.Fonts.Plex, Color = Color3.fromRGB(255,255,255)}),
  572.             HealthText = draw.new("Text", {Visible = false, Size = 11, Center = true, Outline = true, Font = Drawing.Fonts.Plex, Color = Color3.fromRGB(255,255,255)})
  573.         }
  574.     end
  575. end
  576.  
  577. function get__players1()
  578.     local array = {}
  579.     for i, v in next, players:GetPlayers() do
  580.         if v ~= localplayer then
  581.             if aimbot.isAlive(v) then
  582.                 table.insert(array, string.format("%s", v.Name))
  583.             end
  584.         end
  585.     end
  586.     return array
  587. end
  588.  
  589. --//Library
  590.  
  591. local esp__events = event.new("esp__events")
  592. local ThemeManager = loadstring(game:HttpGet("https://gitee.com/yxexdddd/vision/raw/master/LinoriaLib/ThemeManager.lua"))()
  593. local SaveManager = loadstring(game:HttpGet("https://gitee.com/yxexdddd/vision/raw/master/LinoriaLib/SaveManager.lua"))()
  594.  
  595. local Window = Library:CreateWindow({
  596.     Title = 'vision🌴',
  597.     Center = true,
  598.     AutoShow = true,
  599.     TabPadding = 4,
  600.     MenuFadeTime = 0.2
  601. })
  602.  
  603. --//Tabs
  604.  
  605. local Tabs = {
  606.     Maintab = Window:AddTab('main'),
  607.     esptab = Window:AddTab('visuals/misc'),
  608.     ['UI Settings'] = Window:AddTab('ui settings'),
  609. }
  610.  
  611. local MainBOX = Tabs.Maintab:AddRightGroupbox('silent aim') do
  612.  
  613.     MainBOX:AddToggle("aim_Enabled", {Text = "enabled"}):AddKeyPicker("aim_Enabled_KeyPicker", {Default = "None", SyncToggleState = false, Mode = "Toggle", Text = "silent aim", NoUI = false});
  614.     Options.aim_Enabled_KeyPicker:OnClick(function()
  615.         SilentAimSettings.Enabled = not SilentAimSettings.Enabled
  616.        
  617.         Toggles.aim_Enabled.Value = SilentAimSettings.Enabled
  618.         Toggles.aim_Enabled:SetValue(SilentAimSettings.Enabled)
  619.     end)
  620.    
  621.     MainBOX:AddToggle("TeamCheck", {Text = "team check", Default = SilentAimSettings.TeamCheck}):OnChanged(function()
  622.         SilentAimSettings.TeamCheck = Toggles.TeamCheck.Value
  623.     end)
  624.     MainBOX:AddToggle("VisibleCheck", {Text = "visible check", Default = SilentAimSettings.VisibleCheck}):OnChanged(function()
  625.         SilentAimSettings.VisibleCheck = Toggles.VisibleCheck.Value
  626.     end)
  627.     MainBOX:AddDropdown("TargetPart", {AllowNull = true, Text = "silent part", Default = SilentAimSettings.TargetPart, Values = {"Head", "HumanoidRootPart", "Random"}}):OnChanged(function()
  628.         SilentAimSettings.TargetPart = Options.TargetPart.Value
  629.     end)
  630.     MainBOX:AddDropdown("Method", {AllowNull = true, Text = "silent method", Default = SilentAimSettings.SilentAimMethod, Values = {
  631.         "Raycast","FindPartOnRay",
  632.         "FindPartOnRayWithWhitelist",
  633.         "FindPartOnRayWithIgnoreList",
  634.     }}):OnChanged(function()
  635.         SilentAimSettings.SilentAimMethod = Options.Method.Value
  636.     end)
  637.     MainBOX:AddSlider('HitChance', {
  638.         Text = 'hit chance',
  639.         Default = 100,
  640.         Min = 0,
  641.         Max = 100,
  642.         Rounding = 1,
  643.    
  644.         Compact = false,
  645.     })
  646.     Options.HitChance:OnChanged(function()
  647.         SilentAimSettings.HitChance = Options.HitChance.Value
  648.     end)
  649. end
  650.  
  651. --//Aimbot Tab
  652.  
  653. local aimBOX = Tabs.Maintab:AddLeftGroupbox('aim assist')
  654. local Players = game:GetService("Players")
  655. local UserInputService = game:GetService("UserInputService")
  656. local RunService = game:GetService("RunService")
  657. local LocalPlayer = Players.LocalPlayer
  658. local Camera = workspace.CurrentCamera
  659. local Mouse = LocalPlayer:GetMouse()
  660.  
  661. local ALL_KEYS = {
  662.     "MB1", "MB2", "MB3", "MB4", "MB5",
  663.     "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
  664.     "A", "S", "D", "F", "G", "H", "J", "K", "L",
  665.     "Z", "X", "C", "V", "B", "N", "M",
  666.     "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12",
  667.     "LeftShift", "RightShift", "LeftControl", "RightControl",
  668.     "LeftAlt", "RightAlt", "Space", "Enter", "Backspace", "Tab", "CapsLock",
  669.     "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Zero",
  670.     "Up", "Down", "Left", "Right"
  671. }
  672.  
  673. local AimAssist = {
  674.     LockedPlayer = nil,
  675.     TempTarget = nil,
  676.     AimKey = "MB2",
  677.     Mode = "Camera",
  678.     HitPart = "Head",
  679.     Settings = {
  680.         Enabled = false,
  681.         FOV = 100,
  682.         Smoothness = 0.3,
  683.         StickyMode = false,
  684.         Predict = {
  685.             Enabled = false,
  686.             MinSpeed = 0,
  687.             X_Factor = 0,
  688.             Y_Factor = 0,
  689.             Z_Factor = 0,
  690.             MaxDistance = 50,
  691.             DistanceScaling = false
  692.         }
  693.     }
  694. }
  695.  
  696.  
  697. aimBOX:AddToggle("aa_enabled", {
  698.     Text = "aim assist",
  699.     Default = false,
  700.     Callback = function(state)
  701.         AimAssist.Settings.Enabled = state
  702.         if not state then
  703.             AimAssist.LockedPlayer = nil
  704.             AimAssist.TempTarget = nil
  705.         end
  706.     end
  707. }):AddKeyPicker("aim_key", {
  708.     Default = AimAssist.AimKey,
  709.     Mode = "Hold",
  710.     Text = "aim assist",
  711.     Keys = ALL_KEYS
  712. })
  713.  
  714. aimBOX:AddToggle("aa_sticky", {
  715.     Text = "sticky aim",
  716.     Default = false,
  717.     Callback = function(state)
  718.         AimAssist.Settings.StickyMode = state
  719.         if not state then
  720.             AimAssist.LockedPlayer = nil
  721.         else
  722.             AimAssist.LockedPlayer = nil
  723.         end
  724.     end
  725. })
  726.  
  727. aimBOX:AddSlider("aa_fov", {
  728.     Text = "aim fov",
  729.     Default = AimAssist.Settings.FOV,
  730.     Min = 10,
  731.     Max = 500,
  732.     Rounding = 0,
  733.     Callback = function(value)
  734.         AimAssist.Settings.FOV = value
  735.     end
  736. })
  737.  
  738. aimBOX:AddSlider("aa_smoothness", {
  739.     Text = "smoothness",
  740.     Default = AimAssist.Settings.Smoothness,
  741.     Min = 0.05,
  742.     Max = 2,
  743.     Rounding = 2,
  744.     Callback = function(value)
  745.         AimAssist.Settings.Smoothness = value
  746.     end
  747. })
  748.  
  749. aimBOX:AddDropdown("aa_mode", {
  750.     Text = "aim mode",
  751.     Default = AimAssist.Mode,
  752.     Values = {"Camera", "Mouse"},
  753.     Callback = function(value)
  754.         AimAssist.Mode = value
  755.     end
  756. })
  757.  
  758. aimBOX:AddDropdown("hit_part", {
  759.     Text = "aim part",
  760.     Default = AimAssist.HitPart,
  761.     Values = {"Head", "Neck", "UpperTorso", "HumanoidRootPart", "LeftFoot", "RightFoot"},
  762.     Callback = function(value)
  763.         AimAssist.HitPart = value
  764.     end
  765. })
  766.  
  767. --//aimbot prediction
  768.  
  769. local PredictGroup = Tabs.Maintab:AddLeftGroupbox("prediction settings")
  770. PredictGroup:AddToggle("predict_enabled", {
  771.     Text = "enable prediction",
  772.     Default = false,
  773.     Callback = function(state)
  774.         AimAssist.Settings.Predict.Enabled = state
  775.     end
  776. })
  777.  
  778. PredictGroup:AddSlider("predict_minspeed", {
  779.     Text = "min speed",
  780.     Default = AimAssist.Settings.Predict.MinSpeed,
  781.     Min = 0,
  782.     Max = 10,
  783.     Rounding = 1,
  784.     Callback = function(value)
  785.         AimAssist.Settings.Predict.MinSpeed = value
  786.     end
  787. })
  788.  
  789. PredictGroup:AddSlider("predict_x", {
  790.     Text = "x-axis predict",
  791.     Default = AimAssist.Settings.Predict.X_Factor,
  792.     Min = -0.5,
  793.     Max = 0.5,
  794.     Rounding = 2,
  795.     Callback = function(value)
  796.         AimAssist.Settings.Predict.X_Factor = value
  797.     end
  798. })
  799.  
  800. PredictGroup:AddSlider("predict_y", {
  801.     Text = "y-axis predict",
  802.     Default = AimAssist.Settings.Predict.Y_Factor,
  803.     Min = -0.5,
  804.     Max = 0.5,
  805.     Rounding = 2,
  806.     Callback = function(value)
  807.         AimAssist.Settings.Predict.Y_Factor = value
  808.     end
  809. })
  810.  
  811. PredictGroup:AddSlider("predict_z", {
  812.     Text = "z-axis predict",
  813.     Default = AimAssist.Settings.Predict.Z_Factor,
  814.     Min = -0.5,
  815.     Max = 0.5,
  816.     Rounding = 2,
  817.     Callback = function(value)
  818.         AimAssist.Settings.Predict.Z_Factor = value
  819.     end
  820. })
  821.  
  822. PredictGroup:AddToggle("predict_distance", {
  823.     Text = "distance scaling",
  824.     Default = false,
  825.     Callback = function(state)
  826.         AimAssist.Settings.Predict.DistanceScaling = state
  827.     end
  828. })
  829.  
  830. local function GetValidTargetPosition(target)
  831.     if not target or not target.Character then return nil end
  832.    
  833.     local part = target.Character:FindFirstChild(AimAssist.HitPart) or
  834.                  target.Character:FindFirstChild("Head") or
  835.                  target.Character:FindFirstChild("UpperTorso") or
  836.                  target.Character:FindFirstChild("HumanoidRootPart")
  837.    
  838.     return part and part.Position
  839. end
  840.  
  841. local function CalculatePrediction(target)
  842.     if not AimAssist.Settings.Predict.Enabled then
  843.         return Vector3.new(0, 0, 0)
  844.     end
  845.  
  846.     local rootPart = target.Character:FindFirstChild("HumanoidRootPart")
  847.     if not rootPart then return Vector3.new(0, 0, 0) end
  848.  
  849.     local velocity = rootPart.AssemblyLinearVelocity
  850.     local speed = velocity.Magnitude
  851.  
  852.     if speed > AimAssist.Settings.Predict.MinSpeed then
  853.         local distanceFactor = 1.0
  854.         if AimAssist.Settings.Predict.DistanceScaling then
  855.             local distance = (rootPart.Position - Camera.CFrame.Position).Magnitude
  856.             distanceFactor = math.clamp(distance / AimAssist.Settings.Predict.MaxDistance, 0.2, 1)
  857.         end
  858.  
  859.         return Vector3.new(
  860.             velocity.X * AimAssist.Settings.Predict.X_Factor * distanceFactor,
  861.             velocity.Y * AimAssist.Settings.Predict.Y_Factor * distanceFactor,
  862.             velocity.Z * AimAssist.Settings.Predict.Z_Factor * distanceFactor
  863.         )
  864.     end
  865.    
  866.     return Vector3.new(0, 0, 0)
  867. end
  868.  
  869. local function IsKeyPressed()
  870.     if not Options or not Options.aim_key then return false end
  871.    
  872.     local key = Options.aim_key.Value
  873.    
  874.     if key == "MB1" then
  875.         return UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1)
  876.     elseif key == "MB2" then
  877.         return UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
  878.     elseif key == "MB3" then
  879.         return UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton3)
  880.     elseif key == "MB4" then
  881.         return UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton4)
  882.     elseif key == "MB5" then
  883.         return UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton5)
  884.     else
  885.         local keyCode = Enum.KeyCode[key]
  886.         return keyCode and UserInputService:IsKeyDown(keyCode)
  887.     end
  888. end
  889.  
  890. local function UpdateTarget()
  891.     if not AimAssist.Settings.StickyMode then
  892.         AimAssist.LockedPlayer = nil
  893.         local closestPlayer, minDist = nil, AimAssist.Settings.FOV
  894.         local mousePos = UserInputService:GetMouseLocation()
  895.  
  896.         for _, player in ipairs(Players:GetPlayers()) do
  897.             if player ~= LocalPlayer and player.Character then
  898.                 local head = player.Character:FindFirstChild("Head")
  899.                 if head then
  900.                     local screenPos = Camera:WorldToViewportPoint(head.Position)
  901.                     if screenPos.Z > 0 then
  902.                         local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
  903.                         if dist < minDist then
  904.                             closestPlayer = player
  905.                             minDist = dist
  906.                         end
  907.                     end
  908.                 end
  909.             end
  910.         end
  911.         AimAssist.TempTarget = closestPlayer
  912.         return
  913.     end
  914.     if not AimAssist.LockedPlayer or not AimAssist.LockedPlayer.Character then
  915.         local closestPlayer, minDist = nil, AimAssist.Settings.FOV
  916.         local mousePos = UserInputService:GetMouseLocation()
  917.  
  918.         for _, player in ipairs(Players:GetPlayers()) do
  919.             if player ~= LocalPlayer and player.Character then
  920.                 local head = player.Character:FindFirstChild("Head")
  921.                 if head then
  922.                     local screenPos = Camera:WorldToViewportPoint(head.Position)
  923.                     if screenPos.Z > 0 then
  924.                         local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
  925.                         if dist < minDist then
  926.                             closestPlayer = player
  927.                             minDist = dist
  928.                         end
  929.                     end
  930.                 end
  931.             end
  932.         end
  933.         AimAssist.LockedPlayer = closestPlayer
  934.     end
  935. end
  936.  
  937. local function CameraAim()
  938.     UpdateTarget()
  939.     local target = AimAssist.Settings.StickyMode and AimAssist.LockedPlayer or AimAssist.TempTarget
  940.     if target then
  941.         local basePos = GetValidTargetPosition(target)
  942.         if basePos then
  943.             local aimPos = basePos + CalculatePrediction(target)
  944.             Camera.CFrame = CFrame.new(Camera.CFrame.Position, aimPos):Lerp(
  945.                 Camera.CFrame, AimAssist.Settings.Smoothness
  946.             )
  947.         end
  948.     end
  949. end
  950.  
  951. local function MouseAim()
  952.     UpdateTarget()
  953.     local target = AimAssist.Settings.StickyMode and AimAssist.LockedPlayer or AimAssist.TempTarget
  954.     if not target or not target.Character then return end
  955.  
  956.     local basePos = GetValidTargetPosition(target)
  957.     if not basePos then return end
  958.  
  959.     local aimPos = basePos + CalculatePrediction(target)
  960.     local screenPos, onScreen = Camera:WorldToViewportPoint(aimPos)
  961.    
  962.     if onScreen and screenPos.Z > 0 then
  963.         local mousePos = UserInputService:GetMouseLocation()
  964.         local delta = (Vector2.new(screenPos.X, screenPos.Y) - mousePos)
  965.        
  966.         local smoothFactor = math.clamp(AimAssist.Settings.Smoothness * 0.1, 0.01, 0.2)
  967.         mousemoverel(
  968.             math.clamp(delta.X * smoothFactor, -12, 12),
  969.             math.clamp(delta.Y * smoothFactor, -12, 12)
  970.         )
  971.     end
  972. end
  973.  
  974. RunService.RenderStepped:Connect(function()
  975.     if not AimAssist.Settings.Enabled or not IsKeyPressed() then
  976.         AimAssist.TempTarget = nil
  977.         if not AimAssist.Settings.StickyMode then
  978.             AimAssist.LockedPlayer = nil
  979.         end
  980.         return
  981.     end
  982.  
  983.     if AimAssist.Mode == "Camera" then
  984.         CameraAim()
  985.     else
  986.         MouseAim()
  987.     end
  988. end)
  989.  
  990. print(string.format([[
  991.     [Aim Assist Ultimate Loaded]
  992.     Mode: %s | Key: %s | Part: %s
  993.     Sticky: %s | Predict: %s
  994.     FOV: %d° | Smooth: %.2f
  995. ]],
  996.     AimAssist.Mode,
  997.     AimAssist.AimKey,
  998.     AimAssist.HitPart,
  999.     AimAssist.Settings.StickyMode and "ON" or "OFF",
  1000.     AimAssist.Settings.Predict.Enabled and "ON" or "OFF",
  1001.     AimAssist.Settings.FOV,
  1002.     AimAssist.Settings.Smoothness
  1003. ))
  1004.  
  1005. local fov_circle = Drawing.new("Circle")
  1006. fov_circle.Thickness = 1
  1007. fov_circle.NumSides = 100
  1008. fov_circle.Radius = 100
  1009. fov_circle.Filled = false
  1010. fov_circle.Visible = true
  1011. fov_circle.ZIndex = 999
  1012. fov_circle.Transparency = 1
  1013. fov_circle.Color = Color3.fromRGB(255, 255, 255)
  1014.  
  1015.  
  1016. local fov_circle_outline_outer = Drawing.new("Circle")
  1017. fov_circle_outline_outer.Thickness = 1
  1018. fov_circle_outline_outer.NumSides = 100
  1019. fov_circle_outline_outer.Radius = fov_circle.Radius + 2
  1020. fov_circle_outline_outer.Filled = false
  1021. fov_circle_outline_outer.Visible = true
  1022. fov_circle_outline_outer.ZIndex = 998
  1023. fov_circle_outline_outer.Transparency = 0.8
  1024. fov_circle_outline_outer.Color = Color3.fromRGB(0, 0, 0)
  1025.  
  1026. local fov_circle_outline_inner = Drawing.new("Circle")
  1027. fov_circle_outline_inner.Thickness = 1
  1028. fov_circle_outline_inner.NumSides = 100
  1029. fov_circle_outline_inner.Radius = fov_circle.Radius - 1
  1030. fov_circle_outline_inner.Filled = false
  1031. fov_circle_outline_inner.Visible = true
  1032. fov_circle_outline_inner.ZIndex = 1000
  1033. fov_circle_outline_inner.Transparency = 0.8
  1034. fov_circle_outline_inner.Color = Color3.fromRGB(0, 0, 0)
  1035.  
  1036. local FieldOfViewBOX = Tabs.Maintab:AddRightGroupbox('fov visible') do
  1037.     FieldOfViewBOX:AddToggle("Visible", {Text = "show fov"}):AddColorPicker("Color", {Default = Color3.fromRGB(146, 193, 255)}):OnChanged(function()
  1038.         fov_circle.Visible = Toggles.Visible.Value
  1039.         SilentAimSettings.FOVVisible = Toggles.Visible.Value
  1040.     end)
  1041.     FieldOfViewBOX:AddSlider("Radius", {
  1042.     Text = "fov size",
  1043.     Min = 0,
  1044.     Max = 360,
  1045.     Default = 100,
  1046.     Rounding = 0
  1047.     }):OnChanged(function(value)
  1048.     fov_circle.Radius = value
  1049.     SilentAimSettings.FOVRadius = value
  1050.    
  1051.     fov_circle_outline_outer.Radius = fov_circle.Radius + 2
  1052.     fov_circle_outline_inner.Radius = fov_circle.Radius - 1
  1053.     end)
  1054. end
  1055.  
  1056. resume(create(function()
  1057.     RenderStepped:Connect(function()
  1058.         if Toggles.aim_Enabled.Value then
  1059.             if getClosestPlayer() then
  1060.                 local Root = getClosestPlayer().Parent.PrimaryPart or getClosestPlayer()
  1061.                 local RootToViewportPoint, IsOnScreen = WorldToViewportPoint(Camera, Root.Position)
  1062.             end
  1063.         end
  1064.        
  1065.         if Toggles.Visible.Value then
  1066.             local mousePos = getMousePosition()
  1067.             fov_circle.Visible = true
  1068.             fov_circle_outline_outer.Visible = true
  1069.             fov_circle_outline_inner.Visible = true
  1070.             fov_circle.Color = Options.Color.Value
  1071.             fov_circle.Position = mousePos
  1072.             fov_circle_outline_outer.Position = mousePos
  1073.             fov_circle_outline_inner.Position = mousePos
  1074.         else
  1075.             fov_circle.Visible = false
  1076.             fov_circle_outline_outer.Visible = false
  1077.             fov_circle_outline_inner.Visible = false
  1078.         end
  1079.     end)
  1080. end))
  1081.  
  1082. --//Visuals Tab
  1083.  
  1084. local espGroupBox = Tabs.esptab:AddLeftGroupbox('players')
  1085. espGroupBox:AddToggle('esp', {
  1086.     Text = 'enable',
  1087.     Default = false,
  1088.     Tooltip = false,
  1089.     Callback = function(Value)
  1090.         getgenv().esp.renderdistance = 1000
  1091.         getgenv().esp.enabled = Value
  1092.     end
  1093. })
  1094.  
  1095. --//Box
  1096.  
  1097. espGroupBox:AddToggle('box', {
  1098.     Text = 'box',
  1099.     Default = false,
  1100.     Tooltip = false,
  1101.     Callback = function(Value)
  1102.         getgenv().esp.box = Value
  1103.     end
  1104. }):AddColorPicker("boxcolor", {
  1105.     Title = "Box Color",
  1106.     Default = Color3.fromRGB(255, 255, 255),
  1107.     Callback = function(Value)
  1108.         getgenv().esp.boxcolor = Value
  1109.     end
  1110. }):AddColorPicker("boxoutline_color", {
  1111.     Title = "Box Outline",
  1112.     Default = Color3.fromRGB(0, 0, 0),
  1113.     Callback = function(Value)
  1114.         getgenv().esp.boxoutline = Value
  1115.     end
  1116. })
  1117.  
  1118. --//Name
  1119.  
  1120. espGroupBox:AddToggle('name', {
  1121.     Text = 'name',
  1122.     Default = false,
  1123.     Tooltip = false,
  1124.     Callback = function(Value)
  1125.         getgenv().esp.name = Value
  1126.     end
  1127. }):AddColorPicker("boxcolor", {
  1128.     Title = "Name Color",
  1129.     Default = Color3.fromRGB(255, 255, 255),
  1130.     Callback = function(Value)
  1131.         getgenv().esp.namecolor = Value
  1132.     end
  1133. }):AddColorPicker("boxoutline_color", {
  1134.     Title = "Name Outline",
  1135.     Default = Color3.fromRGB(0, 0, 0),
  1136.     Callback = function(Value)
  1137.         getgenv().esp.nameoutline = Value
  1138.     end
  1139. })
  1140.  
  1141. --//Chams
  1142.  
  1143. espGroupBox:AddToggle('chams', {
  1144.     Text = 'chams',
  1145.     Default = false,
  1146.     Tooltip = false,
  1147.     Callback = function(Value)
  1148.         getgenv().esp.chams = Value
  1149.     end
  1150. }):AddColorPicker("boxcolor", {
  1151.     Title = "Chams Color",
  1152.     Default = Color3.fromRGB(255, 255, 255),
  1153.     Callback = function(Value)
  1154.         getgenv().esp.chamscolor = Value
  1155.     end
  1156. }):AddColorPicker("boxoutline_color", {
  1157.     Title = "Chams Outline",
  1158.     Default = Color3.fromRGB(0, 0, 0),
  1159.     Callback = function(Value)
  1160.         getgenv().esp.chamsoutline = Value
  1161.     end
  1162. })
  1163.  
  1164. --//Health bar
  1165.  
  1166. espGroupBox:AddToggle('health_bar', {
  1167.     Text = 'health bar',
  1168.     Default = false,
  1169.     Tooltip = false,
  1170.     Callback = function(Value)
  1171.         getgenv().esp.health = Value
  1172.     end
  1173. }):AddColorPicker("boxcolor", {
  1174.     Title = "Health bar Color",
  1175.     Default = Color3.fromRGB(0,255,0),
  1176.     Callback = function(Value)
  1177.         getgenv().esp.healthcolor = Value
  1178.     end
  1179. }):AddColorPicker("boxoutline_color", {
  1180.     Title = "Health bar Outline",
  1181.     Default = Color3.fromRGB(0,0,0),
  1182.     Callback = function(Value)
  1183.         getgenv().esp.healthoutline = Value
  1184.     end
  1185. })
  1186.  
  1187. --//Health bar text
  1188.  
  1189. espGroupBox:AddToggle('health_bar_text', {
  1190.     Text = 'health bar text',
  1191.     Default = false,
  1192.     Tooltip = false,
  1193.     Callback = function(Value)
  1194.         getgenv().esp.healthbartext = Value
  1195.     end
  1196. }):AddColorPicker("boxcolor", {
  1197.     Title = "Health text Color",
  1198.     Default = Color3.fromRGB(0,255,0),
  1199.     Callback = function(Value)
  1200.         getgenv().esp.healthbartextcolor = Value
  1201.     end
  1202. }):AddColorPicker("boxoutline_color", {
  1203.     Title = "Health text Outline",
  1204.     Default = Color3.fromRGB(0,0,0),
  1205.     Callback = function(Value)
  1206.         getgenv().esp.healthbartextoutline = Value
  1207.     end
  1208. })
  1209.  
  1210. --//esp settings
  1211.  
  1212. local espGroupBox2 = Tabs.esptab:AddLeftGroupbox('esp settings')
  1213. espGroupBox2:AddToggle('use_displayname', {
  1214.     Text = 'display name',
  1215.     Default = false,
  1216.     Tooltip = false,
  1217.     Callback = function(Value)
  1218.         getgenv().esp.useDisplayName = Value
  1219.     end
  1220. })
  1221.  
  1222. espGroupBox2:AddSlider('name_font_size', {
  1223.     Text = 'name font size',
  1224.     Default = 12,
  1225.     Min = 8,
  1226.     Max = 20,
  1227.     Rounding = 1,
  1228.     Compact = false,
  1229.     Callback = function(Value)
  1230.         getgenv().esp.nameFontSize = Value
  1231.         for player, drawingInstances in pairs(esp.players) do
  1232.             if drawingInstances and drawingInstances.Name then
  1233.                 drawingInstances.Name.Size = Value
  1234.             end
  1235.         end
  1236.     end
  1237. })
  1238.  
  1239. espGroupBox2:AddSlider('name_font_size', {
  1240.     Text = 'health font size',
  1241.     Default = 12,
  1242.     Min = 8,
  1243.     Max = 20,
  1244.     Rounding = 1,
  1245.     Compact = false,
  1246.     Callback = function(Value)
  1247.         getgenv().esp.healthFontSize = Value
  1248.         for player, drawingInstances in pairs(esp.players) do
  1249.             if drawingInstances and drawingInstances.HealthText then
  1250.                 drawingInstances.HealthText.Size = Value
  1251.             end
  1252.         end
  1253.     end
  1254. })
  1255.  
  1256. --//esp distance
  1257.  
  1258. espGroupBox2:AddSlider('esp_distance', {
  1259.     Text = 'distance',
  1260.     Default = 1000,
  1261.     Min = 100,
  1262.     Max = 10000,
  1263.     Rounding = 1,
  1264.     Compact = false,
  1265.     Callback = function(Value)
  1266.         getgenv().esp.renderdistance = Value
  1267.     end
  1268. })
  1269.  
  1270. --//aspect Ratio
  1271.  
  1272.  
  1273. local flags = {
  1274.     aspect_ratio = { toggle = false },
  1275.     ratio_x = { value = 100 },
  1276.     ratio_y = { value = 100 }
  1277. }
  1278.  
  1279. local original_newindex
  1280. original_newindex = hookmetamethod(game, "__newindex", function(self, index, value)
  1281.     if not checkcaller() and self == camera then
  1282.         if index == "CFrame" and flags.aspect_ratio.toggle then
  1283.             local scale_x = flags.ratio_x.value / 100
  1284.             local scale_y = flags.ratio_y.value / 100
  1285.            
  1286.             local stretch_matrix = CFrame.new(
  1287.                 0, 0, 0,
  1288.                 scale_x, 0, 0,
  1289.                 0, scale_y, 0,
  1290.                 0, 0, 1
  1291.             )
  1292.             return original_newindex(self, index, value * stretch_matrix)
  1293.         end
  1294.     end
  1295.     return original_newindex(self, index, value)
  1296. end)
  1297.  
  1298. local worldGroupBox2 = Tabs.esptab:AddRightGroupbox('camera')
  1299.     worldGroupBox2:AddSlider('aspect_ratio_x', {
  1300.         Text = 'aspect ratio x',
  1301.         Default = 100,
  1302.         Min = 1,
  1303.         Max = 100,
  1304.         Rounding = 1,
  1305.         Compact = false,
  1306.         Callback = function(Value)
  1307.             flags.ratio_x.value = Value
  1308.         end
  1309.     })
  1310.  
  1311.     worldGroupBox2:AddSlider('aspect_ratio_y', {
  1312.         Text = 'aspect ratio Y',
  1313.         Default = 100,
  1314.         Min = 1,
  1315.         Max = 100,
  1316.         Rounding = 1,
  1317.         Compact = false,
  1318.         Callback = function(Value)
  1319.             flags.ratio_y.value = Value
  1320.         end
  1321.     })
  1322.  
  1323.     worldGroupBox2:AddToggle('aspect_ratio_toggle', {
  1324.         Text = 'aspect Ratio',
  1325.         Default = false,
  1326.         Tooltip = 'Toggle aspect ratio scaling',
  1327.         Callback = function(Value)
  1328.             flags.aspect_ratio.toggle = Value
  1329.         end
  1330.     })
  1331.  
  1332. --//Walk speed
  1333.  
  1334. local miscGroupBox2 = Tabs.esptab:AddRightGroupbox('walkspeed')
  1335. local Player = game:GetService("Players").LocalPlayer
  1336.  
  1337. local defaultWalkSpeed = 16
  1338. getgenv().WalkSpeedSettings = {
  1339.     Enabled = false,
  1340.     Value = 100
  1341. }
  1342.  
  1343. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  1344.     defaultWalkSpeed = Player.Character.Humanoid.WalkSpeed
  1345. end
  1346.  
  1347. local function updateWalkSpeed()
  1348.     if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  1349.         Player.Character.Humanoid.WalkSpeed =
  1350.             getgenv().WalkSpeedSettings.Enabled and getgenv().WalkSpeedSettings.Value or defaultWalkSpeed
  1351.     end
  1352. end
  1353.  
  1354. -- 4. 创建主Toggle
  1355. local WalkSpeedToggle = miscGroupBox2:AddToggle("walkspeed_toggle", {
  1356.     Text = "enable(only 'V')",
  1357.     Default = false,
  1358.     Callback = function(Value)
  1359.         getgenv().WalkSpeedSettings.Enabled = Value
  1360.         updateWalkSpeed()
  1361.     end
  1362. })
  1363.  
  1364. -- 5. 添加按键绑定(关键修复部分)
  1365. local KeyPicker = WalkSpeedToggle:AddKeyPicker("walkspeed_key", {
  1366.     Default = "V",
  1367.     Mode = "Toggle", -- 切换模式
  1368.     Text = "walk speed",
  1369.     NoUI = false
  1370. })
  1371.  
  1372. -- 6. 确保按键能切换状态(兼容所有库的写法)
  1373. local function handleKeyPress()
  1374.     local newState = not getgenv().WalkSpeedSettings.Enabled
  1375.     getgenv().WalkSpeedSettings.Enabled = newState
  1376.    
  1377.     -- 更新Toggle显示
  1378.     if WalkSpeedToggle.SetValue then
  1379.         pcall(function() WalkSpeedToggle:SetValue(newState) end)
  1380.     elseif WalkSpeedToggle.SetState then
  1381.         pcall(function() WalkSpeedToggle:SetState(newState) end)
  1382.     end
  1383.    
  1384.     updateWalkSpeed()
  1385. end
  1386.  
  1387. if KeyPicker.OnClick then
  1388.     KeyPicker:OnClick(handleKeyPress)
  1389. elseif KeyPicker.SetCallback then
  1390.     KeyPicker:SetCallback(handleKeyPress)
  1391. else
  1392.     game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
  1393.         if not gameProcessed and input.KeyCode == Enum.KeyCode.V then
  1394.             handleKeyPress()
  1395.         end
  1396.     end)
  1397. end
  1398.  
  1399. miscGroupBox2:AddSlider('walkspeed_value', {
  1400.     Text = 'walkspeed',
  1401.     Default = 100,
  1402.     Min = 16,
  1403.     Max = 500,
  1404.     Rounding = 1,
  1405.     Callback = function(Value)
  1406.         getgenv().WalkSpeedSettings.Value = Value
  1407.         if getgenv().WalkSpeedSettings.Enabled then
  1408.             updateWalkSpeed()
  1409.         end
  1410.     end
  1411. })
  1412.  
  1413. local function setupWalkSpeed()
  1414.     if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  1415.         Player.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
  1416.             if getgenv().WalkSpeedSettings.Enabled then
  1417.                 Player.Character.Humanoid.WalkSpeed = getgenv().WalkSpeedSettings.Value
  1418.             end
  1419.         end)
  1420.         updateWalkSpeed()
  1421.     end
  1422. end
  1423.  
  1424. setupWalkSpeed()
  1425. Player.CharacterAdded:Connect(function(character)
  1426.     character:WaitForChild("Humanoid")
  1427.     setupWalkSpeed()
  1428. end)
  1429.  
  1430.  
  1431. local oldNamecall
  1432. oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(...)
  1433.     local Method = getnamecallmethod()
  1434.     local Arguments = {...}
  1435.     local self = Arguments[1]
  1436.     local chance = CalculateChance(SilentAimSettings.HitChance)
  1437.     if Toggles.aim_Enabled.Value and self == workspace and not checkcaller() and chance == true then
  1438.         if Method == "FindPartOnRayWithIgnoreList" and Options.Method.Value == Method then
  1439.             if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithIgnoreList) then
  1440.                 local A_Ray = Arguments[2]
  1441.  
  1442.                 local HitPart = getClosestPlayer()
  1443.                 if HitPart then
  1444.                     local Origin = A_Ray.Origin
  1445.                     local Direction = getDirection(Origin, HitPart.Position)
  1446.                     Arguments[2] = Ray.new(Origin, Direction)
  1447.  
  1448.                     return oldNamecall(unpack(Arguments))
  1449.                 end
  1450.             end
  1451.         elseif Method == "FindPartOnRayWithWhitelist" and Options.Method.Value == Method then
  1452.             if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithWhitelist) then
  1453.                 local A_Ray = Arguments[2]
  1454.  
  1455.                 local HitPart = getClosestPlayer()
  1456.                 if HitPart then
  1457.                     local Origin = A_Ray.Origin
  1458.                     local Direction = getDirection(Origin, HitPart.Position)
  1459.                     Arguments[2] = Ray.new(Origin, Direction)
  1460.  
  1461.                     return oldNamecall(unpack(Arguments))
  1462.                 end
  1463.             end
  1464.         elseif (Method == "FindPartOnRay" or Method == "findPartOnRay") and Options.Method.Value:lower() == Method:lower() then
  1465.             if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRay) then
  1466.                 local A_Ray = Arguments[2]
  1467.  
  1468.                 local HitPart = getClosestPlayer()
  1469.                 if HitPart then
  1470.                     local Origin = A_Ray.Origin
  1471.                     local Direction = getDirection(Origin, HitPart.Position)
  1472.                     Arguments[2] = Ray.new(Origin, Direction)
  1473.  
  1474.                     return oldNamecall(unpack(Arguments))
  1475.                 end
  1476.             end
  1477.         elseif Method == "Raycast" and Options.Method.Value == Method then
  1478.             if ValidateArguments(Arguments, ExpectedArguments.Raycast) then
  1479.                 local A_Origin = Arguments[2]
  1480.  
  1481.                 local HitPart = getClosestPlayer()
  1482.                 if HitPart then
  1483.                     Arguments[3] = getDirection(A_Origin, HitPart.Position)
  1484.  
  1485.                     return oldNamecall(unpack(Arguments))
  1486.                 end
  1487.             end
  1488.         end
  1489.     end
  1490.     return oldNamecall(...)
  1491. end))
  1492.  
  1493. local oldIndex = nil
  1494. oldIndex = hookmetamethod(game, "__index", newcclosure(function(self, Index)
  1495.     if self == Mouse and not checkcaller() and Toggles.aim_Enabled.Value and Options.Method.Value == "Mouse.Hit/Target" and getClosestPlayer() then
  1496.         local HitPart = getClosestPlayer()
  1497.          
  1498.         if Index == "Target" or Index == "target" then
  1499.             return HitPart
  1500.         elseif Index == "Hit" or Index == "hit" then
  1501.             return ((Toggles.Prediction.Value and (HitPart.CFrame + (HitPart.Velocity * PredictionAmount))) or (not Toggles.Prediction.Value and HitPart.CFrame))
  1502.         elseif Index == "X" or Index == "x" then
  1503.             return self.X
  1504.         elseif Index == "Y" or Index == "y" then
  1505.             return self.Y
  1506.         elseif Index == "UnitRay" then
  1507.             return Ray.new(self.Origin, (self.Hit - self.Origin).Unit)
  1508.         end
  1509.     end
  1510.  
  1511.     return oldIndex(self, Index)
  1512. end))
  1513.  
  1514.  
  1515. Library:SetWatermarkVisibility(true)
  1516. local FrameTimer = tick()
  1517. local FrameCounter = 0;
  1518. local FPS = 60;
  1519.  
  1520. local WatermarkConnection = game:GetService('RunService').RenderStepped:Connect(function()
  1521.     FrameCounter += 1;
  1522.  
  1523.     if (tick() - FrameTimer) >= 1 then
  1524.         FPS = FrameCounter;
  1525.         FrameTimer = tick();
  1526.         FrameCounter = 0;
  1527.     end;
  1528.  
  1529.     Library:SetWatermark(('vision | %s fps | %s ms'):format(
  1530.         math.floor(FPS),
  1531.         math.floor(game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue())
  1532.     ));
  1533. end);
  1534.  
  1535. Library.KeybindFrame.Visible = true; -- todo: add a function for this
  1536.  
  1537. Library:OnUnload(function()
  1538.     WatermarkConnection:Disconnect()
  1539.  
  1540.     local TeleportService = game:GetService("TeleportService")
  1541.     local localPlayer = Players.LocalPlayer
  1542.  
  1543.     local function rejoinServer()
  1544.     local placeId = game.PlaceId
  1545.     local jobId = game.JobId
  1546.    
  1547.     local success, err = pcall(function()
  1548.         TeleportService:TeleportToPlaceInstance(placeId, jobId, localPlayer)
  1549.     end)
  1550.     if not success then
  1551.         warn("", err)
  1552.         TeleportService:Teleport(placeId, localPlayer)
  1553.     end
  1554. end
  1555.     rejoinServer()
  1556.     Library.Unloaded = true
  1557. end)
  1558.  
  1559. local MenuGroup2 = Tabs['UI Settings']:AddRightGroupbox('Menu')
  1560.  
  1561. MenuGroup2:AddToggle("KeybindMenuOpen", { Default = false, Text = "Open Keybind Menu", Callback = function(value) Library.KeybindFrame.Visible = value end})
  1562.  
  1563. MenuGroup2:AddButton('Unload(rejoin)', function() Library:Unload() end)
  1564. MenuGroup2:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'End', NoUI = true, Text = 'Menu keybind' })
  1565. Library.ToggleKeybind = Options.MenuKeybind -- Allows you to have a custom keybind for the menu
  1566. ThemeManager:SetLibrary(Library)
  1567. SaveManager:SetLibrary(Library)
  1568. SaveManager:IgnoreThemeSettings()
  1569. SaveManager:SetIgnoreIndexes({ 'MenuKeybind' })
  1570. ThemeManager:SetFolder('vison')
  1571. SaveManager:SetFolder('vision/specific-game')
  1572. SaveManager:BuildConfigSection(Tabs['UI Settings'])
  1573. ThemeManager:ApplyToTab(Tabs['UI Settings'])
  1574. SaveManager:LoadAutoloadConfig()
Add Comment
Please, Sign In to add comment