Enhance your Counter Blox experience with a feature-packed script including Legit Aimbot, Triggerbot, ESP, Visuals, Movement Mods, World Customization, and a complete Config System. Fine-tune every setting with customizable keybinds, prediction, team checks, and advanced aiming controls for a smooth and optimized gameplay experience.
Features:
• Legit Aimbot
• Adjustable FOV
• Smooth Aim
• Prediction System
• Team Check
• Wall Check
• Custom Hitbox Selection
• Distance Limiter
• Triggerbot
• Auto Fire
• Custom Delay
• Activation Key Support
• ESP
• Player Boxes
• Name ESP
• Distance ESP
• Health Bars
• World Visuals
• Lighting Modifications
• World Customization
• Environmental Tweaks
• Movement
• Speed Modifier
• Jump Enhancements
• Movement Utilities
• Misc Utilities
• QoL Features
• Custom Settings
• Config System
• Save Configs
• Load Configs
• Preset Management
• Keybind Manager
• Fast Feature Toggle
• Custom Hotkeys
• Open Source
• GUI Interface
• Performance Optimized
SEO Keywords:
Counter Blox Script, Counter Blox Aimbot, Counter Blox ESP, Counter Blox Triggerbot, Counter Blox Legit Bot, Counter Blox Silent Aim, Counter Blox Cheat, Counter Blox Hack, Counter Blox GUI Script, Counter Blox Roblox Script, Counter Blox Wall Check, Counter Blox Prediction Aimbot, Counter Blox Visuals Script, Counter Blox Movement Script, Counter Blox Config System, Counter Blox Keybind Script, Counter Blox Utility Script, Best Counter Blox Script, Free Counter Blox Script.
No comments yet. Be the first to comment!
1local Players = game:GetService("Players")
2local UIS = game:GetService("UserInputService")
3local RunService = game:GetService("RunService")
4local TweenService = game:GetService("TweenService")
5local Lighting = game:GetService("Lighting")
6local SoundService = game:GetService("SoundService")
7
8local LocalPlayer = Players.LocalPlayer
9local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
10local Camera = workspace.CurrentCamera
11
12local MENU_KEY = Enum.KeyCode.RightShift
13
14local oldGui = PlayerGui:FindFirstChild("NEVERBLOX_V2_CLEAN")
15if oldGui then
16 oldGui:Destroy()
17end
18
19local Theme = {
20 BG = Color3.fromRGB(8, 9, 14),
21 Sidebar = Color3.fromRGB(5, 17, 28),
22 Panel = Color3.fromRGB(0, 24, 48),
23 PanelDark = Color3.fromRGB(3, 9, 18),
24 Accent = Color3.fromRGB(39, 156, 255),
25 Text = Color3.fromRGB(255, 255, 255),
26 Muted = Color3.fromRGB(150, 160, 175),
27 Off = Color3.fromRGB(72, 84, 96),
28 Red = Color3.fromRGB(255, 75, 85),
29 Green = Color3.fromRGB(70, 255, 145),
30 Yellow = Color3.fromRGB(255, 210, 80)
31}
32
33local State = {
34 MenuOpen = true,
35
36 -- Rage Bot
37 RageBot = false,
38 RageActivation = "Always",
39 RageTeamCheck = true,
40 RageWallCheck = false,
41 RageHitbox = "Head",
42 RageTargetSelection = "FOV",
43 RageFOV = 260,
44 RageSmooth = 1,
45 RagePrediction = 0.08,
46 RageMaxDistance = 2500,
47 RageAutoFire = false,
48 RageDoubleTap = false,
49 RageQuickStop = false,
50 RageHitchance = 100,
51
52 -- Legit Bot
53 LegitBot = false,
54 LegitActivation = "Hold RMB",
55 LegitTeamCheck = true,
56 LegitWallCheck = true,
57 LegitHitbox = "Head",
58 LegitFOV = 110,
59 LegitSmooth = 30,
60 LegitPrediction = 0.03,
61 LegitMaxDistance = 1500,
62 LegitTriggerbot = false,
63 LegitTriggerDelay = 120,
64
65 -- Visuals
66 VisualsEnabled = true,
67 TeamCheck = false,
68 BoxESP = true,
69 CornerBox = false,
70 NameESP = true,
71 HealthESP = true,
72 DistanceESP = true,
73 Chams = true,
74 Glow = true,
75 ChamsXRay = true,
76 ESPMaxDistance = 2500,
77 FOVCircles = true,
78
79 -- World
80 Nightmode = false,
81 Fullbright = false,
82 RemoveFog = false,
83 SkyColor = "Default",
84 Brightness = 2,
85 CameraFOV = 70,
86
87 -- Movement
88 BunnyHop = false,
89 AutoStrafer = false,
90 AutoStraferMode = "Legit",
91 FastStop = false,
92
93 -- Misc
94 Thirdperson = false,
95 ThirdpersonDistance = 12,
96 Hitsounds = false,
97 HitSoundType = "Neverlose",
98
99 -- UI
100 Indicators = true,
101 Watermark = true,
102 KeybindList = true
103}
104
105local OldLighting = {
106 Brightness = Lighting.Brightness,
107 ClockTime = Lighting.ClockTime,
108 FogEnd = Lighting.FogEnd,
109 FogStart = Lighting.FogStart,
110 GlobalShadows = Lighting.GlobalShadows,
111 Ambient = Lighting.Ambient,
112 OutdoorAmbient = Lighting.OutdoorAmbient
113}
114
115local OldCamera = {
116 Mode = LocalPlayer.CameraMode,
117 MinZoom = LocalPlayer.CameraMinZoomDistance,
118 MaxZoom = LocalPlayer.CameraMaxZoomDistance
119}
120
121local Keys = {
122 W = false,
123 A = false,
124 S = false,
125 D = false,
126 Space = false
127}
128
129local HoldingRMB = false
130local LastFire = 0
131local LastTrigger = 0
132
133local ToggleControls = {}
134local SliderControls = {}
135local DropdownControls = {}
136
137local HitSounds = {
138 Neverlose = "rbxassetid://6895079853",
139 Skeet = "rbxassetid://10066931761",
140 Bell = "rbxassetid://9118823100",
141 Metal = "rbxassetid://8917041751",
142 Ding = "rbxassetid://6026984224",
143 Click = "rbxassetid://12221967"
144}
145
146local function New(className, props, parent)
147 local obj = Instance.new(className)
148
149 for k, v in pairs(props or {}) do
150 obj[k] = v
151 end
152
153 if parent then
154 obj.Parent = parent
155 end
156
157 return obj
158end
159
160local function Corner(obj, radius)
161 return New("UICorner", {
162 CornerRadius = UDim.new(0, radius or 6)
163 }, obj)
164end
165
166local function GetChar(plr)
167 plr = plr or LocalPlayer
168 return plr.Character
169end
170
171local function GetRoot(plr)
172 local char = GetChar(plr)
173 return char and char:FindFirstChild("HumanoidRootPart")
174end
175
176local function GetHumanoid(plr)
177 local char = GetChar(plr)
178 return char and char:FindFirstChildOfClass("Humanoid")
179end
180
181local function IsEnemyForVisuals(plr)
182 if not plr or plr == LocalPlayer then
183 return false
184 end
185
186 if State.TeamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
187 return false
188 end
189
190 return true
191end
192
193local function IsEnemyForAim(plr, teamCheck)
194 if not plr or plr == LocalPlayer then
195 return false
196 end
197
198 if teamCheck and LocalPlayer.Team and plr.Team and LocalPlayer.Team == plr.Team then
199 return false
200 end
201
202 return true
203end
204
205--// GUI
206
207local Gui = New("ScreenGui", {
208 Name = "NEVERBLOX_V2_CLEAN",
209 ResetOnSpawn = false,
210 IgnoreGuiInset = true,
211 DisplayOrder = 20,
212 ZIndexBehavior = Enum.ZIndexBehavior.Sibling
213}, PlayerGui)
214
215local Main = New("Frame", {
216 Name = "Main",
217 Size = UDim2.fromOffset(820, 630),
218 Position = UDim2.new(0.5, -410, 0.5, -315),
219 BackgroundColor3 = Theme.BG,
220 BorderSizePixel = 0,
221 ZIndex = 50
222}, Gui)
223Corner(Main, 6)
224
225local Sidebar = New("Frame", {
226 Name = "Sidebar",
227 Size = UDim2.fromOffset(210, 630),
228 BackgroundColor3 = Theme.Sidebar,
229 BorderSizePixel = 0,
230 ZIndex = 51
231}, Main)
232
233New("TextLabel", {
234 Size = UDim2.fromOffset(180, 40),
235 Position = UDim2.fromOffset(18, 16),
236 BackgroundTransparency = 1,
237 Text = "NEVERBLOX",
238 TextColor3 = Theme.Text,
239 TextSize = 28,
240 Font = Enum.Font.FredokaOne,
241 TextXAlignment = Enum.TextXAlignment.Left,
242 ZIndex = 52
243}, Sidebar)
244
245New("TextLabel", {
246 Size = UDim2.fromOffset(170, 18),
247 Position = UDim2.fromOffset(20, 47),
248 BackgroundTransparency = 1,
249 Text = "by Nyrex",
250 TextColor3 = Theme.Accent,
251 TextSize = 12,
252 Font = Enum.Font.GothamBold,
253 TextXAlignment = Enum.TextXAlignment.Left,
254 ZIndex = 52
255}, Sidebar)
256
257local TabHolder = New("Frame", {
258 Size = UDim2.fromOffset(190, 455),
259 Position = UDim2.fromOffset(10, 88),
260 BackgroundTransparency = 1,
261 ZIndex = 52
262}, Sidebar)
263
264New("UIListLayout", {
265 SortOrder = Enum.SortOrder.LayoutOrder,
266 Padding = UDim.new(0, 7)
267}, TabHolder)
268
269local ProfileLine = New("Frame", {
270 Size = UDim2.new(1, 0, 0, 1),
271 Position = UDim2.new(0, 0, 1, -68),
272 BackgroundColor3 = Color3.fromRGB(24, 54, 82),
273 BackgroundTransparency = 0.45,
274 BorderSizePixel = 0,
275 ZIndex = 52
276}, Sidebar)
277
278local Avatar = New("ImageLabel", {
279 Size = UDim2.fromOffset(44, 44),
280 Position = UDim2.fromOffset(14, 12),
281 BackgroundTransparency = 1,
282 Image = "https://www.roblox.com/headshot-thumbnail/image?userId=" .. LocalPlayer.UserId .. "&width=420&height=420&format=png",
283 ZIndex = 53
284}, ProfileLine)
285Corner(Avatar, 50)
286
287New("TextLabel", {
288 Size = UDim2.fromOffset(125, 22),
289 Position = UDim2.fromOffset(68, 11),
290 BackgroundTransparency = 1,
291 Text = LocalPlayer.Name,
292 TextColor3 = Theme.Text,
293 TextSize = 14,
294 Font = Enum.Font.GothamBold,
295 TextXAlignment = Enum.TextXAlignment.Left,
296 ZIndex = 53
297}, ProfileLine)
298
299New("TextLabel", {
300 Size = UDim2.fromOffset(125, 18),
301 Position = UDim2.fromOffset(68, 34),
302 BackgroundTransparency = 1,
303 Text = "RightShift",
304 TextColor3 = Theme.Accent,
305 TextSize = 12,
306 Font = Enum.Font.Gotham,
307 TextXAlignment = Enum.TextXAlignment.Left,
308 ZIndex = 53
309}, ProfileLine)
310
311local Top = New("Frame", {
312 Size = UDim2.new(1, -210, 0, 70),
313 Position = UDim2.fromOffset(210, 0),
314 BackgroundTransparency = 1,
315 ZIndex = 52
316}, Main)
317
318local PageTitle = New("TextLabel", {
319 Size = UDim2.fromOffset(270, 40),
320 Position = UDim2.fromOffset(24, 16),
321 BackgroundTransparency = 1,
322 Text = "Rage Bot",
323 TextColor3 = Theme.Text,
324 TextSize = 22,
325 Font = Enum.Font.GothamBold,
326 TextXAlignment = Enum.TextXAlignment.Left,
327 ZIndex = 53
328}, Top)
329
330local PresetButton = New("TextButton", {
331 Size = UDim2.fromOffset(95, 34),
332 Position = UDim2.new(1, -235, 0, 18),
333 BackgroundColor3 = Theme.PanelDark,
334 BackgroundTransparency = 0.35,
335 BorderSizePixel = 0,
336 Text = "Preset",
337 TextColor3 = Theme.Text,
338 TextSize = 14,
339 Font = Enum.Font.GothamBold,
340 AutoButtonColor = false,
341 ZIndex = 53
342}, Top)
343Corner(PresetButton, 4)
344
345local InfoButton = New("TextButton", {
346 Size = UDim2.fromOffset(95, 34),
347 Position = UDim2.new(1, -125, 0, 18),
348 BackgroundColor3 = Theme.PanelDark,
349 BackgroundTransparency = 0.35,
350 BorderSizePixel = 0,
351 Text = "Info",
352 TextColor3 = Theme.Text,
353 TextSize = 14,
354 Font = Enum.Font.GothamBold,
355 AutoButtonColor = false,
356 ZIndex = 53
357}, Top)
358Corner(InfoButton, 4)
359
360New("Frame", {
361 Size = UDim2.new(1, -230, 0, 1),
362 Position = UDim2.fromOffset(220, 70),
363 BackgroundColor3 = Color3.fromRGB(40, 50, 65),
364 BackgroundTransparency = 0.4,
365 BorderSizePixel = 0,
366 ZIndex = 52
367}, Main)
368
369local Content = New("Frame", {
370 Size = UDim2.new(1, -230, 1, -86),
371 Position = UDim2.fromOffset(220, 80),
372 BackgroundTransparency = 1,
373 ZIndex = 52
374}, Main)
375
376local NotifyHolder = New("Frame", {
377 Name = "NotifyHolder",
378 Size = UDim2.fromOffset(320, 700),
379 Position = UDim2.new(1, -340, 0, 20),
380 BackgroundTransparency = 1,
381 ZIndex = 199
382}, Gui)
383
384New("UIListLayout", {
385 SortOrder = Enum.SortOrder.LayoutOrder,
386 Padding = UDim.new(0, 10),
387 HorizontalAlignment = Enum.HorizontalAlignment.Right
388}, NotifyHolder)
389
390local function Notify(title, text)
391 local frame = New("Frame", {
392 Size = UDim2.fromOffset(0, 66),
393 BackgroundColor3 = Color3.fromRGB(13, 24, 38),
394 BackgroundTransparency = 0.08,
395 BorderSizePixel = 0,
396 ZIndex = 200
397 }, NotifyHolder)
398 Corner(frame, 5)
399
400 local line = New("Frame", {
401 Size = UDim2.new(1, 0, 0, 4),
402 Position = UDim2.new(0, 0, 1, -4),
403 BackgroundColor3 = Theme.Accent,
404 BorderSizePixel = 0,
405 ZIndex = 201
406 }, frame)
407 Corner(line, 5)
408
409 New("TextLabel", {
410 Size = UDim2.fromOffset(230, 22),
411 Position = UDim2.fromOffset(16, 9),
412 BackgroundTransparency = 1,
413 Text = title,
414 TextColor3 = Theme.Text,
415 TextSize = 15,
416 Font = Enum.Font.GothamBold,
417 TextXAlignment = Enum.TextXAlignment.Left,
418 ZIndex = 201
419 }, frame)
420
421 New("TextLabel", {
422 Size = UDim2.fromOffset(250, 22),
423 Position = UDim2.fromOffset(16, 34),
424 BackgroundTransparency = 1,
425 Text = text,
426 TextColor3 = Color3.fromRGB(215, 220, 230),
427 TextSize = 13,
428 Font = Enum.Font.Gotham,
429 TextXAlignment = Enum.TextXAlignment.Left,
430 ZIndex = 201
431 }, frame)
432
433 TweenService:Create(frame, TweenInfo.new(0.22), {
434 Size = UDim2.fromOffset(285, 66)
435 }):Play()
436
437 TweenService:Create(line, TweenInfo.new(2.1), {
438 Size = UDim2.new(0, 0, 0, 4)
439 }):Play()
440
441 task.delay(2.35, function()
442 if frame then
443 TweenService:Create(frame, TweenInfo.new(0.22), {
444 Size = UDim2.fromOffset(0, 66),
445 BackgroundTransparency = 1
446 }):Play()
447
448 task.wait(0.25)
449 frame:Destroy()
450 end
451 end)
452end
453
454local Pages = {}
455local Tabs = {}
456
457local function SetTab(name)
458 for pageName, page in pairs(Pages) do
459 page.Visible = pageName == name
460 end
461
462 for tabName, data in pairs(Tabs) do
463 local active = tabName == name
464
465 TweenService:Create(data.Button, TweenInfo.new(0.18), {
466 BackgroundTransparency = active and 0.15 or 1
467 }):Play()
468
469 TweenService:Create(data.Label, TweenInfo.new(0.18), {
470 TextColor3 = active and Theme.Text or Color3.fromRGB(165, 170, 180)
471 }):Play()
472 end
473
474 PageTitle.Text = name
475end
476
477local function MakePage(name)
478 local tab = New("TextButton", {
479 Name = name,
480 Size = UDim2.fromOffset(182, 31),
481 BackgroundColor3 = Color3.fromRGB(13, 98, 144),
482 BackgroundTransparency = 1,
483 BorderSizePixel = 0,
484 Text = "",
485 AutoButtonColor = false,
486 ZIndex = 53
487 }, TabHolder)
488 Corner(tab, 4)
489
490 local label = New("TextLabel", {
491 Size = UDim2.fromOffset(150, 20),
492 Position = UDim2.fromOffset(14, 6),
493 BackgroundTransparency = 1,
494 Text = name,
495 TextColor3 = Color3.fromRGB(165, 170, 180),
496 TextSize = 14,
497 Font = Enum.Font.Gotham,
498 TextXAlignment = Enum.TextXAlignment.Left,
499 ZIndex = 54
500 }, tab)
501
502 local page = New("ScrollingFrame", {
503 Name = name,
504 Size = UDim2.fromScale(1, 1),
505 BackgroundTransparency = 1,
506 BorderSizePixel = 0,
507 ScrollBarThickness = 0,
508 AutomaticCanvasSize = Enum.AutomaticSize.Y,
509 CanvasSize = UDim2.fromOffset(0, 0),
510 Visible = false,
511 ZIndex = 53
512 }, Content)
513
514 local left = New("Frame", {
515 Name = "LeftColumn",
516 Size = UDim2.new(0.5, -8, 0, 0),
517 AutomaticSize = Enum.AutomaticSize.Y,
518 BackgroundTransparency = 1,
519 ZIndex = 53
520 }, page)
521
522 local right = New("Frame", {
523 Name = "RightColumn",
524 Size = UDim2.new(0.5, -8, 0, 0),
525 Position = UDim2.new(0.5, 8, 0, 0),
526 AutomaticSize = Enum.AutomaticSize.Y,
527 BackgroundTransparency = 1,
528 ZIndex = 53
529 }, page)
530
531 New("UIListLayout", {
532 SortOrder = Enum.SortOrder.LayoutOrder,
533 Padding = UDim.new(0, 13)
534 }, left)
535
536 New("UIListLayout", {
537 SortOrder = Enum.SortOrder.LayoutOrder,
538 Padding = UDim.new(0, 13)
539 }, right)
540
541 Pages[name] = page
542 Tabs[name] = {
543 Button = tab,
544 Label = label
545 }
546
547 tab.MouseButton1Click:Connect(function()
548 SetTab(name)
549 end)
550
551 return page
552end
553
554local function MakeSection(page, title, side)
555 local parent = side == "right" and page.RightColumn or page.LeftColumn
556
557 local section = New("Frame", {
558 Name = title,
559 Size = UDim2.new(1, 0, 0, 58),
560 BackgroundColor3 = Theme.Panel,
561 BorderSizePixel = 0,
562 ZIndex = 54
563 }, parent)
564 Corner(section, 8)
565
566 New("TextLabel", {
567 Size = UDim2.new(1, -20, 0, 38),
568 Position = UDim2.fromOffset(10, 0),
569 BackgroundTransparency = 1,
570 Text = title,
571 TextColor3 = Theme.Text,
572 TextSize = 16,
573 Font = Enum.Font.SourceSansBold,
574 TextXAlignment = Enum.TextXAlignment.Left,
575 ZIndex = 55
576 }, section)
577
578 New("Frame", {
579 Size = UDim2.new(1, -18, 0, 1),
580 Position = UDim2.fromOffset(9, 39),
581 BackgroundColor3 = Color3.fromRGB(23, 50, 83),
582 BackgroundTransparency = 0.45,
583 BorderSizePixel = 0,
584 ZIndex = 55
585 }, section)
586
587 local holder = New("Frame", {
588 Name = "Holder",
589 Size = UDim2.new(1, -12, 0, 0),
590 Position = UDim2.fromOffset(6, 48),
591 AutomaticSize = Enum.AutomaticSize.Y,
592 BackgroundTransparency = 1,
593 ZIndex = 55
594 }, section)
595
596 local layout = New("UIListLayout", {
597 SortOrder = Enum.SortOrder.LayoutOrder,
598 Padding = UDim.new(0, 8)
599 }, holder)
600
601 local function Resize()
602 task.defer(function()
603 section.Size = UDim2.new(1, 0, 0, layout.AbsoluteContentSize.Y + 58)
604 end)
605 end
606
607 layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(Resize)
608 Resize()
609
610 return holder
611end
612
613local function AddToggle(parent, key, title, callback)
614 local value = State[key] == true
615
616 local row = New("TextButton", {
617 Name = title,
618 Size = UDim2.new(1, 0, 0, 26),
619 BackgroundTransparency = 1,
620 Text = "",
621 AutoButtonColor = false,
622 ZIndex = 56
623 }, parent)
624
625 New("TextLabel", {
626 Size = UDim2.new(1, -70, 1, 0),
627 Position = UDim2.fromOffset(8, 0),
628 BackgroundTransparency = 1,
629 Text = title,
630 TextColor3 = Theme.Text,
631 TextSize = 13,
632 Font = Enum.Font.Gotham,
633 TextXAlignment = Enum.TextXAlignment.Left,
634 ZIndex = 57
635 }, row)
636
637 local frame = New("Frame", {
638 Size = UDim2.fromOffset(38, 15),
639 Position = UDim2.new(1, -48, 0.5, -7),
640 BackgroundColor3 = Theme.PanelDark,
641 BorderSizePixel = 0,
642 ZIndex = 57
643 }, row)
644 Corner(frame, 50)
645
646 local dot = New("Frame", {
647 Size = UDim2.fromOffset(17, 17),
648 Position = UDim2.fromOffset(0, -1),
649 BackgroundColor3 = Theme.Off,
650 BorderSizePixel = 0,
651 ZIndex = 58
652 }, frame)
653 Corner(dot, 50)
654
655 local function Render()
656 if value then
657 TweenService:Create(dot, TweenInfo.new(0.18), {
658 Position = UDim2.fromOffset(20, -1),
659 BackgroundColor3 = Theme.Accent
660 }):Play()
661 else
662 TweenService:Create(dot, TweenInfo.new(0.18), {
663 Position = UDim2.fromOffset(0, -1),
664 BackgroundColor3 = Theme.Off
665 }):Play()
666 end
667 end
668
669 local function SetRaw(v)
670 value = v == true
671 State[key] = value
672 Render()
673
674 if callback then
675 callback(value)
676 end
677 end
678
679 row.MouseButton1Click:Connect(function()
680 SetRaw(not value)
681 end)
682
683 SetRaw(value)
684
685 ToggleControls[key] = {
686 Set = function(_, v)
687 SetRaw(v)
688 end,
689 Get = function()
690 return value
691 end
692 }
693
694 return ToggleControls[key]
695end
696
697local function AddSlider(parent, key, title, min, max, default, step, callback)
698 local value = State[key] or default
699 step = step or 1
700
701 local row = New("Frame", {
702 Name = title,
703 Size = UDim2.new(1, 0, 0, 38),
704 BackgroundTransparency = 1,
705 ZIndex = 56
706 }, parent)
707
708 New("TextLabel", {
709 Size = UDim2.new(0, 110, 0, 18),
710 Position = UDim2.fromOffset(8, 0),
711 BackgroundTransparency = 1,
712 Text = title,
713 TextColor3 = Theme.Text,
714 TextSize = 13,
715 Font = Enum.Font.Gotham,
716 TextXAlignment = Enum.TextXAlignment.Left,
717 ZIndex = 57
718 }, row)
719
720 local valueBox = New("TextBox", {
721 Size = UDim2.fromOffset(48, 17),
722 Position = UDim2.new(1, -54, 0, 1),
723 BackgroundColor3 = Theme.PanelDark,
724 BorderSizePixel = 0,
725 Text = tostring(value),
726 TextColor3 = Theme.Text,
727 TextSize = 12,
728 Font = Enum.Font.Gotham,
729 ClearTextOnFocus = false,
730 ZIndex = 57
731 }, row)
732 Corner(valueBox, 3)
733
734 local bar = New("Frame", {
735 Size = UDim2.new(1, -145, 0, 2),
736 Position = UDim2.fromOffset(116, 14),
737 BackgroundColor3 = Color3.fromRGB(3, 30, 58),
738 BorderSizePixel = 0,
739 ZIndex = 57
740 }, row)
741
742 local fill = New("Frame", {
743 Size = UDim2.fromScale(0, 1),
744 BackgroundColor3 = Theme.Accent,
745 BorderSizePixel = 0,
746 ZIndex = 58
747 }, bar)
748
749 local dot = New("Frame", {
750 Size = UDim2.fromOffset(17, 17),
751 BackgroundColor3 = Theme.Accent,
752 BorderSizePixel = 0,
753 ZIndex = 59
754 }, bar)
755 Corner(dot, 50)
756
757 local draggingSlider = false
758
759 local function RoundToStep(n)
760 return math.floor((n / step) + 0.5) * step
761 end
762
763 local function SetRaw(v)
764 local num = tonumber(v) or min
765 num = math.clamp(RoundToStep(num), min, max)
766
767 value = num
768 State[key] = value
769
770 local pct = (value - min) / (max - min)
771 fill.Size = UDim2.fromScale(pct, 1)
772 dot.Position = UDim2.new(pct, -8, 0, -8)
773
774 if step < 1 then
775 valueBox.Text = string.format("%.2f", value)
776 else
777 valueBox.Text = tostring(math.floor(value))
778 end
779
780 if callback then
781 callback(value)
782 end
783 end
784
785 local function FromX(x)
786 local pct = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
787 SetRaw(min + (max - min) * pct)
788 end
789
790 bar.InputBegan:Connect(function(input)
791 if input.UserInputType == Enum.UserInputType.MouseButton1 then
792 draggingSlider = true
793 FromX(input.Position.X)
794 end
795 end)
796
797 dot.InputBegan:Connect(function(input)
798 if input.UserInputType == Enum.UserInputType.MouseButton1 then
799 draggingSlider = true
800 FromX(input.Position.X)
801 end
802 end)
803
804 UIS.InputEnded:Connect(function(input)
805 if input.UserInputType == Enum.UserInputType.MouseButton1 then
806 draggingSlider = false
807 end
808 end)
809
810 UIS.InputChanged:Connect(function(input)
811 if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then
812 FromX(input.Position.X)
813 end
814 end)
815
816 valueBox.FocusLost:Connect(function()
817 SetRaw(valueBox.Text)
818 end)
819
820 SetRaw(value)
821
822 SliderControls[key] = {
823 Set = function(_, v)
824 SetRaw(v)
825 end,
826 Get = function()
827 return value
828 end
829 }
830
831 return SliderControls[key]
832end
833
834local function AddDropdown(parent, key, title, list, default, callback)
835 local selected = State[key] or default or list[1]
836
837 local row = New("TextButton", {
838 Name = title,
839 Size = UDim2.new(1, 0, 0, 31),
840 BackgroundTransparency = 1,
841 Text = "",
842 AutoButtonColor = false,
843 ZIndex = 80
844 }, parent)
845
846 New("TextLabel", {
847 Size = UDim2.new(0, 110, 0, 26),
848 Position = UDim2.fromOffset(8, 0),
849 BackgroundTransparency = 1,
850 Text = title,
851 TextColor3 = Theme.Text,
852 TextSize = 13,
853 Font = Enum.Font.Gotham,
854 TextXAlignment = Enum.TextXAlignment.Left,
855 ZIndex = 81
856 }, row)
857
858 local box = New("TextButton", {
859 Size = UDim2.fromOffset(130, 21),
860 Position = UDim2.new(1, -137, 0, 2),
861 BackgroundColor3 = Theme.PanelDark,
862 BorderSizePixel = 0,
863 Text = selected,
864 TextColor3 = Theme.Text,
865 TextSize = 12,
866 Font = Enum.Font.Gotham,
867 AutoButtonColor = false,
868 ZIndex = 81
869 }, row)
870 Corner(box, 3)
871
872 local drop = New("Frame", {
873 Size = UDim2.fromOffset(130, 0),
874 Position = UDim2.new(1, -137, 0, 25),
875 BackgroundColor3 = Color3.fromRGB(0, 18, 35),
876 BorderSizePixel = 0,
877 Visible = false,
878 ZIndex = 100
879 }, row)
880 Corner(drop, 3)
881
882 New("UIListLayout", {
883 SortOrder = Enum.SortOrder.LayoutOrder,
884 Padding = UDim.new(0, 2)
885 }, drop)
886
887 local opened = false
888
889 local function Close()
890 opened = false
891
892 TweenService:Create(drop, TweenInfo.new(0.16), {
893 Size = UDim2.fromOffset(130, 0)
894 }):Play()
895
896 task.delay(0.17, function()
897 if not opened then
898 drop.Visible = false
899 end
900 end)
901 end
902
903 local function Open()
904 opened = true
905 drop.Visible = true
906
907 TweenService:Create(drop, TweenInfo.new(0.16), {
908 Size = UDim2.fromOffset(130, math.min(#list * 24 + 4, 165))
909 }):Play()
910 end
911
912 local function SetRaw(v)
913 selected = v
914 State[key] = v
915 box.Text = v
916
917 if callback then
918 callback(v)
919 end
920 end
921
922 for _, item in ipairs(list) do
923 local itemButton = New("TextButton", {
924 Size = UDim2.new(1, 0, 0, 22),
925 BackgroundTransparency = 1,
926 Text = " " .. item,
927 TextColor3 = Theme.Text,
928 TextSize = 12,
929 Font = Enum.Font.Gotham,
930 TextXAlignment = Enum.TextXAlignment.Left,
931 AutoButtonColor = false,
932 ZIndex = 101
933 }, drop)
934
935 itemButton.MouseButton1Click:Connect(function()
936 SetRaw(item)
937 Close()
938 end)
939 end
940
941 box.MouseButton1Click:Connect(function()
942 if opened then
943 Close()
944 else
945 Open()
946 end
947 end)
948
949 SetRaw(selected)
950
951 DropdownControls[key] = {
952 Set = function(_, v)
953 SetRaw(v)
954 end,
955 Get = function()
956 return selected
957 end
958 }
959
960 return DropdownControls[key]
961end
962
963local function AddButton(parent, title, callback)
964 local button = New("TextButton", {
965 Name = title,
966 Size = UDim2.new(1, 0, 0, 28),
967 BackgroundColor3 = Theme.PanelDark,
968 BackgroundTransparency = 0.45,
969 BorderSizePixel = 0,
970 Text = "",
971 AutoButtonColor = false,
972 ZIndex = 56
973 }, parent)
974 Corner(button, 4)
975
976 New("TextLabel", {
977 Size = UDim2.new(1, -18, 1, 0),
978 Position = UDim2.fromOffset(9, 0),
979 BackgroundTransparency = 1,
980 Text = title,
981 TextColor3 = Theme.Text,
982 TextSize = 13,
983 Font = Enum.Font.Gotham,
984 TextXAlignment = Enum.TextXAlignment.Left,
985 ZIndex = 57
986 }, button)
987
988 button.MouseEnter:Connect(function()
989 TweenService:Create(button, TweenInfo.new(0.18), {
990 BackgroundTransparency = 0.2
991 }):Play()
992 end)
993
994 button.MouseLeave:Connect(function()
995 TweenService:Create(button, TweenInfo.new(0.18), {
996 BackgroundTransparency = 0.45
997 }):Play()
998 end)
999
1000 button.MouseButton1Click:Connect(function()
1001 if callback then
1002 callback()
1003 end
1004 end)
1005
1006 return button
1007end
1008
1009--// Keybind system
1010
1011local BindModes = {"Toggle", "Hold", "Always"}
1012local Keybinds = {}
1013local ListeningBind = nil
1014
1015local function SetBoundState(stateKey, value)
1016 if ToggleControls[stateKey] then
1017 ToggleControls[stateKey]:Set(value)
1018 else
1019 State[stateKey] = value
1020 end
1021end
1022
1023local function GetBoundState(stateKey)
1024 if ToggleControls[stateKey] then
1025 return ToggleControls[stateKey]:Get()
1026 end
1027
1028 return State[stateKey] == true
1029end
1030
1031local function KeyToText(key)
1032 if not key or key == Enum.KeyCode.Unknown then
1033 return "None"
1034 end
1035
1036 return key.Name
1037end
1038
1039local function AddBindRow(parent, stateKey, title, defaultKey, defaultMode)
1040 local key = Enum.KeyCode[defaultKey] or Enum.KeyCode.Unknown
1041 local mode = defaultMode or "Toggle"
1042
1043 Keybinds[stateKey] = {
1044 Title = title,
1045 Key = key,
1046 Mode = mode
1047 }
1048
1049 local row = New("Frame", {
1050 Name = title,
1051 Size = UDim2.new(1, 0, 0, 32),
1052 BackgroundTransparency = 1,
1053 ZIndex = 56
1054 }, parent)
1055
1056 New("TextLabel", {
1057 Size = UDim2.new(1, -150, 1, 0),
1058 Position = UDim2.fromOffset(8, 0),
1059 BackgroundTransparency = 1,
1060 Text = title,
1061 TextColor3 = Theme.Text,
1062 TextSize = 13,
1063 Font = Enum.Font.Gotham,
1064 TextXAlignment = Enum.TextXAlignment.Left,
1065 ZIndex = 57
1066 }, row)
1067
1068 local keyButton = New("TextButton", {
1069 Size = UDim2.fromOffset(58, 22),
1070 Position = UDim2.new(1, -135, 0.5, -11),
1071 BackgroundColor3 = Theme.PanelDark,
1072 BackgroundTransparency = 0.25,
1073 BorderSizePixel = 0,
1074 Text = KeyToText(key),
1075 TextColor3 = Theme.Text,
1076 TextSize = 12,
1077 Font = Enum.Font.GothamBold,
1078 AutoButtonColor = false,
1079 ZIndex = 57
1080 }, row)
1081 Corner(keyButton, 4)
1082
1083 local modeButton = New("TextButton", {
1084 Size = UDim2.fromOffset(68, 22),
1085 Position = UDim2.new(1, -70, 0.5, -11),
1086 BackgroundColor3 = Theme.PanelDark,
1087 BackgroundTransparency = 0.25,
1088 BorderSizePixel = 0,
1089 Text = mode,
1090 TextColor3 = Theme.Accent,
1091 TextSize = 12,
1092 Font = Enum.Font.GothamBold,
1093 AutoButtonColor = false,
1094 ZIndex = 57
1095 }, row)
1096 Corner(modeButton, 4)
1097
1098 keyButton.MouseButton1Click:Connect(function()
1099 ListeningBind = stateKey
1100 keyButton.Text = "..."
1101 end)
1102
1103 modeButton.MouseButton1Click:Connect(function()
1104 local currentIndex = table.find(BindModes, Keybinds[stateKey].Mode) or 1
1105 local nextIndex = currentIndex + 1
1106
1107 if nextIndex > #BindModes then
1108 nextIndex = 1
1109 end
1110
1111 local newMode = BindModes[nextIndex]
1112 Keybinds[stateKey].Mode = newMode
1113 modeButton.Text = newMode
1114
1115 if newMode == "Always" then
1116 SetBoundState(stateKey, true)
1117 end
1118 end)
1119
1120 Keybinds[stateKey].UpdateText = function()
1121 keyButton.Text = KeyToText(Keybinds[stateKey].Key)
1122 modeButton.Text = Keybinds[stateKey].Mode
1123 end
1124end
1125
1126local function ProcessBindInput(input, began)
1127 if input.UserInputType ~= Enum.UserInputType.Keyboard then
1128 return false
1129 end
1130
1131 if ListeningBind and began then
1132 Keybinds[ListeningBind].Key = input.KeyCode
1133 Keybinds[ListeningBind].UpdateText()
1134 Notify("Bind", Keybinds[ListeningBind].Title .. " = " .. input.KeyCode.Name)
1135 ListeningBind = nil
1136 return true
1137 end
1138
1139 if UIS:GetFocusedTextBox() then
1140 return false
1141 end
1142
1143 for stateKey, bind in pairs(Keybinds) do
1144 if bind.Key == input.KeyCode then
1145 if bind.Mode == "Toggle" and began then
1146 SetBoundState(stateKey, not GetBoundState(stateKey))
1147 return true
1148 end
1149
1150 if bind.Mode == "Hold" then
1151 SetBoundState(stateKey, began)
1152 return true
1153 end
1154
1155 if bind.Mode == "Always" and began then
1156 SetBoundState(stateKey, true)
1157 return true
1158 end
1159 end
1160 end
1161
1162 return false
1163end
1164
1165local function ApplyAlwaysBinds()
1166 for stateKey, bind in pairs(Keybinds) do
1167 if bind.Mode == "Always" and not GetBoundState(stateKey) then
1168 SetBoundState(stateKey, true)
1169 end
1170 end
1171end
1172
1173--// Pages
1174
1175local RagePage = MakePage("Rage Bot")
1176local LegitPage = MakePage("Legit Bot")
1177local VisualsPage = MakePage("Visuals")
1178local WorldPage = MakePage("World")
1179local MovementPage = MakePage("Movement")
1180local MiscPage = MakePage("Misc")
1181local ConfigPage = MakePage("Configs")
1182local BindsPage = MakePage("Binds")
1183
1184--// Rage Bot page
1185
1186local RageMain = MakeSection(RagePage, "Rage Bot", "left")
1187AddToggle(RageMain, "RageBot", "Enabled")
1188AddDropdown(RageMain, "RageActivation", "Activation", {"Always", "Hold RMB"}, "Always")
1189AddToggle(RageMain, "RageTeamCheck", "Team Check")
1190AddToggle(RageMain, "RageWallCheck", "Wall Check")
1191AddDropdown(RageMain, "RageHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
1192AddDropdown(RageMain, "RageTargetSelection", "Target By", {"FOV", "Distance", "Health"}, "FOV")
1193
1194local RageAccuracy = MakeSection(RagePage, "Accuracy", "right")
1195AddSlider(RageAccuracy, "RageFOV", "FOV", 20, 700, 260, 1)
1196AddSlider(RageAccuracy, "RageSmooth", "Smooth", 1, 40, 1, 1)
1197AddSlider(RageAccuracy, "RagePrediction", "Prediction", 0, 1, 0.08, 0.01)
1198AddSlider(RageAccuracy, "RageMaxDistance", "Max Distance", 100, 5000, 2500, 50)
1199AddSlider(RageAccuracy, "RageHitchance", "Hitchance %", 1, 100, 100, 1)
1200
1201local RageFire = MakeSection(RagePage, "Fire Control", "right")
1202AddToggle(RageFire, "RageAutoFire", "Auto Fire")
1203AddToggle(RageFire, "RageDoubleTap", "Double Tap")
1204AddToggle(RageFire, "RageQuickStop", "Quick Stop")
1205
1206--// Legit Bot page
1207
1208local LegitMain = MakeSection(LegitPage, "Legit Bot", "left")
1209AddToggle(LegitMain, "LegitBot", "Enabled")
1210AddDropdown(LegitMain, "LegitActivation", "Activation", {"Hold RMB", "Always"}, "Hold RMB")
1211AddToggle(LegitMain, "LegitTeamCheck", "Team Check")
1212AddToggle(LegitMain, "LegitWallCheck", "Wall Check")
1213AddDropdown(LegitMain, "LegitHitbox", "Hitbox", {"Head", "HumanoidRootPart", "UpperTorso", "Torso"}, "Head")
1214
1215local LegitTune = MakeSection(LegitPage, "Fine Tuning", "right")
1216AddSlider(LegitTune, "LegitFOV", "FOV", 20, 350, 110, 1)
1217AddSlider(LegitTune, "LegitSmooth", "Smooth", 1, 100, 30, 1)
1218AddSlider(LegitTune, "LegitPrediction", "Prediction", 0, 0.5, 0.03, 0.01)
1219AddSlider(LegitTune, "LegitMaxDistance", "Max Distance", 100, 3000, 1500, 50)
1220
1221local LegitTrigger = MakeSection(LegitPage, "Triggerbot", "left")
1222AddToggle(LegitTrigger, "LegitTriggerbot", "Enabled")
1223AddSlider(LegitTrigger, "LegitTriggerDelay", "Delay MS", 0, 600, 120, 5)
1224
1225--// Visuals page
1226
1227local ESPMain = MakeSection(VisualsPage, "Player ESP", "left")
1228AddToggle(ESPMain, "VisualsEnabled", "Enabled")
1229AddToggle(ESPMain, "TeamCheck", "Team Check")
1230AddToggle(ESPMain, "BoxESP", "Box")
1231AddToggle(ESPMain, "CornerBox", "Corner Box")
1232AddToggle(ESPMain, "NameESP", "Name")
1233AddToggle(ESPMain, "HealthESP", "Health")
1234AddToggle(ESPMain, "DistanceESP", "Distance")
1235AddSlider(ESPMain, "ESPMaxDistance", "Max Distance", 100, 5000, 2500, 50)
1236
1237local ChamsMain = MakeSection(VisualsPage, "Chams / Glow", "right")
1238AddToggle(ChamsMain, "Chams", "Chams")
1239AddToggle(ChamsMain, "Glow", "Glow")
1240AddToggle(ChamsMain, "ChamsXRay", "X-Ray")
1241
1242local IndicatorsSec = MakeSection(VisualsPage, "Screen", "right")
1243AddToggle(IndicatorsSec, "FOVCircles", "FOV Circles")
1244AddToggle(IndicatorsSec, "Indicators", "Indicators")
1245AddToggle(IndicatorsSec, "Watermark", "Watermark")
1246AddToggle(IndicatorsSec, "KeybindList", "Keybind List")
1247
1248--// World page
1249
1250local WorldMain = MakeSection(WorldPage, "World", "left")
1251AddToggle(WorldMain, "Nightmode", "Nightmode")
1252AddToggle(WorldMain, "Fullbright", "Fullbright")
1253AddToggle(WorldMain, "RemoveFog", "Remove Fog")
1254AddDropdown(WorldMain, "SkyColor", "Sky Color", {"Default", "Blue", "Purple", "Red", "Black"}, "Default")
1255AddSlider(WorldMain, "Brightness", "Brightness", 0, 10, 2, 0.1)
1256AddSlider(WorldMain, "CameraFOV", "Camera FOV", 50, 120, 70, 1, function(v)
1257 Camera.FieldOfView = v
1258end)
1259
1260--// Movement page
1261
1262local MovementMain = MakeSection(MovementPage, "Movement", "left")
1263AddToggle(MovementMain, "BunnyHop", "BunnyHop")
1264AddToggle(MovementMain, "AutoStrafer", "Auto Strafer")
1265AddDropdown(MovementMain, "AutoStraferMode", "Strafe Mode", {"Legit", "Rage"}, "Legit")
1266AddToggle(MovementMain, "FastStop", "Fast Stop")
1267
1268local MovementInfo = MakeSection(MovementPage, "Info", "right")
1269AddButton(MovementInfo, "How it works", function()
1270 Notify("Movement", "Works only on your character in your game")
1271end)
1272
1273--// Misc page
1274
1275local MiscMain = MakeSection(MiscPage, "Misc", "left")
1276AddToggle(MiscMain, "Thirdperson", "Thirdperson")
1277AddSlider(MiscMain, "ThirdpersonDistance", "Thirdperson Distance", 6, 30, 12, 1)
1278AddToggle(MiscMain, "Hitsounds", "Hitsounds")
1279AddDropdown(MiscMain, "HitSoundType", "Hit Sound", {"Neverlose", "Skeet", "Bell", "Metal", "Ding", "Click"}, "Neverlose")
1280
1281local MiscInfo = MakeSection(MiscPage, "Info", "right")
1282AddButton(MiscInfo, "Test Hitsound", function()
1283 local sound = Instance.new("Sound")
1284 sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
1285 sound.Volume = 0.7
1286 sound.Parent = SoundService
1287 sound:Play()
1288
1289 task.delay(2, function()
1290 if sound then
1291 sound:Destroy()
1292 end
1293 end)
1294end)
1295
1296--// Config page
1297
1298local Presets = MakeSection(ConfigPage, "Presets", "left")
1299AddButton(Presets, "Rage Preset", function()
1300 ToggleControls.RageBot:Set(true)
1301 ToggleControls.RageAutoFire:Set(true)
1302 ToggleControls.RageDoubleTap:Set(true)
1303 ToggleControls.RageQuickStop:Set(true)
1304 DropdownControls.RageActivation:Set("Always")
1305 DropdownControls.RageTargetSelection:Set("FOV")
1306 SliderControls.RageFOV:Set(360)
1307 SliderControls.RageSmooth:Set(1)
1308 SliderControls.RagePrediction:Set(0.1)
1309 SliderControls.RageHitchance:Set(100)
1310 Notify("Preset", "Rage preset loaded")
1311end)
1312
1313AddButton(Presets, "Legit Preset", function()
1314 ToggleControls.LegitBot:Set(true)
1315 ToggleControls.LegitTriggerbot:Set(false)
1316 DropdownControls.LegitActivation:Set("Hold RMB")
1317 SliderControls.LegitFOV:Set(90)
1318 SliderControls.LegitSmooth:Set(45)
1319 SliderControls.LegitPrediction:Set(0.03)
1320 Notify("Preset", "Legit preset loaded")
1321end)
1322
1323AddButton(Presets, "Visuals Preset", function()
1324 ToggleControls.VisualsEnabled:Set(true)
1325 ToggleControls.BoxESP:Set(true)
1326 ToggleControls.CornerBox:Set(false)
1327 ToggleControls.NameESP:Set(true)
1328 ToggleControls.HealthESP:Set(true)
1329 ToggleControls.DistanceESP:Set(true)
1330 ToggleControls.Chams:Set(true)
1331 ToggleControls.Glow:Set(true)
1332 Notify("Preset", "Visuals preset loaded")
1333end)
1334
1335AddButton(Presets, "Clean Preset", function()
1336 ToggleControls.VisualsEnabled:Set(true)
1337 ToggleControls.BoxESP:Set(false)
1338 ToggleControls.CornerBox:Set(true)
1339 ToggleControls.NameESP:Set(true)
1340 ToggleControls.HealthESP:Set(true)
1341 ToggleControls.DistanceESP:Set(false)
1342 ToggleControls.Chams:Set(false)
1343 ToggleControls.Glow:Set(false)
1344 Notify("Preset", "Clean preset loaded")
1345end)
1346
1347local ResetSec = MakeSection(ConfigPage, "Reset", "right")
1348AddButton(ResetSec, "Reset Aim", function()
1349 ToggleControls.RageBot:Set(false)
1350 ToggleControls.RageAutoFire:Set(false)
1351 ToggleControls.RageDoubleTap:Set(false)
1352 ToggleControls.LegitBot:Set(false)
1353 ToggleControls.LegitTriggerbot:Set(false)
1354 Notify("Reset", "Aim reset")
1355end)
1356
1357AddButton(ResetSec, "Reset Visuals", function()
1358 ToggleControls.VisualsEnabled:Set(false)
1359 ToggleControls.BoxESP:Set(false)
1360 ToggleControls.CornerBox:Set(false)
1361 ToggleControls.NameESP:Set(false)
1362 ToggleControls.HealthESP:Set(false)
1363 ToggleControls.DistanceESP:Set(false)
1364 ToggleControls.Chams:Set(false)
1365 ToggleControls.Glow:Set(false)
1366 Notify("Reset", "Visuals reset")
1367end)
1368
1369AddButton(ResetSec, "Reset World", function()
1370 ToggleControls.Nightmode:Set(false)
1371 ToggleControls.Fullbright:Set(false)
1372 ToggleControls.RemoveFog:Set(false)
1373 DropdownControls.SkyColor:Set("Default")
1374 SliderControls.CameraFOV:Set(70)
1375
1376 Lighting.Brightness = OldLighting.Brightness
1377 Lighting.ClockTime = OldLighting.ClockTime
1378 Lighting.FogEnd = OldLighting.FogEnd
1379 Lighting.FogStart = OldLighting.FogStart
1380 Lighting.GlobalShadows = OldLighting.GlobalShadows
1381 Lighting.Ambient = OldLighting.Ambient
1382 Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
1383
1384 Notify("Reset", "World reset")
1385end)
1386
1387AddButton(ResetSec, "Unload UI", function()
1388 Gui:Destroy()
1389end)
1390
1391--// Binds page
1392
1393local AimBinds = MakeSection(BindsPage, "Aim Binds", "left")
1394AddBindRow(AimBinds, "RageBot", "Rage Bot", "F1", "Toggle")
1395AddBindRow(AimBinds, "RageAutoFire", "Rage Auto Fire", "F2", "Toggle")
1396AddBindRow(AimBinds, "LegitBot", "Legit Bot", "F3", "Toggle")
1397AddBindRow(AimBinds, "LegitTriggerbot", "Triggerbot", "F4", "Toggle")
1398
1399local VisualBinds = MakeSection(BindsPage, "Visual Binds", "left")
1400AddBindRow(VisualBinds, "VisualsEnabled", "Visuals", "F5", "Toggle")
1401AddBindRow(VisualBinds, "BoxESP", "Box ESP", "F6", "Toggle")
1402AddBindRow(VisualBinds, "NameESP", "Name ESP", "F7", "Toggle")
1403AddBindRow(VisualBinds, "HealthESP", "Health ESP", "F8", "Toggle")
1404AddBindRow(VisualBinds, "Chams", "Chams", "F9", "Toggle")
1405AddBindRow(VisualBinds, "Glow", "Glow", "F10", "Toggle")
1406
1407local MoveBinds = MakeSection(BindsPage, "Movement / Misc", "right")
1408AddBindRow(MoveBinds, "Thirdperson", "Thirdperson", "V", "Toggle")
1409AddBindRow(MoveBinds, "BunnyHop", "BunnyHop", "B", "Toggle")
1410AddBindRow(MoveBinds, "AutoStrafer", "Auto Strafer", "N", "Toggle")
1411AddBindRow(MoveBinds, "FastStop", "Fast Stop", "X", "Hold")
1412AddBindRow(MoveBinds, "Hitsounds", "Hitsounds", "H", "Toggle")
1413AddBindRow(MoveBinds, "Nightmode", "Nightmode", "J", "Toggle")
1414
1415SetTab("Rage Bot")
1416
1417--// Overlay
1418
1419local Overlay = New("Frame", {
1420 Name = "Overlay",
1421 Size = UDim2.fromScale(1, 1),
1422 BackgroundTransparency = 1,
1423 ZIndex = 1
1424}, Gui)
1425
1426local RageCircle = New("Frame", {
1427 AnchorPoint = Vector2.new(0.5, 0.5),
1428 Position = UDim2.fromScale(0.5, 0.5),
1429 Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2),
1430 BackgroundTransparency = 1,
1431 Visible = true,
1432 ZIndex = 4
1433}, Overlay)
1434Corner(RageCircle, 999)
1435
1436New("UIStroke", {
1437 Color = Theme.Red,
1438 Transparency = 0.45,
1439 Thickness = 1
1440}, RageCircle)
1441
1442local LegitCircle = New("Frame", {
1443 AnchorPoint = Vector2.new(0.5, 0.5),
1444 Position = UDim2.fromScale(0.5, 0.5),
1445 Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2),
1446 BackgroundTransparency = 1,
1447 Visible = true,
1448 ZIndex = 4
1449}, Overlay)
1450Corner(LegitCircle, 999)
1451
1452New("UIStroke", {
1453 Color = Theme.Accent,
1454 Transparency = 0.35,
1455 Thickness = 1
1456}, LegitCircle)
1457
1458--// Dragging
1459
1460local draggingMenu = false
1461local dragStart
1462local startPos
1463
1464Top.InputBegan:Connect(function(input)
1465 if input.UserInputType == Enum.UserInputType.MouseButton1 then
1466 draggingMenu = true
1467 dragStart = input.Position
1468 startPos = Main.Position
1469 end
1470end)
1471
1472UIS.InputEnded:Connect(function(input)
1473 if input.UserInputType == Enum.UserInputType.MouseButton1 then
1474 draggingMenu = false
1475 end
1476end)
1477
1478UIS.InputChanged:Connect(function(input)
1479 if draggingMenu and input.UserInputType == Enum.UserInputType.MouseMovement then
1480 local delta = input.Position - dragStart
1481
1482 Main.Position = UDim2.new(
1483 startPos.X.Scale,
1484 startPos.X.Offset + delta.X,
1485 startPos.Y.Scale,
1486 startPos.Y.Offset + delta.Y
1487 )
1488 end
1489end)
1490
1491--// Inputs
1492
1493UIS.InputBegan:Connect(function(input, gp)
1494 if input.UserInputType == Enum.UserInputType.MouseButton2 then
1495 HoldingRMB = true
1496 end
1497
1498 if input.KeyCode == Enum.KeyCode.W then Keys.W = true end
1499 if input.KeyCode == Enum.KeyCode.A then Keys.A = true end
1500 if input.KeyCode == Enum.KeyCode.S then Keys.S = true end
1501 if input.KeyCode == Enum.KeyCode.D then Keys.D = true end
1502 if input.KeyCode == Enum.KeyCode.Space then Keys.Space = true end
1503
1504 if input.KeyCode == MENU_KEY and not UIS:GetFocusedTextBox() then
1505 State.MenuOpen = not State.MenuOpen
1506 Main.Visible = State.MenuOpen
1507 return
1508 end
1509
1510 if ProcessBindInput(input, true) then
1511 return
1512 end
1513
1514 if gp then return end
1515end)
1516
1517UIS.InputEnded:Connect(function(input)
1518 if input.UserInputType == Enum.UserInputType.MouseButton2 then
1519 HoldingRMB = false
1520 end
1521
1522 if input.KeyCode == Enum.KeyCode.W then Keys.W = false end
1523 if input.KeyCode == Enum.KeyCode.A then Keys.A = false end
1524 if input.KeyCode == Enum.KeyCode.S then Keys.S = false end
1525 if input.KeyCode == Enum.KeyCode.D then Keys.D = false end
1526 if input.KeyCode == Enum.KeyCode.Space then Keys.Space = false end
1527
1528 ProcessBindInput(input, false)
1529end)
1530
1531--// ESP
1532
1533local ESPCache = {}
1534
1535local function ClearESP(plr)
1536 local data = ESPCache[plr]
1537 if not data then return end
1538
1539 for _, obj in pairs(data.Objects) do
1540 if obj and obj.Destroy then
1541 obj:Destroy()
1542 end
1543 end
1544
1545 ESPCache[plr] = nil
1546end
1547
1548local function CreateESP(plr)
1549 if plr == LocalPlayer or ESPCache[plr] then return end
1550
1551 local box = New("Frame", {
1552 BackgroundTransparency = 1,
1553 Visible = false,
1554 ZIndex = 8
1555 }, Overlay)
1556
1557 local boxStroke = New("UIStroke", {
1558 Color = Theme.Accent,
1559 Transparency = 0.05,
1560 Thickness = 1
1561 }, box)
1562
1563 local corners = {}
1564 for i = 1, 8 do
1565 corners[i] = New("Frame", {
1566 BackgroundColor3 = Theme.Accent,
1567 BorderSizePixel = 0,
1568 Visible = false,
1569 ZIndex = 9
1570 }, Overlay)
1571 end
1572
1573 local name = New("TextLabel", {
1574 BackgroundTransparency = 1,
1575 Text = "",
1576 TextColor3 = Theme.Text,
1577 TextStrokeTransparency = 0.1,
1578 TextSize = 13,
1579 Font = Enum.Font.GothamBold,
1580 Visible = false,
1581 ZIndex = 11
1582 }, Overlay)
1583
1584 local bottom = New("TextLabel", {
1585 BackgroundTransparency = 1,
1586 Text = "",
1587 TextColor3 = Theme.Text,
1588 TextStrokeTransparency = 0.1,
1589 TextSize = 12,
1590 Font = Enum.Font.Gotham,
1591 Visible = false,
1592 ZIndex = 11
1593 }, Overlay)
1594
1595 local hpBack = New("Frame", {
1596 BackgroundColor3 = Color3.fromRGB(0, 0, 0),
1597 BorderSizePixel = 0,
1598 Visible = false,
1599 ZIndex = 8
1600 }, Overlay)
1601
1602 local hpFill = New("Frame", {
1603 BackgroundColor3 = Theme.Green,
1604 BorderSizePixel = 0,
1605 Size = UDim2.fromScale(1, 1),
1606 ZIndex = 9
1607 }, hpBack)
1608
1609 local highlight = New("Highlight", {
1610 Enabled = false,
1611 FillColor = Theme.Accent,
1612 OutlineColor = Color3.fromRGB(230, 245, 255),
1613 FillTransparency = 0.78,
1614 OutlineTransparency = 0.08
1615 }, Gui)
1616
1617 local objects = {box, boxStroke, name, bottom, hpBack, hpFill, highlight}
1618 for _, c in ipairs(corners) do
1619 table.insert(objects, c)
1620 end
1621
1622 ESPCache[plr] = {
1623 Objects = objects,
1624 Box = box,
1625 BoxStroke = boxStroke,
1626 Corners = corners,
1627 Name = name,
1628 Bottom = bottom,
1629 HPBack = hpBack,
1630 HPFill = hpFill,
1631 Highlight = highlight
1632 }
1633end
1634
1635local function HideESP(data)
1636 data.Box.Visible = false
1637 data.Name.Visible = false
1638 data.Bottom.Visible = false
1639 data.HPBack.Visible = false
1640 data.Highlight.Enabled = false
1641
1642 for _, c in ipairs(data.Corners) do
1643 c.Visible = false
1644 end
1645end
1646
1647local function GetBox2D(char)
1648 local root = char:FindFirstChild("HumanoidRootPart")
1649 local hum = char:FindFirstChildOfClass("Humanoid")
1650
1651 if not root or not hum then
1652 return nil
1653 end
1654
1655 local topWorld = root.Position + Vector3.new(0, 3.2, 0)
1656 local bottomWorld = root.Position - Vector3.new(0, 3.2, 0)
1657
1658 local top, topOn = Camera:WorldToViewportPoint(topWorld)
1659 local bottom, bottomOn = Camera:WorldToViewportPoint(bottomWorld)
1660
1661 if top.Z <= 0 or bottom.Z <= 0 then return nil end
1662 if not topOn and not bottomOn then return nil end
1663
1664 local h = math.abs(bottom.Y - top.Y)
1665 local w = h * 0.45
1666
1667 local x1 = bottom.X - w / 2
1668 local x2 = bottom.X + w / 2
1669 local y1 = top.Y
1670 local y2 = bottom.Y
1671
1672 return x1, y1, x2, y2
1673end
1674
1675local function SetCornerBox(corners, x, y, w, h, color)
1676 local len = math.clamp(math.min(w, h) * 0.25, 8, 22)
1677 local thick = 2
1678
1679 local p = {
1680 {x, y, len, thick}, {x, y, thick, len},
1681 {x + w - len, y, len, thick}, {x + w - thick, y, thick, len},
1682 {x, y + h - thick, len, thick}, {x, y + h - len, thick, len},
1683 {x + w - len, y + h - thick, len, thick}, {x + w - thick, y + h - len, thick, len}
1684 }
1685
1686 for i, c in ipairs(corners) do
1687 c.Visible = true
1688 c.Position = UDim2.fromOffset(p[i][1], p[i][2])
1689 c.Size = UDim2.fromOffset(p[i][3], p[i][4])
1690 c.BackgroundColor3 = color
1691 end
1692end
1693
1694local function UpdateESP()
1695 for _, plr in ipairs(Players:GetPlayers()) do
1696 if plr ~= LocalPlayer then
1697 CreateESP(plr)
1698
1699 local data = ESPCache[plr]
1700 local char = plr.Character
1701 local root = char and char:FindFirstChild("HumanoidRootPart")
1702 local hum = char and char:FindFirstChildOfClass("Humanoid")
1703 local myRoot = GetRoot(LocalPlayer)
1704
1705 if not data or not char or not root or not hum or hum.Health <= 0 or not myRoot then
1706 if data then
1707 HideESP(data)
1708 end
1709 continue
1710 end
1711
1712 local distance = (root.Position - myRoot.Position).Magnitude
1713
1714 if not State.VisualsEnabled or not IsEnemyForVisuals(plr) or distance > State.ESPMaxDistance then
1715 HideESP(data)
1716 continue
1717 end
1718
1719 local x1, y1, x2, y2 = GetBox2D(char)
1720 if not x1 then
1721 HideESP(data)
1722 continue
1723 end
1724
1725 local color = Theme.Accent
1726 local w = x2 - x1
1727 local h = y2 - y1
1728
1729 data.Box.Visible = State.BoxESP and not State.CornerBox
1730 data.Box.Position = UDim2.fromOffset(x1, y1)
1731 data.Box.Size = UDim2.fromOffset(w, h)
1732 data.BoxStroke.Color = color
1733
1734 for _, c in ipairs(data.Corners) do
1735 c.Visible = false
1736 end
1737
1738 if State.CornerBox then
1739 SetCornerBox(data.Corners, x1, y1, w, h, color)
1740 end
1741
1742 data.Highlight.Adornee = char
1743 data.Highlight.Enabled = State.Chams or State.Glow
1744 data.Highlight.FillColor = color
1745 data.Highlight.OutlineColor = State.Glow and Theme.Accent or Color3.fromRGB(230, 245, 255)
1746 data.Highlight.FillTransparency = State.Chams and 0.78 or 1
1747 data.Highlight.OutlineTransparency = State.Glow and 0.08 or 1
1748 data.Highlight.DepthMode = State.ChamsXRay and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
1749
1750 local topParts = {}
1751 local bottomParts = {}
1752
1753 if State.NameESP then
1754 table.insert(topParts, plr.Name)
1755 end
1756
1757 if State.DistanceESP then
1758 table.insert(bottomParts, math.floor(distance) .. " studs")
1759 end
1760
1761 if State.HealthESP then
1762 table.insert(bottomParts, "HP: " .. math.floor(hum.Health))
1763 end
1764
1765 data.Name.Visible = #topParts > 0
1766 data.Name.Text = table.concat(topParts, " | ")
1767 data.Name.Position = UDim2.fromOffset(x1 - 40, y1 - 18)
1768 data.Name.Size = UDim2.fromOffset(w + 80, 16)
1769
1770 data.Bottom.Visible = #bottomParts > 0
1771 data.Bottom.Text = table.concat(bottomParts, " | ")
1772 data.Bottom.Position = UDim2.fromOffset(x1 - 50, y2 + 2)
1773 data.Bottom.Size = UDim2.fromOffset(w + 100, 16)
1774
1775 data.HPBack.Visible = State.HealthESP
1776 data.HPBack.Position = UDim2.fromOffset(x1 - 7, y1)
1777 data.HPBack.Size = UDim2.fromOffset(4, h)
1778
1779 local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
1780 data.HPFill.Size = UDim2.new(1, 0, hp, 0)
1781 data.HPFill.Position = UDim2.new(0, 0, 1 - hp, 0)
1782 data.HPFill.BackgroundColor3 = hp > 0.5 and Theme.Green or Theme.Red
1783 end
1784 end
1785end
1786
1787Players.PlayerRemoving:Connect(ClearESP)
1788
1789--// Aim system
1790
1791local function GetAimPart(char, hitbox)
1792 local part = char:FindFirstChild(hitbox)
1793
1794 if not part then
1795 part = char:FindFirstChild("Head")
1796 or char:FindFirstChild("HumanoidRootPart")
1797 or char:FindFirstChild("UpperTorso")
1798 or char:FindFirstChild("Torso")
1799 end
1800
1801 return part
1802end
1803
1804local function IsVisible(part, targetChar)
1805 local myChar = GetChar(LocalPlayer)
1806 if not myChar then return true end
1807
1808 local origin = Camera.CFrame.Position
1809 local direction = part.Position - origin
1810
1811 local params = RaycastParams.new()
1812 params.FilterType = Enum.RaycastFilterType.Exclude
1813 params.FilterDescendantsInstances = {myChar}
1814
1815 local result = workspace:Raycast(origin, direction, params)
1816 if not result then
1817 return true
1818 end
1819
1820 return result.Instance:IsDescendantOf(targetChar)
1821end
1822
1823local function GetBestAimTarget(mode)
1824 local isRage = mode == "Rage"
1825
1826 local enabled = isRage and State.RageBot or State.LegitBot
1827 if not enabled then return nil end
1828
1829 local activation = isRage and State.RageActivation or State.LegitActivation
1830 if activation == "Hold RMB" and not HoldingRMB then
1831 return nil
1832 end
1833
1834 local teamCheck = isRage and State.RageTeamCheck or State.LegitTeamCheck
1835 local wallCheck = isRage and State.RageWallCheck or State.LegitWallCheck
1836 local hitbox = isRage and State.RageHitbox or State.LegitHitbox
1837 local fov = isRage and State.RageFOV or State.LegitFOV
1838 local maxDistance = isRage and State.RageMaxDistance or State.LegitMaxDistance
1839 local selection = isRage and State.RageTargetSelection or "FOV"
1840
1841 local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
1842
1843 local bestPart = nil
1844 local bestPlr = nil
1845 local bestScore = math.huge
1846
1847 for _, plr in ipairs(Players:GetPlayers()) do
1848 if IsEnemyForAim(plr, teamCheck) then
1849 local char = plr.Character
1850 local hum = char and char:FindFirstChildOfClass("Humanoid")
1851 local root = char and char:FindFirstChild("HumanoidRootPart")
1852 local part = char and GetAimPart(char, hitbox)
1853
1854 if hum and hum.Health > 0 and root and part then
1855 local worldDistance = (part.Position - Camera.CFrame.Position).Magnitude
1856
1857 if worldDistance <= maxDistance then
1858 if not wallCheck or IsVisible(part, char) then
1859 local screen, onScreen = Camera:WorldToViewportPoint(part.Position)
1860
1861 if onScreen and screen.Z > 0 then
1862 local screenDistance = (Vector2.new(screen.X, screen.Y) - center).Magnitude
1863
1864 if screenDistance <= fov then
1865 local score = screenDistance
1866
1867 if selection == "Distance" then
1868 score = worldDistance
1869 elseif selection == "Health" then
1870 score = hum.Health
1871 end
1872
1873 if score < bestScore then
1874 bestScore = score
1875 bestPart = part
1876 bestPlr = plr
1877 end
1878 end
1879 end
1880 end
1881 end
1882 end
1883 end
1884 end
1885
1886 return bestPart, bestPlr
1887end
1888
1889local function AimAt(part, smooth, prediction)
1890 if not part then return end
1891
1892 local velocity = part.AssemblyLinearVelocity or Vector3.zero
1893 local targetPos = part.Position + velocity * prediction
1894
1895 local current = Camera.CFrame
1896 local wanted = CFrame.new(current.Position, targetPos)
1897
1898 local alpha = math.clamp(1 / math.max(smooth, 1), 0.01, 1)
1899 Camera.CFrame = current:Lerp(wanted, alpha)
1900end
1901
1902local function GetEquippedTool()
1903 local char = GetChar(LocalPlayer)
1904 if not char then return nil end
1905 return char:FindFirstChildOfClass("Tool")
1906end
1907
1908local function FireWeapon(doubleTap)
1909 local now = os.clock()
1910 if now - LastFire < 0.06 then
1911 return
1912 end
1913
1914 LastFire = now
1915
1916 local tool = GetEquippedTool()
1917 if not tool then return end
1918
1919 pcall(function()
1920 tool:Activate()
1921 end)
1922
1923 if doubleTap then
1924 task.delay(0.035, function()
1925 local secondTool = GetEquippedTool()
1926 if secondTool then
1927 pcall(function()
1928 secondTool:Activate()
1929 end)
1930 end
1931 end)
1932 end
1933end
1934
1935local function ApplyQuickStop()
1936 local root = GetRoot(LocalPlayer)
1937 local hum = GetHumanoid(LocalPlayer)
1938
1939 if not root or not hum then return end
1940 if hum.FloorMaterial == Enum.Material.Air then return end
1941
1942 local v = root.AssemblyLinearVelocity
1943 root.AssemblyLinearVelocity = Vector3.new(v.X * 0.12, v.Y, v.Z * 0.12)
1944end
1945
1946local function UpdateAim()
1947 if State.RageBot then
1948 local target = GetBestAimTarget("Rage")
1949
1950 if target then
1951 if State.RageQuickStop then
1952 ApplyQuickStop()
1953 end
1954
1955 AimAt(target, State.RageSmooth, State.RagePrediction)
1956
1957 if State.RageAutoFire then
1958 if math.random(1, 100) <= State.RageHitchance then
1959 FireWeapon(State.RageDoubleTap)
1960 end
1961 end
1962 end
1963 end
1964
1965 if State.LegitBot then
1966 local target = GetBestAimTarget("Legit")
1967
1968 if target then
1969 AimAt(target, State.LegitSmooth, State.LegitPrediction)
1970 end
1971 end
1972end
1973
1974local function UpdateTriggerbot()
1975 if not State.LegitTriggerbot then return end
1976
1977 local now = os.clock()
1978 if now - LastTrigger < State.LegitTriggerDelay / 1000 then
1979 return
1980 end
1981
1982 local ray = Camera:ViewportPointToRay(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
1983
1984 local myChar = GetChar(LocalPlayer)
1985 local params = RaycastParams.new()
1986 params.FilterType = Enum.RaycastFilterType.Exclude
1987 params.FilterDescendantsInstances = myChar and {myChar} or {}
1988
1989 local result = workspace:Raycast(ray.Origin, ray.Direction * State.LegitMaxDistance, params)
1990 if not result then return end
1991
1992 local model = result.Instance:FindFirstAncestorOfClass("Model")
1993 if not model then return end
1994
1995 local plr = Players:GetPlayerFromCharacter(model)
1996 if not IsEnemyForAim(plr, State.LegitTeamCheck) then return end
1997
1998 local hum = model:FindFirstChildOfClass("Humanoid")
1999 if not hum or hum.Health <= 0 then return end
2000
2001 LastTrigger = now
2002 FireWeapon(false)
2003end
2004
2005--// World
2006
2007local function ApplyWorld()
2008 Camera.FieldOfView = State.CameraFOV
2009
2010 if State.Nightmode then
2011 Lighting.ClockTime = 0
2012 Lighting.Brightness = 1
2013 Lighting.Ambient = Color3.fromRGB(45, 55, 85)
2014 Lighting.OutdoorAmbient = Color3.fromRGB(25, 30, 50)
2015 else
2016 Lighting.ClockTime = OldLighting.ClockTime
2017 end
2018
2019 if State.Fullbright then
2020 Lighting.Brightness = State.Brightness
2021 Lighting.GlobalShadows = false
2022 Lighting.Ambient = Color3.fromRGB(255, 255, 255)
2023 Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
2024 elseif not State.Nightmode then
2025 Lighting.Brightness = OldLighting.Brightness
2026 Lighting.GlobalShadows = OldLighting.GlobalShadows
2027 Lighting.Ambient = OldLighting.Ambient
2028 Lighting.OutdoorAmbient = OldLighting.OutdoorAmbient
2029 end
2030
2031 if State.RemoveFog then
2032 Lighting.FogEnd = 100000
2033 Lighting.FogStart = 0
2034 else
2035 Lighting.FogEnd = OldLighting.FogEnd
2036 Lighting.FogStart = OldLighting.FogStart
2037 end
2038
2039 if State.SkyColor == "Blue" then
2040 Lighting.Ambient = Color3.fromRGB(50, 90, 160)
2041 elseif State.SkyColor == "Purple" then
2042 Lighting.Ambient = Color3.fromRGB(90, 50, 140)
2043 elseif State.SkyColor == "Red" then
2044 Lighting.Ambient = Color3.fromRGB(120, 45, 45)
2045 elseif State.SkyColor == "Black" then
2046 Lighting.Ambient = Color3.fromRGB(10, 10, 15)
2047 end
2048end
2049
2050--// Movement
2051
2052local function ApplyMovement()
2053 local hum = GetHumanoid(LocalPlayer)
2054 local root = GetRoot(LocalPlayer)
2055
2056 if not hum or not root then return end
2057
2058 if State.BunnyHop and Keys.Space and hum.FloorMaterial ~= Enum.Material.Air then
2059 hum:ChangeState(Enum.HumanoidStateType.Jumping)
2060 end
2061
2062 if State.AutoStrafer and hum.FloorMaterial == Enum.Material.Air then
2063 local move = Vector3.zero
2064
2065 if State.AutoStraferMode == "Legit" then
2066 if Keys.A then move -= Camera.CFrame.RightVector end
2067 if Keys.D then move += Camera.CFrame.RightVector end
2068 else
2069 local side = math.sin(os.clock() * 10) > 0 and 1 or -1
2070 move = Camera.CFrame.RightVector * side
2071 end
2072
2073 if move.Magnitude > 0 then
2074 hum:Move(move, false)
2075 end
2076 end
2077
2078 if State.FastStop and hum.FloorMaterial ~= Enum.Material.Air then
2079 local moving = Keys.W or Keys.A or Keys.S or Keys.D
2080 if not moving then
2081 local v = root.AssemblyLinearVelocity
2082 root.AssemblyLinearVelocity = Vector3.new(v.X * 0.2, v.Y, v.Z * 0.2)
2083 end
2084 end
2085end
2086
2087--// Thirdperson
2088
2089local function ApplyThirdperson()
2090 if State.Thirdperson then
2091 LocalPlayer.CameraMode = Enum.CameraMode.Classic
2092 LocalPlayer.CameraMinZoomDistance = State.ThirdpersonDistance
2093 LocalPlayer.CameraMaxZoomDistance = State.ThirdpersonDistance
2094 else
2095 LocalPlayer.CameraMode = OldCamera.Mode
2096 LocalPlayer.CameraMinZoomDistance = OldCamera.MinZoom
2097 LocalPlayer.CameraMaxZoomDistance = OldCamera.MaxZoom
2098 end
2099end
2100
2101--// Hitsounds
2102
2103local LastHealth = {}
2104local LastSound = 0
2105
2106local function PlayHitSound()
2107 if not State.Hitsounds then return end
2108
2109 if os.clock() - LastSound < 0.08 then
2110 return
2111 end
2112
2113 LastSound = os.clock()
2114
2115 local sound = Instance.new("Sound")
2116 sound.SoundId = HitSounds[State.HitSoundType] or HitSounds.Neverlose
2117 sound.Volume = 0.7
2118 sound.Parent = SoundService
2119 sound:Play()
2120
2121 task.delay(2, function()
2122 if sound then
2123 sound:Destroy()
2124 end
2125 end)
2126end
2127
2128local function WatchHumanoid(plr, hum)
2129 if not hum or LastHealth[hum] then return end
2130
2131 LastHealth[hum] = hum.Health
2132
2133 hum.HealthChanged:Connect(function(newHealth)
2134 local old = LastHealth[hum] or newHealth
2135
2136 if plr ~= LocalPlayer and newHealth < old then
2137 PlayHitSound()
2138 end
2139
2140 LastHealth[hum] = newHealth
2141 end)
2142end
2143
2144local function WatchPlayer(plr)
2145 plr.CharacterAdded:Connect(function(char)
2146 task.wait(0.3)
2147
2148 local hum = char:FindFirstChildOfClass("Humanoid")
2149 if hum then
2150 WatchHumanoid(plr, hum)
2151 end
2152 end)
2153
2154 if plr.Character then
2155 local hum = plr.Character:FindFirstChildOfClass("Humanoid")
2156 if hum then
2157 WatchHumanoid(plr, hum)
2158 end
2159 end
2160end
2161
2162for _, plr in ipairs(Players:GetPlayers()) do
2163 WatchPlayer(plr)
2164end
2165
2166Players.PlayerAdded:Connect(WatchPlayer)
2167
2168--// Indicators
2169
2170local IndicatorFrame = New("Frame", {
2171 Size = UDim2.fromOffset(220, 260),
2172 Position = UDim2.fromOffset(18, 120),
2173 BackgroundTransparency = 1,
2174 ZIndex = 30
2175}, Gui)
2176
2177New("UIListLayout", {
2178 SortOrder = Enum.SortOrder.LayoutOrder,
2179 Padding = UDim.new(0, 4)
2180}, IndicatorFrame)
2181
2182local KeybindFrame = New("Frame", {
2183 Size = UDim2.fromOffset(240, 260),
2184 Position = UDim2.new(1, -260, 0, 120),
2185 BackgroundTransparency = 1,
2186 ZIndex = 30
2187}, Gui)
2188
2189New("UIListLayout", {
2190 SortOrder = Enum.SortOrder.LayoutOrder,
2191 Padding = UDim.new(0, 4)
2192}, KeybindFrame)
2193
2194local Watermark = New("TextLabel", {
2195 Size = UDim2.fromOffset(280, 26),
2196 Position = UDim2.fromOffset(18, 18),
2197 BackgroundColor3 = Color3.fromRGB(8, 16, 26),
2198 BackgroundTransparency = 0.1,
2199 BorderSizePixel = 0,
2200 Text = " NEVERBLOX v2 | " .. LocalPlayer.Name,
2201 TextColor3 = Theme.Text,
2202 TextSize = 13,
2203 Font = Enum.Font.GothamBold,
2204 TextXAlignment = Enum.TextXAlignment.Left,
2205 ZIndex = 31
2206}, Gui)
2207Corner(Watermark, 5)
2208
2209local ActiveIndicators = {}
2210local ActiveBindLabels = {}
2211
2212local function MakeSmallLabel(parent, text, color)
2213 local item = New("TextLabel", {
2214 Size = UDim2.fromOffset(220, 22),
2215 BackgroundColor3 = Color3.fromRGB(8, 16, 26),
2216 BackgroundTransparency = 0.12,
2217 BorderSizePixel = 0,
2218 Text = " " .. text,
2219 TextColor3 = color or Theme.Text,
2220 TextSize = 12,
2221 Font = Enum.Font.GothamBold,
2222 TextXAlignment = Enum.TextXAlignment.Left,
2223 ZIndex = 31
2224 }, parent)
2225
2226 Corner(item, 4)
2227 return item
2228end
2229
2230local function UpdateIndicators()
2231 for _, obj in ipairs(ActiveIndicators) do
2232 obj:Destroy()
2233 end
2234
2235 for _, obj in ipairs(ActiveBindLabels) do
2236 obj:Destroy()
2237 end
2238
2239 table.clear(ActiveIndicators)
2240 table.clear(ActiveBindLabels)
2241
2242 Watermark.Visible = State.Watermark
2243 IndicatorFrame.Visible = State.Indicators
2244 KeybindFrame.Visible = State.KeybindList
2245
2246 if State.Indicators then
2247 local items = {}
2248
2249 if State.RageBot then table.insert(items, {"RAGE", Theme.Red}) end
2250 if State.RageAutoFire then table.insert(items, {"AUTOFIRE", Theme.Red}) end
2251 if State.LegitBot then table.insert(items, {"LEGIT", Theme.Accent}) end
2252 if State.LegitTriggerbot then table.insert(items, {"TRIGGER", Theme.Yellow}) end
2253 if State.VisualsEnabled then table.insert(items, {"VISUALS", Theme.Accent}) end
2254 if State.Chams then table.insert(items, {"CHAMS", Theme.Accent}) end
2255 if State.Glow then table.insert(items, {"GLOW", Theme.Accent}) end
2256 if State.BunnyHop then table.insert(items, {"BHOP", Theme.Green}) end
2257 if State.AutoStrafer then table.insert(items, {"STRAFE " .. State.AutoStraferMode, Theme.Green}) end
2258 if State.FastStop then table.insert(items, {"FAST STOP", Theme.Yellow}) end
2259 if State.Thirdperson then table.insert(items, {"THIRDPERSON", Theme.Accent}) end
2260 if State.Nightmode then table.insert(items, {"NIGHTMODE", Theme.Accent}) end
2261 if State.Hitsounds then table.insert(items, {"HITSOUNDS", Theme.Yellow}) end
2262
2263 for _, item in ipairs(items) do
2264 table.insert(ActiveIndicators, MakeSmallLabel(IndicatorFrame, item[1], item[2]))
2265 end
2266 end
2267
2268 if State.KeybindList then
2269 table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, "KEYBINDS", Theme.Accent))
2270
2271 for stateKey, bind in pairs(Keybinds) do
2272 local active = GetBoundState(stateKey)
2273
2274 if bind.Mode == "Always" or active then
2275 local text = bind.Title .. " [" .. KeyToText(bind.Key) .. "] " .. bind.Mode
2276 table.insert(ActiveBindLabels, MakeSmallLabel(KeybindFrame, text, Theme.Text))
2277 end
2278 end
2279 end
2280end
2281
2282--// Runtime
2283
2284local lastSlowUpdate = 0
2285
2286RunService.RenderStepped:Connect(function()
2287 Camera = workspace.CurrentCamera or Camera
2288
2289 ApplyAlwaysBinds()
2290
2291 RageCircle.Visible = State.FOVCircles and State.RageBot
2292 RageCircle.Size = UDim2.fromOffset(State.RageFOV * 2, State.RageFOV * 2)
2293
2294 LegitCircle.Visible = State.FOVCircles and State.LegitBot
2295 LegitCircle.Size = UDim2.fromOffset(State.LegitFOV * 2, State.LegitFOV * 2)
2296
2297 UpdateAim()
2298 UpdateTriggerbot()
2299 UpdateESP()
2300 ApplyMovement()
2301 ApplyThirdperson()
2302
2303 if os.clock() - lastSlowUpdate > 0.2 then
2304 lastSlowUpdate = os.clock()
2305 ApplyWorld()
2306 UpdateIndicators()
2307 end
2308end)
2309
2310PresetButton.MouseButton1Click:Connect(function()
2311 SetTab("Configs")
2312end)
2313
2314InfoButton.MouseButton1Click:Connect(function()
2315 Notify("NEVERBLOX", "Menu key: RightShift")
2316end)
2317
2318Notify("Welcome", "NEVERBLOX v2 Aim loaded")