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