SHOW:
|
|
- or go back to the newest paste.
1 | if not _G.require then | |
2 | _G.require = require | |
3 | end | |
4 | ||
5 | --// API References | |
6 | local GUIData = (function() | |
7 | -- Variables | |
8 | _V = 1.11 | |
9 | local screenGui | |
10 | local err,errcode=pcall(function() | |
11 | screenGui = (script:FindFirstChild("ScreenGui")) or game:GetObjects("rbxassetid://2718157603")[1]:FindFirstChild("ScreenGui", true) | |
12 | end) | |
13 | if not err then | |
14 | print("ERR:",errcode) | |
15 | screenGui = game:GetService("ReplicatedStorage").CardinalityUI:Clone() | |
16 | end | |
17 | local Container = screenGui.Frame | |
18 | local Opt = Container.OptionsFrame | |
19 | local Checkbox = Opt.Checkbox | |
20 | local Color = Opt.Color | |
21 | local Frame = Opt.Frame | |
22 | local Execute = Opt.Execute | |
23 | local Mode = Opt.Mode | |
24 | local Number = Opt.Number | |
25 | local Toggle = Opt.Toggle | |
26 | local Mods = screenGui.Mods | |
27 | local ModLabel = Mods.Example | |
28 | ||
29 | local TextService = game:GetService("TextService") | |
30 | local UserInputService = game:GetService("UserInputService") | |
31 | local HttpService = game:GetService("HttpService") | |
32 | local Player = game:GetService("Players").LocalPlayer | |
33 | local Mouse = Player:GetMouse() | |
34 | syn = syn or nil | |
35 | if syn then | |
36 | syn.protect_gui(screenGui) | |
37 | end | |
38 | err,errcode=pcall(function() | |
39 | screenGui.Parent = game:GetService("CoreGui") | |
40 | end) | |
41 | if not err then | |
42 | print("ERR:",errcode) | |
43 | screenGui.Parent = Player.PlayerGui | |
44 | end | |
45 | ||
46 | Container.Parent = nil | |
47 | Checkbox.Parent = nil | |
48 | Color.Parent = nil | |
49 | Frame.Parent = nil | |
50 | Execute.Parent = nil | |
51 | Mode.Parent = nil | |
52 | Number.Parent = nil | |
53 | Toggle.Parent = nil | |
54 | ModLabel.Parent = nil | |
55 | ||
56 | local settingsArray = {{Object = screenGui},{}} | |
57 | local saveData = {Options = {}, Hotkeys = {}} | |
58 | ||
59 | local hotkeyFunctions = {} | |
60 | local gui = {} | |
61 | ||
62 | -- Save Functions | |
63 | local writefile = writefile or function() end | |
64 | local function Save() | |
65 | local JSONData = HttpService:JSONEncode(saveData) | |
66 | writefile("OpenGui.txt", JSONData) | |
67 | end | |
68 | ||
69 | -- Color Functions | |
70 | local color = {} | |
71 | local colors = { | |
72 | TextDisabled = Color3.fromRGB(200, 200, 200), | |
73 | TextEnabled = Color3.fromRGB(255, 255, 255), | |
74 | } | |
75 | ||
76 | local Colors = { | |
77 | Color3.fromRGB(255, 73, 73), | |
78 | Color3.fromRGB(255, 161, 66), | |
79 | Color3.fromRGB(255, 233, 62), | |
80 | Color3.fromRGB(137, 255, 64), | |
81 | Color3.fromRGB(64, 255, 140), | |
82 | Color3.fromRGB(66, 252, 255), | |
83 | Color3.fromRGB(64, 147, 255), | |
84 | Color3.fromRGB(255, 93, 253), | |
85 | Color3.fromRGB(195, 110, 255), | |
86 | Color3.fromRGB(255, 90, 134), | |
87 | Color3.fromRGB(255, 255, 255), | |
88 | Color3.fromRGB(209, 209, 209), | |
89 | } | |
90 | ||
91 | local function h2rgb(m1, m2, h) | |
92 | if h<0 then h = h+1 end | |
93 | if h>1 then h = h-1 end | |
94 | if h*6<1 then | |
95 | return m1+(m2-m1)*h*6 | |
96 | elseif h*2<1 then | |
97 | return m2 | |
98 | elseif h*3<2 then | |
99 | return m1+(m2-m1)*(2/3-h)*6 | |
100 | else | |
101 | return m1 | |
102 | end | |
103 | end | |
104 | ||
105 | function color:rgbToHsv(r, g, b) | |
106 | local a = 0 | |
107 | r, g, b, a = r / 255, g / 255, b / 255, a / 255 | |
108 | local max, min = math.max(r, g, b), math.min(r, g, b) | |
109 | local h, s, v | |
110 | v = max | |
111 | ||
112 | local d = max - min | |
113 | if max == 0 then s = 0 else s = d / max end | |
114 | ||
115 | if max == min then | |
116 | h = 0 -- achromatic | |
117 | else | |
118 | if max == r then | |
119 | h = (g - b) / d | |
120 | if g < b then h = h + 6 end | |
121 | elseif max == g then h = (b - r) / d + 2 | |
122 | elseif max == b then h = (r - g) / d + 4 | |
123 | end | |
124 | h = h / 6 | |
125 | end | |
126 | ||
127 | return h, s, v | |
128 | end | |
129 | ||
130 | function color:hslToRgb(h, s, L) | |
131 | h = h / 360 | |
132 | local m2 = L <= .5 and L*(s+1) or L+s-L*s | |
133 | local m1 = L*2-m2 | |
134 | return | |
135 | h2rgb(m1, m2, h+1/3), h2rgb(m1, m2, h), h2rgb(m1, m2, h-1/3) | |
136 | end | |
137 | ||
138 | function color:rgbToHsl(r, g, b) | |
139 | local min = math.min(r, g, b) | |
140 | local max = math.max(r, g, b) | |
141 | local delta = max - min | |
142 | ||
143 | local h, s, l = 0, 0, (min + max) / 2 | |
144 | ||
145 | if l > 0 and l < 0.5 then s = delta / (max + min) end | |
146 | if l >= 0.5 and l < 1 then s = delta / (2 - max - min) end | |
147 | ||
148 | if delta > 0 then | |
149 | if max == r and max ~= g then h = h + (g-b) / delta end | |
150 | if max == g and max ~= b then h = h + 2 + (b-r) / delta end | |
151 | if max == b and max ~= r then h = h + 4 + (r-g) / delta end | |
152 | h = h / 6 | |
153 | end | |
154 | ||
155 | if h < 0 then h = h + 1 end | |
156 | if h > 1 then h = h - 1 end | |
157 | ||
158 | return h * 360, s, l | |
159 | end | |
160 | ||
161 | function color:adjustLightness(color3, amount) | |
162 | local h, s, l = self:rgbToHsl(color3.r, color3.g, color3.b) | |
163 | return Color3.new(self:hslToRgb(h, s, l + amount)) | |
164 | end | |
165 | ||
166 | -- UI Functions | |
167 | function gui.tween(object,style,direction,t,goal) | |
168 | local tweenservice = game:GetService("TweenService") | |
169 | local tweenInfo = TweenInfo.new(t,Enum.EasingStyle[style],Enum.EasingDirection[direction]) | |
170 | local tween = tweenservice:Create(object,tweenInfo,goal) | |
171 | tween.Completed:Connect(function() | |
172 | tween:Destroy() | |
173 | end) | |
174 | tween:Play() | |
175 | return tween | |
176 | end | |
177 | ||
178 | function gui:makeDraggable(ui, callback) | |
179 | local UserInputService = game:GetService("UserInputService") | |
180 | ||
181 | local dragging | |
182 | local dragInput | |
183 | local dragStart | |
184 | local startPos | |
185 | ||
186 | local function update(input) | |
187 | local delta = input.Position - dragStart | |
188 | ui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) | |
189 | ||
190 | if callback then | |
191 | callback(ui.Position.X.Offset, ui.Position.Y.Offset) | |
192 | end | |
193 | end | |
194 | ||
195 | ui.InputBegan:Connect(function(input) | |
196 | if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then | |
197 | dragging = true | |
198 | dragStart = input.Position | |
199 | startPos = ui.Position | |
200 | ||
201 | input.Changed:Connect(function() | |
202 | if input.UserInputState == Enum.UserInputState.End then | |
203 | dragging = false | |
204 | end | |
205 | end) | |
206 | end | |
207 | end) | |
208 | ||
209 | ui.InputChanged:Connect(function(input) | |
210 | if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then | |
211 | dragInput = input | |
212 | end | |
213 | end) | |
214 | ||
215 | UserInputService.InputChanged:Connect(function(input) | |
216 | if input == dragInput and dragging then | |
217 | update(input) | |
218 | end | |
219 | end) | |
220 | end | |
221 | ||
222 | function gui:unpack(data, type) | |
223 | if data == nil then return end | |
224 | if type == "UDim2" then | |
225 | return data and UDim2.new(data[1], data[2], data[3], data[4]) | |
226 | elseif type == "boolean" then | |
227 | return data == 1 and true or false | |
228 | elseif type == "Color3" then | |
229 | return Color3.new(data[1], data[2], data[3]) | |
230 | end | |
231 | return data | |
232 | end | |
233 | ||
234 | function gui:pack(data) | |
235 | if typeof(data) == "UDim2" then | |
236 | return {data.X.Scale, data.X.Offset, data.Y.Scale, data.Y.Offset} | |
237 | elseif typeof(data) == "boolean" then | |
238 | return data and 1 or 0 | |
239 | elseif typeof(data) == "Color3" then | |
240 | return {data.r, data.g, data.b} | |
241 | end | |
242 | return data | |
243 | end | |
244 | ||
245 | function gui:getn(array) | |
246 | local n = 0 | |
247 | for _, v in pairs(array) do | |
248 | n = n + 1 | |
249 | end | |
250 | return n | |
251 | end | |
252 | ||
253 | function gui:setText(textLabel, text) | |
254 | text = tostring(text) | |
255 | textLabel.Text = text | |
256 | if textLabel:FindFirstChild("Opaque") then | |
257 | textLabel.Opaque.Text = text | |
258 | end | |
259 | if textLabel:FindFirstChild("Shadow") then | |
260 | textLabel.Shadow.Text = text | |
261 | end | |
262 | end | |
263 | ||
264 | function gui:onDoubleTap(guiObject, callback) | |
265 | local lastTap = tick() | |
266 | guiObject.InputBegan:Connect(function(input) | |
267 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
268 | if tick() - lastTap < 0.25 then | |
269 | callback() | |
270 | end | |
271 | lastTap = tick() | |
272 | end | |
273 | end) | |
274 | end | |
275 | ||
276 | local connections = {} | |
277 | function gui:connect(func) | |
278 | table.insert(connections, func) | |
279 | end | |
280 | ||
281 | function gui:createList(guiObject, guiData) | |
282 | local ListLayout = guiObject.OptionsFrame.UIListLayout | |
283 | local Padding = guiObject.OptionsFrame.UIPadding | |
284 | guiObject.OptionsFrame.UIListLayout.Changed:Connect(function(Property) | |
285 | if Property == "AbsoluteContentSize" then | |
286 | guiData.ySize = ListLayout.AbsoluteContentSize.Y + 2 + Padding.PaddingTop.Offset + ListLayout.Padding.Offset * 2 | |
287 | end | |
288 | end) | |
289 | ||
290 | gui:connect(function() | |
291 | if guiObject:FindFirstChild("Title") then | |
292 | local yRes = Mouse.ViewSizeY | |
293 | local diff = yRes - (guiData.yPos + guiData.ySize) | |
294 | local difference = math.clamp(diff, 0, 5000) | |
295 | guiObject.OptionsFrame.CanvasSize = UDim2.new(1, 0, 1.001, guiData.ySize - 35) | |
296 | ||
297 | if guiData.Open then | |
298 | guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(UDim2.new(1, 0, 0, guiData.ySize + math.clamp(diff, -5000, 0)), 0.3) | |
299 | else | |
300 | guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(UDim2.new(1, 0, 0, 0), 0.3) | |
301 | end | |
302 | ||
303 | guiObject.Frame.Size = guiObject.OptionsFrame.Size | |
304 | else | |
305 | if guiData.Open then | |
306 | guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35 + guiData.ySize), 0.3) | |
307 | else | |
308 | guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35), 0.3) | |
309 | end | |
310 | end | |
311 | end) | |
312 | ||
313 | if guiObject:FindFirstChild("Dropdown") then | |
314 | guiObject.Dropdown.Visible = false | |
315 | guiObject.Dropdown.MouseButton1Down:Connect(function() | |
316 | guiData.Open = not guiData.Open | |
317 | if guiData.Open then | |
318 | guiObject.Dropdown.Image = "rbxassetid://3559638428" | |
319 | else | |
320 | guiObject.Dropdown.Image = "rbxassetid://3554238678" | |
321 | end | |
322 | end) | |
323 | else | |
324 | gui:onDoubleTap(guiObject, function() | |
325 | guiData.Open = not guiData.Open | |
326 | end) | |
327 | end | |
328 | end | |
329 | ||
330 | function gui:textColorOnHover(guiObject, guiData) | |
331 | local hover = guiData.baseColor or guiObject.TextColor3 | |
332 | local default = color:adjustLightness(hover, -0.075) | |
333 | local mdown = color:adjustLightness(hover, -0.15) | |
334 | local mouseIn | |
335 | ||
336 | local function update() | |
337 | if guiData.baseColor then | |
338 | hover = guiData.baseColor or guiObject.TextColor3 | |
339 | default = color:adjustLightness(hover, -0.075) | |
340 | mdown = color:adjustLightness(hover, -0.15) | |
341 | end | |
342 | end | |
343 | ||
344 | guiObject.MouseEnter:Connect(function() | |
345 | update() | |
346 | gui.tween(guiObject, "Sine", "Out", 0.25, { | |
347 | TextColor3 = hover; | |
348 | }) | |
349 | mouseIn = true | |
350 | end) | |
351 | ||
352 | guiObject.MouseLeave:Connect(function() | |
353 | mouseIn = false | |
354 | update() | |
355 | gui.tween(guiObject, "Sine", "Out", 0.25, { | |
356 | TextColor3 = default; | |
357 | }) | |
358 | end) | |
359 | ||
360 | guiObject.InputBegan:Connect(function(input) | |
361 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
362 | update() | |
363 | gui.tween(guiObject, "Sine", "Out", 0.25, { | |
364 | TextColor3 = mdown; | |
365 | }) | |
366 | end | |
367 | end) | |
368 | ||
369 | guiObject.InputEnded:Connect(function(input) | |
370 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
371 | update() | |
372 | gui.tween(guiObject, "Sine", "Out", 0.25, { | |
373 | TextColor3 = mouseIn and hover or default; | |
374 | }) | |
375 | end | |
376 | end) | |
377 | ||
378 | guiObject.TextColor3 = default | |
379 | end | |
380 | ||
381 | function gui:sliderXY(sliderFrame, inputObjects, callback) | |
382 | local inputDown = false | |
383 | ||
384 | local function refresh(c1, c2) | |
385 | local sliderX = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X | |
386 | local sliderY = sliderFrame.AbsolutePosition.Y + sliderFrame.AbsoluteSize.Y | |
387 | ||
388 | local distX = sliderX - Mouse.X | |
389 | local distY = sliderY - Mouse.Y | |
390 | ||
391 | local deltaX = 1-math.clamp(distX / sliderFrame.AbsoluteSize.X, 0, 1) | |
392 | local deltaY = 1-math.clamp(distY / sliderFrame.AbsoluteSize.Y, 0, 1) | |
393 | ||
394 | if callback then | |
395 | callback(c1 or deltaX, c2 or deltaY) | |
396 | end | |
397 | end | |
398 | ||
399 | for _, obj in pairs(inputObjects) do | |
400 | obj.InputBegan:Connect(function(input) | |
401 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
402 | inputDown = true | |
403 | refresh() | |
404 | end | |
405 | end) | |
406 | obj.InputEnded:Connect(function(input) | |
407 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
408 | inputDown = false | |
409 | refresh() | |
410 | end | |
411 | end) | |
412 | obj.InputChanged:Connect(function(input) | |
413 | if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then | |
414 | if inputDown then | |
415 | refresh() | |
416 | end | |
417 | end | |
418 | end) | |
419 | end | |
420 | ||
421 | return refresh | |
422 | end | |
423 | ||
424 | function gui:createSlider(sliderFrame, inputObjects, callback) | |
425 | local slider = sliderFrame.Value | |
426 | local inputDown = false | |
427 | ||
428 | local absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X | |
429 | local absSize = sliderFrame.AbsoluteSize.X | |
430 | ||
431 | local function refresh(custom) | |
432 | local mouseX = Mouse.X | |
433 | local sliderX = absPos | |
434 | local dist = sliderX - mouseX | |
435 | local delta = 1 - math.clamp(dist / absSize, 0, 1) | |
436 | ||
437 | if custom then | |
438 | delta = custom | |
439 | end | |
440 | ||
441 | slider.Size = UDim2.new(delta, 0, 1, 0) | |
442 | if callback then | |
443 | callback(delta, custom) | |
444 | end | |
445 | end | |
446 | ||
447 | for _, obj in pairs(inputObjects) do | |
448 | obj.InputBegan:Connect(function(input) | |
449 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
450 | inputDown = true | |
451 | absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X | |
452 | absSize = sliderFrame.AbsoluteSize.X | |
453 | refresh() | |
454 | end | |
455 | end) | |
456 | obj.InputEnded:Connect(function(input) | |
457 | if input.UserInputType == Enum.UserInputType.MouseButton1 then | |
458 | inputDown = false | |
459 | refresh() | |
460 | end | |
461 | end) | |
462 | obj.InputChanged:Connect(function(input) | |
463 | if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then | |
464 | if inputDown then | |
465 | refresh() | |
466 | end | |
467 | end | |
468 | end) | |
469 | end | |
470 | ||
471 | return refresh | |
472 | end | |
473 | ||
474 | function gui:textSize(txt, vSize) | |
475 | return TextService:GetTextSize(txt.Text, txt.TextSize, txt.Font, vSize) | |
476 | end | |
477 | ||
478 | local currentHint = 0 | |
479 | ||
480 | function gui:addHint(guiObject, hintText) | |
481 | local hintKey = math.random() | |
482 | guiObject.MouseEnter:Connect(function() | |
483 | hintKey = math.random() | |
484 | currentHint = hintKey | |
485 | ||
486 | wait(2) | |
487 | ||
488 | if currentHint == hintKey then | |
489 | gui:setText(screenGui.Hint, " " .. hintText .. " ") | |
490 | local textSize = gui:textSize(screenGui.Hint, Vector2.new(2500, 500)) | |
491 | screenGui.Hint.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 4) | |
492 | screenGui.Hint.Size = UDim2.new(0, textSize.X, 0, textSize.Y) | |
493 | screenGui.Hint.Visible = true | |
494 | end | |
495 | end) | |
496 | ||
497 | guiObject.MouseLeave:Connect(function() | |
498 | hintKey = math.random() | |
499 | end) | |
500 | ||
501 | Mouse.Move:Connect(function() | |
502 | if currentHint == hintKey then | |
503 | screenGui.Hint.Visible = false | |
504 | end | |
505 | end) | |
506 | end | |
507 | ||
508 | -- UI Type Library | |
509 | local lib = {} | |
510 | ||
511 | function lib.Color(data, dataArray) | |
512 | local guiObject = Color:Clone() | |
513 | local color3Value = gui:unpack(saveData.Options[data.ID].Value, "Color3") or data.Default or Color3.new(1, 1, 1) | |
514 | local guiData = {} | |
515 | ||
516 | local HSV = color3Value | |
517 | local H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255) | |
518 | ||
519 | local newValue = function() | |
520 | HSV = Color3.fromHSV(H, S, V) | |
521 | guiObject.SV.BackgroundColor3 = Color3.fromHSV(H, 1, 1) | |
522 | guiObject.Indicator.BackgroundColor3 = HSV | |
523 | saveData.Options[data.ID].Value = gui:pack(HSV, "Color3") | |
524 | ||
525 | guiObject.R.Text = math.floor(HSV.r * 255) | |
526 | guiObject.G.Text = math.floor(HSV.g * 255) | |
527 | guiObject.B.Text = math.floor(HSV.b * 255) | |
528 | ||
529 | if data.Callback then | |
530 | data.Callback(HSV) | |
531 | end | |
532 | end | |
533 | ||
534 | local function updateHSV() | |
535 | H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255) | |
536 | end | |
537 | ||
538 | local H_set = gui:sliderXY(guiObject.H, {guiObject.H}, function(X, Y, u) | |
539 | if not u then H = 1 - Y end | |
540 | guiObject.H.Locator.Position = UDim2.new(0.5, 0, Y, 0) | |
541 | newValue() | |
542 | end) | |
543 | ||
544 | local SV_set = gui:sliderXY(guiObject.SV, {guiObject.SV}, function(X, Y, u) | |
545 | if not u then S = X; V = 1 - Y; end | |
546 | guiObject.SV.Locator.Position = UDim2.new(X, 0, Y, 0) | |
547 | newValue() | |
548 | end) | |
549 | ||
550 | guiObject.R.FocusLost:Connect(function() | |
551 | HSV = Color3.new(guiObject.R.Text / 255, HSV.g, HSV.b) | |
552 | updateHSV() | |
553 | newValue() | |
554 | end) | |
555 | guiObject.G.FocusLost:Connect(function() | |
556 | HSV = Color3.new(HSV.r, guiObject.G.Text / 255, HSV.b) | |
557 | updateHSV() | |
558 | newValue() | |
559 | end) | |
560 | guiObject.B.FocusLost:Connect(function() | |
561 | HSV = Color3.new(HSV.r, HSV.g, guiObject.B.Text / 255) | |
562 | updateHSV() | |
563 | newValue() | |
564 | end) | |
565 | ||
566 | newValue() | |
567 | SV_set(S, 1 - V) | |
568 | H_set(0, H) | |
569 | ||
570 | guiData.ySize = 0 | |
571 | guiData.Open = false | |
572 | guiData.baseColor = colors.TextEnabled | |
573 | ||
574 | gui:setText(guiObject.Label, data.Name) | |
575 | gui:textColorOnHover(guiObject.Label, guiData) | |
576 | ||
577 | return guiObject | |
578 | end | |
579 | ||
580 | function lib.Number(data, dataArray) | |
581 | local guiObject = Number:Clone() | |
582 | local Value = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or math.floor(data.Min + (data.Max - data.Min) / 2) | |
583 | local guiData = {} | |
584 | ||
585 | local dMax = data.Max - data.Min | |
586 | local dValue = (Value - data.Min) / dMax | |
587 | ||
588 | data.Round = data.Round or 1 | |
589 | ||
590 | local newValue = function(delta) | |
591 | local exactValue = data.Min + (data.Max - data.Min) * delta | |
592 | Value = math.floor(exactValue / data.Round) * data.Round | |
593 | Value = math.clamp(Value, data.Min, data.Max) | |
594 | guiObject.Indicator.Value.Text = tostring(Value) | |
595 | ||
596 | if data.Callback then | |
597 | data.Callback(Value) | |
598 | end | |
599 | saveData.Options[data.ID].Value = gui:pack(Value, "number") | |
600 | end | |
601 | ||
602 | local slideSet = gui:createSlider(guiObject.ValueFrame, {guiObject.Label, guiObject.Indicator}, newValue) | |
603 | slideSet(math.clamp(dValue, 0, 1)) | |
604 | ||
605 | guiObject.Indicator.MouseButton1Down:Connect(newValue) | |
606 | guiObject.Label.MouseButton1Down:Connect(newValue) | |
607 | newValue(math.clamp(dValue, 0, 1)) | |
608 | ||
609 | guiData.ySize = 0 | |
610 | guiData.Open = false | |
611 | guiData.baseColor = colors.TextEnabled | |
612 | ||
613 | gui:createList(guiObject, guiData) | |
614 | gui:setText(guiObject.Label, data.Name) | |
615 | gui:textColorOnHover(guiObject.Label, guiData) | |
616 | ||
617 | return guiObject | |
618 | end | |
619 | ||
620 | function lib.Execute(data, dataArray) | |
621 | local guiObject = Execute:Clone() | |
622 | local guiData = {} | |
623 | ||
624 | local newValue = function(val) | |
625 | if data.Callback then | |
626 | data.Callback() | |
627 | end | |
628 | end | |
629 | ||
630 | guiObject.MouseEnter:Connect(function() | |
631 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 40, 0, 25)}) | |
632 | end) | |
633 | ||
634 | guiObject.MouseLeave:Connect(function() | |
635 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)}) | |
636 | end) | |
637 | ||
638 | guiObject.Indicator.MouseButton1Down:Connect(newValue) | |
639 | guiObject.Label.MouseButton1Down:Connect(newValue) | |
640 | newValue(true) | |
641 | ||
642 | guiData.ySize = 0 | |
643 | guiData.Open = false | |
644 | guiData.baseColor = colors.TextEnabled | |
645 | ||
646 | gui:createList(guiObject, guiData) | |
647 | gui:setText(guiObject.Label, data.Name) | |
648 | gui:textColorOnHover(guiObject.Label, guiData) | |
649 | ||
650 | return guiObject | |
651 | end | |
652 | ||
653 | function lib.Mode(data, dataArray) | |
654 | local guiObject = Mode:Clone() | |
655 | local valueIndex = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or 1 | |
656 | local guiData = {} | |
657 | ||
658 | local newValue = function(val) | |
659 | if val == true then else | |
660 | valueIndex = (valueIndex % #data.Modes) + 1 | |
661 | end | |
662 | ||
663 | local Value = data.Modes[valueIndex] | |
664 | gui:setText(guiObject.Mode, Value) | |
665 | ||
666 | if data.Callback then | |
667 | data.Callback(Value) | |
668 | end | |
669 | saveData.Options[data.ID].Value = gui:pack(valueIndex) | |
670 | end | |
671 | ||
672 | guiObject.Mode.MouseButton1Down:Connect(newValue) | |
673 | guiObject.Label.MouseButton1Down:Connect(newValue) | |
674 | newValue(true) | |
675 | ||
676 | guiData.ySize = 0 | |
677 | guiData.Open = false | |
678 | guiData.baseColor = colors.TextEnabled | |
679 | ||
680 | gui:createList(guiObject, guiData) | |
681 | gui:setText(guiObject.Label, data.Name) | |
682 | gui:textColorOnHover(guiObject.Label, guiData) | |
683 | ||
684 | return guiObject | |
685 | end | |
686 | ||
687 | function lib.Hotkey(data, dataArray) | |
688 | local guiObject = Mode:Clone() | |
689 | local hotkeyInput = gui:unpack(saveData.Hotkeys[data.ID], "string") or data.Hotkey or "" | |
690 | local guiData = {} | |
691 | ||
692 | local lastInput = hotkeyInput | |
693 | local mouseIn = false | |
694 | ||
695 | guiObject.Name = "Z" | |
696 | ||
697 | local newValue = function(val) | |
698 | local input | |
699 | gui:setText(guiObject.Mode, "...") | |
700 | saveData.Hotkeys[data.ID] = nil | |
701 | ||
702 | if not val then | |
703 | input = lastInput | |
704 | mouseIn = true | |
705 | ||
706 | lastInput = nil | |
707 | ||
708 | repeat wait() until mouseIn == false or lastInput | |
709 | end | |
710 | ||
711 | if not lastInput then | |
712 | lastInput = hotkeyInput | |
713 | end | |
714 | ||
715 | saveData.Hotkeys[data.ID] = tostring(lastInput) | |
716 | hotkeyFunctions[data.ID] = data.callback | |
717 | ||
718 | hotkeyInput = tostring(lastInput) | |
719 | saveData.Options[data.ID].Value = hotkeyInput | |
720 | gui:setText(guiObject.Mode, hotkeyInput:sub(14)) | |
721 | end | |
722 | ||
723 | UserInputService.InputBegan:Connect(function(input) | |
724 | if input.KeyCode == Enum.KeyCode.Unknown then return end | |
725 | if input.KeyCode == Enum.KeyCode.Backspace then lastInput = "" return end | |
726 | lastInput = tostring(input.KeyCode) | |
727 | end) | |
728 | ||
729 | guiObject.Mode.MouseButton1Down:Connect(function() newValue() end) | |
730 | guiObject.Label.MouseButton1Down:Connect(function() newValue() end) | |
731 | guiObject.MouseLeave:Connect(function() | |
732 | mouseIn = false | |
733 | end) | |
734 | newValue(true) | |
735 | ||
736 | guiData.ySize = 0 | |
737 | guiData.Open = false | |
738 | guiData.baseColor = colors.TextEnabled | |
739 | ||
740 | gui:createList(guiObject, guiData) | |
741 | gui:setText(guiObject.Label, "Hotkey") | |
742 | gui:textColorOnHover(guiObject.Label, guiData) | |
743 | ||
744 | guiObject.Parent = dataArray.Object.OptionsFrame | |
745 | ||
746 | return guiObject | |
747 | end | |
748 | ||
749 | function lib.Toggle(data, dataArray) | |
750 | local guiObject = Toggle:Clone() | |
751 | local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false | |
752 | local guiData = {} | |
753 | ||
754 | local modFrame = ModLabel:Clone() | |
755 | modFrame.Parent = Mods | |
756 | modFrame.TextColor3 = Colors[math.random(1, #Colors)] | |
757 | modFrame.Visible = false | |
758 | gui:setText(modFrame, data.Name) | |
759 | ||
760 | guiObject.Name = data.Name | |
761 | ||
762 | local newValue = function(val, set) | |
763 | if val == true then | |
764 | else | |
765 | if set then | |
766 | Value = set | |
767 | else | |
768 | Value = not Value | |
769 | end | |
770 | end | |
771 | ||
772 | if Value then | |
773 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {BackgroundColor3 = Color3.fromRGB(60, 222, 60)}) | |
774 | guiObject.Indicator.Text = "ON" | |
775 | guiData.baseColor = colors.TextEnabled | |
776 | else | |
777 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {BackgroundColor3 = Color3.fromRGB(222, 60, 60)}) | |
778 | guiObject.Indicator.Text = "OFF" | |
779 | guiData.baseColor = colors.TextDisabled | |
780 | end | |
781 | ||
782 | if data.Callback then | |
783 | data.Callback(Value) | |
784 | end | |
785 | ||
786 | saveData.Options[data.ID].Value = gui:pack(Value) | |
787 | modFrame.Visible = Value | |
788 | ||
789 | end | |
790 | ||
791 | guiObject.MouseEnter:Connect(function() | |
792 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 40, 0, 25)}) | |
793 | end) | |
794 | ||
795 | guiObject.MouseLeave:Connect(function() | |
796 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)}) | |
797 | end) | |
798 | ||
799 | gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)}) | |
800 | guiObject.Indicator.MouseButton1Down:Connect(function() newValue() end) | |
801 | guiObject.Label.MouseButton1Down:Connect(function() newValue() end) | |
802 | newValue(true) | |
803 | ||
804 | guiData.ySize = 0 | |
805 | guiData.Open = false | |
806 | guiData.baseColor = colors.TextDisabled | |
807 | ||
808 | gui:createList(guiObject, guiData) | |
809 | gui:setText(guiObject.Label, data.Name) | |
810 | gui:textColorOnHover(guiObject.Label, guiData) | |
811 | ||
812 | data.callback = newValue | |
813 | ||
814 | return guiObject | |
815 | end | |
816 | ||
817 | function lib.Checkbox(data, dataArray) | |
818 | local guiObject = Checkbox:Clone() | |
819 | local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false | |
820 | local guiData = {} | |
821 | ||
822 | guiObject.Name = "0" | |
823 | ||
824 | local newValue = function(val) | |
825 | if val == true then else | |
826 | Value = not Value | |
827 | end | |
828 | if Value then | |
829 | gui.tween(guiObject.Indicator, "Sine", "Out", .35, {Size = UDim2.new(0, 35, 0, 35)}) | |
830 | guiData.baseColor = colors.TextEnabled | |
831 | else | |
832 | gui.tween(guiObject.Indicator, "Sine", "Out", .35, {Size = UDim2.new(0, 0, 0, 35)}) | |
833 | guiData.baseColor = colors.TextDisabled | |
834 | end | |
835 | if data.Callback then | |
836 | data.Callback(Value) | |
837 | end | |
838 | saveData.Options[data.ID].Value = gui:pack(Value) | |
839 | end | |
840 | ||
841 | guiObject.Indicator.MouseButton1Down:Connect(newValue) | |
842 | guiObject.Label.MouseButton1Down:Connect(newValue) | |
843 | newValue(true) | |
844 | ||
845 | guiData.ySize = 0 | |
846 | guiData.Open = false | |
847 | guiData.baseColor = colors.TextDisabled | |
848 | ||
849 | gui:createList(guiObject, guiData) | |
850 | gui:setText(guiObject.Label, data.Name) | |
851 | gui:textColorOnHover(guiObject.Label, guiData) | |
852 | ||
853 | return guiObject | |
854 | end | |
855 | ||
856 | function lib.Frame(data, dataArray) | |
857 | local guiObject = Frame:Clone() | |
858 | ||
859 | local guiData = {} | |
860 | guiData.ySize = 0 | |
861 | guiData.Open = false | |
862 | ||
863 | gui:createList(guiObject, guiData) | |
864 | gui:setText(guiObject.Label, data.Name) | |
865 | gui:textColorOnHover(guiObject.Label, guiData) | |
866 | ||
867 | return guiObject | |
868 | end | |
869 | ||
870 | function lib.Container(data, dataArray) | |
871 | local guiObject = Container:Clone() | |
872 | ||
873 | guiObject.Position = gui:unpack(saveData.Options[data.ID].Position, "UDim2") or UDim2.new(0, 3, 0, 3 + gui:getn(settingsArray[2]) * 38) | |
874 | ||
875 | local guiData = {} | |
876 | guiData.yPos = 0 | |
877 | guiData.ySize = 0 | |
878 | guiData.Open = false | |
879 | ||
880 | gui:textColorOnHover(guiObject.Title, guiData) | |
881 | gui:createList(guiObject, guiData) | |
882 | gui:setText(guiObject.Title, data.Name) | |
883 | gui:makeDraggable(guiObject, function(x, y) | |
884 | guiData.yPos = y | |
885 | saveData.Options[data.ID].Position = gui:pack(guiObject.Position) | |
886 | end) | |
887 | ||
888 | return guiObject | |
889 | end | |
890 | ||
891 | -- UI Creation Library | |
892 | function gui.create(self, guiType, data) | |
893 | if self == gui then | |
894 | self = settingsArray | |
895 | end | |
896 | ||
897 | data.ID = data.Name .. "_" .. (self[1].Name or "TOP") | |
898 | ||
899 | if not saveData.Options[data.ID] then | |
900 | saveData.Options[data.ID] = {} | |
901 | end | |
902 | ||
903 | if self[1].Object:FindFirstChild("Dropdown") then | |
904 | self[1].Object.Dropdown.Visible = true | |
905 | end | |
906 | ||
907 | local dataArray = {} | |
908 | local objectArray = {} | |
909 | local selfArray = {dataArray, objectArray, create = gui.create, callback = data.Callback} | |
910 | dataArray.Name = data.Name | |
911 | dataArray.Data = data | |
912 | dataArray.Object = lib[guiType](data, dataArray) | |
913 | dataArray.self = selfArray | |
914 | ||
915 | if guiType == "Toggle" then | |
916 | lib.Hotkey(data, dataArray) | |
917 | end | |
918 | if data.Hint then | |
919 | local Object = dataArray.Object | |
920 | gui:addHint(Object:FindFirstChild("Title") or Object:FindFirstChild("Label"), data.Hint) | |
921 | end | |
922 | ||
923 | self[1][data.Name] = selfArray | |
924 | self[2][data.Name] = dataArray.Object | |
925 | ||
926 | dataArray.Object.Parent = self[1].Object:FindFirstChild("OptionsFrame") or self[1].Object | |
927 | ||
928 | return dataArray | |
929 | end | |
930 | ||
931 | -- Connection Stuff | |
932 | game:GetService("RunService").RenderStepped:Connect(function() | |
933 | for _, func in pairs(connections) do | |
934 | func() | |
935 | end | |
936 | end) | |
937 | ||
938 | UserInputService.InputBegan:Connect(function(input, gameProcessed) | |
939 | if gameProcessed then return end | |
940 | for id, key in pairs(saveData.Hotkeys) do | |
941 | if key == tostring(input.KeyCode) then | |
942 | hotkeyFunctions[id]() | |
943 | end | |
944 | end | |
945 | end) | |
946 | ||
947 | Mods.Text = "OpenGui " .. _V | |
948 | ||
949 | game.Close:Connect(function() | |
950 | Save() | |
951 | end) | |
952 | ||
953 | return {gui, saveData, screenGui} | |
954 | end)() | |
955 | ||
956 | local notify = {Title ="HENTAI", Text ="Got It?", Duration = 120, Button1 = "OK"} | |
957 | ||
958 | local _Chams = (function() | |
959 | --// Variables | |
960 | local RunService = game:GetService("RunService") | |
961 | local Players = game:GetService("Players") | |
962 | local Player = Players.LocalPlayer | |
963 | local Screen = Instance.new("ScreenGui") | |
964 | local Viewport = Instance.new("ViewportFrame", Screen) | |
965 | ||
966 | local module = {} | |
967 | local characters = {} | |
968 | local clones = {} | |
969 | local parts = {} | |
970 | ||
971 | module.Options = { | |
972 | Enabled = false, | |
973 | Parent = script.Parent or game.CoreGui, | |
974 | Color = Color3.new(1, 1, 1), | |
975 | ShowDescendants = false, | |
976 | TeamColor = false, | |
977 | ShowSelf = false, | |
978 | ShowTeam = false, | |
979 | Mode = "Shader", | |
980 | Opacity = 1, | |
981 | MaxDistance = 500, | |
982 | } | |
983 | --// Edits | |
984 | Viewport.Size = UDim2.new(1, 0, 1, 0) | |
985 | Viewport.BackgroundTransparency = 1 | |
986 | Viewport.CurrentCamera = workspace.CurrentCamera | |
987 | Screen.IgnoreGuiInset = true | |
988 | --// Functions | |
989 | local function getParts(Model) | |
990 | local parts = {} | |
991 | local descendants = Model:GetDescendants() | |
992 | local descendantsn = #descendants | |
993 | for i = 1, descendantsn do | |
994 | local desc = descendants[i] | |
995 | if desc:IsA("BasePart") then | |
996 | table.insert(parts, desc) | |
997 | end | |
998 | end | |
999 | return parts | |
1000 | end | |
1001 | local function getPart(Model) | |
1002 | return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part") | |
1003 | end | |
1004 | function module:Clone(Object) | |
1005 | local isArchivable = Object.Archivable | |
1006 | local Clone | |
1007 | Object.Archivable = true | |
1008 | Clone = Object:Clone() | |
1009 | Object.Archivable = isArchivable | |
1010 | if module.Options.Mode == "Shader" then | |
1011 | Viewport.Ambient = Color3.fromRGB(200, 200, 200) | |
1012 | else | |
1013 | Viewport.Ambient = Color3.fromRGB(255, 255, 255) | |
1014 | end | |
1015 | for _, child in pairs(Clone:GetDescendants()) do | |
1016 | if child:IsA("Script") or child:IsA("LocalScript") or child:IsA("Sound") then | |
1017 | child:Destroy() | |
1018 | elseif child:IsA("Humanoid") then | |
1019 | child.DisplayDistanceType = "None" | |
1020 | elseif module.Options.Mode ~= "Shader" then | |
1021 | if child:IsA("SpecialMesh") then | |
1022 | if module.Options.Mode ~= "ForceField" then | |
1023 | child.TextureId = "" | |
1024 | end | |
1025 | elseif child:IsA("MeshPart") then | |
1026 | if module.Options.Mode ~= "ForceField" then | |
1027 | child.TextureID = "" | |
1028 | end | |
1029 | elseif child:IsA("BasePart") then | |
1030 | if module.Options.Mode ~= "ForceField" then | |
1031 | child.Material = Enum.Material.Neon | |
1032 | else | |
1033 | child.Material = Enum.Material.ForceField | |
1034 | end | |
1035 | elseif child:IsA("Clothing") or child:IsA("Decal") then | |
1036 | child:Destroy() | |
1037 | end | |
1038 | end | |
1039 | end | |
1040 | return Clone | |
1041 | end | |
1042 | function module:Enable() | |
1043 | module.Options.Enabled = true | |
1044 | Screen.Parent = module.Options.Parent | |
1045 | module:ReloadCharacters() | |
1046 | end | |
1047 | ||
1048 | function module:Disable() | |
1049 | module.Options.Enabled = false | |
1050 | Screen.Parent = nil | |
1051 | end | |
1052 | ||
1053 | function module:ReloadCharacters() | |
1054 | Viewport:ClearAllChildren() | |
1055 | for player, character in pairs(characters) do | |
1056 | local clone = module:Clone(character) | |
1057 | clone.Name = player.Name | |
1058 | clone.Parent = Viewport | |
1059 | clones[player] = clone | |
1060 | end | |
1061 | end | |
1062 | ||
1063 | local function newPlayer(player) | |
1064 | if player.Character then | |
1065 | characters[player] = player.Character | |
1066 | ||
1067 | local clone = module:Clone(player.Character) | |
1068 | clone.Name = player.Name | |
1069 | clone.Parent = Viewport | |
1070 | clones[player] = clone | |
1071 | end | |
1072 | player.CharacterAdded:Connect(function(char) | |
1073 | if clones[player] then | |
1074 | clones[player]:Destroy() | |
1075 | clones[player] = nil | |
1076 | end;if characters[player] then | |
1077 | characters[player]:Destroy() | |
1078 | characters[player] = nil | |
1079 | end | |
1080 | ||
1081 | characters[player] = char | |
1082 | ||
1083 | local clone = module:Clone(char) | |
1084 | clone.Name = player.Name | |
1085 | clone.Parent = Viewport | |
1086 | clones[player] = clone | |
1087 | end) | |
1088 | end | |
1089 | ||
1090 | Players.PlayerAdded:Connect(newPlayer) | |
1091 | Players.PlayerRemoving:Connect(function(player) | |
1092 | if clones[player] then | |
1093 | clones[player]:Destroy() | |
1094 | clones[player] = nil | |
1095 | end;if characters[player] then | |
1096 | characters[player]:Destroy() | |
1097 | characters[player] = nil | |
1098 | end | |
1099 | end) | |
1100 | for _, player in pairs(Players:GetPlayers()) do | |
1101 | newPlayer(player) | |
1102 | end | |
1103 | RunService.RenderStepped:Connect(function() | |
1104 | if module.Options.Enabled then | |
1105 | for player, character in pairs(characters) do | |
1106 | local clone = clones[player] | |
1107 | local target = getPart(clone) | |
1108 | if target then | |
1109 | 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 | |
1110 | if (player == Player and module.Options.ShowSelf) or player ~= Player then | |
1111 | local parts = getParts(clone) | |
1112 | for i = 1, #parts do | |
1113 | local obj = parts[i] | |
1114 | local cor = character:FindFirstChild(obj.Name, true) | |
1115 | if character:FindFirstChild(obj.Parent.Name) then | |
1116 | cor = character:FindFirstChild(obj.Parent.Name):FindFirstChild(obj.Name) | |
1117 | end | |
1118 | if cor and obj then | |
1119 | if module.Options.TeamColor then | |
1120 | obj.Color = player.TeamColor.Color | |
1121 | elseif module.Options.Mode ~= "Shader" then | |
1122 | obj.Color = Color3.new(1, 1, 1) | |
1123 | end | |
1124 | if module.Options.ShowDescendants then | |
1125 | obj.CFrame = cor.CFrame | |
1126 | elseif obj.Parent == clone then | |
1127 | obj.CFrame = cor.CFrame | |
1128 | else | |
1129 | obj.CFrame = CFrame.new(10000, 10000, 10000) | |
1130 | end | |
1131 | end | |
1132 | end | |
1133 | if clone.Parent == nil then | |
1134 | clone.Parent = Viewport | |
1135 | end | |
1136 | else | |
1137 | clone.Parent = nil | |
1138 | end | |
1139 | else | |
1140 | clone.Parent = nil | |
1141 | end | |
1142 | else | |
1143 | clone.Parent = nil | |
1144 | end | |
1145 | end | |
1146 | Viewport.ImageColor3 = module.Options.Color | |
1147 | Viewport.ImageTransparency = 1 - module.Options.Opacity | |
1148 | end | |
1149 | end) | |
1150 | return module | |
1151 | end)() | |
1152 | ||
1153 | - | local _ManaFly = (function() |
1153 | + | --[[local _ManaFly = (function() |
1154 | --// Variables | |
1155 | local module = {} | |
1156 | ||
1157 | local RunService = game:GetService("RunService") | |
1158 | local Players = game:GetService("Players") | |
1159 | local Player = Players.LocalPlayer | |
1160 | ||
1161 | local MANAFLY = nil | |
1162 | local leftorright,upordown,backorforward = 0,0,0 | |
1163 | ||
1164 | module.Options = { | |
1165 | Enabled = false, | |
1166 | Color = Color3.new(1, 0, 0), | |
1167 | speed = 0, | |
1168 | Opacity = 0, | |
1169 | PartMaterial = Enum.Material.Air, | |
1170 | Up="x", | |
1171 | Down="z", | |
1172 | Size = 2, | |
1173 | CFrameOffset = 3.5, | |
1174 | } | |
1175 | function module:Enable() | |
1176 | module.Options.Enabled = true | |
1177 | leftorright,upordown,backorforward = 0,0,0 | |
1178 | end | |
1179 | ||
1180 | function module:Disable() | |
1181 | module.Options.Enabled = false | |
1182 | leftorright,upordown,backorforward = 0,0,0 | |
1183 | end | |
1184 | function module:SpeedChange(Speed) | |
1185 | if leftorright > 0 then | |
1186 | leftorright = Speed | |
1187 | elseif leftorright < 0 then | |
1188 | leftorright = -Speed | |
1189 | end | |
1190 | if upordown > 0 then | |
1191 | upordown = Speed | |
1192 | elseif upordown < 0 then | |
1193 | upordown = -Speed | |
1194 | end | |
1195 | if backorforward > 0 then | |
1196 | backorforward = Speed | |
1197 | elseif backorforward < 0 then | |
1198 | backorforward = -Speed | |
1199 | end | |
1200 | end | |
1201 | local function fly() | |
1202 | if not MANAFLY then | |
1203 | MANAFLY = Instance.new("Part") | |
1204 | end | |
1205 | MANAFLY.Parent = workspace | |
1206 | MANAFLY.Size = Vector3.new(module.Options.Size,1,module.Options.Size) | |
1207 | MANAFLY.Transparency = module.Options.Opacity | |
1208 | MANAFLY.Name = "MANAFLYPART" | |
1209 | MANAFLY.Material = module.Options.PartMaterial | |
1210 | MANAFLY.Color = module.Options.Color | |
1211 | MANAFLY.Anchored = true | |
1212 | if module.Options.Enabled then | |
1213 | local Character = Player.Character | |
1214 | local PrimaryPartCFrame = Character:GetPrimaryPartCFrame() | |
1215 | Character:SetPrimaryPartCFrame(PrimaryPartCFrame:Lerp(PrimaryPartCFrame*CFrame.new(leftorright,upordown,backorforward),1)) | |
1216 | MANAFLY.CFrame = Character.HumanoidRootPart.CFrame * CFrame.new(0,-module.Options.CFrameOffset,0) | |
1217 | end | |
1218 | end | |
1219 | RunService:BindToRenderStep("MANAFLY",1,fly) | |
1220 | Player:GetMouse().KeyDown:Connect(function(k) | |
1221 | if not module.Options.Enabled then return end | |
1222 | if k == "w" then | |
1223 | backorforward = backorforward - module.Options.speed | |
1224 | elseif k == "s" then | |
1225 | backorforward = backorforward + module.Options.speed | |
1226 | elseif k == "a" then | |
1227 | leftorright = leftorright - module.Options.speed | |
1228 | elseif k == "d" then | |
1229 | leftorright = leftorright + module.Options.speed | |
1230 | elseif k == module.Options.Down then | |
1231 | upordown = upordown - module.Options.speed | |
1232 | elseif k == module.Options.Up then | |
1233 | upordown = upordown + module.Options.speed | |
1234 | end | |
1235 | end) | |
1236 | Player:GetMouse().KeyUp:Connect(function(k) | |
1237 | if not module.Options.Enabled then | |
1238 | return | |
1239 | end | |
1240 | if backorforward == 0 and leftorright == 0 and upordown == 0 then | |
1241 | return | |
1242 | end | |
1243 | if k == "w" then | |
1244 | backorforward = backorforward + module.Options.speed | |
1245 | elseif k == "s" then | |
1246 | backorforward = backorforward - module.Options.speed | |
1247 | elseif k == "a" then | |
1248 | leftorright = leftorright + module.Options.speed | |
1249 | elseif k == "d" then | |
1250 | leftorright = leftorright - module.Options.speed | |
1251 | elseif k == module.Options.Down then | |
1252 | upordown = upordown + module.Options.speed | |
1253 | elseif k == module.Options.Up then | |
1254 | upordown = upordown - module.Options.speed | |
1255 | end | |
1256 | end) | |
1257 | return module | |
1258 | end)() | |
1259 | --]] | |
1260 | local _ManaRun= (function() | |
1261 | --// Variables | |
1262 | local module = {} | |
1263 | ||
1264 | local RunService = game:GetService("RunService") | |
1265 | local Players = game:GetService("Players") | |
1266 | local Player = Players.LocalPlayer | |
1267 | ||
1268 | local leftorright,backorforward = 0,0 | |
1269 | ||
1270 | module.Options = { | |
1271 | Enabled = false, | |
1272 | speed = 0, | |
1273 | } | |
1274 | function module:Enable() | |
1275 | module.Options.Enabled = true | |
1276 | leftorright,backorforward = 0,0 | |
1277 | end | |
1278 | ||
1279 | function module:Disable() | |
1280 | module.Options.Enabled = false | |
1281 | leftorright,backorforward = 0,0 | |
1282 | end | |
1283 | function module:SpeedChange(Speed) | |
1284 | if leftorright > 0 then | |
1285 | leftorright = Speed | |
1286 | elseif leftorright < 0 then | |
1287 | leftorright = -Speed | |
1288 | end | |
1289 | if backorforward > 0 then | |
1290 | backorforward = Speed | |
1291 | elseif backorforward < 0 then | |
1292 | backorforward = -Speed | |
1293 | end | |
1294 | end | |
1295 | RunService:BindToRenderStep("MANARUN",1,function() | |
1296 | if module.Options.Enabled then | |
1297 | Player.Character:SetPrimaryPartCFrame(Player.Character:GetPrimaryPartCFrame():Lerp(Player.Character:GetPrimaryPartCFrame()*CFrame.new(leftorright,0,backorforward),1)) | |
1298 | end | |
1299 | end) | |
1300 | Player:GetMouse().KeyDown:Connect(function(k) | |
1301 | if k == "w" then | |
1302 | backorforward = backorforward - module.Options.speed | |
1303 | elseif k == "s" then | |
1304 | backorforward = backorforward + module.Options.speed | |
1305 | elseif k == "a" then | |
1306 | leftorright = leftorright - module.Options.speed | |
1307 | elseif k == "d" then | |
1308 | leftorright = leftorright + module.Options.speed | |
1309 | end | |
1310 | end) | |
1311 | Player:GetMouse().KeyUp:Connect(function(k) | |
1312 | if k == "w" then | |
1313 | backorforward = backorforward + module.Options.speed | |
1314 | elseif k == "s" then | |
1315 | backorforward = backorforward - module.Options.speed | |
1316 | elseif k == "a" then | |
1317 | leftorright = leftorright + module.Options.speed | |
1318 | elseif k == "d" then | |
1319 | leftorright = leftorright - module.Options.speed | |
1320 | end | |
1321 | end) | |
1322 | return module | |
1323 | end)() | |
1324 | --[[ | |
1325 | local _FullBright = (function() | |
1326 | --// Variables | |
1327 | local module = {} | |
1328 | ||
1329 | module.Options = { | |
1330 | Enabled = false, | |
1331 | ExposureCompensation=0, | |
1332 | Brightness = 2 | |
1333 | } | |
1334 | ||
1335 | local RunService = game:GetService("RunService") | |
1336 | local Players = game:GetService("Players") | |
1337 | local Player = Players.LocalPlayer | |
1338 | ||
1339 | function module:Enable() | |
1340 | module.Options.Enabled = true | |
1341 | end | |
1342 | ||
1343 | function module:Disable() | |
1344 | module.Options.Enabled = false | |
1345 | end | |
1346 | ||
1347 | game:GetService("RunService"):BindToRenderStep("FULLBRIGHT",1,function() | |
1348 | if module.Options.Enabled then | |
1349 | game:GetService("Lighting").Ambient = Color3.new(1,1,1) | |
1350 | game:GetService("Lighting").FogEnd = 100000000000000000000000 | |
1351 | game:GetService("Lighting").FogStart = 100000000000000000000000 | |
1352 | game:GetService("Lighting").Brightness = module.Options.Brightness | |
1353 | game:GetService("Lighting").ExposureCompensation = module.Options.ExposureCompensation | |
1354 | game:GetService("Lighting").GeographicLatitude = 41.733 | |
1355 | game:GetService("Lighting").ColorShift_Bottom = Color3.new(1,1,1) | |
1356 | game:GetService("Lighting").ColorShift_Top = Color3.new(1,1,1) | |
1357 | game:GetService("Lighting").FogColor = Color3.new(1,1,1) | |
1358 | game:GetService("Lighting").ClockTime = 12 | |
1359 | end | |
1360 | end) | |
1361 | ||
1362 | return module | |
1363 | end)() | |
1364 | --]] | |
1365 | --[[ | |
1366 | local _Noclip = (function() | |
1367 | --// Variables | |
1368 | local module = {} | |
1369 | ||
1370 | local RunService = game:GetService("RunService") | |
1371 | local Players = game:GetService("Players") | |
1372 | local Player = Players.LocalPlayer | |
1373 | local MANAFLY = nil | |
1374 | ||
1375 | module.Options = { | |
1376 | Enabled = false, | |
1377 | Color = Color3.new(1, 0, 0), | |
1378 | speed = 0, | |
1379 | Opacity = 0, | |
1380 | Up="x", | |
1381 | Down="z", | |
1382 | } | |
1383 | ||
1384 | function module:Enable() | |
1385 | module.Options.Enabled = true | |
1386 | end | |
1387 | ||
1388 | function module:Disable() | |
1389 | module.Options.Enabled = false | |
1390 | end | |
1391 | RunService.Stepped:Connect(function() | |
1392 | if module.Options.Enabled then | |
1393 | for _,v in pairs(Player.Character:GetDescendants())do | |
1394 | if v:IsA("BasePart") then | |
1395 | v.CanCollide = false | |
1396 | end | |
1397 | end | |
1398 | end | |
1399 | end) | |
1400 | return module | |
1401 | end)() | |
1402 | --]] | |
1403 | ||
1404 | --// Variables | |
1405 | local RunService = game:GetService("RunService") | |
1406 | local HttpService = game:GetService("HttpService") | |
1407 | local UserInputService = game:GetService("UserInputService") | |
1408 | local Players = game:GetService("Players") | |
1409 | local Player = Players.LocalPlayer | |
1410 | local Mouse = Player:GetMouse() | |
1411 | ||
1412 | local gui = GUIData[1] | |
1413 | local saveData = GUIData[2] | |
1414 | local screenGui = GUIData[3] | |
1415 | ||
1416 | local screenscale = 250 | |
1417 | local opacity = 1 | |
1418 | local backcolor = Color3.new() | |
1419 | ||
1420 | --// Saving | |
1421 | local readfile = readfile or function() end | |
1422 | pcall(function() | |
1423 | local JSONData = readfile("OpenGui.txt") | |
1424 | if JSONData then | |
1425 | local LUAData = HttpService:JSONDecode(JSONData) | |
1426 | saveData.Options = LUAData.Options | |
1427 | saveData.Hotkeys = LUAData.Hotkeys | |
1428 | print("Save Data found") | |
1429 | else | |
1430 | print("Save Data not found") | |
1431 | end | |
1432 | end) | |
1433 | ||
1434 | ||
1435 | --// UI Creation | |
1436 | ||
1437 | --// Render Frame | |
1438 | local Render = gui:create("Container", { | |
1439 | Name = "Render", | |
1440 | })--| | |
1441 | local OpenGui = Render.self:create("Toggle", { | |
1442 | Name = "OpenGui", | |
1443 | Default = true, | |
1444 | Hotkey = tostring(Enum.KeyCode.RightControl), | |
1445 | Hint = "The navigation GUI", | |
1446 | Callback = function(enabled) | |
1447 | for _, frame in pairs(screenGui:GetChildren()) do | |
1448 | if frame:IsA("Frame") then | |
1449 | frame.Visible = enabled | |
1450 | end | |
1451 | end | |
1452 | screenGui.Modal.Visible = enabled | |
1453 | screenGui.Hint.Visible = false | |
1454 | end, | |
1455 | })--| | |
1456 | ||
1457 | local Opacity = OpenGui.self:create("Number", { | |
1458 | Name = "Opacity", | |
1459 | Min = 0, | |
1460 | Max = 1, | |
1461 | Round = 0.01, | |
1462 | Default = 0.75, | |
1463 | Hint = "Transparency of the navigation GUI", | |
1464 | Callback = function(alpha) | |
1465 | opacity = 1 - alpha | |
1466 | for _, frame in pairs(screenGui:GetChildren()) do | |
1467 | if frame:IsA("Frame") then | |
1468 | frame.BackgroundTransparency = 1 - alpha | |
1469 | frame.OptionsFrame.BackgroundTransparency = 1 - alpha | |
1470 | end | |
1471 | end | |
1472 | end, | |
1473 | }) | |
1474 | ||
1475 | local Width = OpenGui.self:create("Number", { | |
1476 | Name = "Width", | |
1477 | Min = 200, | |
1478 | Max = 1000, | |
1479 | Round = 1, | |
1480 | Default = 1000, | |
1481 | Hint = "Width of the navigation GUI", | |
1482 | Callback = function(scale) | |
1483 | screenscale = scale | |
1484 | for _, frame in pairs(screenGui:GetChildren()) do | |
1485 | if frame:IsA("Frame") then | |
1486 | frame.Size = UDim2.new(0, scale, 0, frame.Size.Y.Offset) | |
1487 | end | |
1488 | end | |
1489 | end, | |
1490 | }) | |
1491 | ||
1492 | local Color = OpenGui.self:create("Color", { | |
1493 | Name = "Background Color", | |
1494 | Default = Color3.fromRGB(40, 40, 40), | |
1495 | Hint = "Background color of the navigation GUI", | |
1496 | Callback = function(color) | |
1497 | backcolor = color | |
1498 | for _, frame in pairs(screenGui:GetChildren()) do | |
1499 | if frame:IsA("Frame") then | |
1500 | frame.BackgroundColor3 = color | |
1501 | frame.OptionsFrame.BackgroundColor3 = color | |
1502 | end | |
1503 | end | |
1504 | end, | |
1505 | }) | |
1506 | --[[ | |
1507 | local FullBright = Render.self:create("Toggle", { | |
1508 | Name = "FullBright", | |
1509 | Default = false, | |
1510 | Hint = "Toggle FullBright", | |
1511 | Callback = function(enabled) | |
1512 | _FullBright.Options.Enabled = enabled | |
1513 | if enabled then | |
1514 | _FullBright:Enable() | |
1515 | else | |
1516 | _FullBright:Disable() | |
1517 | end | |
1518 | end, | |
1519 | }) | |
1520 | ||
1521 | local ExposureCompensation = FullBright.self:create("Number", { | |
1522 | Name = "ExposureCompensation ", | |
1523 | Default = 0.5, | |
1524 | Min = 0, | |
1525 | Max = 100, | |
1526 | Round = 0.001, | |
1527 | Hint = "Change ExposureCompensation", | |
1528 | Callback = function(exposureCompensation) | |
1529 | _FullBright.Options.ExposureCompensation = exposureCompensation | |
1530 | end, | |
1531 | }) | |
1532 | ||
1533 | local Brightness = FullBright.self:create("Number", { | |
1534 | Name = "Brightness ", | |
1535 | Default = 2, | |
1536 | Min = 0, | |
1537 | Max = 40, | |
1538 | Round = 0.001, | |
1539 | Hint = "Change Brightness", | |
1540 | Callback = function(brightness) | |
1541 | _FullBright.Options.Brightness = brightness | |
1542 | - | -- ESP -- |
1542 | + | |
1543 | }) | |
1544 | --]] | |
1545 | -- ESP ----[[ | |
1546 | local Chams = Render.self:create("Toggle", { | |
1547 | Name = "Chams", | |
1548 | Default = false, | |
1549 | Hint = "Render players through walls", | |
1550 | Callback = function(enabled) | |
1551 | _Chams.Options.Enabled = enabled | |
1552 | if enabled then | |
1553 | _Chams:Enable() | |
1554 | else | |
1555 | _Chams:Disable() | |
1556 | end | |
1557 | end, | |
1558 | })--| | |
1559 | local ChamsColor = Chams.self:create("Color", { | |
1560 | Name = "Chams Color", | |
1561 | Default = Color3.new(1, 1, 1), | |
1562 | Hint = "Color of the player chams", | |
1563 | Callback = function(color) | |
1564 | _Chams.Options.Color = color | |
1565 | end, | |
1566 | }) | |
1567 | local ChamsShowTeam = Chams.self:create("Checkbox", { | |
1568 | Name = "Show Team", | |
1569 | Default = false, | |
1570 | Hint = "Include your teammates", | |
1571 | Callback = function(enabled) | |
1572 | _Chams.Options.ShowTeam = enabled | |
1573 | end, | |
1574 | }) | |
1575 | local ChamsShowSelf = Chams.self:create("Checkbox", { | |
1576 | Name = "Show Self", | |
1577 | Default = false, | |
1578 | Hint = "Include yourself", | |
1579 | Callback = function(enabled) | |
1580 | _Chams.Options.ShowSelf = enabled | |
1581 | end, | |
1582 | }) | |
1583 | local ChamsTeamColor = Chams.self:create("Checkbox", { | |
1584 | Name = "Team Color", | |
1585 | Default = false, | |
1586 | Hint = "The chams color corresponds to the player's team", | |
1587 | Callback = function(enabled) | |
1588 | _Chams.Options.TeamColor = enabled | |
1589 | end, | |
1590 | }) | |
1591 | local ChamsShowDescendants = Chams.self:create("Checkbox", { | |
1592 | Name = "Show Descendants", | |
1593 | Default = false, | |
1594 | Hint = "Highlight items like accessories", | |
1595 | Callback = function(enabled) | |
1596 | _Chams.Options.ShowDescendants = enabled | |
1597 | end, | |
1598 | }) | |
1599 | local ChamsMode = Chams.self:create("Mode", { | |
1600 | Name = "Chams Mode", | |
1601 | Default = 1, | |
1602 | Modes = {"Opaque", "Shader","ForceField"}, | |
1603 | Hint = "The type of chams used", | |
1604 | Callback = function(mode) | |
1605 | _Chams.Options.Mode = mode | |
1606 | _Chams:ReloadCharacters() | |
1607 | end, | |
1608 | }) | |
1609 | local ChamsOpacity = Chams.self:create("Number", { | |
1610 | Name = "Opacity", | |
1611 | Default = 0.5, | |
1612 | Min = 0, | |
1613 | Max = 1, | |
1614 | Round = 0.01, | |
1615 | Hint = "Visibility of the chams", | |
1616 | Callback = function(opacity) | |
1617 | _Chams.Options.Opacity = opacity | |
1618 | end, | |
1619 | }) | |
1620 | local ChamsMaxDistance = Chams.self:create("Number", { | |
1621 | Name = "Max Distance", | |
1622 | Default = 2048, | |
1623 | Min = 0, | |
1624 | Max = 25000, | |
1625 | Round = 0.5, | |
1626 | Hint = "The chams' maximum distance", | |
1627 | Callback = function(distance) | |
1628 | _Chams.Options.MaxDistance = distance | |
1629 | end, | |
1630 | }) | |
1631 | --]] | |
1632 | local Mana = gui:create("Container", { | |
1633 | Name = "Mana", | |
1634 | }) | |
1635 | --[[ | |
1636 | local ManaFly = Mana.self:create("Toggle", { | |
1637 | Name = "ManaFly", | |
1638 | Default = false, | |
1639 | Hint = "Toggle ManaFly", | |
1640 | Hotkey = tostring(Enum.KeyCode.B), | |
1641 | Callback = function(enabled) | |
1642 | _ManaFly.Options.Enabled = enabled | |
1643 | if enabled then | |
1644 | _ManaFly:Enable() | |
1645 | else | |
1646 | _ManaFly:Disable() | |
1647 | end | |
1648 | end, | |
1649 | }) | |
1650 | ||
1651 | local ManaFlySpeed = ManaFly.self:create("Number", { | |
1652 | Name = "FlySpeed", | |
1653 | Default = 0, | |
1654 | Min = 0, | |
1655 | Max = 100, | |
1656 | Round = 0.001, | |
1657 | Hint = "Speed Boost", | |
1658 | Callback = function(Speed) | |
1659 | _ManaFly:SpeedChange(Speed) | |
1660 | _ManaFly.Options.speed = tonumber(Speed) | |
1661 | end, | |
1662 | }) | |
1663 | local ManaPartSize = ManaFly.self:create("Number", { | |
1664 | Name = "PartSize", | |
1665 | Default = 1, | |
1666 | Min = 1, | |
1667 | Max = 100, | |
1668 | Round = 0.001, | |
1669 | Hint = "PartSize", | |
1670 | Callback = function(Size) | |
1671 | _ManaFly.Options.Size= tonumber(Size) | |
1672 | end, | |
1673 | }) | |
1674 | ||
1675 | local ManaFlyOpacity = ManaFly.self:create("Number", { | |
1676 | Name = "Opacity", | |
1677 | Default = 0, | |
1678 | Min = 0, | |
1679 | Max = 1, | |
1680 | Round = 0.001, | |
1681 | Hint = "Visibility of the Part", | |
1682 | Callback = function(opacity) | |
1683 | _ManaFly.Options.Opacity = 1-opacity | |
1684 | end, | |
1685 | }) | |
1686 | ||
1687 | local ManaPartMaterial = ManaFly.self:create("Mode", { | |
1688 | Name = "ManaPart Material", | |
1689 | Hint = "Change ManaPart Material", | |
1690 | Default = 1, | |
1691 | Modes = { | |
1692 | "Air", | |
1693 | "ForceField" | |
1694 | }, | |
1695 | Callback = function(value) | |
1696 | _ManaFly.Options.PartMaterial = value | |
1697 | end, | |
1698 | }) | |
1699 | ||
1700 | local ManaSoul = Mana.self:create("Toggle", { | |
1701 | Name = "ManaSoul", | |
1702 | Default = false, | |
1703 | Hint = "Toggle Noclip", | |
1704 | Callback = function(enabled) | |
1705 | _Noclip.Options.Enabled = enabled | |
1706 | if enabled then | |
1707 | _Noclip:Enable() | |
1708 | else | |
1709 | _Noclip:Disable() | |
1710 | end | |
1711 | end, | |
1712 | }) | |
1713 | --]] | |
1714 | ||
1715 | local ManaRun = Mana.self:create("Toggle", { | |
1716 | Name = "ManaRun", | |
1717 | Default = false, | |
1718 | Hint = "Toggle ManaRun", | |
1719 | Hotkey = tostring(Enum.KeyCode.V), | |
1720 | Callback = function(enabled) | |
1721 | _ManaRun.Options.Enabled = enabled | |
1722 | if enabled then | |
1723 | _ManaRun:Enable() | |
1724 | else | |
1725 | _ManaRun:Disable() | |
1726 | end | |
1727 | end, | |
1728 | }) | |
1729 | local ManaRunSpeed = ManaRun.self:create("Number", { | |
1730 | Name = "Boost Speed", | |
1731 | Default = 0, | |
1732 | Min = 0, | |
1733 | Max = 2, | |
1734 | Round = 0.001, | |
1735 | Hint = "Speed Boost", | |
1736 | Callback = function(Speed) | |
1737 | _ManaRun:SpeedChange(Speed) | |
1738 | _ManaRun.Options.speed = tonumber(Speed) | |
1739 | end, | |
1740 | }) | |
1741 | RunService.RenderStepped:Connect(function() | |
1742 | for _, frame in pairs(screenGui:GetChildren()) do | |
1743 | if frame:IsA("Frame") then | |
1744 | frame.Size = UDim2.new(0, screenscale, 0, frame.Size.Y.Offset) | |
1745 | ||
1746 | frame.BackgroundTransparency = opacity | |
1747 | frame.OptionsFrame.BackgroundTransparency = opacity | |
1748 | ||
1749 | frame.BackgroundColor3 = backcolor | |
1750 | frame.OptionsFrame.BackgroundColor3 = backcolor | |
1751 | end | |
1752 | end | |
1753 | end) | |
1754 | ||
1755 | notify.Text = "Loaded" | |
1756 | game:GetService("StarterGui"):SetCore("SendNotification",notify) | |
1757 | notify.Text = "Got it?" |