kele666CN

Untitled

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