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?" |