· last year · Jan 10, 2024, 12:30 AM
1if not _G.require then
2 _G.require = require
3end
4
5--// API References
6local GUIData = (function()
7 -- Variables
8 _V = "2.0"
9
10 local screenGui = (script:FindFirstChild("ScreenGui")) or
11 game:GetObjects("rbxassetid://2718157603")[1]:FindFirstChild("ScreenGui", true)
12 local Container = screenGui.Frame
13 local Opt = Container.OptionsFrame
14 local Checkbox = Opt.Checkbox
15 local Color = Opt.Color
16 local Frame = Opt.Frame
17 local Execute = Opt.Execute
18 local Mode = Opt.Mode
19 local Number = Opt.Number
20 local Toggle = Opt.Toggle
21 local Mods = screenGui.Mods
22 local ModLabel = Mods.Example
23
24 local TextService = game:GetService("TextService")
25 local UserInputService = game:GetService("UserInputService")
26 local HttpService = game:GetService("HttpService")
27 local Player = game:GetService("Players").LocalPlayer
28 local Mouse = Player:GetMouse()
29
30 pcall(function()
31 screenGui.Parent = game:GetService("CoreGui")
32 end)
33
34 Container.Parent = nil
35 Checkbox.Parent = nil
36 Color.Parent = nil
37 Frame.Parent = nil
38 Execute.Parent = nil
39 Mode.Parent = nil
40 Number.Parent = nil
41 Toggle.Parent = nil
42 ModLabel.Parent = nil
43
44 local settingsArray = { { Object = screenGui }, {} }
45 local saveData = { Options = {}, Hotkeys = {} }
46
47 local hotkeyFunctions = {}
48 local gui = {}
49
50 -- Save Functions
51 local writefile = writefile or function() end
52 local function Save()
53 local JSONData = HttpService:JSONEncode(saveData)
54 writefile("OpenGui.txt", JSONData)
55 end
56
57 -- Color Functions
58 local color = {}
59 local colors = {
60 TextDisabled = Color3.fromRGB(200, 200, 200),
61 TextEnabled = Color3.fromRGB(255, 255, 255),
62 }
63
64 local Colors = {
65 Color3.fromRGB(255, 73, 73),
66 Color3.fromRGB(255, 161, 66),
67 Color3.fromRGB(255, 233, 62),
68 Color3.fromRGB(137, 255, 64),
69 Color3.fromRGB(64, 255, 140),
70 Color3.fromRGB(66, 252, 255),
71 Color3.fromRGB(64, 147, 255),
72 Color3.fromRGB(255, 93, 253),
73 Color3.fromRGB(195, 110, 255),
74 Color3.fromRGB(255, 90, 134),
75 Color3.fromRGB(255, 255, 255),
76 Color3.fromRGB(209, 209, 209),
77 }
78
79 local function h2rgb(m1, m2, h)
80 if h < 0 then h = h + 1 end
81 if h > 1 then h = h - 1 end
82 if h * 6 < 1 then
83 return m1 + (m2 - m1) * h * 6
84 elseif h * 2 < 1 then
85 return m2
86 elseif h * 3 < 2 then
87 return m1 + (m2 - m1) * (2 / 3 - h) * 6
88 else
89 return m1
90 end
91 end
92
93 function color:rgbToHsv(r, g, b)
94 local a = 0
95 r, g, b, a = r / 255, g / 255, b / 255, a / 255
96 local max, min = math.max(r, g, b), math.min(r, g, b)
97 local h, s, v
98 v = max
99
100 local d = max - min
101 if max == 0 then s = 0 else s = d / max end
102
103 if max == min then
104 h = 0 -- achromatic
105 else
106 if max == r then
107 h = (g - b) / d
108 if g < b then h = h + 6 end
109 elseif max == g then
110 h = (b - r) / d + 2
111 elseif max == b then
112 h = (r - g) / d + 4
113 end
114 h = h / 6
115 end
116
117 return h, s, v
118 end
119
120 function color:hslToRgb(h, s, L)
121 h = h / 360
122 local m2 = L <= .5 and L * (s + 1) or L + s - L * s
123 local m1 = L * 2 - m2
124 return
125 h2rgb(m1, m2, h + 1 / 3),
126 h2rgb(m1, m2, h),
127 h2rgb(m1, m2, h - 1 / 3)
128 end
129
130 function color:rgbToHsl(r, g, b)
131 local min = math.min(r, g, b)
132 local max = math.max(r, g, b)
133 local delta = max - min
134
135 local h, s, l = 0, 0, (min + max) / 2
136
137 if l > 0 and l < 0.5 then s = delta / (max + min) end
138 if l >= 0.5 and l < 1 then s = delta / (2 - max - min) end
139
140 if delta > 0 then
141 if max == r and max ~= g then h = h + (g - b) / delta end
142 if max == g and max ~= b then h = h + 2 + (b - r) / delta end
143 if max == b and max ~= r then h = h + 4 + (r - g) / delta end
144 h = h / 6
145 end
146
147 if h < 0 then h = h + 1 end
148 if h > 1 then h = h - 1 end
149
150 return h * 360, s, l
151 end
152
153 function color:adjustLightness(color3, amount)
154 local h, s, l = self:rgbToHsl(color3.r, color3.g, color3.b)
155 return Color3.new(self:hslToRgb(h, s, l + amount))
156 end
157
158 -- UI Functions
159 function gui.tween(object, style, direction, t, goal)
160 local tweenservice = game:GetService("TweenService")
161 local tweenInfo = TweenInfo.new(t, Enum.EasingStyle[style], Enum.EasingDirection[direction])
162 local tween = tweenservice:Create(object, tweenInfo, goal)
163 tween.Completed:Connect(function()
164 tween:Destroy()
165 end)
166 tween:Play()
167 return tween
168 end
169
170 function gui:makeDraggable(ui, callback)
171 local UserInputService = game:GetService("UserInputService")
172
173 local dragging
174 local dragInput
175 local dragStart
176 local startPos
177
178 local function update(input)
179 local delta = input.Position - dragStart
180 ui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale,
181 startPos.Y.Offset + delta.Y)
182
183 if callback then
184 callback(ui.Position.X.Offset, ui.Position.Y.Offset)
185 end
186 end
187
188 ui.InputBegan:Connect(function(input)
189 if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
190 dragging = true
191 dragStart = input.Position
192 startPos = ui.Position
193
194 input.Changed:Connect(function()
195 if input.UserInputState == Enum.UserInputState.End then
196 dragging = false
197 end
198 end)
199 end
200 end)
201
202 ui.InputChanged:Connect(function(input)
203 if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
204 dragInput = input
205 end
206 end)
207
208 UserInputService.InputChanged:Connect(function(input)
209 if input == dragInput and dragging then
210 update(input)
211 end
212 end)
213 end
214
215 function gui:unpack(data, type)
216 if data == nil then return end
217 if type == "UDim2" then
218 return data and UDim2.new(data[1], data[2], data[3], data[4])
219 elseif type == "boolean" then
220 return data == 1 and true or false
221 elseif type == "Color3" then
222 return Color3.new(data[1], data[2], data[3])
223 end
224 return data
225 end
226
227 function gui:pack(data)
228 if typeof(data) == "UDim2" then
229 return { data.X.Scale, data.X.Offset, data.Y.Scale, data.Y.Offset }
230 elseif typeof(data) == "boolean" then
231 return data and 1 or 0
232 elseif typeof(data) == "Color3" then
233 return { data.r, data.g, data.b }
234 end
235 return data
236 end
237
238 function gui:getn(array)
239 local n = 0
240 for _, v in pairs(array) do
241 n = n + 1
242 end
243 return n
244 end
245
246 function gui:setText(textLabel, text)
247 text = tostring(text)
248 textLabel.Text = text
249 if textLabel:FindFirstChild("Opaque") then
250 textLabel.Opaque.Text = text
251 end
252 if textLabel:FindFirstChild("Shadow") then
253 textLabel.Shadow.Text = text
254 end
255 end
256
257 function gui:onDoubleTap(guiObject, callback)
258 local lastTap = tick()
259 guiObject.InputBegan:Connect(function(input)
260 if input.UserInputType == Enum.UserInputType.MouseButton1 then
261 if tick() - lastTap < 0.25 then
262 callback()
263 end
264 lastTap = tick()
265 end
266 end)
267 end
268
269 local connections = {}
270 function gui:connect(func)
271 table.insert(connections, func)
272 end
273
274 function gui:createList(guiObject, guiData)
275 local ListLayout = guiObject.OptionsFrame.UIListLayout
276 local Padding = guiObject.OptionsFrame.UIPadding
277 guiObject.OptionsFrame.UIListLayout.Changed:Connect(function(Property)
278 if Property == "AbsoluteContentSize" then
279 guiData.ySize = ListLayout.AbsoluteContentSize.Y + 2 + Padding.PaddingTop.Offset +
280 ListLayout.Padding.Offset * 2
281 end
282 end)
283
284 gui:connect(function()
285 if guiObject:FindFirstChild("Title") then
286 local yRes = Mouse.ViewSizeY
287 local diff = yRes - (guiData.yPos + guiData.ySize)
288 local difference = math.clamp(diff, 0, 5000)
289 guiObject.OptionsFrame.CanvasSize = UDim2.new(1, 0, 1.001, guiData.ySize - 35)
290
291 if guiData.Open then
292 guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(
293 UDim2.new(1, 0, 0, guiData.ySize + math.clamp(diff, -5000, 0)), 0.3)
294 else
295 guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(UDim2.new(1, 0, 0, 0), 0.3)
296 end
297
298 guiObject.Frame.Size = guiObject.OptionsFrame.Size
299 else
300 if guiData.Open then
301 guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35 + guiData.ySize), 0.3)
302 else
303 guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35), 0.3)
304 end
305 end
306 end)
307
308 if guiObject:FindFirstChild("Dropdown") then
309 guiObject.Dropdown.Visible = false
310 guiObject.Dropdown.MouseButton1Down:Connect(function()
311 guiData.Open = not guiData.Open
312 if guiData.Open then
313 guiObject.Dropdown.Image = "rbxassetid://3559638428"
314 else
315 guiObject.Dropdown.Image = "rbxassetid://3554238678"
316 end
317 end)
318 else
319 gui:onDoubleTap(guiObject, function()
320 guiData.Open = not guiData.Open
321 end)
322 end
323 end
324
325 function gui:textColorOnHover(guiObject, guiData)
326 local hover = guiData.baseColor or guiObject.TextColor3
327 local default = color:adjustLightness(hover, -0.075)
328 local mdown = color:adjustLightness(hover, -0.15)
329 local mouseIn
330
331 local function update()
332 if guiData.baseColor then
333 hover = guiData.baseColor or guiObject.TextColor3
334 default = color:adjustLightness(hover, -0.075)
335 mdown = color:adjustLightness(hover, -0.15)
336 end
337 end
338
339 guiObject.MouseEnter:Connect(function()
340 update()
341 gui.tween(guiObject, "Sine", "Out", 0.25, {
342 TextColor3 = hover,
343 })
344 mouseIn = true
345 end)
346
347 guiObject.MouseLeave:Connect(function()
348 mouseIn = false
349 update()
350 gui.tween(guiObject, "Sine", "Out", 0.25, {
351 TextColor3 = default,
352 })
353 end)
354
355 guiObject.InputBegan:Connect(function(input)
356 if input.UserInputType == Enum.UserInputType.MouseButton1 then
357 update()
358 gui.tween(guiObject, "Sine", "Out", 0.25, {
359 TextColor3 = mdown,
360 })
361 end
362 end)
363
364 guiObject.InputEnded:Connect(function(input)
365 if input.UserInputType == Enum.UserInputType.MouseButton1 then
366 update()
367 gui.tween(guiObject, "Sine", "Out", 0.25, {
368 TextColor3 = mouseIn and hover or default,
369 })
370 end
371 end)
372
373 guiObject.TextColor3 = default
374 end
375
376 function gui:sliderXY(sliderFrame, inputObjects, callback)
377 local inputDown = false
378
379 local function refresh(c1, c2)
380 local sliderX = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
381 local sliderY = sliderFrame.AbsolutePosition.Y + sliderFrame.AbsoluteSize.Y
382
383 local distX = sliderX - Mouse.X
384 local distY = sliderY - Mouse.Y
385
386 local deltaX = 1 - math.clamp(distX / sliderFrame.AbsoluteSize.X, 0, 1)
387 local deltaY = 1 - math.clamp(distY / sliderFrame.AbsoluteSize.Y, 0, 1)
388
389 if callback then
390 callback(c1 or deltaX, c2 or deltaY)
391 end
392 end
393
394 for _, obj in pairs(inputObjects) do
395 obj.InputBegan:Connect(function(input)
396 if input.UserInputType == Enum.UserInputType.MouseButton1 then
397 inputDown = true
398 refresh()
399 end
400 end)
401 obj.InputEnded:Connect(function(input)
402 if input.UserInputType == Enum.UserInputType.MouseButton1 then
403 inputDown = false
404 refresh()
405 end
406 end)
407 obj.InputChanged:Connect(function(input)
408 if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then
409 if inputDown then
410 refresh()
411 end
412 end
413 end)
414 end
415
416 return refresh
417 end
418
419 function gui:createSlider(sliderFrame, inputObjects, callback)
420 local slider = sliderFrame.Value
421 local inputDown = false
422
423 local absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
424 local absSize = sliderFrame.AbsoluteSize.X
425
426 local function refresh(custom)
427 local mouseX = Mouse.X
428 local sliderX = absPos
429 local dist = sliderX - mouseX
430 local delta = 1 - math.clamp(dist / absSize, 0, 1)
431
432 if custom then
433 delta = custom
434 end
435
436 slider.Size = UDim2.new(delta, 0, 1, 0)
437 if callback then
438 callback(delta, custom)
439 end
440 end
441
442 for _, obj in pairs(inputObjects) do
443 obj.InputBegan:Connect(function(input)
444 if input.UserInputType == Enum.UserInputType.MouseButton1 then
445 inputDown = true
446 absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
447 absSize = sliderFrame.AbsoluteSize.X
448 refresh()
449 end
450 end)
451 obj.InputEnded:Connect(function(input)
452 if input.UserInputType == Enum.UserInputType.MouseButton1 then
453 inputDown = false
454 refresh()
455 end
456 end)
457 obj.InputChanged:Connect(function(input)
458 if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then
459 if inputDown then
460 refresh()
461 end
462 end
463 end)
464 end
465
466 return refresh
467 end
468
469 function gui:textSize(txt, vSize)
470 return TextService:GetTextSize(txt.Text, txt.TextSize, txt.Font, vSize)
471 end
472
473 local currentHint = 0
474
475 function gui:addHint(guiObject, hintText)
476 local hintKey = math.random()
477 guiObject.MouseEnter:Connect(function()
478 hintKey = math.random()
479 currentHint = hintKey
480
481 wait(2)
482
483 if currentHint == hintKey then
484 gui:setText(screenGui.Hint, " " .. hintText .. " ")
485 local textSize = gui:textSize(screenGui.Hint, Vector2.new(2500, 500))
486 screenGui.Hint.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 4)
487 screenGui.Hint.Size = UDim2.new(0, textSize.X, 0, textSize.Y)
488 screenGui.Hint.Visible = true
489 end
490 end)
491
492 guiObject.MouseLeave:Connect(function()
493 hintKey = math.random()
494 end)
495
496 Mouse.Move:Connect(function()
497 if currentHint == hintKey then
498 screenGui.Hint.Visible = false
499 end
500 end)
501 end
502
503 -- UI Type Library
504 local lib = {}
505
506 function lib.Color(data, dataArray)
507 local guiObject = Color:Clone()
508 local color3Value = gui:unpack(saveData.Options[data.ID].Value, "Color3") or data.Default or Color3.new(1, 1, 1)
509 local guiData = {}
510
511 local HSV = color3Value
512 local H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255)
513
514 local newValue = function()
515 HSV = Color3.fromHSV(H, S, V)
516 guiObject.SV.BackgroundColor3 = Color3.fromHSV(H, 1, 1)
517 guiObject.Indicator.BackgroundColor3 = HSV
518 saveData.Options[data.ID].Value = gui:pack(HSV, "Color3")
519
520 guiObject.R.Text = math.floor(HSV.r * 255)
521 guiObject.G.Text = math.floor(HSV.g * 255)
522 guiObject.B.Text = math.floor(HSV.b * 255)
523
524 if data.Callback then
525 data.Callback(HSV)
526 end
527 end
528
529 local function updateHSV()
530 H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255)
531 end
532
533 local H_set = gui:sliderXY(guiObject.H, { guiObject.H }, function(X, Y, u)
534 if not u then H = 1 - Y end
535 guiObject.H.Locator.Position = UDim2.new(0.5, 0, Y, 0)
536 newValue()
537 end)
538
539 local SV_set = gui:sliderXY(guiObject.SV, { guiObject.SV }, function(X, Y, u)
540 if not u then
541 S = X; V = 1 - Y;
542 end
543 guiObject.SV.Locator.Position = UDim2.new(X, 0, Y, 0)
544 newValue()
545 end)
546
547 guiObject.R.FocusLost:Connect(function()
548 HSV = Color3.new(guiObject.R.Text / 255, HSV.g, HSV.b)
549 updateHSV()
550 newValue()
551 end)
552 guiObject.G.FocusLost:Connect(function()
553 HSV = Color3.new(HSV.r, guiObject.G.Text / 255, HSV.b)
554 updateHSV()
555 newValue()
556 end)
557 guiObject.B.FocusLost:Connect(function()
558 HSV = Color3.new(HSV.r, HSV.g, guiObject.B.Text / 255)
559 updateHSV()
560 newValue()
561 end)
562
563 newValue()
564 SV_set(S, 1 - V)
565 H_set(0, H)
566
567 guiData.ySize = 0
568 guiData.Open = false
569 guiData.baseColor = colors.TextEnabled
570
571 gui:setText(guiObject.Label, data.Name)
572 gui:textColorOnHover(guiObject.Label, guiData)
573
574 return guiObject
575 end
576
577 function lib.Number(data, dataArray)
578 local guiObject = Number:Clone()
579 local Value = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or
580 math.floor(data.Min + (data.Max - data.Min) / 2)
581 local guiData = {}
582
583 local dMax = data.Max - data.Min
584 local dValue = (Value - data.Min) / dMax
585
586 data.Round = data.Round or 1
587
588 local newValue = function(delta)
589 local exactValue = data.Min + (data.Max - data.Min) * delta
590 Value = math.floor(exactValue / data.Round) * data.Round
591 Value = math.clamp(Value, data.Min, data.Max)
592 guiObject.Indicator.Value.Text = tostring(Value)
593
594 if data.Callback then
595 data.Callback(Value)
596 end
597 saveData.Options[data.ID].Value = gui:pack(Value, "number")
598 end
599
600 local slideSet = gui:createSlider(guiObject.ValueFrame, { guiObject.Label, guiObject.Indicator }, newValue)
601 slideSet(math.clamp(dValue, 0, 1))
602
603 guiObject.Indicator.MouseButton1Down:Connect(newValue)
604 guiObject.Label.MouseButton1Down:Connect(newValue)
605 newValue(math.clamp(dValue, 0, 1))
606
607 guiData.ySize = 0
608 guiData.Open = false
609 guiData.baseColor = colors.TextEnabled
610
611 gui:createList(guiObject, guiData)
612 gui:setText(guiObject.Label, data.Name)
613 gui:textColorOnHover(guiObject.Label, guiData)
614
615 return guiObject
616 end
617
618 function lib.Execute(data, dataArray)
619 local guiObject = Execute:Clone()
620 local guiData = {}
621
622 local newValue = function(val)
623 if data.Callback then
624 data.Callback()
625 end
626 end
627
628 guiObject.MouseEnter:Connect(function()
629 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { Size = UDim2.new(0, 40, 0, 25) })
630 end)
631
632 guiObject.MouseLeave:Connect(function()
633 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { Size = UDim2.new(0, 0, 0, 25) })
634 end)
635
636 guiObject.Indicator.MouseButton1Down:Connect(newValue)
637 guiObject.Label.MouseButton1Down:Connect(newValue)
638 newValue(true)
639
640 guiData.ySize = 0
641 guiData.Open = false
642 guiData.baseColor = colors.TextEnabled
643
644 gui:createList(guiObject, guiData)
645 gui:setText(guiObject.Label, data.Name)
646 gui:textColorOnHover(guiObject.Label, guiData)
647
648 return guiObject
649 end
650
651 function lib.Mode(data, dataArray)
652 local guiObject = Mode:Clone()
653 local valueIndex = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or 1
654 local guiData = {}
655
656 local newValue = function(val)
657 if val == true then else
658 valueIndex = (valueIndex % #data.Modes) + 1
659 end
660
661 local Value = data.Modes[valueIndex]
662 gui:setText(guiObject.Mode, Value)
663
664 if data.Callback then
665 data.Callback(Value)
666 end
667 saveData.Options[data.ID].Value = gui:pack(valueIndex)
668 end
669
670 guiObject.Mode.MouseButton1Down:Connect(newValue)
671 guiObject.Label.MouseButton1Down:Connect(newValue)
672 newValue(true)
673
674 guiData.ySize = 0
675 guiData.Open = false
676 guiData.baseColor = colors.TextEnabled
677
678 gui:createList(guiObject, guiData)
679 gui:setText(guiObject.Label, data.Name)
680 gui:textColorOnHover(guiObject.Label, guiData)
681
682 return guiObject
683 end
684
685 function lib.Hotkey(data, dataArray)
686 local guiObject = Mode:Clone()
687 local hotkeyInput = gui:unpack(saveData.Hotkeys[data.ID], "string") or data.Hotkey or ""
688 local guiData = {}
689
690 local lastInput = hotkeyInput
691 local mouseIn = false
692
693 guiObject.Name = "Z"
694
695 local newValue = function(val)
696 local input
697 gui:setText(guiObject.Mode, "...")
698 saveData.Hotkeys[data.ID] = nil
699
700 if not val then
701 input = lastInput
702 mouseIn = true
703
704 lastInput = nil
705
706 repeat wait() until mouseIn == false or lastInput
707 end
708
709 if not lastInput then
710 lastInput = hotkeyInput
711 end
712
713 saveData.Hotkeys[data.ID] = tostring(lastInput)
714 hotkeyFunctions[data.ID] = data.callback
715
716 hotkeyInput = tostring(lastInput)
717 saveData.Options[data.ID].Value = hotkeyInput
718 gui:setText(guiObject.Mode, hotkeyInput:sub(14))
719 end
720
721 UserInputService.InputBegan:Connect(function(input)
722 if input.KeyCode == Enum.KeyCode.Unknown then return end
723 if input.KeyCode == Enum.KeyCode.Backspace then
724 lastInput = ""
725 return
726 end
727 lastInput = tostring(input.KeyCode)
728 end)
729
730 guiObject.Mode.MouseButton1Down:Connect(function() newValue() end)
731 guiObject.Label.MouseButton1Down:Connect(function() newValue() end)
732 guiObject.MouseLeave:Connect(function()
733 mouseIn = false
734 end)
735 newValue(true)
736
737 guiData.ySize = 0
738 guiData.Open = false
739 guiData.baseColor = colors.TextEnabled
740
741 gui:createList(guiObject, guiData)
742 gui:setText(guiObject.Label, "Hotkey")
743 gui:textColorOnHover(guiObject.Label, guiData)
744
745 guiObject.Parent = dataArray.Object.OptionsFrame
746
747 return guiObject
748 end
749
750 function lib.Toggle(data, dataArray)
751 local guiObject = Toggle:Clone()
752 local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false
753 local guiData = {}
754
755 local modFrame = ModLabel:Clone()
756 modFrame.Parent = Mods
757 modFrame.TextColor3 = Colors[math.random(1, #Colors)]
758 modFrame.Visible = false
759 gui:setText(modFrame, data.Name)
760
761 guiObject.Name = data.Name
762
763 local newValue = function(val, set)
764 if val == true then
765 else
766 if set then
767 Value = set
768 else
769 Value = not Value
770 end
771 end
772
773 if Value then
774 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { BackgroundColor3 = Color3.fromRGB(60, 222, 60) })
775 guiObject.Indicator.Text = "ON"
776 guiData.baseColor = colors.TextEnabled
777 else
778 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { BackgroundColor3 = Color3.fromRGB(222, 60, 60) })
779 guiObject.Indicator.Text = "OFF"
780 guiData.baseColor = colors.TextDisabled
781 end
782
783 if data.Callback then
784 data.Callback(Value)
785 end
786
787 saveData.Options[data.ID].Value = gui:pack(Value)
788 modFrame.Visible = Value
789 end
790
791 guiObject.MouseEnter:Connect(function()
792 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { Size = UDim2.new(0, 40, 0, 25) })
793 end)
794
795 guiObject.MouseLeave:Connect(function()
796 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { Size = UDim2.new(0, 0, 0, 25) })
797 end)
798
799 gui.tween(guiObject.Indicator, "Sine", "Out", .25, { Size = UDim2.new(0, 0, 0, 25) })
800 guiObject.Indicator.MouseButton1Down:Connect(function() newValue() end)
801 guiObject.Label.MouseButton1Down:Connect(function() newValue() end)
802 newValue(true)
803
804 guiData.ySize = 0
805 guiData.Open = false
806 guiData.baseColor = colors.TextDisabled
807
808 gui:createList(guiObject, guiData)
809 gui:setText(guiObject.Label, data.Name)
810 gui:textColorOnHover(guiObject.Label, guiData)
811
812 data.callback = newValue
813
814 return guiObject
815 end
816
817 function lib.Checkbox(data, dataArray)
818 local guiObject = Checkbox:Clone()
819 local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false
820 local guiData = {}
821
822 guiObject.Name = "0"
823
824 local newValue = function(val)
825 if val == true then else
826 Value = not Value
827 end
828 if Value then
829 gui.tween(guiObject.Indicator, "Sine", "Out", .35, { Size = UDim2.new(0, 35, 0, 35) })
830 guiData.baseColor = colors.TextEnabled
831 else
832 gui.tween(guiObject.Indicator, "Sine", "Out", .35, { Size = UDim2.new(0, 0, 0, 35) })
833 guiData.baseColor = colors.TextDisabled
834 end
835 if data.Callback then
836 data.Callback(Value)
837 end
838 saveData.Options[data.ID].Value = gui:pack(Value)
839 end
840
841 guiObject.Indicator.MouseButton1Down:Connect(newValue)
842 guiObject.Label.MouseButton1Down:Connect(newValue)
843 newValue(true)
844
845 guiData.ySize = 0
846 guiData.Open = false
847 guiData.baseColor = colors.TextDisabled
848
849 gui:createList(guiObject, guiData)
850 gui:setText(guiObject.Label, data.Name)
851 gui:textColorOnHover(guiObject.Label, guiData)
852
853 return guiObject
854 end
855
856 function lib.Frame(data, dataArray)
857 local guiObject = Frame:Clone()
858
859 local guiData = {}
860 guiData.ySize = 0
861 guiData.Open = false
862
863 gui:createList(guiObject, guiData)
864 gui:setText(guiObject.Label, data.Name)
865 gui:textColorOnHover(guiObject.Label, guiData)
866
867 return guiObject
868 end
869
870 function lib.Container(data, dataArray)
871 local guiObject = Container:Clone()
872
873 guiObject.Position = gui:unpack(saveData.Options[data.ID].Position, "UDim2") or
874 UDim2.new(0, 3, 0, 3 + gui:getn(settingsArray[2]) * 38)
875
876 local guiData = {}
877 guiData.yPos = 0
878 guiData.ySize = 0
879 guiData.Open = false
880
881 gui:textColorOnHover(guiObject.Title, guiData)
882 gui:createList(guiObject, guiData)
883 gui:setText(guiObject.Title, data.Name)
884 gui:makeDraggable(guiObject, function(x, y)
885 guiData.yPos = y
886 saveData.Options[data.ID].Position = gui:pack(guiObject.Position)
887 end)
888
889 return guiObject
890 end
891
892 -- UI Creation Library
893 function gui.create(self, guiType, data)
894 if self == gui then
895 self = settingsArray
896 end
897
898 data.ID = data.Name .. "_" .. (self[1].Name or "TOP")
899
900 if not saveData.Options[data.ID] then
901 saveData.Options[data.ID] = {}
902 end
903
904 if self[1].Object:FindFirstChild("Dropdown") then
905 self[1].Object.Dropdown.Visible = true
906 end
907
908 local dataArray = {}
909 local objectArray = {}
910 local selfArray = { dataArray, objectArray, create = gui.create, callback = data.Callback }
911 dataArray.Name = data.Name
912 dataArray.Data = data
913 dataArray.Object = lib[guiType](data, dataArray)
914 dataArray.self = selfArray
915
916 if guiType == "Toggle" then
917 lib.Hotkey(data, dataArray)
918 end
919 if data.Hint then
920 local Object = dataArray.Object
921 gui:addHint(Object:FindFirstChild("Title") or Object:FindFirstChild("Label"), data.Hint)
922 end
923
924 self[1][data.Name] = selfArray
925 self[2][data.Name] = dataArray.Object
926
927 dataArray.Object.Parent = self[1].Object:FindFirstChild("OptionsFrame") or self[1].Object
928
929 return dataArray
930 end
931
932 -- Connection Stuff
933 game:GetService("RunService").RenderStepped:Connect(function()
934 for _, func in pairs(connections) do
935 func()
936 end
937 end)
938
939 UserInputService.InputBegan:Connect(function(input, gameProcessed)
940 if gameProcessed then return end
941 for id, key in pairs(saveData.Hotkeys) do
942 if key == tostring(input.KeyCode) then
943 hotkeyFunctions[id]()
944 end
945 end
946 end)
947
948 Mods.Text = "BubbyHacks " .. _V
949
950 game.Close:Connect(function()
951 Save()
952 end)
953
954 return { gui, saveData, screenGui }
955end)()
956
957local _ESP = (function()
958 --// Variables
959 local RunService = game:GetService("RunService")
960 local Players = game:GetService("Players")
961 local Player = Players.LocalPlayer
962 local Screen = Instance.new("ScreenGui")
963 local Viewport = Instance.new("ViewportFrame", Screen)
964
965 local module = {}
966 local characters = {}
967 local clones = {}
968 local parts = {}
969
970 module.Options = {
971 Enabled = false,
972 Parent = script.Parent or game.CoreGui,
973 Color = Color3.new(1, 1, 1),
974 ShowDescendants = false,
975 TeamColor = false,
976 ShowSelf = false,
977 ShowTeam = false,
978 Mode = "Shader",
979 Opacity = 1,
980 Arrow = false,
981 MaxDistance = 500,
982 }
983
984 --// Edits
985 Viewport.Size = UDim2.new(1, 0, 1, 0)
986 Viewport.BackgroundTransparency = 1
987 Viewport.CurrentCamera = workspace.CurrentCamera
988 Screen.IgnoreGuiInset = true
989
990 --// Functions
991 local function getParts(Model)
992 local parts = {}
993 local descendants = Model:GetDescendants()
994 local descendantsn = #descendants
995 for i = 1, descendantsn do
996 local desc = descendants[i]
997 if desc:IsA("BasePart") then
998 table.insert(parts, desc)
999 end
1000 end
1001 return parts
1002 end
1003
1004 local function getPart(Model)
1005 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
1006 end
1007
1008 function module:Clone(Object)
1009 local isArchivable = Object.Archivable
1010 local Clone
1011
1012 Object.Archivable = true
1013 Clone = Object:Clone()
1014 Object.Archivable = isArchivable
1015
1016 for _, child in pairs(Clone:GetDescendants()) do
1017 if child:IsA("Clothing") or child:IsA("Decal") or child:IsA("Script") or child:IsA("LocalScript") or child:IsA("Sound") then
1018 child:Destroy()
1019 elseif child:IsA("BasePart") then
1020 child.Color = Color3.new(1, 1, 1)
1021 child.Material = "ForceField"
1022 elseif child:IsA("Humanoid") then
1023 child.DisplayDistanceType = "None"
1024 elseif child:IsA("SpecialMesh") then
1025 child.TextureId = "rbxassetid://55054494"
1026 elseif child:IsA("MeshPart") then
1027 child.TextureID = "rbxassetid://55054494"
1028 end
1029 end
1030
1031 return Clone
1032 end
1033
1034 function module:Enable()
1035 module.Options.Enabled = true
1036 Screen.Parent = module.Options.Parent
1037
1038 module:ReloadCharacters()
1039 end
1040
1041 function module:Disable()
1042 module.Options.Enabled = false
1043 Screen.Parent = nil
1044 end
1045
1046 function module:ReloadCharacters()
1047 Viewport:ClearAllChildren()
1048 if module.Options.Mode ~= "Shader" then
1049 return
1050 end
1051 for player, character in pairs(characters) do
1052 local clone = module:Clone(character)
1053 clone.Name = player.Name
1054 clone.Parent = Viewport
1055 clones[player] = clone
1056 end
1057 end
1058
1059 local function newPlayer(player)
1060 if player.Character then
1061 characters[player] = player.Character
1062
1063 local clone = module:Clone(player.Character)
1064 clone.Name = player.Name
1065 clone.Parent = Viewport
1066 clones[player] = clone
1067 end
1068 player.CharacterAdded:Connect(function(char)
1069 if clones[player] then
1070 clones[player]:Destroy()
1071 clones[player] = nil
1072 end; if characters[player] then
1073 characters[player]:Destroy()
1074 characters[player] = nil
1075 end
1076
1077 characters[player] = char
1078
1079 local clone = module:Clone(char)
1080 clone.Name = player.Name
1081 clone.Parent = Viewport
1082 clones[player] = clone
1083 end)
1084 end
1085
1086 Players.PlayerAdded:Connect(newPlayer)
1087 Players.PlayerRemoving:Connect(function(player)
1088 if clones[player] then
1089 clones[player]:Destroy()
1090 clones[player] = nil
1091 end; if characters[player] then
1092 characters[player]:Destroy()
1093 characters[player] = nil
1094 end
1095 end)
1096 for _, player in pairs(Players:GetPlayers()) do
1097 newPlayer(player)
1098 end
1099
1100 RunService.RenderStepped:Connect(function()
1101 if module.Options.Enabled and module.Options.Mode == "Shader" then
1102 for player, character in pairs(characters) do
1103 local clone = clones[player]
1104 local target = getPart(clone)
1105 if target then
1106 if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
1107 if (player == Player and module.Options.ShowSelf) or player ~= Player then
1108 local parts = getParts(clone)
1109 for i = 1, #parts do
1110 local obj = parts[i]
1111 local cor = character:FindFirstChild(obj.Name, true)
1112 if character:FindFirstChild(obj.Parent.Name) then
1113 cor = character:FindFirstChild(obj.Parent.Name):FindFirstChild(obj.Name)
1114 end
1115
1116 if cor and obj then
1117 if module.Options.TeamColor then
1118 obj.Color = player.TeamColor.Color
1119 else
1120 obj.Color = Color3.new(1, 1, 1)
1121 end
1122 if module.Options.ShowDescendants then
1123 obj.CFrame = cor.CFrame
1124 elseif obj.Parent == clone then
1125 obj.CFrame = cor.CFrame
1126 else
1127 obj.CFrame = CFrame.new(10000, 10000, 10000)
1128 end
1129 end
1130 end
1131 if clone.Parent == nil then
1132 clone.Parent = Viewport
1133 end
1134 else
1135 clone.Parent = nil
1136 end
1137 else
1138 clone.Parent = nil
1139 end
1140 else
1141 clone.Parent = nil
1142 end
1143 end
1144 Viewport.ImageColor3 = module.Options.Color
1145 Viewport.ImageTransparency = 1 - module.Options.Opacity
1146 end
1147 end)
1148
1149 return module
1150end)()
1151local _ESP2D = (function()
1152 --// Variables
1153 local RunService = game:GetService("RunService")
1154 local Players = game:GetService("Players")
1155 local Player = Players.LocalPlayer
1156
1157 local module = {}
1158 local characters = {}
1159 local esp = {}
1160
1161 module.Options = {
1162 Enabled = false,
1163 Parent = script.Parent or game.CoreGui,
1164 Color = Color3.new(1, 1, 1),
1165 TeamColor = false,
1166 ShowSelf = false,
1167 ShowTeam = false,
1168 ShowDescendants = false,
1169 Opacity = 1,
1170 Mode = "Box",
1171 Arrow = false,
1172 MaxDistance = 500,
1173 }
1174
1175 --// Functions
1176 local function getParts(Model)
1177 local parts = {}
1178 local descendants = (module.Options.ShowDescendants and Model:GetDescendants()) or Model:GetChildren()
1179 local descendantsn = #descendants
1180 for i = 1, descendantsn do
1181 local desc = descendants[i]
1182 if desc:IsA("BasePart") then
1183 table.insert(parts, desc)
1184 end
1185 end
1186 return parts
1187 end
1188
1189 local function getPart(Model)
1190 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
1191 end
1192
1193 function module:Enable()
1194 module.Options.Enabled = true
1195 module:ReloadCharacters()
1196 end
1197
1198 function module:Disable()
1199 module.Options.Enabled = false
1200 end
1201
1202 function module:LoadCharacter(player, char)
1203 local boxes = {}
1204 if module.Options.Mode == "Default" then
1205 local parts = getParts(char)
1206 for i = 1, #parts do
1207 local part = parts[i]
1208 local adornment = Instance.new("BoxHandleAdornment", module.Options.Parent)
1209 adornment.Adornee = part
1210 adornment.AlwaysOnTop = true
1211 adornment.Color3 = module.Options.Color
1212 adornment.Size = part.Size
1213 adornment.ZIndex = 1
1214 adornment.Transparency = 1 - module.Options.Opacity
1215 if module.Options.TeamColor then
1216 adornment.Color3 = player.TeamColor.Color
1217 end
1218
1219 table.insert(boxes, adornment)
1220 end
1221
1222 local part = getPart(char)
1223 if module.Options.Arrow then
1224 local arrow = Instance.new("Handles", module.Options.Parent)
1225 arrow.Adornee = part
1226 arrow.Faces = Faces.new(Enum.NormalId.Front)
1227 arrow.Style = Enum.HandlesStyle.Movement
1228 arrow.Color3 = module.Options.Color
1229 if module.Options.TeamColor then
1230 arrow.Color3 = player.TeamColor.Color
1231 end
1232 table.insert(boxes, arrow)
1233 end
1234 elseif module.Options.Mode == "Box" then
1235 local part = getPart(char)
1236 local adornment = Instance.new("BoxHandleAdornment", module.Options.Parent)
1237 adornment.Adornee = part
1238 adornment.AlwaysOnTop = true
1239 adornment.Color3 = module.Options.Color
1240 adornment.Size = char:GetExtentsSize()
1241 adornment.ZIndex = 1
1242 adornment.Transparency = 1 - module.Options.Opacity
1243 if module.Options.TeamColor then
1244 adornment.Color3 = player.TeamColor.Color
1245 end
1246
1247 if module.Options.Arrow then
1248 local arrow = Instance.new("Handles", module.Options.Parent)
1249 arrow.Adornee = part
1250 arrow.Faces = Faces.new(Enum.NormalId.Front)
1251 arrow.Style = Enum.HandlesStyle.Movement
1252 arrow.Color3 = module.Options.Color
1253 if module.Options.TeamColor then
1254 arrow.Color3 = player.TeamColor.Color
1255 end
1256 table.insert(boxes, arrow)
1257 end
1258
1259 table.insert(boxes, adornment)
1260 elseif module.Options.Mode == "Square" then
1261 local part = getPart(char)
1262 local billboard = (function()
1263 local partsWithId = {}
1264 local awaitRef = {}
1265
1266 local root = {
1267 ID = 0,
1268 Type = "BillboardGui",
1269 Properties = {
1270 ClipsDescendants = true,
1271 LightInfluence = 1,
1272 Name = "B",
1273 ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
1274 StudsOffset = Vector3.new(0, -0.5, 0),
1275 Active = true,
1276 AlwaysOnTop = true,
1277 Size = UDim2.new(5, 0, 6, 0),
1278 },
1279 Children = {
1280 {
1281 ID = 1,
1282 Type = "Frame",
1283 Properties = {
1284 AnchorPoint = Vector2.new(0.5, 0.5),
1285 BackgroundTransparency = 0.5,
1286 Position = UDim2.new(0.5, 0, 0.5, 0),
1287 BorderColor3 = Color3.new(4 / 51, 4 / 51, 4 / 51),
1288 Size = UDim2.new(1, -4, 1, -4),
1289 BorderSizePixel = 2,
1290 BackgroundColor3 = Color3.new(1, 1, 1),
1291 },
1292 Children = {},
1293 },
1294 },
1295 };
1296
1297 local function Scan(item, parent)
1298 local obj = Instance.new(item.Type)
1299 if (item.ID) then
1300 local awaiting = awaitRef[item.ID]
1301 if (awaiting) then
1302 awaiting[1][awaiting[2]] = obj
1303 awaitRef[item.ID] = nil
1304 else
1305 partsWithId[item.ID] = obj
1306 end
1307 end
1308 for p, v in pairs(item.Properties) do
1309 if (type(v) == "string") then
1310 local id = tonumber(v:match("^_R:(%w+)_$"))
1311 if (id) then
1312 if (partsWithId[id]) then
1313 v = partsWithId[id]
1314 else
1315 awaitRef[id] = { obj, p }
1316 v = nil
1317 end
1318 end
1319 end
1320 obj[p] = v
1321 end
1322 for _, c in pairs(item.Children) do
1323 Scan(c, obj)
1324 end
1325 obj.Parent = parent
1326 return obj
1327 end
1328
1329 return function() return Scan(root, nil) end
1330 end)()()
1331 billboard.Parent = module.Options.Parent
1332 billboard.Adornee = part
1333 billboard.Frame.BackgroundColor3 = module.Options.Color
1334 billboard.Frame.Transparency = 1 - module.Options.Opacity
1335 if module.Options.TeamColor then
1336 billboard.Frame.Color3 = player.TeamColor.Color
1337 end
1338
1339 if module.Options.Arrow then
1340 local arrow = Instance.new("Handles", module.Options.Parent)
1341 arrow.Adornee = part
1342 arrow.Faces = Faces.new(Enum.NormalId.Front)
1343 arrow.Style = Enum.HandlesStyle.Movement
1344 arrow.Color3 = module.Options.Color
1345 if module.Options.TeamColor then
1346 arrow.Color3 = player.TeamColor.Color
1347 end
1348 table.insert(boxes, arrow)
1349 end
1350
1351 table.insert(boxes, billboard)
1352 end
1353 esp[player] = boxes
1354 end
1355
1356 function module:ReloadCharacters()
1357 for plr, tbl in pairs(esp) do
1358 for i, v in pairs(tbl) do
1359 v:Destroy()
1360 end
1361 esp[plr] = {}
1362 end
1363 if module.Options.Enabled then
1364 for player, character in pairs(characters) do
1365 local target = getPart(character)
1366 if target then
1367 if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and target and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
1368 if (player == Player and module.Options.ShowSelf) or player ~= Player then
1369 module:LoadCharacter(player, character)
1370 end
1371 end
1372 end
1373 end
1374 end
1375 end
1376
1377 local function newPlayer(player)
1378 if player.Character then
1379 characters[player] = player.Character
1380 module:LoadCharacter(player, player.Character)
1381 end
1382 player.CharacterAdded:Connect(function(char)
1383 if esp[player] then
1384 for i, v in pairs(esp[player]) do
1385 v:Destroy()
1386 end
1387 esp[player] = {}
1388 end
1389
1390 characters[player] = char
1391 module:LoadCharacter(player, player.Character)
1392 end)
1393 end
1394
1395 Players.PlayerAdded:Connect(newPlayer)
1396 Players.PlayerRemoving:Connect(function(player)
1397 if esp[player] then
1398 for i, v in pairs(esp[player]) do
1399 v:Destroy()
1400 end
1401 esp[player] = {}
1402 characters[player] = nil
1403 end
1404 end)
1405 for _, player in pairs(Players:GetPlayers()) do
1406 newPlayer(player)
1407 end
1408
1409 spawn(function()
1410 while wait(2) do
1411 module:ReloadCharacters()
1412 end
1413 end)
1414
1415 return module
1416end)()
1417local _Chams = (function()
1418 --// Variables
1419 local RunService = game:GetService("RunService")
1420 local Players = game:GetService("Players")
1421 local Player = Players.LocalPlayer
1422 local Screen = Instance.new("ScreenGui")
1423 local Viewport = Instance.new("ViewportFrame", Screen)
1424
1425 local module = {}
1426 local characters = {}
1427 local clones = {}
1428 local parts = {}
1429
1430 module.Options = {
1431 Enabled = false,
1432 Parent = script.Parent or game.CoreGui,
1433 Color = Color3.new(1, 1, 1),
1434 ShowDescendants = false,
1435 TeamColor = false,
1436 ShowSelf = false,
1437 ShowTeam = false,
1438 Mode = "Shader",
1439 Opacity = 1,
1440 MaxDistance = 500,
1441 }
1442
1443 --// Edits
1444 Viewport.Size = UDim2.new(1, 0, 1, 0)
1445 Viewport.BackgroundTransparency = 1
1446 Viewport.CurrentCamera = workspace.CurrentCamera
1447 Screen.IgnoreGuiInset = true
1448
1449 --// Functions
1450 local function getParts(Model)
1451 local parts = {}
1452 local descendants = Model:GetDescendants()
1453 local descendantsn = #descendants
1454 for i = 1, descendantsn do
1455 local desc = descendants[i]
1456 if desc:IsA("BasePart") then
1457 table.insert(parts, desc)
1458 end
1459 end
1460 return parts
1461 end
1462
1463 local function getPart(Model)
1464 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
1465 end
1466
1467 function module:Clone(Object)
1468 local isArchivable = Object.Archivable
1469 local Clone
1470
1471 Object.Archivable = true
1472 Clone = Object:Clone()
1473 Object.Archivable = isArchivable
1474
1475 if module.Options.Mode == "Shader" then
1476 Viewport.Ambient = Color3.fromRGB(200, 200, 200)
1477 else
1478 Viewport.Ambient = Color3.fromRGB(255, 255, 255)
1479 end
1480
1481 for _, child in pairs(Clone:GetDescendants()) do
1482 if child:IsA("Script") or child:IsA("LocalScript") or child:IsA("Sound") then
1483 child:Destroy()
1484 elseif child:IsA("Humanoid") then
1485 child.DisplayDistanceType = "None"
1486 elseif module.Options.Mode ~= "Shader" then
1487 if child:IsA("SpecialMesh") then
1488 child.TextureId = ""
1489 elseif child:IsA("MeshPart") then
1490 child.TextureID = ""
1491 elseif child:IsA("BasePart") then
1492 child.Color = Color3.new(1, 1, 1)
1493 child.Material = "Neon"
1494 elseif child:IsA("Clothing") or child:IsA("Decal") then
1495 child:Destroy()
1496 end
1497 end
1498 end
1499
1500 return Clone
1501 end
1502
1503 function module:Enable()
1504 module.Options.Enabled = true
1505 Screen.Parent = module.Options.Parent
1506
1507 module:ReloadCharacters()
1508 end
1509
1510 function module:Disable()
1511 module.Options.Enabled = false
1512 Screen.Parent = nil
1513 end
1514
1515 function module:ReloadCharacters()
1516 Viewport:ClearAllChildren()
1517 for player, character in pairs(characters) do
1518 local clone = module:Clone(character)
1519 clone.Name = player.Name
1520 clone.Parent = Viewport
1521 clones[player] = clone
1522 end
1523 end
1524
1525 local function newPlayer(player)
1526 if player.Character then
1527 characters[player] = player.Character
1528
1529 local clone = module:Clone(player.Character)
1530 clone.Name = player.Name
1531 clone.Parent = Viewport
1532 clones[player] = clone
1533 end
1534 player.CharacterAdded:Connect(function(char)
1535 if clones[player] then
1536 clones[player]:Destroy()
1537 clones[player] = nil
1538 end; if characters[player] then
1539 characters[player]:Destroy()
1540 characters[player] = nil
1541 end
1542
1543 characters[player] = char
1544
1545 local clone = module:Clone(char)
1546 clone.Name = player.Name
1547 clone.Parent = Viewport
1548 clones[player] = clone
1549 end)
1550 end
1551
1552 Players.PlayerAdded:Connect(newPlayer)
1553 Players.PlayerRemoving:Connect(function(player)
1554 if clones[player] then
1555 clones[player]:Destroy()
1556 clones[player] = nil
1557 end; if characters[player] then
1558 characters[player]:Destroy()
1559 characters[player] = nil
1560 end
1561 end)
1562 for _, player in pairs(Players:GetPlayers()) do
1563 newPlayer(player)
1564 end
1565
1566 RunService.RenderStepped:Connect(function()
1567 if module.Options.Enabled then
1568 for player, character in pairs(characters) do
1569 local clone = clones[player]
1570 local target = getPart(clone)
1571
1572 if target then
1573 if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and target and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
1574 if (player == Player and module.Options.ShowSelf) or player ~= Player then
1575 local parts = getParts(clone)
1576 for i = 1, #parts do
1577 local obj = parts[i]
1578 local cor = character:FindFirstChild(obj.Name, true)
1579 if character:FindFirstChild(obj.Parent.Name) then
1580 cor = character:FindFirstChild(obj.Parent.Name):FindFirstChild(obj.Name)
1581 end
1582
1583 if cor and obj then
1584 if module.Options.TeamColor then
1585 obj.Color = player.TeamColor.Color
1586 elseif module.Options.Mode ~= "Shader" then
1587 obj.Color = Color3.new(1, 1, 1)
1588 end
1589 if module.Options.ShowDescendants then
1590 obj.CFrame = cor.CFrame
1591 elseif obj.Parent == clone then
1592 obj.CFrame = cor.CFrame
1593 else
1594 obj.CFrame = CFrame.new(10000, 10000, 10000)
1595 end
1596 end
1597 end
1598 if clone.Parent == nil then
1599 clone.Parent = Viewport
1600 end
1601 else
1602 clone.Parent = nil
1603 end
1604 else
1605 clone.Parent = nil
1606 end
1607 else
1608 clone.Parent = nil
1609 end
1610 end
1611 Viewport.ImageColor3 = module.Options.Color
1612 Viewport.ImageTransparency = 1 - module.Options.Opacity
1613 end
1614 end)
1615
1616 return module
1617end)()
1618local _Tracers = (function()
1619 --// Variables
1620 local RunService = game:GetService("RunService")
1621 local Players = game:GetService("Players")
1622 local Player = Players.LocalPlayer
1623 local Screen = Instance.new("ScreenGui")
1624 local Camera = workspace.CurrentCamera
1625
1626 local module = {}
1627 local characters = {}
1628 local tracers = {}
1629
1630 module.Options = {
1631 Enabled = false,
1632 Parent = script.Parent or game.CoreGui,
1633 Color = Color3.new(1, 1, 1),
1634 TeamColor = false,
1635 ShowSelf = false,
1636 ShowTeam = false,
1637 Opacity = 1,
1638 Radius = 1,
1639 MaxDistance = 500,
1640 }
1641
1642 Screen.Parent = module.Options.Parent
1643 Screen.IgnoreGuiInset = true
1644
1645 --// Functions
1646 local function getParts(Model)
1647 local parts = {}
1648 local descendants = Model:GetDescendants()
1649 local descendantsn = #descendants
1650 for i = 1, descendantsn do
1651 local desc = descendants[i]
1652 if desc:IsA("BasePart") then
1653 table.insert(parts, desc)
1654 end
1655 end
1656 return parts
1657 end
1658
1659 local function getPart(Model)
1660 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
1661 end
1662
1663 function module:Enable()
1664 module.Options.Enabled = true
1665 module:ReloadCharacters()
1666 end
1667
1668 function module:Disable()
1669 module.Options.Enabled = false
1670 for plr, line in pairs(tracers) do
1671 if line then
1672 line[1]:Destroy()
1673 end
1674 tracers[plr] = nil
1675 end
1676 end
1677
1678 function module:LoadCharacter(player, char)
1679 local tracer = {}
1680 local target = getPart(char)
1681 if target then
1682 local line = Instance.new("Part", Screen)
1683 line.Transparency = 1
1684 line.Anchored = true
1685 line.CanCollide = false
1686
1687 local adornment = Instance.new("LineHandleAdornment", line)
1688 adornment.Name = "A"
1689 adornment.AlwaysOnTop = true
1690 adornment.ZIndex = 1
1691 adornment.Adornee = line
1692
1693 tracer[1] = line
1694 tracer[2] = target
1695 tracer[3] = player
1696 else
1697 return
1698 end
1699
1700 tracers[player] = tracer
1701 end
1702
1703 function module:ReloadCharacters()
1704 for plr, line in pairs(tracers) do
1705 if line then
1706 line[1]:Destroy()
1707 end
1708 tracers[plr] = nil
1709 end
1710 if module.Options.Enabled then
1711 for player, character in pairs(characters) do
1712 if (player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team then
1713 if (player == Player and module.Options.ShowSelf) or player ~= Player then
1714 module:LoadCharacter(player, character)
1715 end
1716 end
1717 end
1718 end
1719 end
1720
1721 local function newPlayer(player)
1722 if player.Character then
1723 characters[player] = player.Character
1724 module:LoadCharacter(player, player.Character)
1725 end
1726 player.CharacterAdded:Connect(function(char)
1727 if tracers[player] then
1728 tracers[player][1]:Destroy()
1729 tracers[player] = nil
1730 end
1731 char:WaitForChild("Humanoid")
1732 characters[player] = char
1733 module:LoadCharacter(player, player.Character)
1734 end)
1735 end
1736
1737 Players.PlayerAdded:Connect(newPlayer)
1738 Players.PlayerRemoving:Connect(function(player)
1739 if tracers[player] then
1740 if tracers[player] then
1741 tracers[player][1]:Destroy()
1742 tracers[player] = nil
1743 end
1744 characters[player] = nil
1745 end
1746 end)
1747 for _, player in pairs(Players:GetPlayers()) do
1748 newPlayer(player)
1749 end
1750
1751 local function divideUDim(udim, factor)
1752 return UDim2.new(udim.X.Scale / factor, udim.X.Offset / factor, udim.Y.Scale / factor, udim.Y.Offset / factor)
1753 end
1754
1755 RunService.RenderStepped:Connect(function()
1756 if module.Options.Enabled then
1757 for player, data in pairs(tracers) do
1758 local line, target = unpack(data)
1759 if (target and (player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and (target.Position - Camera.CFrame.p).Magnitude <= module.Options.MaxDistance then
1760 if (player == Player and module.Options.ShowSelf) or player ~= Player then
1761 if line.Parent ~= Screen then
1762 line.Parent = Screen
1763 end
1764
1765 local point1 = (Camera.CFrame * CFrame.new(0, 0, -0.5) - Vector3.new(0, 3, 0)).p
1766 local point2 = target.Position - Vector3.new(0, 3, 0)
1767
1768 local distance = point1 - point2
1769 local magnitude = distance.Magnitude
1770
1771 local c = module.Options.Color
1772
1773 line.CFrame = CFrame.new(point1, point2)
1774
1775 line.A.Thickness = module.Options.Radius
1776 line.A.Length = magnitude
1777 line.A.Color3 = Color3.new(c.r * 5, c.g * 5, c.b * 5)
1778 line.A.Transparency = 1 - module.Options.Opacity
1779 else
1780 line.Parent = nil
1781 end
1782 else
1783 line.Parent = nil
1784 end
1785 end
1786 end
1787 end)
1788
1789 spawn(function()
1790 while wait(2) do
1791 if module.Options.Enabled then
1792 module:ReloadCharacters()
1793 end
1794 end
1795 end)
1796
1797 return module
1798end)()
1799local _Aimbot = (function()
1800 --// Variables
1801 local RunService = game:GetService("RunService")
1802 local UserInputService = game:GetService("UserInputService")
1803 local Players = game:GetService("Players")
1804 local Player = Players.LocalPlayer
1805 local Mouse = Player:GetMouse()
1806 local Camera = workspace.CurrentCamera
1807
1808 local nearestCharacters = {}
1809 local module = {}
1810
1811 module.Options = {
1812 Easing = 2,
1813 Enabled = false,
1814 ShowTeams = false,
1815 MaxDistance = 500,
1816 Legit = false,
1817 AimPart = "Head",
1818 Onscreen = false,
1819 Visible = true,
1820 Mode = "Nearest",
1821 Radius = 250,
1822 }
1823
1824 --// Functions
1825 local function findPart(Model)
1826 return Model:FindFirstChild(module.Options.AimPart) or Model:FindFirstChild("HumanoidRootPart") or
1827 Model.PrimaryPart or Model:FindFirstChildWhichIsA("Part", true)
1828 end
1829
1830 local mousemoverel = (mousemoverel or (Input and Input.MouseMove)) or function() end
1831
1832 local function mouseMove(x, y, depth)
1833 local v1, v2 = Vector2.new(x, y), Vector2.new(Mouse.X, Mouse.Y)
1834 local viewCenter = Vector2.new(Mouse.ViewSizeX / 2, Mouse.ViewSizeY / 2)
1835
1836 if depth < 0 then
1837 local n = 1
1838 if (v1 - v2).X < 0 then
1839 n = -1
1840 end
1841 if math.abs(v1.X - v2.X) < Mouse.ViewSizeX * 1.5 then
1842 n = n / 2
1843 end
1844 v1 = v1 + Vector2.new(Mouse.ViewSizeX * n, 0)
1845 end
1846
1847 local diff = (v1 - v2) / module.Options.Easing
1848
1849 if module.Options.Legit then
1850 diff = diff.Unit * diff.Magnitude
1851 end
1852
1853 mousemoverel(diff.X, diff.Y)
1854 end
1855
1856 local function updateMouse(target)
1857 if not target then return end
1858 local posVector3 = Camera:WorldToScreenPoint(target.Position)
1859 local posVector2, distance = Vector2.new(posVector3.X, posVector3.Y), posVector3.Z
1860 mouseMove(posVector2.X, posVector2.Y, posVector3.Z)
1861 end
1862
1863 local function updateNearest()
1864 nearestCharacters = {}
1865 for _, player in pairs(Players:GetPlayers()) do
1866 if player ~= Player then
1867 if (player.Team == Player.Team and module.Options.ShowTeams) or player.Team ~= Player.Team then
1868 if player.Character then
1869 local part = findPart(player.Character)
1870 if part then --too many ifs
1871 local distance = (part.Position - Camera.CFrame.p).Magnitude
1872
1873 local a, onScreen = Camera:WorldToScreenPoint(part.Position)
1874 local obstructed = #Camera:GetPartsObscuringTarget({ part.Position },
1875 { player.Character, Player.Character }) > 0
1876
1877 if distance <= module.Options.MaxDistance then
1878 if (module.Options.Onscreen and onScreen) or not module.Options.Onscreen then
1879 if (module.Options.Visible and not obstructed) or not module.Options.Visible then
1880 table.insert(nearestCharacters, { tostring(distance), part, a.Z })
1881 end
1882 end
1883 end
1884 end
1885 end
1886 end
1887 end
1888 end
1889 end
1890
1891 local windowFocused = true
1892 RunService.RenderStepped:Connect(function()
1893 if module.Options.Enabled == false or not windowFocused then return end
1894 updateNearest()
1895
1896 local dist, nearestPart = 2048
1897
1898 table.sort(nearestCharacters, function(a, b)
1899 local D1, NP1 = unpack(a)
1900 local D2, NP2 = unpack(b)
1901 return tonumber(D1) < tonumber(D2)
1902 end)
1903
1904 if module.Options.Mode == "Nearest" then
1905 if nearestCharacters[1] then
1906 local D, NP = unpack(nearestCharacters[1])
1907 nearestPart = NP
1908 end
1909 else
1910 for i, v in pairs(nearestCharacters) do
1911 local D, NP, Depth = unpack(v)
1912
1913 local pV3 = Camera:WorldToScreenPoint(NP.Position)
1914 local v1, v2 = Vector2.new(pV3.X, pV3.Y), Vector2.new(Mouse.X, Mouse.Y)
1915
1916 if (v1 - v2).Magnitude <= module.Options.Radius and Depth >= 0 then
1917 nearestPart = NP
1918 break
1919 end
1920 end
1921 end
1922
1923 if nearestPart then
1924 updateMouse(nearestPart)
1925 end
1926 end)
1927
1928 UserInputService.WindowFocused:Connect(function()
1929 windowFocused = true
1930 end)
1931 UserInputService.WindowFocusReleased:Connect(function()
1932 windowFocused = false
1933 end)
1934
1935 return module
1936end)()
1937local _Flight = (function()
1938 --// Variables
1939 local RunService = game:GetService("RunService")
1940 local UserInputService = game:GetService("UserInputService")
1941 local Players = game:GetService("Players")
1942 local Player = Players.LocalPlayer
1943 local character = Player.Character
1944 local camera = workspace.CurrentCamera
1945
1946 local module = {}
1947 module.Options = {
1948 Speed = 5,
1949 Smoothness = 0.2,
1950 }
1951
1952 local lib, connections = {}, {}
1953 lib.connect = function(name, connection)
1954 connections[name .. tostring(math.random(1000000, 9999999))] = connection
1955 return connection
1956 end
1957 lib.disconnect = function(name)
1958 for title, connection in pairs(connections) do
1959 if title:find(name) == 1 then
1960 connection:Disconnect()
1961 end
1962 end
1963 end
1964
1965 --// Functions
1966 local flyPart
1967
1968 local function flyEnd()
1969 UserInputService = game:GetService("UserInputService")
1970 RunService = game:GetService("RunService")
1971 Players = game:GetService("Players")
1972 Player = Players.LocalPlayer
1973 character = Player.Character
1974
1975 lib.disconnect("fly")
1976 if flyPart then
1977 --flyPart:Destroy()
1978 end
1979 character:FindFirstChildWhichIsA("Humanoid").PlatformStand = false
1980 if character and character.Parent and flyPart then
1981 for _, part in pairs(character:GetDescendants()) do
1982 if part:IsA("BasePart") then
1983 part.Velocity = Vector3.new()
1984 end
1985 end
1986 end
1987 end
1988
1989 module.flyStart = function(enabled)
1990 UserInputService = game:GetService("UserInputService")
1991 RunService = game:GetService("RunService")
1992 Players = game:GetService("Players")
1993 Player = Players.LocalPlayer
1994 character = Player.Character
1995
1996 if not enabled then
1997 flyEnd()
1998 return
1999 end
2000 local dir = { w = false, a = false, s = false, d = false }
2001 local cf = Instance.new("CFrameValue")
2002
2003 flyPart = flyPart or Instance.new("Part")
2004 flyPart.Anchored = true
2005 pcall(function()
2006 flyPart.CFrame = character.HumanoidRootPart.CFrame
2007 end)
2008
2009 lib.connect("fly", RunService.Heartbeat:Connect(function()
2010 if not character or not character.Parent or not character:FindFirstChild("HumanoidRootPart") then return end
2011
2012 local primaryPart = character.HumanoidRootPart
2013 local humanoid = character:FindFirstChildWhichIsA("Humanoid")
2014 local speed = module.Options.Speed
2015
2016 local x, y, z = 0, 0, 0
2017 if dir.w then z = -1 * speed end
2018 if dir.a then x = -1 * speed end
2019 if dir.s then z = 1 * speed end
2020 if dir.d then x = 1 * speed end
2021 if dir.q then y = 1 * speed end
2022 if dir.e then y = -1 * speed end
2023
2024 flyPart.CFrame = CFrame.new(
2025 flyPart.CFrame.p,
2026 (camera.CFrame * CFrame.new(0, 0, -2048)).p
2027 )
2028
2029 for _, part in pairs(character:GetChildren()) do
2030 if part:IsA("BasePart") then
2031 part.Velocity = Vector3.new()
2032 end
2033 end
2034
2035 local moveDir = CFrame.new(x, y, z)
2036 cf.Value = cf.Value:lerp(moveDir, module.Options.Smoothness)
2037 flyPart.CFrame = flyPart.CFrame:lerp(flyPart.CFrame * cf.Value, module.Options.Smoothness)
2038 primaryPart.CFrame = flyPart.CFrame
2039 humanoid.PlatformStand = true
2040 end))
2041 lib.connect("fly", UserInputService.InputBegan:Connect(function(input, event)
2042 if event then return end
2043 local code, codes = input.KeyCode, Enum.KeyCode
2044 if code == codes.W then
2045 dir.w = true
2046 elseif code == codes.A then
2047 dir.a = true
2048 elseif code == codes.S then
2049 dir.s = true
2050 elseif code == codes.D then
2051 dir.d = true
2052 elseif code == codes.Q then
2053 dir.q = true
2054 elseif code == codes.E then
2055 dir.e = true
2056 elseif code == codes.Space then
2057 dir.q = true
2058 end
2059 end))
2060 lib.connect("fly", UserInputService.InputEnded:Connect(function(input, event)
2061 if event then return end
2062 local code, codes = input.KeyCode, Enum.KeyCode
2063 if code == codes.W then
2064 dir.w = false
2065 elseif code == codes.A then
2066 dir.a = false
2067 elseif code == codes.S then
2068 dir.s = false
2069 elseif code == codes.D then
2070 dir.d = false
2071 elseif code == codes.Q then
2072 dir.q = false
2073 elseif code == codes.E then
2074 dir.e = false
2075 elseif code == codes.Space then
2076 dir.q = false
2077 end
2078 end))
2079 end
2080
2081 --// Events
2082 Player.CharacterAdded:Connect(function(char)
2083 character = char
2084 end)
2085
2086 return module
2087end)()
2088local _Freecam = (function()
2089 --// Variables
2090 local RunService = game:GetService("RunService")
2091 local UserInputService = game:GetService("UserInputService")
2092 local Players = game:GetService("Players")
2093 local Player = Players.LocalPlayer
2094 local character = Player.Character
2095 local camera = workspace.CurrentCamera
2096
2097 local module = {}
2098 module.Options = {
2099 Speed = 5,
2100 Smoothness = 0.2,
2101 }
2102
2103 local lib, connections = {}, {}
2104 lib.connect = function(name, connection)
2105 connections[name .. tostring(math.random(1000000, 9999999))] = connection
2106 return connection
2107 end
2108 lib.disconnect = function(name)
2109 for title, connection in pairs(connections) do
2110 if title:find(name) == 1 then
2111 connection:Disconnect()
2112 end
2113 end
2114 end
2115
2116 --// Functions
2117 local flyPart
2118
2119 local function flyEnd()
2120 UserInputService = game:GetService("UserInputService")
2121 RunService = game:GetService("RunService")
2122 Players = game:GetService("Players")
2123 Player = Players.LocalPlayer
2124 character = Player.Character
2125
2126 lib.disconnect("freecam")
2127 camera.CameraSubject = character
2128 pcall(function()
2129 character.PrimaryPart.Anchored = false
2130 end)
2131 end
2132
2133 module.flyStart = function(enabled)
2134 UserInputService = game:GetService("UserInputService")
2135 RunService = game:GetService("RunService")
2136 Players = game:GetService("Players")
2137 Player = Players.LocalPlayer
2138 character = Player.Character
2139 if not enabled then
2140 flyEnd()
2141 return
2142 end
2143 local dir = { w = false, a = false, s = false, d = false }
2144 local cf = Instance.new("CFrameValue")
2145 local camPart = Instance.new("Part")
2146 camPart.Transparency = 1
2147 camPart.Anchored = true
2148 camPart.CFrame = camera.CFrame
2149 pcall(function()
2150 character.PrimaryPart.Anchored = true
2151 end)
2152
2153 lib.connect("freecam", RunService.RenderStepped:Connect(function()
2154 local primaryPart = camPart
2155 camera.CameraSubject = primaryPart
2156
2157 local speed = module.Options.Speed
2158
2159 local x, y, z = 0, 0, 0
2160 if dir.w then z = -1 * speed end
2161 if dir.a then x = -1 * speed end
2162 if dir.s then z = 1 * speed end
2163 if dir.d then x = 1 * speed end
2164 if dir.q then y = 1 * speed end
2165 if dir.e then y = -1 * speed end
2166
2167 primaryPart.CFrame = CFrame.new(
2168 primaryPart.CFrame.p,
2169 (camera.CFrame * CFrame.new(0, 0, -100)).p
2170 )
2171
2172 local moveDir = CFrame.new(x, y, z)
2173 cf.Value = cf.Value:lerp(moveDir, module.Options.Smoothness)
2174 primaryPart.CFrame = primaryPart.CFrame:lerp(primaryPart.CFrame * cf.Value, module.Options.Smoothness)
2175 end))
2176 lib.connect("freecam", UserInputService.InputBegan:Connect(function(input, event)
2177 if event then return end
2178 local code, codes = input.KeyCode, Enum.KeyCode
2179 if code == codes.W then
2180 dir.w = true
2181 elseif code == codes.A then
2182 dir.a = true
2183 elseif code == codes.S then
2184 dir.s = true
2185 elseif code == codes.D then
2186 dir.d = true
2187 elseif code == codes.Q then
2188 dir.q = true
2189 elseif code == codes.E then
2190 dir.e = true
2191 elseif code == codes.Space then
2192 dir.q = true
2193 end
2194 end))
2195 lib.connect("freecam", UserInputService.InputEnded:Connect(function(input, event)
2196 if event then return end
2197 local code, codes = input.KeyCode, Enum.KeyCode
2198 if code == codes.W then
2199 dir.w = false
2200 elseif code == codes.A then
2201 dir.a = false
2202 elseif code == codes.S then
2203 dir.s = false
2204 elseif code == codes.D then
2205 dir.d = false
2206 elseif code == codes.Q then
2207 dir.q = false
2208 elseif code == codes.E then
2209 dir.e = false
2210 elseif code == codes.Space then
2211 dir.q = false
2212 end
2213 end))
2214 end
2215
2216 --// Events
2217 Player.CharacterAdded:Connect(function(char)
2218 character = char
2219 end)
2220
2221 return module
2222end)()
2223local _Rubberbanding = (function()
2224 --// Variables
2225 local RunService = game:GetService("RunService")
2226 local Players = game:GetService("Players")
2227 local Player = Players.LocalPlayer
2228 local Character = Player.Character
2229
2230 local module = {}
2231 module.Options = {
2232 Enabled = false,
2233 Threshold = 150,
2234 UpdateSpeed = 100,
2235 }
2236
2237 local connections = {}
2238
2239 --// Functions
2240 local function getPart(Model)
2241 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
2242 end
2243
2244 local function connectPart(Part)
2245 local lastPosition = CFrame.new()
2246 local lastVelocity = Vector3.new()
2247 local lastRender = tick()
2248
2249 connections[#connections + 1] = RunService.RenderStepped:Connect(function()
2250 if not module.Options.Enabled then return end
2251
2252 if Part and (tick() - lastRender >= module.Options.UpdateSpeed / 1000) then
2253 if (lastVelocity - Part.Velocity).Magnitude > module.Options.Threshold and Part.Velocity.Magnitude > lastVelocity.Magnitude then
2254 Part.Velocity = lastVelocity
2255 Part.CFrame = lastPosition
2256 end
2257
2258 lastPosition = Part.CFrame
2259 lastVelocity = Part.Velocity
2260 lastRender = tick()
2261 end
2262 end)
2263 end
2264
2265 local function onCharacter(char)
2266 Character = char
2267 for i, v in pairs(connections) do
2268 v:Disconnect()
2269 connections[i] = nil
2270 end
2271 for _, part in pairs(char:GetChildren()) do
2272 if part.Name == "HumanoidRootPart" then
2273 connectPart(part)
2274 end
2275 end
2276 connections[#connections + 1] = Character.ChildAdded:Connect(function(child)
2277 if child.Name == "HumanoidRootPart" then
2278 connectPart(child)
2279 end
2280 end)
2281 end
2282
2283
2284 module.Toggle = function(enabled)
2285 RunService = game:GetService("RunService")
2286 Players = game:GetService("Players")
2287 Player = Players.LocalPlayer
2288 Character = Player.Character
2289 module.Options.Enabled = enabled
2290 for i, v in pairs(connections) do
2291 v:Disconnect()
2292 connections[i] = nil
2293 end
2294 if enabled and Character then
2295 onCharacter(Character)
2296 end
2297 end
2298
2299 --// Events
2300 Player.CharacterAdded:Connect(function(char)
2301 onCharacter(char)
2302 end)
2303
2304 if Character then
2305 onCharacter(Character)
2306 end
2307
2308 return module
2309end)()
2310local _AntiTP = (function()
2311 --// Variables
2312 local RunService = game:GetService("RunService")
2313 local Players = game:GetService("Players")
2314 local Player = Players.LocalPlayer
2315 local Character = Player.Character
2316
2317 local module = {}
2318 module.Options = {
2319 Enabled = false,
2320 Threshold = 150,
2321 UpdateSpeed = 100,
2322 }
2323
2324 local connections = {}
2325
2326 --// Functions
2327 local function getPart(Model)
2328 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
2329 end
2330
2331 local function connectPart(Part)
2332 local lastPosition = Part.CFrame
2333 local lastRender = tick()
2334
2335 connections[#connections + 1] = RunService.RenderStepped:Connect(function()
2336 if not module.Options.Enabled then return end
2337
2338 if Part and (tick() - lastRender >= module.Options.UpdateSpeed / 1000) then
2339 if (lastPosition.p - Part.Position).Magnitude > module.Options.Threshold then
2340 Part.CFrame = lastPosition
2341 Part.Velocity = Vector3.new(0, 0, 0)
2342 end
2343
2344 lastPosition = Part.CFrame
2345 lastRender = tick()
2346 end
2347 end)
2348 end
2349
2350 local function onCharacter(char)
2351 Character = char
2352 for i, v in pairs(connections) do
2353 v:Disconnect()
2354 connections[i] = nil
2355 end
2356 for _, part in pairs(char:GetChildren()) do
2357 if part.Name == "HumanoidRootPart" then
2358 connectPart(part)
2359 end
2360 end
2361 connections[#connections + 1] = Character.ChildAdded:Connect(function(child)
2362 if child.Name == "HumanoidRootPart" then
2363 connectPart(child)
2364 end
2365 end)
2366 end
2367
2368 module.Toggle = function(enabled)
2369 RunService = game:GetService("RunService")
2370 Players = game:GetService("Players")
2371 Player = Players.LocalPlayer
2372 Character = Player.Character
2373 module.Options.Enabled = enabled
2374 for i, v in pairs(connections) do
2375 v:Disconnect()
2376 connections[i] = nil
2377 end
2378 if enabled and Character then
2379 onCharacter(Character)
2380 end
2381 end
2382
2383 --// Events
2384 Player.CharacterAdded:Connect(function(char)
2385 onCharacter(char)
2386 end)
2387
2388 if Character then
2389 onCharacter(Character)
2390 end
2391
2392 return module
2393end)()
2394local _Noclip = (function()
2395 --// Variables
2396 local RunService = game:GetService("RunService")
2397 local Players = game:GetService("Players")
2398 local Player = Players.LocalPlayer
2399 local Character = Player.Character
2400
2401 local module = {}
2402 module.Options = {
2403 Enabled = false,
2404 }
2405
2406 local connections = {}
2407
2408 --// Functions
2409 local function getPart(Model)
2410 return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
2411 end
2412
2413 local function connectModel(Model)
2414 connections[#connections + 1] = RunService.Stepped:Connect(function()
2415 if not module.Options.Enabled then return end
2416 for _, part in pairs(Model:GetDescendants()) do
2417 if part:IsA("BasePart") then
2418 part.CanCollide = false
2419 end
2420 end
2421 end)
2422 end
2423
2424 module.Toggle = function(enabled)
2425 RunService = game:GetService("RunService")
2426 Players = game:GetService("Players")
2427 Player = Players.LocalPlayer
2428 Character = Player.Character
2429
2430 module.Options.Enabled = enabled
2431 for i, v in pairs(connections) do
2432 v:Disconnect()
2433 connections[i] = nil
2434 end
2435 if enabled and Character then
2436 onCharacter(Character)
2437 end
2438 end
2439
2440 function onCharacter(char)
2441 for i, v in pairs(connections) do
2442 v:Disconnect()
2443 connections[i] = nil
2444 end
2445 Character = char
2446 connectModel(char)
2447 end
2448
2449 --// Events
2450 Player.CharacterAdded:Connect(function(char)
2451 onCharacter(char)
2452 end)
2453
2454 if Character then
2455 onCharacter(Character)
2456 end
2457
2458 return module
2459end)()
2460
2461local _Fullbright = (function()
2462 --// Variables
2463 local RunService = game:GetService("RunService")
2464 local Players = game:GetService("Players")
2465 local Player = Players.LocalPlayer
2466 local Character = Player.Character
2467 local OnStartup = true
2468
2469 local module = {}
2470 module.Options = {
2471 Enabled = false,
2472 }
2473
2474 local connections = {}
2475
2476 module.Toggle = function(enabled)
2477 if OnStartup then
2478 OnStartup = false
2479 return
2480 end
2481 if not _G.FullBrightExecuted then
2482 _G.NormalLightingSettings = {
2483 Brightness = game:GetService("Lighting").Brightness,
2484 ClockTime = game:GetService("Lighting").ClockTime,
2485 FogEnd = game:GetService("Lighting").FogEnd,
2486 GlobalShadows = game:GetService("Lighting").GlobalShadows,
2487 Ambient = game:GetService("Lighting").Ambient
2488 }
2489
2490 game:GetService("Lighting"):GetPropertyChangedSignal("Brightness"):Connect(function()
2491 if game:GetService("Lighting").Brightness ~= 1 and game:GetService("Lighting").Brightness ~= _G.NormalLightingSettings.Brightness then
2492 _G.NormalLightingSettings.Brightness = game:GetService("Lighting").Brightness
2493 if not _G.FullBrightEnabled then
2494 repeat
2495 wait()
2496 until _G.FullBrightEnabled
2497 end
2498 game:GetService("Lighting").Brightness = 1
2499 end
2500 end)
2501
2502 game:GetService("Lighting"):GetPropertyChangedSignal("ClockTime"):Connect(function()
2503 if game:GetService("Lighting").ClockTime ~= 12 and game:GetService("Lighting").ClockTime ~= _G.NormalLightingSettings.ClockTime then
2504 _G.NormalLightingSettings.ClockTime = game:GetService("Lighting").ClockTime
2505 if not _G.FullBrightEnabled then
2506 repeat
2507 wait()
2508 until _G.FullBrightEnabled
2509 end
2510 game:GetService("Lighting").ClockTime = 12
2511 end
2512 end)
2513
2514 game:GetService("Lighting"):GetPropertyChangedSignal("FogEnd"):Connect(function()
2515 if game:GetService("Lighting").FogEnd ~= 786543 and game:GetService("Lighting").FogEnd ~= _G.NormalLightingSettings.FogEnd then
2516 _G.NormalLightingSettings.FogEnd = game:GetService("Lighting").FogEnd
2517 if not _G.FullBrightEnabled then
2518 repeat
2519 wait()
2520 until _G.FullBrightEnabled
2521 end
2522 game:GetService("Lighting").FogEnd = 786543
2523 end
2524 end)
2525
2526 game:GetService("Lighting"):GetPropertyChangedSignal("GlobalShadows"):Connect(function()
2527 if game:GetService("Lighting").GlobalShadows ~= false and game:GetService("Lighting").GlobalShadows ~= _G.NormalLightingSettings.GlobalShadows then
2528 _G.NormalLightingSettings.GlobalShadows = game:GetService("Lighting").GlobalShadows
2529 if not _G.FullBrightEnabled then
2530 repeat
2531 wait()
2532 until _G.FullBrightEnabled
2533 end
2534 game:GetService("Lighting").GlobalShadows = false
2535 end
2536 end)
2537
2538 game:GetService("Lighting"):GetPropertyChangedSignal("Ambient"):Connect(function()
2539 if game:GetService("Lighting").Ambient ~= Color3.fromRGB(178, 178, 178) and game:GetService("Lighting").Ambient ~= _G.NormalLightingSettings.Ambient then
2540 _G.NormalLightingSettings.Ambient = game:GetService("Lighting").Ambient
2541 if not _G.FullBrightEnabled then
2542 repeat
2543 wait()
2544 until _G.FullBrightEnabled
2545 end
2546 game:GetService("Lighting").Ambient = Color3.fromRGB(178, 178, 178)
2547 end
2548 end)
2549
2550 game:GetService("Lighting").Brightness = 1
2551 game:GetService("Lighting").ClockTime = 12
2552 game:GetService("Lighting").FogEnd = 786543
2553 game:GetService("Lighting").GlobalShadows = false
2554 game:GetService("Lighting").Ambient = Color3.fromRGB(178, 178, 178)
2555
2556 local LatestValue = true
2557 spawn(function()
2558 repeat
2559 wait()
2560 until _G.FullBrightEnabled
2561 while wait() do
2562 if _G.FullBrightEnabled ~= LatestValue then
2563 if not _G.FullBrightEnabled then
2564 game:GetService("Lighting").Brightness = _G.NormalLightingSettings.Brightness
2565 game:GetService("Lighting").ClockTime = _G.NormalLightingSettings.ClockTime
2566 game:GetService("Lighting").FogEnd = _G.NormalLightingSettings.FogEnd
2567 game:GetService("Lighting").GlobalShadows = _G.NormalLightingSettings.GlobalShadows
2568 game:GetService("Lighting").Ambient = _G.NormalLightingSettings.Ambient
2569 else
2570 game:GetService("Lighting").Brightness = 1
2571 game:GetService("Lighting").ClockTime = 12
2572 game:GetService("Lighting").FogEnd = 786543
2573 game:GetService("Lighting").GlobalShadows = false
2574 game:GetService("Lighting").Ambient = Color3.fromRGB(178, 178, 178)
2575 end
2576 LatestValue = not LatestValue
2577 end
2578 end
2579 end)
2580 end
2581
2582 _G.FullBrightExecuted = true
2583 _G.FullBrightEnabled = enabled
2584 end
2585
2586 return module
2587end)()
2588
2589local _Spin = (function()
2590 --// Variables
2591 local RunService = game:GetService("RunService")
2592 local Players = game:GetService("Players")
2593 local Player = Players.LocalPlayer
2594 local Character = Player.Character
2595
2596 local module = {}
2597 module.Options = {
2598 Enabled = false,
2599 Speed = 100
2600 }
2601
2602 module.Toggle = function(enabled)
2603 module.Options.Enabled = enabled
2604 Character:FindFirstChild("Humanoid").AutoRotate = not (enabled)
2605 if enabled then
2606 repeat
2607 Character.HumanoidRootPart.CFrame *= CFrame.Angles(0, math.rad(module.Options.Speed / 2), 0)
2608 wait(.005)
2609 until module.Options.Enabled == false
2610 end
2611 end
2612
2613 return module
2614end)()
2615
2616--[[
2617local _Ghost = (function()
2618 --// Variables
2619 local RunService = game:GetService("RunService")
2620 local Players = game:GetService("Players")
2621 local Player = Players.MICR0TECH
2622 local Character = Player.Character
2623
2624 local module = {}
2625 module.Options = {
2626 Enabled = false,
2627 Amount = 0
2628 }
2629
2630 module.Toggle = function(enabled)
2631 module.Options.Enabled = enabled
2632 local num = 0
2633 if enabled then
2634 num = 1
2635 end
2636 for i, part in ipairs(Character:GetDescendants()) do
2637 if (part:IsA("BasePart") or part:IsA("Decal")) and part.Name ~= "HumanoidRootPart" then
2638 part.Transparency = num - module.Options.Amount
2639 end
2640 end
2641 end
2642
2643 return module
2644
2645end)()
2646
2647local _Scale = (function()
2648 --// Variables
2649 local RunService = game:GetService("RunService")
2650 local Players = game:GetService("Players")
2651 local Player = Players.LocalPlayer
2652 local Character = Player.Character
2653
2654 local module = {}
2655 module.Options = {
2656 Enabled = false,
2657 Amount = 0
2658 }
2659
2660 module.Toggle = function(enabled)
2661 module.Options.Enabled = enabled
2662 if enabled then
2663 local newScale = module.Options.Amount
2664 local changeBy = newScale - Character:GetScale()
2665 local incr = 1
2666 if changeBy < 0 then
2667 incr = -1
2668 end
2669 for i = 0, (changeBy * 10) - incr, incr do
2670 if not(module.Options.Enabled) or not(newScale == module.Options.Amount) then
2671 break
2672 end
2673 Character:ScaleTo(Character:GetScale() + (incr / 10))
2674 wait(0.05)
2675 end
2676 elseif not(Character:GetScale() == 1) then
2677 local changeBy = 1 - Character:GetScale()
2678 local incr = 1
2679 if changeBy < 0 then
2680 incr = -1
2681 end
2682 for i = 0, (changeBy * 10) - incr, incr do
2683 if module.Options.Enabled then
2684 break
2685 end
2686 Character:ScaleTo(Character:GetScale() + (incr / 10))
2687 if incr == 1 then
2688 wait(0.15)
2689 end
2690 wait(0.05)
2691 end
2692 end
2693 end
2694
2695 return module
2696
2697end)()
2698]]
2699
2700--// Variables
2701local RunService = game:GetService("RunService")
2702local HttpService = game:GetService("HttpService")
2703local UserInputService = game:GetService("UserInputService")
2704local Players = game:GetService("Players")
2705local Player = Players.LocalPlayer
2706local Mouse = Player:GetMouse()
2707
2708local gui = GUIData[1]
2709local saveData = GUIData[2]
2710local screenGui = GUIData[3]
2711
2712local screenscale = 250
2713local opacity = 1
2714local backcolor = Color3.new()
2715
2716--// Saving
2717local readfile = readfile or function() end
2718pcall(function()
2719 local JSONData = readfile("OpenGui.txt")
2720 if JSONData then
2721 local LUAData = HttpService:JSONDecode(JSONData)
2722 saveData.Options = LUAData.Options
2723 saveData.Hotkeys = LUAData.Hotkeys
2724 print("Save Data found")
2725 else
2726 print("Save Data not found")
2727 end
2728end)
2729
2730
2731--// UI Creation
2732
2733--// Render Frame
2734local Render = gui:create("Container", {
2735 Name = "Render",
2736}) --|
2737local OpenGui = Render.self:create("Toggle", {
2738 Name = "OpenGui",
2739 Default = true,
2740 Hotkey = tostring(Enum.KeyCode.RightControl),
2741 Hint = "The navigation GUI",
2742 Callback = function(enabled)
2743 for _, frame in pairs(screenGui:GetChildren()) do
2744 if frame:IsA("Frame") then
2745 frame.Visible = enabled
2746 end
2747 end
2748 screenGui.Modal.Visible = enabled
2749 screenGui.Hint.Visible = false
2750 end,
2751}) --|
2752local Opacity = OpenGui.self:create("Number", {
2753 Name = "Opacity",
2754 Min = 0,
2755 Max = 1,
2756 Round = 0.01,
2757 Default = 0.75,
2758 Hint = "Transparency of the navigation GUI",
2759 Callback = function(alpha)
2760 opacity = 1 - alpha
2761 for _, frame in pairs(screenGui:GetChildren()) do
2762 if frame:IsA("Frame") then
2763 frame.BackgroundTransparency = 1 - alpha
2764 frame.OptionsFrame.BackgroundTransparency = 1 - alpha
2765 end
2766 end
2767 end,
2768})
2769local Width = OpenGui.self:create("Number", {
2770 Name = "Width",
2771 Min = 200,
2772 Max = 300,
2773 Round = 1,
2774 Default = 250,
2775 Hint = "Width of the navigation GUI",
2776 Callback = function(scale)
2777 screenscale = scale
2778 for _, frame in pairs(screenGui:GetChildren()) do
2779 if frame:IsA("Frame") then
2780 frame.Size = UDim2.new(0, scale, 0, frame.Size.Y.Offset)
2781 end
2782 end
2783 end,
2784})
2785local Color = OpenGui.self:create("Color", {
2786 Name = "Background Color",
2787 Default = Color3.fromRGB(40, 40, 40),
2788 Hint = "Background color of the navigation GUI",
2789 Callback = function(color)
2790 backcolor = color
2791 for _, frame in pairs(screenGui:GetChildren()) do
2792 if frame:IsA("Frame") then
2793 frame.BackgroundColor3 = color
2794 frame.OptionsFrame.BackgroundColor3 = color
2795 end
2796 end
2797 end,
2798})
2799local ESP = Render.self:create("Toggle", {
2800 Name = "ESP",
2801 Default = false,
2802 Hint = "Toggle player ESP",
2803 Callback = function(enabled)
2804 _ESP.Options.Enabled = enabled
2805 if enabled then
2806 _ESP:Enable()
2807 _ESP2D:Enable()
2808 else
2809 _ESP:Disable()
2810 _ESP2D:Disable()
2811 end
2812 _ESP2D:ReloadCharacters()
2813 end,
2814}) --|
2815local ESPColor = ESP.self:create("Color", {
2816 Name = "ESP Color",
2817 Default = Color3.new(1, 1, 1),
2818 Hint = "Color of the player ESP",
2819 Callback = function(color)
2820 _ESP.Options.Color = color
2821 _ESP2D.Options.Color = color
2822 _ESP2D:ReloadCharacters()
2823 end,
2824})
2825local ESPShowTeam = ESP.self:create("Checkbox", {
2826 Name = "Show Team",
2827 Default = false,
2828 Hint = "Players on your team are highlighted",
2829 Callback = function(enabled)
2830 _ESP.Options.ShowTeam = enabled
2831 _ESP2D.Options.ShowTeam = enabled
2832 _ESP2D:ReloadCharacters()
2833 end,
2834})
2835local ESPShowSelf = ESP.self:create("Checkbox", {
2836 Name = "Show Self",
2837 Default = false,
2838 Hint = "Include yourself in the ESP",
2839 Callback = function(enabled)
2840 _ESP.Options.ShowSelf = enabled
2841 _ESP2D.Options.ShowSelf = enabled
2842 _ESP2D:ReloadCharacters()
2843 end,
2844})
2845local ESPTeamColor = ESP.self:create("Checkbox", {
2846 Name = "Team Color",
2847 Default = false,
2848 Hint = "The ESP's color corresponds to the player's team",
2849 Callback = function(enabled)
2850 _ESP.Options.TeamColor = enabled
2851 _ESP2D.Options.TeamColor = enabled
2852 _ESP2D:ReloadCharacters()
2853 end,
2854})
2855local ESPShowDescendants = ESP.self:create("Checkbox", {
2856 Name = "Show Descendants",
2857 Default = false,
2858 Hint = "Highlight items like accessories",
2859 Callback = function(enabled)
2860 _ESP.Options.ShowDescendants = enabled
2861 _ESP2D.Options.ShowDescendants = enabled
2862 _ESP2D:ReloadCharacters()
2863 end,
2864})
2865local ESPDirection = ESP.self:create("Checkbox", {
2866 Name = "Show Direction",
2867 Default = false,
2868 Hint = "Show where the player is facing",
2869 Callback = function(enabled)
2870 _ESP.Options.Arrow = enabled
2871 _ESP2D.Options.Arrow = enabled
2872 _ESP2D:ReloadCharacters()
2873 end,
2874})
2875local ESPOpacity = ESP.self:create("Number", {
2876 Name = "Opacity",
2877 Default = 0.5,
2878 Min = 0,
2879 Max = 1,
2880 Round = 0.01,
2881 Hint = "Visibility of the ESP",
2882 Callback = function(opacity)
2883 _ESP.Options.Opacity = opacity
2884 _ESP2D.Options.Opacity = opacity
2885 _ESP2D:ReloadCharacters()
2886 end,
2887})
2888local ESPMaxDistance = ESP.self:create("Number", {
2889 Name = "Max Distance",
2890 Default = 500,
2891 Min = 32,
2892 Max = 2048,
2893 Round = 0.5,
2894 Hint = "The maximum distance of the ESP",
2895 Callback = function(distance)
2896 _ESP.Options.MaxDistance = distance
2897 _ESP2D.Options.MaxDistance = distance
2898 _ESP2D:ReloadCharacters()
2899 end,
2900})
2901local ESPMode = ESP.self:create("Mode", {
2902 Name = "ESP Mode",
2903 Default = 1,
2904 Modes = { "Shader", "Default", "Box", "Square" },
2905 Hint = "The type of ESP used",
2906 Callback = function(mode)
2907 _ESP.Options.Mode = mode
2908 _ESP2D.Options.Mode = mode
2909 _ESP:ReloadCharacters()
2910 _ESP2D:ReloadCharacters()
2911 end,
2912})
2913local Chams = Render.self:create("Toggle", {
2914 Name = "Chams",
2915 Default = false,
2916 Hint = "Render players through walls",
2917 Callback = function(enabled)
2918 _Chams.Options.Enabled = enabled
2919 if enabled then
2920 _Chams:Enable()
2921 else
2922 _Chams:Disable()
2923 end
2924 end,
2925}) --|
2926local ChamsColor = Chams.self:create("Color", {
2927 Name = "Chams Color",
2928 Default = Color3.new(1, 1, 1),
2929 Hint = "Color of the player chams",
2930 Callback = function(color)
2931 _Chams.Options.Color = color
2932 end,
2933})
2934local ChamsShowTeam = Chams.self:create("Checkbox", {
2935 Name = "Show Team",
2936 Default = false,
2937 Hint = "Include your teammates",
2938 Callback = function(enabled)
2939 _Chams.Options.ShowTeam = enabled
2940 end,
2941})
2942local ChamsShowSelf = Chams.self:create("Checkbox", {
2943 Name = "Show Self",
2944 Default = false,
2945 Hint = "Include yourself",
2946 Callback = function(enabled)
2947 _Chams.Options.ShowSelf = enabled
2948 end,
2949})
2950local ChamsTeamColor = Chams.self:create("Checkbox", {
2951 Name = "Team Color",
2952 Default = false,
2953 Hint = "The chams color corresponds to the player's team",
2954 Callback = function(enabled)
2955 _Chams.Options.TeamColor = enabled
2956 end,
2957})
2958local ChamsShowDescendants = Chams.self:create("Checkbox", {
2959 Name = "Show Descendants",
2960 Default = false,
2961 Hint = "Highlight items like accessories",
2962 Callback = function(enabled)
2963 _Chams.Options.ShowDescendants = enabled
2964 end,
2965})
2966local ChamsMode = Chams.self:create("Mode", {
2967 Name = "Chams Mode",
2968 Default = 1,
2969 Modes = { "Opaque", "Shader" },
2970 Hint = "The type of chams used",
2971 Callback = function(mode)
2972 _Chams.Options.Mode = mode
2973 _Chams:ReloadCharacters()
2974 end,
2975})
2976local ChamsOpacity = Chams.self:create("Number", {
2977 Name = "Opacity",
2978 Default = 0.5,
2979 Min = 0,
2980 Max = 1,
2981 Round = 0.01,
2982 Hint = "Visibility of the chams",
2983 Callback = function(opacity)
2984 _Chams.Options.Opacity = opacity
2985 end,
2986})
2987local ChamsMaxDistance = Chams.self:create("Number", {
2988 Name = "Max Distance",
2989 Default = 500,
2990 Min = 32,
2991 Max = 2048,
2992 Round = 0.5,
2993 Hint = "The chams' maximum distance",
2994 Callback = function(distance)
2995 _Chams.Options.MaxDistance = distance
2996 end,
2997})
2998local Tracers = Render.self:create("Toggle", {
2999 Name = "Tracers",
3000 Default = false,
3001 Hint = "Draw lines to other players",
3002 Callback = function(enabled)
3003 _Tracers.Options.Enabled = enabled
3004 if enabled then
3005 _Tracers:Enable()
3006 else
3007 _Tracers:Disable()
3008 end
3009 end,
3010}) --|
3011local TracersColor = Tracers.self:create("Color", {
3012 Name = "Tracers Color",
3013 Default = Color3.new(1, 1, 1),
3014 Hint = "Color of the tracers",
3015 Callback = function(color)
3016 _Tracers.Options.Color = color
3017 end,
3018})
3019local TracersShowTeam = Tracers.self:create("Checkbox", {
3020 Name = "Show Team",
3021 Default = false,
3022 Hint = "Include your teammates",
3023 Callback = function(enabled)
3024 _Tracers.Options.ShowTeam = enabled
3025 _Tracers:ReloadCharacters()
3026 end,
3027})
3028local TracersShowSelf = Tracers.self:create("Checkbox", {
3029 Name = "Show Self",
3030 Default = false,
3031 Hint = "Include yourself",
3032 Callback = function(enabled)
3033 _Tracers.Options.ShowSelf = enabled
3034 _Tracers:ReloadCharacters()
3035 end,
3036})
3037local TracersTeamColor = Tracers.self:create("Checkbox", {
3038 Name = "Team Color",
3039 Default = false,
3040 Hint = "Tracer colors correspond to the player's team",
3041 Callback = function(enabled)
3042 _Tracers.Options.TeamColor = enabled
3043 end,
3044})
3045local TracersOpacity = Tracers.self:create("Number", {
3046 Name = "Opacity",
3047 Default = 1,
3048 Min = 0,
3049 Max = 1,
3050 Round = 0.01,
3051 Hint = "Visibility of the tracers",
3052 Callback = function(opacity)
3053 _Tracers.Options.Opacity = opacity
3054 end,
3055})
3056local TracersMaxDistance = Tracers.self:create("Number", {
3057 Name = "Max Distance",
3058 Default = 500,
3059 Min = 32,
3060 Max = 2048,
3061 Round = 0.5,
3062 Hint = "The maximum distance in which tracers are drawn",
3063 Callback = function(distance)
3064 _Tracers.Options.MaxDistance = distance
3065 end,
3066})
3067local TracersWidth = Tracers.self:create("Number", {
3068 Name = "Width",
3069 Default = 2,
3070 Min = 1,
3071 Max = 10,
3072 Round = 1,
3073 Hint = "Width of the tracers",
3074 Callback = function(value)
3075 _Tracers.Options.Radius = value
3076 end,
3077})
3078local Freecam = Render.self:create("Toggle", {
3079 Name = "Freecam",
3080 Default = false,
3081 Hint = "Move your camera freely",
3082 Callback = function(enabled)
3083 _Freecam.flyStart(enabled)
3084 end,
3085}) --|
3086local FreecamSpeed = Freecam.self:create("Number", {
3087 Name = "Speed",
3088 Default = 5,
3089 Min = 0.1,
3090 Max = 100,
3091 Round = 0.1,
3092 Hint = "Camera speed",
3093 Callback = function(value)
3094 _Freecam.Options.Speed = value
3095 end,
3096})
3097local FreecamSpeed = Freecam.self:create("Number", {
3098 Name = "Smoothness",
3099 Default = 0.2,
3100 Min = 0.1,
3101 Max = 1,
3102 Round = 0.01,
3103 Hint = "Smoothness of the interpolation",
3104 Callback = function(value)
3105 _Freecam.Options.Smoothness = value
3106 end,
3107})
3108local Fullbright = Render.self:create("Toggle", {
3109 Name = "Fullbright",
3110 Default = false,
3111 Hint = "No more darkness",
3112 Callback = function(enabled)
3113 _Fullbright.Toggle(enabled)
3114 end,
3115})
3116local FullbrightFrame = Fullbright.self:create("Checkbox", {
3117 Name = ""
3118})
3119
3120--// Combat Frame
3121local Combat = gui:create("Container", {
3122 Name = "Combat",
3123}) --|
3124local Aimbot = Combat.self:create("Toggle", {
3125 Name = "Aimbot",
3126 Default = false,
3127 Hint = "Automatically point to other players, hotkey recommended",
3128 Callback = function(enabled)
3129 _Aimbot.Options.Enabled = enabled
3130 end,
3131}) --]
3132local AimbotEasing = Aimbot.self:create("Number", {
3133 Name = "Easing",
3134 Default = 2,
3135 Min = 1.3,
3136 Max = 32,
3137 Round = 0.1,
3138 Hint = "Smoothness of the aimbot",
3139 Callback = function(value)
3140 _Aimbot.Options.Easing = value
3141 end,
3142})
3143local AimbotLegit = Aimbot.self:create("Checkbox", {
3144 Name = "Legit",
3145 Hint = "Give the aimbot a maximum speed, looks more legit",
3146 Callback = function(value)
3147 _Aimbot.Options.Legit = value
3148 end,
3149})
3150local AimbotMaxDistance = Aimbot.self:create("Number", {
3151 Name = "Max Distance",
3152 Default = 500,
3153 Min = 32,
3154 Max = 2048,
3155 Round = 1,
3156 Hint = "The aimbot's maximum distance",
3157 Callback = function(value)
3158 _Aimbot.Options.MaxDistance = value
3159 end,
3160})
3161local AimbotMode = Aimbot.self:create("Mode", {
3162 Name = "Aim Target",
3163 Modes = {
3164 "Head",
3165 "Torso",
3166 },
3167 Hint = "Where the aimbot will aim",
3168 Callback = function(value)
3169 _Aimbot.Options.AimPart = value
3170 end,
3171})
3172local AimbotShowTeam = Aimbot.self:create("Checkbox", {
3173 Name = "Target Team",
3174 Hint = "Target your teammates",
3175 Callback = function(value)
3176 _Aimbot.Options.ShowTeams = value
3177 end,
3178})
3179local AimbotOnscreen = Aimbot.self:create("Checkbox", {
3180 Name = "Target On-Screen",
3181 Hint = "Target players only in front of you",
3182 Default = false,
3183 Callback = function(value)
3184 _Aimbot.Options.Onscreen = value
3185 end,
3186})
3187local AimbotVisible = Aimbot.self:create("Checkbox", {
3188 Name = "Target Visible",
3189 Hint = "Ignore players obstructed from view",
3190 Default = false,
3191 Callback = function(value)
3192 _Aimbot.Options.Visible = value
3193 end,
3194})
3195local AimbotMode = Aimbot.self:create("Mode", {
3196 Name = "Aimbot Mode",
3197 Hint = "Change who the aimbot targets",
3198 Default = 1,
3199 Modes = {
3200 "Nearest",
3201 "Snap",
3202 },
3203 Callback = function(value)
3204 _Aimbot.Options.Mode = value
3205 end,
3206}) --]
3207local AimbotModeRadius = AimbotMode.self:create("Number", {
3208 Name = "Snap Radius",
3209 Default = 250,
3210 Min = 32,
3211 Max = 1024,
3212 Round = 1,
3213 Hint = "The detection radius of the aimbot mode 'Snap'",
3214 Callback = function(value)
3215 _Aimbot.Options.Radius = value
3216 end,
3217})
3218
3219--// Movement
3220local Movement = gui:create("Container", {
3221 Name = "Movement",
3222}) --|
3223local Flight = Movement.self:create("Toggle", {
3224 Name = "Flight",
3225 Default = false,
3226 Hint = "Toggle player flight (uses CFrame)",
3227 Callback = function(enabled)
3228 _Flight.flyStart(enabled)
3229 end,
3230}) --|
3231local FlightSpeed = Flight.self:create("Number", {
3232 Name = "Speed",
3233 Default = 5,
3234 Min = 0.1,
3235 Max = 100,
3236 Round = 0.1,
3237 Hint = "Flight speed",
3238 Callback = function(value)
3239 _Flight.Options.Speed = value
3240 end,
3241})
3242local FlightSmoothness = Flight.self:create("Number", {
3243 Name = "Smoothness",
3244 Default = 0.2,
3245 Min = 0.1,
3246 Max = 1,
3247 Round = 0.01,
3248 Hint = "Smoothness of the interpolation",
3249 Callback = function(value)
3250 _Flight.Options.Smoothness = value
3251 end,
3252})
3253local Spin = Movement.self:create("Toggle", {
3254 Name = "Spin",
3255 Default = false,
3256 Hint = "SPIN SPIN SPIN SPIN",
3257 Callback = function(enabled)
3258 _Spin.Toggle(enabled)
3259 end,
3260})
3261local SpinSpeed = Spin.self:create("Number", {
3262 Name = "Speed",
3263 Default = 250,
3264 Min = 1,
3265 Max = 250,
3266 Round = 1,
3267 Hint = "Speed you spin at",
3268 Callback = function(value)
3269 _Spin.Options.Speed = value
3270 end
3271})
3272--// Player
3273local PlayerTab = gui:create("Container", {
3274 Name = "Player",
3275}) --|
3276local Rubberbanding = PlayerTab.self:create("Toggle", {
3277 Name = "Rubberbanding",
3278 Default = false,
3279 Hint = "Get set back if your velocity changes above the threshold",
3280 Callback = function(enabled)
3281 _Rubberbanding.Toggle(enabled)
3282 end,
3283}) --|
3284local RubberbandingThreshold = Rubberbanding.self:create("Number", {
3285 Name = "Threshold",
3286 Default = false,
3287 Min = 50,
3288 Max = 1000,
3289 Default = 150,
3290 Round = 1,
3291 Hint = "Threshold for magnitude check",
3292 Callback = function(value)
3293 _Rubberbanding.Options.Threshold = value
3294 end,
3295})
3296local RubberbandingSpeed = Rubberbanding.self:create("Number", {
3297 Name = "Update Speed",
3298 Default = false,
3299 Min = 1,
3300 Max = 500,
3301 Default = 100,
3302 Round = 1,
3303 Hint = "How often it checks the velocity in ms",
3304 Callback = function(value)
3305 _Rubberbanding.Options.UpdateSpeed = value
3306 end,
3307})
3308local AntiTP = PlayerTab.self:create("Toggle", {
3309 Name = "Anti TP",
3310 Default = false,
3311 Hint = "Prevent teleporting large distances",
3312 Callback = function(enabled)
3313 _AntiTP.Toggle(enabled)
3314 end,
3315}) --|
3316local AntiTPThreshold = AntiTP.self:create("Number", {
3317 Name = "Threshold",
3318 Min = 1,
3319 Max = 1000,
3320 Default = 150,
3321 Round = 1,
3322 Hint = "Maximum distance",
3323 Callback = function(value)
3324 _AntiTP.Options.Threshold = value
3325 end,
3326})
3327local AntiTPSpeed = AntiTP.self:create("Number", {
3328 Name = "Update Speed",
3329 Min = 1,
3330 Max = 500,
3331 Default = 100,
3332 Round = 1,
3333 Hint = "How often it checks the position in ms",
3334 Callback = function(value)
3335 _AntiTP.Options.UpdateSpeed = value
3336 end,
3337})
3338local Noclip = PlayerTab.self:create("Toggle", {
3339 Name = "No-clip",
3340 Default = false,
3341 Hint = "Ignore object collision",
3342 Callback = function(enabled)
3343 _Noclip.Toggle(enabled)
3344 end,
3345})
3346local NoclipFrame = Noclip.self:create("Checkbox", {
3347 Name = ""
3348})
3349--[[
3350local Ghost = PlayerTab.self:create("Toggle", {
3351 Name = "Ghost",
3352 Default = false,
3353 Hint = "Become invisible",
3354 Callback = function(enabled)
3355 _Ghost.Toggle(enabled)
3356 end,
3357})
3358local GhostAmount = Ghost.self:create("Number", {
3359 Name = "Opacity",
3360 Default = 0,
3361 Min = 0,
3362 Max = 1,
3363 Round = 0.05,
3364 Hint = "How much you are visible",
3365 Callback = function(value)
3366 _Ghost.Options.Amount = value
3367 _Ghost.Toggle(_Ghost.Options.Enabled)
3368 end,
3369})
3370local Scale = PlayerTab.self:create("Toggle", {
3371 Name = "Scale",
3372 Default = false,
3373 Hint = "Change how big you are",
3374 Callback = function(enabled)
3375 _Scale.Toggle(enabled)
3376 end,
3377})
3378local ScaleAmount = Scale.self:create("Number", {
3379 Name = "Amount",
3380 Default = 0.5,
3381 Min = 0.1,
3382 Max = 20,
3383 Round = 0.1,
3384 Hint = "How much you scale to",
3385 Callback = function(value)
3386 _Scale.Options.Amount = value
3387 end,
3388})]]
3389
3390--// UI Functionality
3391RunService.RenderStepped:Connect(function()
3392 for _, frame in pairs(screenGui:GetChildren()) do
3393 if frame:IsA("Frame") then
3394 frame.Size = UDim2.new(0, screenscale, 0, frame.Size.Y.Offset)
3395
3396 frame.BackgroundTransparency = opacity
3397 frame.OptionsFrame.BackgroundTransparency = opacity
3398
3399 frame.BackgroundColor3 = backcolor
3400 frame.OptionsFrame.BackgroundColor3 = backcolor
3401 end
3402 end
3403end)
3404
3405--// ClickTP
3406if _G.WRDClickTeleport == nil then
3407 _G.WRDClickTeleport = true
3408
3409 local player = game:GetService("Players").LocalPlayer
3410 local UserInputService = game:GetService("UserInputService")
3411 --// Wanted to avoid using mouse instance, but UIS^ is very tedious to get mouse hit position
3412 local mouse = player:GetMouse()
3413
3414 --// Waits until the player's mouse is found
3415 repeat wait() until mouse
3416
3417 UserInputService.InputBegan:Connect(function(input, gameProcessed)
3418 if input.UserInputType == Enum.UserInputType.MouseButton1 then
3419 --// Only click teleport if the toggle is enabled
3420 if _G.WRDClickTeleport and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
3421 player.Character:MoveTo(Vector3.new(mouse.Hit.x, mouse.Hit.y, mouse.Hit.z))
3422 end
3423 end
3424 end)
3425 --// Just toggle instead of re-executing the script
3426else
3427 _G.WRDClickTeleport = not _G.WRDClickTeleport
3428 --// Notify
3429 if _G.WRDClickTeleport then
3430 game.StarterGui:SetCore("SendNotification",
3431 { Title = "BubbyHacks", Text = "Click teleport enabled", Duration = 5, })
3432 else
3433 game.StarterGui:SetCore("SendNotification",
3434 { Title = "BubbyHacks", Text = "Click teleport disabled", Duration = 5, })
3435 end
3436end