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