--[[ WARNING Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] local framework = setmetatable({ dependencies = { utils = {} }, data = {}, components = { base = {} }, popups = {}, pages = { startup = {}, navbar = {}, exploitSettings = { optionTypes = {} }, editor = {}, localScripts = {}, globalScripts = {} } }, { __index = function(t, k) local res, split = t, string.split(k, .); for i, v in split do res = rawget(res, v); end return res; end }); do --[[ Connection ]]-- local connection = {}; connection.__index = connection; function connection.new(signal {any}, fn (any)) return setmetatable({ _signal = signal, _fn = fn }, connection); end function connectionDisconnect() self._signal[self] = nil; end --[[ Signal ]]-- local signal = {}; signal.__index = signal; function signal.new() return setmetatable({}, signal); end function signalConnect(fn (any)) local conn = connection.new(self, fn); self[conn] = true; return conn; end function signalOnce(fn (any)) local conn; conn = selfConnect(function(...) connDisconnect(); fn(...); end); return conn; end function signalFire(...) for conn, _ in self do task.spawn(conn._fn, ...); end end function signalWait() local thread = coroutine.running(); local conn; conn = selfConnect(function(...) connDisconnect(); task.spawn(thread, ...); end); return coroutine.yield(); end function signalDisconnectAll() table.clear(self); end framework.dependencies.signal = signal; end do --[[ Variables ]]-- local runService = gameGetService(RunService); local tweenService = gameGetService(TweenService); local dynamicParent; --[[ Setup ]]-- if gethui then dynamicParent = gethui(); elseif runServiceIsRunning() then dynamicParent = runServiceIsStudio() and gameGetService(Players).LocalPlayerWaitForChild(PlayerGui) or gameGetService(CoreGui); else dynamicParent = gameGetService(StarterGui); end --[[ Module ]]-- local utils = {}; function utilsCreate(className string, properties {any}, children {any}) Instance local instance = Instance.new(className); for i, v in properties do if typeof(instance[i]) == RBXScriptSignal then instance[i]Connect(v); elseif i ~= Parent then instance[i] = v; end end if children ~= nil then for i, v in children do v.Parent = instance; end end instance.Parent = properties.Parent; return instance; end function utilsTween(instance Instance, duration number, properties {any}, ...) Tween local tween = tweenServiceCreate(instance, TweenInfo.new(duration, ...), properties); tweenPlay(); return tween; end function utilsDynamicParent(instance Instance) Instance instance.Parent = dynamicParent; return instance; end framework.dependencies.utils.instance = utils; end do --[[ Variables ]]-- local denominations = { K, M, B, T, q, Q, s, S, O, N, d, U, D }; --[[ Module ]]-- local utils = {}; function utilsRound(input number, float number) number local bracket = 1 float; return math.round(input bracket) bracket; end function utilsFormatAsCount(input number, float number) string if input 1000 then return tostring(input); end local denominationIndex = math.floor(math.log10(input) 3); return tostring(selfRound(input (10 ^ (denominationIndex 3)), float)) .. tostring(denominations[denominationIndex]); end function utilsFormatAsLiteralCount(input number) string local x = string.gsub(string.reverse(tostring(input)), (%d%d%d), %1,); return string.gsub(string.reverse(x), ^,, ); end function utilsIsWithin2DBounds(position Vector2, topLeft Vector2, bottomRight Vector2) boolean return position.X = topLeft.X and position.X = bottomRight.X and position.Y = topLeft.Y and position.Y = bottomRight.Y; end framework.dependencies.utils.maths = utils; end do --[[ Module ]]-- local utils = {}; function utilsDeep(x {any}) local y = {}; for i, v in x do y[i] = type(v) == table and selfDeepCopy(v) or v; end return y; end function utilsConcatenate(x {any}, y {any}) if y ~= nil then for i, v in y do table.insert(x, v); end end return x; end function utilsDeepOverwrite(x {any}, y {any}, inclusive boolean) if y == nil then return x; end for i, v in y do if x[i] == nil then if inclusive then x[i] = v; end else local _type = typeof(x[i]); if _type == typeof(v) then if _type == table then selfDeepOverwrite(x[i], v); else x[i] = v; end end end end return x; end framework.dependencies.utils.table = utils; end do --[[ Module ]]-- local utils = {}; function utilsCapitaliseFirst(str string) string return string.upper(string.sub(str, 1, 1)) .. string.lower(string.sub(str, 2)); end function utilsConvertToCamelCase(str string) string local res = ; for i, v in string.split(str, ) do res ..= i == 1 and string.lower(v) or selfCapitaliseFirst(v); end return res; end framework.dependencies.utils.string = utils; end do --[[ Variables ]]-- local httpService = gameGetService(HttpService); local httpRequest = request or http_request or (syn and syn.request); local runcode = runcode and clonefunction(runcode) or function(scr) loadstring(scr)(); end --[[ Module ]]-- local utils = {}; function utilsRequest(url string, method string, headers {any}, body any) string local s, r = pcall(httpRequest, { Url = url, Method = method or GET, Headers = headers, Body = type(body) == table and httpServiceJSONEncode(body) or body }); if s == false or r.Success == false or r.StatusCode ~= 200 then return false; end return r.Body; end function utilsExecute(scr string, ...) task.spawn(runcode, scr); end framework.dependencies.utils.internal = utils; end do --[[ Enum ]]-- local codexEnum = {}; function codexEnum.__index(t, k) return t._map[k] or codexEnum[k]; end function codexEnum.new(items {any}) {any} local map = {}; for i, v in items do map[v] = i; end return setmetatable({ _map = map, _items = items }, codexEnum); end function codexEnumGetEnumItems() return self._items; end --[[ Module ]]-- framework.dependencies.codexEnum = { NavbarState = codexEnum.new({ Hidden, Partial, Full }) }; end do --[[ Variables ]]-- local httpService = gameGetService(HttpService); local signal = framework.dependencies.signal; local tableUtils = framework.dependencies.utils.table; local signalCache = {}; local settingsCache = { executor = { autoExecute = true, autoSaveTabs = false, fps = { unlocked = false, vSync = false, value = 60 } }, player = { walkSpeed = { enabled = false, value = 16 }, jumpPower = { enabled = false, value = 50 }, }, serverHop = { priority = Most Players } }; local userSettings = {}; --[[ Functions ]]-- local function saveUserSettings() if writefile then writefile(codexSettings.json, httpServiceJSONEncode(tableUtilsDeepCopy(settingsCache))); end end local function createAutosaveMetatable(options {any}, hierarchy string) for i, v in options do if type(v) == table then options[i] = createAutosaveMetatable(v, hierarchy == and i or string.format(%s.%s, hierarchy, i)); end end return setmetatable({}, { __index = function(_, k) return options[k]; end, __newindex = function(_, k, v) options[k] = v; saveUserSettings(); userSettingsFirePropertyChangedSignal(hierarchy == and k or string.format(%s.%s, hierarchy, k), v); end, __iter = function() return next, options; end }); end --[[ Module ]]-- function userSettingsInitialize() if isfile and isfile(codexSettings.json) then local succ, res = pcall(httpService.JSONDecode, httpService, readfile(codexSettings.json)); if succ then tableUtilsDeepOverwrite(settingsCache, res); else task.defer(error, settings file is corrupted); end end self.cache = createAutosaveMetatable(settingsCache, ); end function userSettingsGetPropertyChangedSignal(path string) if signalCache[path] == nil then signalCache[path] = signal.new(); end return signalCache[path]; end function userSettingsFirePropertyChangedSignal(path string, value any) local sig = signalCache[path]; if sig then sigFire(value); end end framework.data.userSettings = userSettings; end do --[[ Variables ]]-- local changelog = { { stamp = 2023-10-07T173821Z, data = { 98% UNC Success Rate, Added Server Hopper, Added FPS Settings, Added Auto Save Tabs, Bug Fixes } }, { stamp = 2023-10-06T174739Z, data = { Updated for V2.596, Bug Fixes } }, { stamp = 2023-09-28T104341Z, data = { Added Save Scripts from Tabs, Premium Whitelist Page, Game Hub Shows Hot Scripts On Launch, Toggleable Auto Execute } }, { stamp = 2023-09-27T010004Z, data = { Fixed Bugs in Filesystem Functions, SkyHub and BananaHub Fixed, Performance Upgrades } }, { stamp = 2023-09-26T201621Z, data = { UI Revamp!, New Whitelist System, New Security Measures [Banwave Bypass], Added Tabs, Added Save Scripts, Bug & Performance Fixes } } }; --[[ Module ]]-- framework.data.internalSettings = { changelog = changelog }; end do --[[ Variables ]]-- local signal = framework.dependencies.signal; local internalUtils = framework.dependencies.utils.internal; local tableUtils = framework.dependencies.utils.table; local httpService = gameGetService(HttpService); local savedScripts = { accumulator = 0, cache = {}, onScriptAdded = signal.new(), onScriptRemoved = signal.new() }; --[[ Functions ]]-- local function reassignIndexes(cache {any}) for i, v in cache do v.index = i; end return cache; end local function loadScriptCache() if isfile and isfile(codexScriptCache.json) then local s, r = pcall(httpService.JSONDecode, httpService, readfile(codexScriptCache.json)); if s and type(r) == table then local accumulation = 0; local cache = {}; local hasFoundDuplicateIndex = false; for i, v in r do if not (type(v) == table and v.title and v.description and v.content and v.index and v.autoExecute ~= nil) then continue; end if v.index accumulation then accumulation = v.index; end if hasFoundDuplicateIndex == false then -- backwards fix from an old broken update andor someone trying to fuck with the system for i2, v2 in cache do if v2.index == v.index then hasFoundDuplicateIndex = true; end end end v.onAutoExecuteToggled = signal.new(); cache[#cache + 1] = hasFoundDuplicateIndex and reassignIndexes(v) or v; end savedScripts.accumulator = accumulation; savedScripts.cache = cache; end end end local function saveScriptCache() if writefile then local cache = tableUtilsDeepCopy(savedScripts.cache); for i, v in cache do v.onAutoExecuteToggled = nil; end writefile(codexScriptCache.json, httpServiceJSONEncode(cache)); end end --[[ Module ]]-- function savedScriptsInitialize() loadScriptCache(); for i, v in savedScripts.cache do if v.autoExecute then task.spawn(function() internalUtilsExecute(v.content); end); end end end function savedScriptsGet(index number) for i, v in self.cache do if v.index == index then return i, v; end end end function savedScriptsAdd(title string, description string, content string) self.accumulator += 1; local index = self.accumulator; local newScript = { title = title, description = description, content = content, index = index, autoExecute = false, onAutoExecuteToggled = signal.new() }; self.cache[#self.cache + 1] = newScript; self.onScriptAddedFire(newScript); saveScriptCache(); end function savedScriptsRemove(index number) local i, save = selfGet(index); if save then table.remove(self.cache, i); self.onScriptRemovedFire(save); saveScriptCache(); end end function savedScriptsToggleAutomaticExecution(index number, state boolean) local _, save = selfGet(index); if save then save.autoExecute = state; save.onAutoExecuteToggledFire(state); saveScriptCache(); end end framework.data.savedScripts = savedScripts; end do framework.data.builtInScripts = { { title = Dark Dex V4, description = A powerful game explorer GUI. Shows every instance of the game and all their properties. Useful for developers., icon = rbxassetid14806198159, content = local file = dexV4.lua; local raw = isfile and isfile(file) and readfile(file); raw = raw or gameHttpGetAsync(httpsraw.githubusercontent.comloglizzydexV4mainsource.lua); if isfile then task.spawn(writefile, file, gameHttpGet(url)); end loadstring(raw)(); }, { title = Unnamed ESP, description = Player ESP for Roblox, fully undetectable, uses built in drawing API., icon = rbxassetid14806221310, content = pcall(function() loadstring(gameHttpGet(httpsraw.githubusercontent.comic3w0lf22Unnamed-ESPmasterUnnamedESP.lua))(); end); }, { title = Hydroxide, description = General purpose pen-testing tool for games on the Roblox engine, icon = rbxassetid14806229032, content = loadstring(gameHttpGetAsync(httpsraw.githubusercontent.comUpboltHydroxiderevisioninit.lua))(); loadstring(gameHttpGetAsync(httpsraw.githubusercontent.comUpboltHydroxiderevisionuimain.lua))(); }, { title = Infinite Yield, description = Admin command line script with 300+ commands and 6 years of development, icon = rbxassetid14806239733, content = loadstring(gameHttpGetAsync(httpsraw.githubusercontent.comEdgeIYinfiniteyieldmastersource))(); }, { title = Owl Hub, description = Owl Hub is a free Roblox script hub developed by Google Chrome and CriShoux. It currently has 30+ games., icon = rbxassetid14806252030, content = loadstring(gameHttpGet(httpsraw.githubusercontent.comCriShouxOwlHubmasterOwlHub.txt))(); } }; end do --[[ Variables ]]-- local signal = framework.dependencies.signal; local tableUtils = framework.dependencies.utils.table; local httpService = gameGetService(HttpService); local tabSystem = { accumulator = 1, selected = nil, cache = { { title = Note, content = -- This is the real Codex UI but Modified., index = 1 } }, onTabCreated = signal.new(), onTabRemoved = signal.new(), onTabSelected = signal.new() }; --[[ Functions ]]-- local function reassignIndexes(cache {any}) for i, v in cache do v.index = i; end return cache; end local function loadTabCache() if isfile and isfile(codexTabs.json) then local s, r = pcall(httpService.JSONDecode, httpService, readfile(codexTabs.json)); if s and type(r) == table then local accumulation = 0; local cache = {}; local hasFoundDuplicateIndex = false; for i, v in r do if not (type(v) == table and v.title and v.content and v.index) then continue; end if v.index accumulation then accumulation = v.index; end if hasFoundDuplicateIndex == false then -- backwards fix from an old broken update andor someone trying to fuck with the system for i2, v2 in cache do if v2.index == v.index then hasFoundDuplicateIndex = true; end end end cache[#cache + 1] = hasFoundDuplicateIndex and reassignIndexes(v) or v; end tabSystem.accumulator = accumulation; tabSystem.cache = cache; end end end --[[ Module ]]-- function tabSystemInitialize() loadTabCache(); end function tabSystemGet(index number) for i, v in self.cache do if v.index == index then return i, v; end end end function tabSystemAdd(title string, content string) self.accumulator += 1; local index = self.accumulator; local newTab = { title = title, content = content or print('Hello World!');, index = index }; self.cache[#self.cache + 1] = newTab; self.onTabCreatedFire(newTab); selfSelect(index); end function tabSystemRemove(index number) if #self.cache 1 then local i, tab = selfGet(index); if tab then if self.selected == tab then selfSelect(self.cache[i == 1 and 2 or 1].index); end table.remove(self.cache, i); self.onTabRemovedFire(tab); end end end function tabSystemSelect(index number) local _, tab = selfGet(index); if tab and (self.selected == nil or tab.index ~= self.selected.index) then self.selected = tab; self.onTabSelectedFire(tab); end end function tabSystemUpdateContent(index number, content string) local _, tab = selfGet(index); if tab then tab.content = content; end end function tabSystemSave() if writefile then writefile(codexTabs.json, httpServiceJSONEncode(tableUtilsDeepCopy(self.cache))); end end framework.data.tabSystem = tabSystem; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local tableUtils = framework.dependencies.utils.table; --[[ Module ]]-- framework.components.base.textLabel = (function(overwriteProps {any}, children {any}) Instance return instanceUtilsCreate(TextLabel, tableUtilsDeepOverwrite({ AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold), Size = UDim2.new(), TextColor3 = Color3.new(1, 1, 1), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Center, TextYAlignment = Enum.TextYAlignment.Center }, overwriteProps, true), children); end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local tableUtils = framework.dependencies.utils.table; --[[ Module ]]-- framework.components.base.textBox = (function(overwriteProps {any}, children {any}) Instance return instanceUtilsCreate(TextBox, tableUtilsDeepOverwrite({ AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromRGB(58, 58, 74), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json), PlaceholderText = Value..., Size = UDim2.new(0, 0, 0, 32), Text = , TextColor3 = Color3.fromRGB(159, 164, 186), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Center, TextYAlignment = Enum.TextYAlignment.Center }, overwriteProps, true), tableUtilsConcatenate({ instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtilsCreate(UICorner, { Name = corner, CornerRadius = UDim.new(0, 6) }) }, children)); end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local tableUtils = framework.dependencies.utils.table; --[[ Module ]]-- framework.components.base.textButton = (function(overwriteProps {any}, children {any}) Instance return instanceUtilsCreate(TextButton, tableUtilsDeepOverwrite({ AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromRGB(235, 69, 69), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold), Size = UDim2.new(0, 0, 0, 32), TextColor3 = Color3.new(1, 1, 1), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Center, TextYAlignment = Enum.TextYAlignment.Center }, overwriteProps, true), tableUtilsConcatenate({ instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtilsCreate(UICorner, { Name = corner, CornerRadius = UDim.new(0, 6) }) }, children)); end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local tableUtils = framework.dependencies.utils.table; --[[ Module ]]-- framework.components.base.background = (function(overwriteProps {any}, children {any}) Instance return instanceUtilsCreate(Frame, tableUtilsDeepOverwrite({ AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromRGB(21, 21, 29), BackgroundTransparency = 0.1, BorderSizePixel = 0, Name = background, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, 0, 1, 0), ZIndex = 0 }, overwriteProps, true), children); end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; --[[ Functions ]]-- local function createButton(title string, icon string) Instance return instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Name = stringUtilsConvertToCamelCase(title), Size = UDim2.new(1, 0, 0, 50), Text = , ZIndex = 2 }, { instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = icon, ImageColor3 = Color3.fromHex(979ebd), ImageTransparency = 0.6, Name = icon, Position = UDim2.new(0, 38, 0.5, 0), Size = UDim2.new(0, 24, 0, 24), ZIndex = 2 }, { instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = rbxassetid11559270573, ImageTransparency = 1, Name = glow, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 85, 0, 102), ZIndex = 2 }) }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0, 0.5), AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size12, Name = text, Position = UDim2.new(0, 70, 0.5, 0), Text = title, TextColor3 = Color3.fromHex(ffffff), TextSize = 12, TextTransparency = 0.2, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 2 }), instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(0, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = rbxassetid11558444554, Name = arrow, Position = UDim2.new(0, 224, 0.5, 0), Size = UDim2.new(0, 16, 0, 16), ZIndex = 2 }) }); end --[[ Module ]]-- local navbarButton = {}; navbarButton.__index = navbarButton; function navbarButton.new(title string, icon string) return setmetatable({ instance = createButton(title, icon); }, navbarButton); end function navbarButtonHighlight(selected boolean) instanceUtilsTween(self.instance.icon, 0.2, { ImageColor3 = selected and Color3.fromHex(eb4545) or Color3.fromHex(979ebd), ImageTransparency = selected and 0 or 0.6 }); instanceUtilsTween(self.instance.icon.glow, 0.2, { ImageTransparency = selected and 0 or 1 }); end framework.components.navbarButton = navbarButton; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local tableUtils = framework.dependencies.utils.table; --[[ Module ]]-- framework.components.editorButton = (function(title string, icon string, overwriteProps {any}, foreground Color3) Instance return instanceUtilsCreate(TextButton, tableUtilsDeepOverwrite({ BackgroundColor3 = Color3.fromHex(3a3a4a), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesSourceSansPro.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = stringUtilsConvertToCamelCase(title), Size = UDim2.new(0, 50, 0, 50), Text = , TextColor3 = Color3.fromHex(1b2a35), ZIndex = 2 }, overwriteProps, true), { instanceUtilsCreate(UICorner, { Name = corner }), instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = icon, ImageColor3 = foreground or Color3.fromHex(9fa4ba), Name = icon, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 28, 0, 28), ZIndex = 2 }) }); end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local tabSystem; local textService = gameGetService(TextService); --[[ Functions ]]-- local function createButton(title string) Instance return instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesSourceSansPro.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = stringUtilsConvertToCamelCase(title), Position = UDim2.new(1, -75, 1, -75), Size = UDim2.new(0, textServiceGetTextBoundsAsync(instanceUtilsCreate(GetTextBoundsParams, { Font = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), Text = title, Size = 14, Width = math.huge })).X + 42, 0, 32), Text = }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(ImageButton, { AnchorPoint = Vector2.new(1, 0.5), AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Image = rbxassetid14808246706, Name = close, Position = UDim2.new(1, -6, 0.5, 0), Size = UDim2.new(0, 20, 0, 20) }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = title, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, -18, 1, 0), Text = title, TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left }) }); end --[[ Module ]]-- local tabButton = {}; tabButton.__index = tabButton; function tabButton.new(tab {any}) if tabSystem == nil then tabSystem = framework.data.tabSystem; end local btn = createButton(tab.title); btn.MouseButton1ClickConnect(function() tabSystemSelect(tab.index); end); btn.close.MouseButton1ClickConnect(function() tabSystemRemove(tab.index); end); return setmetatable({ instance = btn }, tabButton); end function tabButtonHighlight(selected boolean) instanceUtilsTween(self.instance, 0.2, { BackgroundColor3 = Color3.fromHex(selected and eb4545 or 3a3a4a); }); instanceUtilsTween(self.instance.title, 0.2, { TextColor3 = Color3.fromHex(selected and ffffff or 9fa4ba); }); instanceUtilsTween(self.instance.close, 0.2, { ImageColor3 = Color3.fromHex(selected and ffffff or 9fa4ba); }); end function tabButtonDestroy() self.instanceDestroy(); end framework.components.tabButton = tabButton; end do --[[ Variables ]]-- local savedScripts = framework.data.savedScripts; local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local mathsUtils = framework.dependencies.utils.maths; local tabSystem; local globalScriptSelection = {}; --[[ Functions ]]-- local function createUI(directory Instance) Instance local base = instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(15151d), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = globalScriptSelection, Parent = directory, Position = UDim2.new(0.5, 0, 0.5, 20), Size = UDim2.new(0.6, 0, 0.4, 100), Visible = false }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIStroke, { Color = Color3.fromHex(202028), Name = stroke, Thickness = 2 }), instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = selectedScript, Position = UDim2.new(0, 30, 0, 20), Size = UDim2.new(1, -232, 0, 0), Text = Selected Script, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = buttons, Position = UDim2.new(0.5, 0, 1, -30), Size = UDim2.new(1, -60, 0, 0) }, { instanceUtilsCreate(UIGridLayout, { CellPadding = UDim2.new(0, 18, 0, 16), CellSize = UDim2.new(0.5, -9, 0, 36), Name = grid, SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Bottom }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = execute, Size = UDim2.new(0, 200, 0, 50), Text = Execute, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = loadToEditor, Size = UDim2.new(0, 200, 0, 50), Text = Load to Editor, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = saveScript, Size = UDim2.new(0, 200, 0, 50), Text = Save Script, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = cancel, Size = UDim2.new(0, 200, 0, 50), Text = Cancel, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }) }), instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(1, 0), BackgroundColor3 = Color3.fromHex(ffffff), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Image = , Name = icon, Position = UDim2.new(1, -30, 0, 20), Size = UDim2.new(0, 100, 1, -158) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIAspectRatioConstraint, { AspectRatio = 16 9, AspectType = Enum.AspectType.ScaleWithParentSize, DominantAxis = Enum.DominantAxis.Height, Name = aspectRatio }) }), instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = text, Position = UDim2.new(0, 30, 0, 40), Size = UDim2.new(1, -232, 0, 0), Text = , TextColor3 = Color3.fromHex(ffffff), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = views, Position = UDim2.new(0, 30, 0, 70), RichText = true, Size = UDim2.new(1, -232, 0, 0), Text = Views, TextColor3 = Color3.fromHex(ffffff), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = updatedAt, Position = UDim2.new(0, 30, 0, 90), RichText = true, Size = UDim2.new(1, -232, 0, 0), Text = Updated, TextColor3 = Color3.fromHex(ffffff), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(UIAspectRatioConstraint, { AspectRatio = 480 244, Name = aspectRatio }) }); base.buttons.execute.MouseButton1ClickConnect(function() internalUtilsExecute(globalScriptSelection.selectedScript.script); globalScriptSelectionHide(); end); base.buttons.loadToEditor.MouseButton1ClickConnect(function() if tabSystem == nil then tabSystem = framework.data.tabSystem; end tabSystemAdd(globalScriptSelection.selectedScript.title, globalScriptSelection.selectedScript.script); globalScriptSelectionHide(); end); base.buttons.saveScript.MouseButton1ClickConnect(function() savedScriptsAdd(globalScriptSelection.selectedScript.title, , globalScriptSelection.selectedScript.script); globalScriptSelectionHide(); end); base.buttons.cancel.MouseButton1ClickConnect(function() globalScriptSelectionHide(); end); return base; end --[[ Module ]]-- function globalScriptSelectionCreateUI(gui ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function globalScriptSelectionShow(scriptResult {any}) self.selectedScript = scriptResult; self.frame.icon.Image = string.format(httpsassetgame.roblox.comGameToolsThumbnailAsset.ashxaid=%d&fmt=png&wd=1920&ht=1080, scriptResult.isUniversal and 4483381587 or scriptResult.game.gameId); self.frame.text.Text = scriptResult.title; self.frame.views.Text = Views .. mathsUtilsFormatAsLiteralCount(scriptResult.views); self.frame.updatedAt.Text = Updated .. DateTime.fromIsoDate(scriptResult.updatedAt or scriptResult.createdAt)FormatLocalTime(ll, en-us); self.frame.Visible = true; end function globalScriptSelectionHide() self.frame.Visible = false; end framework.popups.globalScriptSelection = globalScriptSelection; end do --[[ Variables ]]-- local savedScripts = framework.data.savedScripts; local instanceUtils = framework.dependencies.utils.instance; local saveCurrentTab = {}; --[[ Functions ]]-- local function createUI(directory Instance) Instance local base = instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(15151d), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = saveCurrentTab, Parent = directory, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0.6, 0, 0.4, 100), Visible = false }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIStroke, { Color = Color3.fromHex(202028), Name = stroke, Thickness = 2 }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = buttons, Position = UDim2.new(0.5, 0, 1, -30), Size = UDim2.new(1, -60, 0, 0) }, { instanceUtilsCreate(UIGridLayout, { CellPadding = UDim2.new(0, 18, 0, 16), CellSize = UDim2.new(0.5, -9, 0, 36), Name = grid, SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Bottom }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = saveScript, Size = UDim2.new(0, 200, 0, 50), Text = Save Script, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }), instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = cancel, Size = UDim2.new(0, 200, 0, 50), Text = Cancel, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }) }) }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = text, Position = UDim2.new(0.5, 0, 0, 40), Size = UDim2.new(1, -60, 0, 0), Text = Script 1, TextColor3 = Color3.fromHex(ffffff), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = currentTab, Position = UDim2.new(0.5, 0, 0, 20), Size = UDim2.new(1, -60, 0, 0), Text = Current Tab, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextBox, { AnchorPoint = Vector2.new(0.5, 1), BackgroundColor3 = Color3.fromHex(202028), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = title, PlaceholderText = Title..., Position = UDim2.new(0.5, 0, 1, -125), Size = UDim2.new(1, -62, 0, 32), Text = , TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtilsCreate(UIStroke, { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex(3a3a4a), Name = stroke }) }), instanceUtilsCreate(TextBox, { AnchorPoint = Vector2.new(0.5, 1), BackgroundColor3 = Color3.fromHex(202028), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = description, PlaceholderText = Description..., Position = UDim2.new(0.5, 0, 1, -79), Size = UDim2.new(1, -62, 0, 32), Text = , TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtilsCreate(UIStroke, { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex(3a3a4a), Name = stroke }) }), instanceUtilsCreate(UISizeConstraint, { MaxSize = Vector2.new(600, math.huge), Name = sizeConstraint }), instanceUtilsCreate(UIAspectRatioConstraint, { AspectRatio = 480 244, Name = aspectRatio }) }); base.buttons.saveScript.MouseButton1ClickConnect(function() local title = base.title.Text; if #title 0 then savedScriptsAdd(title, base.description.Text, saveCurrentTab.selectedTab.content); saveCurrentTabHide(); end end); base.buttons.cancel.MouseButton1ClickConnect(function() saveCurrentTabHide(); end); return base; end --[[ Module ]]-- function saveCurrentTabCreateUI(gui ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function saveCurrentTabShow(selectedTab {any}) self.selectedTab = selectedTab; self.frame.text.Text = selectedTab.title; self.frame.title.Text = selectedTab.title; self.frame.Visible = true; end function saveCurrentTabHide() self.frame.Visible = false; end framework.popups.saveCurrentTab = saveCurrentTab; end do --[[ Variables ]]-- local userSettings = framework.data.userSettings; local signal = framework.dependencies.signal; local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local textService = gameGetService(TextService); local dropdown = { selectedDropdown = nil, selectedItem = nil, onDropdownChanged = signal.new(), onSelectionChanged = signal.new() }; --[[ Functions ]]-- local function createItem(title string) return instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(3a3a4a), BackgroundTransparency = 1, BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = stringUtilsConvertToCamelCase(title), Parent = dropdown.frame.container, Position = UDim2.new(1, -75, 1, -75), Size = UDim2.new(1, -4, 0, 28), Text = title, TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 4), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }); end local function toggleItemSelection(item TextButton, selected boolean) instanceUtilsTween(item, 0.25, { BackgroundTransparency = selected and 0 or 1, TextColor3 = Color3.fromHex(selected and ffffff or 9fa4ba) }); end local function createUI(directory Instance) Instance return instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 0), BackgroundColor3 = Color3.fromHex(202028), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = dropdown, Parent = directory, Position = UDim2.new(1, -22, 0, 128), Size = UDim2.new(0, 180, 0, 142) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIStroke, { Color = Color3.fromHex(3a3a4a), Name = stroke, Thickness = 2 }), instanceUtilsCreate(ScrollingFrame, { Active = true, AnchorPoint = Vector2.new(1, 0.5), AutomaticCanvasSize = Enum.AutomaticSize.Y, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = container, Position = UDim2.new(1, -2, 0.5, 0), ScrollBarImageColor3 = Color3.fromHex(53536b), ScrollBarThickness = 4, ScrollingDirection = Enum.ScrollingDirection.Y, Size = UDim2.new(1, -8, 1, -12), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar }, { instanceUtilsCreate(UIListLayout, { Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }) }); end local function clearDropdown() for i, v in dropdown.frame.containerGetChildren() do if vIsA(TextButton) then vDestroy(); end end end --[[ Module ]]-- function dropdownCreateUI(gui ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function dropdownShow(item {any}, adornee GuiBase2d) clearDropdown(); self.selectedDropdown = item.title; self.onDropdownChangedFire(item.title); if self.adornConnection then self.adornConnectionDisconnect(); end do local bottomRight = adornee.AbsolutePosition + adornee.AbsoluteSize; self.frame.Position = UDim2.new(0, bottomRight.X, 0, bottomRight.Y + 44); self.adornConnection = adorneeGetPropertyChangedSignal(AbsoluteSize)Connect(function() bottomRight = adornee.AbsolutePosition + adornee.AbsoluteSize; self.frame.Position = UDim2.new(0, bottomRight.X, 0, bottomRight.Y + 44); end); end for i, v in item.items do local currentItem = createItem(v); if v == item.value then toggleItemSelection(currentItem, true); self.selectedItem = currentItem; end currentItem.MouseButton1ClickConnect(function() toggleItemSelection(self.selectedItem, false); toggleItemSelection(currentItem, true); self.selectedItem = currentItem; self.onSelectionChangedFire(v); end); end self.frame.Visible = true; end function dropdownHide() clearDropdown(); self.selectedDropdown = nil; self.selectedItem = nil; self.onDropdownChangedFire(); self.frame.Visible = false; end framework.popups.dropdown = dropdown; end do --[[ Module ]]-- local popups = { cache = {} }; function popupsRegisterGUI(gui ScreenGui) self.gui = gui; end function popupsShow(name string, ...) local module = self.cache[name]; if module == nil then module = framework[popups. .. name]; moduleCreateUI(self.gui); self.cache[name] = module; end moduleShow(...); end function popupsHide(name string, ...) local module = self.cache[name]; if module then moduleHide(...); end end framework.popups.popups = popups; end do --[[ Variables ]]-- local textLabel = framework.components.base.textLabel; local changelog = framework.data.internalSettings.changelog; local instanceUtils = framework.dependencies.utils.instance; --[[ Functions ]]-- local function formatChangelog() local str = ; for i, v in changelog do str ..= string.format(%s[%s]nn, str == and or nn, DateTime.fromIsoDate(v.stamp)FormatLocalTime(ll, en-us)); for i2, v2 in v.data do str ..= †¢ .. v2; if i2 #v.data then str ..= n; end end end return str; end --[[ Module ]]-- framework.pages.startup.changelog = (function() return instanceUtilsCreate(Frame, { BackgroundTransparency = 1, Name = changelog, Position = UDim2.new(0.5, 12, 0.2, 46), Size = UDim2.new(0.2, 120, 0.5, 0) }, { textLabel({ Text = Changelog, TextColor3 = Color3.fromRGB(159, 164, 186), TextSize = 20 }), instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 1), AutomaticCanvasSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(), HorizontalScrollBarInset = Enum.ScrollBarInset.ScrollBar, Name = container, Position = UDim2.new(0.5, 0, 1, 0), ScrollBarImageColor3 = Color3.fromRGB(15, 15, 21), ScrollBarThickness = 4, Size = UDim2.new(1, -16, 1, -36), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar }, { textLabel({ FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json), LineHeight = 1.1, RichText = true, Text = formatChangelog(), TextColor3 = Color3.fromRGB(159, 164, 186), TextTruncate = Enum.TextTruncate.None, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }) }) }); end); end do --[[ Variables ]]-- local textLabel = framework.components.base.textLabel; local instanceUtils = framework.dependencies.utils.instance; local stepCount = 0; --[[ Module ]]-- local startupStep = {}; startupStep.__index = startupStep; function startupStep.new(startText string, finishText string, parent Instance) {any} stepCount += 1; local frame = instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0), BackgroundTransparency = 1, Name = stepCount, Parent = parent, Size = UDim2.new(1, 0, 0, 22) }, { instanceUtilsCreate(ImageLabel, { BackgroundTransparency = 1, Image = rbxassetid14840862230, ImageColor3 = Color3.fromRGB(235, 69, 69), ImageTransparency = 1, Name = icon, Size = UDim2.new(0, 22, 0, 22) }), textLabel({ AnchorPoint = Vector2.new(0, 0.5), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json), Name = note, Position = UDim2.new(0, 34, 0.5, 0), Text = startText, TextColor3 = Color3.fromRGB(159, 164, 186), TextTransparency = 1 }) }); return setmetatable({ frame = frame, finishText = finishText, isFinished = false }, startupStep); end function startupStepStart() {any} self.tween = instanceUtilsTween(self.frame.icon, 1, { Rotation = 360 }, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, math.huge); instanceUtilsTween(self.frame.icon, 0.4, { ImageTransparency = 0 }); instanceUtilsTween(self.frame.note, 0.4, { TextTransparency = 0 }).CompletedWait(); return self; end function startupStepComplete() if self.isFinished then return; end self.isFinished = true; local icon = self.frame.icon; local note = self.frame.note; instanceUtilsTween(note, 0.4, { TextTransparency = 1 }).CompletedConnect(function() note.Text = self.finishText; instanceUtilsTween(note, 0.4, { TextTransparency = 0 }); end); instanceUtilsTween(icon, 0.4, { ImageTransparency = 1 }).CompletedWait(); self.tweenCancel(); icon.Image = rbxassetid14840859703; icon.Rotation = 0; instanceUtilsTween(icon, 0.4, { ImageTransparency = 0 }); end framework.pages.startup.startupStep = startupStep; end do --[[ Variables ]]-- local background = framework.components.base.background; local textBox = framework.components.base.textBox; local textButton = framework.components.base.textButton; local textLabel = framework.components.base.textLabel; local userSettings = framework.data.userSettings; local savedScripts = framework.data.savedScripts; local tabSystem = framework.data.tabSystem; local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local changelog = framework.pages.startup.changelog; local startupStep = framework.pages.startup.startupStep; local httpService = gameGetService(HttpService); local completionSignal; local ui; --[[ Functions ]]-- dd = true local function checkWhitelist() if getgenv then return internalUtilsRequest(httpsapi.codex.lolv1authauthenticate, POST) ~= true; end return false; end local function createBasis(directory Instance) local gui = instanceUtilsCreate(ScreenGui, { Enabled = false, IgnoreGuiInset = true, Name = gui, ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Global }, { instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromRGB(21, 21, 29), BackgroundTransparency = 1, Name = background, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, 0, 1, 0), ZIndex = 0 }), instanceUtilsCreate(Folder, { Name = tabs }) }); local popups = instanceUtilsCreate(ScreenGui, { Enabled = false, IgnoreGuiInset = true, Name = popups, ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Global }); gui.Parent = directory; popups.Parent = directory; return { gui = gui, popups = popups }; end local function doSetup() userSettingsInitialize(); if runautoexec and userSettings.cache.executor.autoExecute then runautoexec(); end tabSystemInitialize(); savedScriptsInitialize(); end local function changeTab(isMainTab boolean) ui.whitelist.Visible = isMainTab; ui.changelog.Visible = isMainTab; ui.specialUserInput.Visible = not isMainTab; ui.note.Text = isMainTab and Please complete the whitelist to gain access to Codex or Please enter your key to activate your Premium License; end local function createUI(directory Instance) ScreenGui ui = instanceUtilsCreate(ScreenGui, { IgnoreGuiInset = true, Name = startup, Parent = directory, ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Global }, { background(), textLabel({ AnchorPoint = Vector2.new(0.5, 0.5), Name = title, Position = UDim2.new(0.5, 0, 0.2, -20), Text = Codex Modified, TextSize = 24 }), textLabel({ AnchorPoint = Vector2.new(0.5, 0.5), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json), Name = note, Position = UDim2.new(0.5, 0, 0.2, 2), Text = Please complete the whitelist to gain access to Codex, TextColor3 = Color3.fromRGB(159, 164, 186) }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 0), BackgroundTransparency = 1, Name = whitelist, Position = UDim2.new(0.5, -12, 0.2, 46), Size = UDim2.new(0.2, 120, 0.5, 0) }, { instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0), BackgroundTransparency = 1, Name = process, Position = UDim2.new(0.5, 0, 0, 0), Size = UDim2.new(1, 0, 1, -36) }, { instanceUtilsCreate(UIListLayout, { Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }), textButton({ AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.None, MouseButton1Click = function() if setclipboard then local data = internalUtilsRequest(httpsapi.codex.lolv1authsession, POST); if data then setclipboard(httpsmobile.codex.loltoken= .. httpServiceJSONDecode(data).token); end end gameGetService(StarterGui)SetCore(SendNotification, { Title = Codex Android, Text = Whitelist link has been set to your clipboard. }); end, Name = copyWhitelistLink, Position = UDim2.new(0.5, 0, 1, -28), Size = UDim2.new(1, 0, 0, 32), Text = Copy Whitelist Link }), textButton({ AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.None, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), MouseButton1Click = function() changeTab(false); end, Name = premiumUser, Position = UDim2.new(0.5, 0, 1, 0), RichText = true, Size = UDim2.new(1, 0, 0, 20), Text = Premium User Click Here!, TextColor3 = Color3.fromHex(9fa4ba) }) }), changelog(), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = specialUserInput, Position = UDim2.new(0.5, 0, 0.2, 46), Size = UDim2.new(0.4, 264, 0.5, 0), Visible = false }, { textButton({ AnchorPoint = Vector2.new(1, 0), AutomaticSize = Enum.AutomaticSize.None, MouseButton1Click = function() changeTab(true); end, Name = cancel, Position = UDim2.new(0.5, -6, 0.5, 6), Size = UDim2.new(0, 160, 0, 32), Text = Cancel }), textButton({ AutomaticSize = Enum.AutomaticSize.None, MouseButton1Click = function() local key = ui.specialUserInput.key.Text; if #key 0 then local res = internalUtilsRequest(httpsapi.codex.lolv1authclaim, POST, { [Content-Type] = applicationjson }, { key = key }); if res then changeTab(true); return; end end gameGetService(StarterGui)SetCore(SendNotification, { Title = Codex Android, Text = Invalid key. }); end, Name = register, Position = UDim2.new(0.5, 6, 0.5, 6), Size = UDim2.new(0, 160, 0, 32), Text = Register, }), textBox({ AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.None, Name = key, PlaceholderText = Key..., Position = UDim2.new(0.5, 0, 0.5, -6), Size = UDim2.new(1, -62, 0, 32) }) }) }); task.spawn(function() local whitelistStep = startupStep.new(Whitelisting..., Whitelisted!, ui.whitelist.process)Start(); repeat task.wait(3); until checkWhitelist(); whitelistStepComplete(); local setupStep = startupStep.new(Setting Up..., Setup Completed!, ui.whitelist.process)Start(); doSetup(); setupStepComplete(); local loadUIStep = startupStep.new(Loading UI..., Loaded!, ui.whitelist.process)Start(); local basis = createBasis(directory); loadUIStepComplete(); task.wait(1); completionSignalFire(basis); end); return ui; end --[[ Module ]]-- framework.pages.startup.startup = (function(directory Instance, signal {any}) ScreenGui completionSignal = signal; if checkWhitelist() then doSetup(); signalFire(createBasis(directory)); return; end return createUI(directory); end); end do --[[ Variables ]]-- local navbarButton = framework.components.navbarButton; local instanceUtils = framework.dependencies.utils.instance; local mathsUtils = framework.dependencies.utils.maths; local codexEnum = framework.dependencies.codexEnum; local userInputService = gameGetService(UserInputService); local navbar = { state = hidden }; local map = {}; local selected; --[[ Functions ]]-- local function setupDragBar(dragBar TextButton, indent NumberValue) local isDragging = false; local startPosition, startOffset; userInputService.InputBeganConnect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and mathsUtilsIsWithin2DBounds(input.Position, dragBar.AbsolutePosition, dragBar.AbsolutePosition + dragBar.AbsoluteSize) then isDragging = true; startPosition, startOffset = input.Position.X, input.Position.X - dragBar.AbsolutePosition.X; local endedConn; endedConn = input.ChangedConnect(function(property) if input.UserInputState == Enum.UserInputState.End then isDragging = false; endedConnDisconnect(); navbarSetState(codexEnum.NavbarState[input.Position.X 140 and Full or input.Position.X 40 and Partial or Hidden]); end end); end end); userInputService.InputChangedConnect(function(input) if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then instanceUtilsTween(indent, 0.06, { Value = math.clamp(input.Position.X - startOffset, 0, 260) }); end end); end local function createNavbar(gui ScreenGui) Instance local bar = instanceUtilsCreate(Frame, { BackgroundTransparency = 1, Name = navbar, Parent = gui, Size = UDim2.new(0, 0, 1, 0), ZIndex = 2 }, { instanceUtilsCreate(NumberValue, { Name = indent, Value = 0 }), instanceUtilsCreate(TextButton, { BackgroundTransparency = 1, Name = dragBar, Position = UDim2.new(1, 0, 0, 0), Size = UDim2.new(0, 20, 1, 0), Text = , ZIndex = 2 }, { instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 0.8, BorderSizePixel = 0, Name = indicator, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 2, 0, 80), ZIndex = 2 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }) }) }), instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.fromHex(15151d), BorderSizePixel = 0, ClipsDescendants = true, Name = main, Size = UDim2.new(1, 0, 1, 0), ZIndex = 2 }, { instanceUtilsCreate(ImageLabel, { BackgroundTransparency = 1, BorderSizePixel = 0, Image = rbxassetid11558559086, Name = codexIcon, Position = UDim2.new(0, 20, 0, 30), Size = UDim2.new(0, 36, 0, 36), ZIndex = 2 }), instanceUtilsCreate(TextLabel, { BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = title, Position = UDim2.new(0, 78, 0, 38), Text = Codex Modified, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, ZIndex = 2 }), instanceUtilsCreate(TextLabel, { BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size12, Name = poweredBy, Position = UDim2.new(0, 78, 0, 59), Text = , TextColor3 = Color3.fromHex(ffffff), TextSize = 12, TextTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, ZIndex = 2 }), instanceUtilsCreate(Frame, { BackgroundTransparency = 1, BorderSizePixel = 0, Name = container, Size = UDim2.new(1, 0, 1, 0), ZIndex = 2 }, { instanceUtilsCreate(UIListLayout, { HorizontalAlignment = Enum.HorizontalAlignment.Center, Name = list, SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Center }) }) }) }); bar.indentGetPropertyChangedSignal(Value)Connect(function() local value = bar.indent.Value; local percentage = (math.clamp(value, 76, 260) - 76) 184; navbar.bar.Size = UDim2.new(0, value, 1, 0); navbar.bar.main.codexIcon.Size = UDim2.new(0, 36 + percentage 12, 0, 36 + percentage 12); navbar.bar.main.title.TextTransparency = 1 - percentage; navbar.bar.main.poweredBy.TextTransparency = 0.6 + (1 - percentage) 0.4; for i, v in map do i.instance.text.TextTransparency = 0.2 + (1 - percentage) 0.8; end navbar.fade.BackgroundTransparency = 1 - percentage; end); setupDragBar(bar.dragBar, bar.indent); return bar; end local function createFade(gui ScreenGui) Instance return instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.new(), BackgroundTransparency = 1, Name = fade, Parent = gui, Size = UDim2.new(1, 0, 1, 0), ZIndex = 0 }, { instanceUtilsCreate(UIGradient, { Name = gradient, Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.3), NumberSequenceKeypoint.new(0.2, 0.3), NumberSequenceKeypoint.new(1, 1) }) }) }); end --[[ Module ]]-- function navbarInitialize(directory Instance) self.bar = createNavbar(directory.gui); self.fade = createFade(directory.gui); self.background = directory.gui.background; for i, v in { editor, localScripts, globalScripts, exploitSettings } do local module = framework[string.format(pages.%s.%s, v, v)]; selfAdd(module.title, module.icon, moduleInitialize(), module.overwritePosition); end selfSetState(codexEnum.NavbarState.Full, true); end function navbarAdd(text string, icon string, designatedFrame Frame, overwritePosition UDim2) local button = navbarButton.new(text, icon); map[button] = designatedFrame; button.instance.MouseButton1ClickConnect(function() selfSelect(button); end); if self.state ~= full then button.instance.text.TextTransparency = 1; end if overwritePosition then button.instance.Position = overwritePosition; button.instance.Parent = self.bar.main; else button.instance.Parent = self.bar.main.container; end designatedFrame.Parent = self.bar.Parent.tabs; end function navbarSetState(navbarState number, ignoreTimeouts boolean) local indent, state = 0, hidden; if navbarState == codexEnum.NavbarState.Partial then indent, state = 76, partial; elseif navbarState == codexEnum.NavbarState.Full then indent, state = 260, full; end if self.tween then self.tweenCancel(); end if self.nextInputCheck then self.nextInputCheckDisconnect(); pcall(task.cancel, self.timeoutDelay); -- if this is called from self.timeoutDelay itself, it will error. Cba to do a proper check. It'll be dead immediately after anyways end self.state = state; self.tween = instanceUtilsTween(self.bar.indent, 0.25, { Value = indent; }); if state ~= hidden and not ignoreTimeouts then self.timeoutDelay = task.delay(5, function() if self.state == state then selfSetState(codexEnum.NavbarState.Hidden); end end); self.nextInputCheck = userInputService.InputBeganConnect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if self.state ~= hidden and input.Position.X self.bar.indent.Value then selfSetState(codexEnum.NavbarState.Hidden); end end end); end end function navbarSelect(button TextButton) if selected ~= nil then selectedHighlight(false); instanceUtilsTween(map[selected], 0.2, { Position = UDim2.new(1, 0, 1, 0) }); if selected == button then selected = nil; instanceUtilsTween(self.background, 0.2, { BackgroundTransparency = 1 }); return; end end selected = button; selectedHighlight(true); selfSetState(codexEnum.NavbarState.Partial); instanceUtilsTween(self.background, 0.2, { BackgroundTransparency = 0.1 }); instanceUtilsTween(map[button], 0.2, { Position = UDim2.new(0, 0, 1, 0) }); end framework.pages.navbar.navbar = navbar; end do --[[ Variables ]]-- local internalUtils = framework.dependencies.utils.internal; local userSettings = framework.data.userSettings; local cache; local httpService = gameGetService(HttpService); local teleportService = gameGetService(TeleportService); local userInputService = gameGetService(UserInputService); local player = gameGetService(Players).LocalPlayer; local char, hum, root; local connections = {}; --[[ Functions ]]-- local function getFlagFromLink(link string) local value = cache; for i, v in string.split(link, .) do value = value[v]; end return value; end local function registerCharacter(character Instance) char, hum, root = character, characterWaitForChild(Humanoid, 5), characterWaitForChild(HumanoidRootPart, 5); if hum and root then if cache.player.walkSpeed.enabled then hum.WalkSpeed = cache.player.walkSpeed.value; end if cache.player.jumpPower.enabled then hum.WalkSpeed = cache.player.jumpPower.value; end hum.DiedConnect(function() char, hum, root = nil, nil, nil; end); end end local function joinServer(searchPriority string, id number) local jobId = id; if jobId == nil then if searchPriority == Best Ping or searchPriority == Random then local servers = {}; local res, cursor, count = nil, , 0; repeat res = internalUtilsRequest(string.format(httpsgames.roblox.comv1games%dservers0&excludeFullGames=true&cursor=%s, game.PlaceId, cursor)); if res then for i, v in httpServiceJSONDecode(res).data do if v.id ~= game.JobId then servers[#servers + 1] = v; end end cursor = res.nextPageCursor; count = count + 1; end until res == false or cursor == nil or count = 10; if searchPriority == Ping then table.sort(servers, function(a, b) return a.ping b.ping; end); jobId = servers[1] and servers[1].id; else jobId = servers[1] and servers[math.random(1, #servers)].id; end else local res = internalUtilsRequest(string.format(httpsgames.roblox.comv1games%dservers0sortOrder=%d&excludeFullGames=true&limit=10, game.PlaceId, searchPriority == Most Players and 2 or 1)); if res then for i, v in httpServiceJSONDecode(res).data do if v.id ~= game.JobId then jobId = v.id; break; end end end end end if jobId then teleportServiceTeleportToPlaceInstance(game.PlaceId, jobId); else gameGetService(StarterGui)SetCore(SendNotification, { Title = Codex Android, Text = No suitable servers found }); end end --[[ Setup ]]-- player.CharacterAddedConnect(registerCharacter); --[[ Module ]]-- local map = { { title = Executor, items = { { title = Auto Execute, linkedSetting = executor.autoExecute, optionType = toggle, state = true }, { title = Auto Save Tabs, linkedSetting = executor.autoSaveTabs, optionType = toggle, state = false, callback = function(state) if state == false and isfile and isfile(codexTabs.json) then delfile(codexTabs.json); end end }, { optionType = separator }, { title = Unlock FPS, linkedSetting = executor.fps.unlocked, optionType = toggle, state = false, callback = function(state) setfpscap(state and (cache.executor.fps.vSync and getfpscap() or cache.executor.fps.value) or 60); end }, { title = V-Sync, linkedSetting = executor.fps.vSync, optionType = toggle, state = false, callback = function(state) if cache.executor.fps.unlocked then setfpscap(state and getfpsmax() or cache.executor.fps.value); end end }, { title = FPS Value, linkedSetting = executor.fps.value, optionType = slider, min = 1, max = 999, float = 1, callback = function(value) if cache.executor.fps.unlocked and not cache.executor.fps.vSync then setfpscap(value); end end } } }, { title = Player, items = { { title = WalkSpeed Enabled, linkedSetting = player.walkSpeed.enabled, optionType = toggle, state = false, callback = function(state) if hum then hum.WalkSpeed = state and cache.player.walkSpeed.value or 16; end end }, { title = WalkSpeed Value, linkedSetting = player.walkSpeed.value, optionType = slider, min = 16, max = 500, float = 1, callback = function(value) if hum and cache.player.walkSpeed.enabled then hum.WalkSpeed = value; end end }, { title = JumpPower Enabled, linkedSetting = player.jumpPower.enabled, optionType = toggle, state = false, callback = function(state) if hum then hum.JumpPower = state and cache.player.jumpPower.value or 16; end end }, { title = JumpPower Value, linkedSetting = player.jumpPower.value, optionType = slider, min = 50, max = 500, float = 1, callback = function(value) if hum and cache.player.jumpPower.enabled then hum.JumpPower = value; end end } } }, { title = Server Hop, items = { { title = Server Priority, linkedSetting = serverHop.priority, optionType = dropdown, items = { Most Players, Least Players, Best Ping, Random } }, { title = Server Hop, optionType = button, callback = function() joinServer(cache.serverHop.priority); end }, { title = Rejoin Current Server, optionType = button, callback = function() joinServer(nil, game.JobId); end } } } }; --[[ Module ]]-- local layoutMap = { map = map }; function layoutMapInitialize() cache = userSettings.cache; for i, v in self.map do for i2, v2 in v.items do if v2.optionType == toggle then v2.state = getFlagFromLink(v2.linkedSetting); elseif v2.optionType == slider then v2.value = getFlagFromLink(v2.linkedSetting); end end end if player.Character then task.spawn(registerCharacter, player.Character); end end framework.pages.exploitSettings.layoutMap = layoutMap; end do --[[ Variables ]]-- local userSettings = framework.data.userSettings; local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; --[[ Functions ]]-- local function createToggle(title string, parent Instance) Instance return instanceUtilsCreate(TextButton, { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesSourceSansPro.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = stringUtilsConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 36), Text = , TextColor3 = Color3.fromHex(000000), TextSize = 14 }, { instanceUtilsCreate(TextLabel, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Size = UDim2.new(1, 0, 0, 36), Text = title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 0.5), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = indicator, Position = UDim2.new(1, -2, 0.5, 0), Size = UDim2.new(0, 42, 0, 24) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }), instanceUtilsCreate(UIStroke, { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex(3a3a4a), Name = stroke, Thickness = 2 }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = dot, Position = UDim2.new(0.5, -9, 0.5, 0), Size = UDim2.new(0, 18, 0, 18) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }) }) }) }); end local function getDeterminingFactors(path string) local dict, key = userSettings.cache, nil; for i, v in string.split(path, .) do if key ~= nil then dict = dict[key]; end key = v; end return dict, key; end --[[ Module ]]-- local toggle = {}; toggle.__index = toggle; function toggle.new(toggleData {any}, parent Instance) local newToggle = setmetatable({ instance = createToggle(toggleData.title or Unnamed Toggle, parent), state = toggleData.state or false, linkedSetting = toggleData.linkedSetting, callback = toggleData.callback }, toggle); local determiningDict, determiningKey = getDeterminingFactors(newToggle.linkedSetting); userSettingsGetPropertyChangedSignal(newToggle.linkedSetting)Connect(function(state boolean) newToggleSet(state); end); newToggle.instance.MouseButton1ClickConnect(function() determiningDict[determiningKey] = not determiningDict[determiningKey]; end); if newToggle.state then newToggleSet(true); end return newToggle; end function toggleSet(state boolean) instanceUtilsTween(self.instance.indicator.dot, 0.2, { BackgroundColor3 = state and Color3.fromRGB(235, 69, 69) or Color3.fromHex(3a3a4a), Position = UDim2.new(0.5, state and 9 or -9, 0.5, 0) }); instanceUtilsTween(self.instance.indicator.stroke, 0.2, { Color = state and Color3.fromRGB(235, 69, 69) or Color3.fromHex(3a3a4a) }); if self.callback then self.callback(state); end end framework.pages.exploitSettings.optionTypes.toggle = toggle; end do --[[ Variables ]]-- local userSettings = framework.data.userSettings; local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local userInputService = gameGetService(UserInputService); --[[ Functions ]]-- local function createSlider(title string, parent Instance) Instance return instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = stringUtilsConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 60) }, { instanceUtilsCreate(TextLabel, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Size = UDim2.new(1, 0, 0, 36), Text = title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(TextBox, { AnchorPoint = Vector2.new(1, 0), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = input, PlaceholderColor3 = Color3.fromHex(b2b2b2), PlaceholderText = ..., Position = UDim2.new(1, 0, 0, 0), Size = UDim2.new(0, 0, 0, 36), Text = , TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 1), BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = bar, Position = UDim2.new(0.5, 0, 1, -8), Size = UDim2.new(1, -12, 0, 4) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0, 0.5), BackgroundColor3 = Color3.fromHex(eb4545), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = indicator, Position = UDim2.new(0, 0, 0.5, 0), Size = UDim2.new(0, 0, 1, 0) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(eb4545), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = dot, Position = UDim2.new(1, 0, 0.5, 0), Size = UDim2.new(0, 12, 0, 12) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }) }) }) }) }); end local function getDeterminingFactors(path string) local dict, key = userSettings.cache, nil; for i, v in string.split(path, .) do if key ~= nil then dict = dict[key]; end key = v; end return dict, key; end local function getRoundedValue(input number, float number) number local bracket = 1 float; return math.round(input bracket) bracket; end --[[ Module ]]-- local slider = {}; slider.__index = slider; function slider.new(sliderData {any}, parent Instance) local newSlider = setmetatable({ instance = createSlider(sliderData.title or Unnamed Slider, parent), value = sliderData.value or sliderData.min, min = sliderData.min, max = sliderData.max, float = sliderData.float, linkedSetting = sliderData.linkedSetting, callback = sliderData.callback }, slider); local determiningDict, determiningKey = getDeterminingFactors(newSlider.linkedSetting); local isDragging = false; userSettingsGetPropertyChangedSignal(newSlider.linkedSetting)Connect(function(value number) newSliderSet(value); end); newSlider.instance.InputBeganConnect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isDragging = true; local endedConn; endedConn = input.ChangedConnect(function() if input.UserInputState == Enum.UserInputState.End then endedConnDisconnect(); isDragging = false; end end); end end) userInputService.InputChangedConnect(function(input) if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local value = newSlider.min + ((newSlider.max - newSlider.min) ((input.Position.X - newSlider.instance.bar.AbsolutePosition.X) newSlider.instance.bar.AbsoluteSize.X)); determiningDict[determiningKey] = math.clamp(getRoundedValue(value, newSlider.float), newSlider.min, newSlider.max); end end); newSlider.instance.input.FocusLostConnect(function() local value = tonumber(newSlider.instance.input.Text); if value then determiningDict[determiningKey] = math.clamp(getRoundedValue(value, newSlider.float), newSlider.min, newSlider.max); end end); newSliderSet(newSlider.value); return newSlider; end function sliderSet(value number) instanceUtilsTween(self.instance.bar.indicator, 0.2, { Size = UDim2.new((value - self.min) (self.max - self.min), 0, 0.5, 0) }); self.instance.input.Text = tostring(value); if self.callback then self.callback(value); end end framework.pages.exploitSettings.optionTypes.slider = slider; end do --[[ Variables ]]-- local userSettings = framework.data.userSettings; local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local dropdownPopup = framework.popups.dropdown; local popups = framework.popups.popups; local textService = gameGetService(TextService); --[[ Functions ]]-- local function createDropdown(title string, default string, parent Instance) Instance return instanceUtilsCreate(Frame, { Active = true, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = stringUtilsConvertToCamelCase(title), Parent = parent, Selectable = true, Size = UDim2.new(1, 0, 0, 36) }, { instanceUtilsCreate(TextLabel, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Size = UDim2.new(1, 0, 0, 36), Text = title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(TextButton, { Active = false, AnchorPoint = Vector2.new(1, 0.5), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = indicator, Position = UDim2.new(1, -2, 0.5, 0), Selectable = false, Size = UDim2.new(0, 52 + textServiceGetTextBoundsAsync(instanceUtilsCreate(GetTextBoundsParams, { Font = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), Text = default, Size = 14, Width = math.huge })).X, 0, 32), Text = }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIStroke, { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex(3a3a4a), Name = stroke, Thickness = 2 }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0, 0.5), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = selected, Position = UDim2.new(0, 8, 0.5, 0), Size = UDim2.new(0, 0, 1, 0), Text = default, TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(1, 0.5), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Image = rbxassetid14967733915, ImageColor3 = Color3.fromHex(9fa4ba), Name = icon, Position = UDim2.new(1, -8, 0.5, 0), Size = UDim2.new(0, 24, 0, 24) }) }) }); end local function getDeterminingFactors(path string) local dict, key = userSettings.cache, nil; for i, v in string.split(path, .) do if key ~= nil then dict = dict[key]; end key = v; end return dict, key; end --[[ Module ]]-- local dropdown = {}; dropdown.__index = dropdown; function dropdown.new(dropData {any}, parent Instance) local newDropdown = setmetatable({ instance = createDropdown(dropData.title or Unnamed Dropdown, dropData.value, parent), title = dropData.title or Unnamed Dropdown, items = dropData.items, value = dropData.value or dropData.items[1], linkedSetting = dropData.linkedSetting, callback = dropData.callback }, dropdown); local determiningDict, determiningKey = getDeterminingFactors(newDropdown.linkedSetting); userSettingsGetPropertyChangedSignal(newDropdown.linkedSetting)Connect(function(value number) newDropdownSet(value); end); newDropdown.instance.indicator.MouseButton1ClickConnect(function() if dropdownPopup.selectedDropdown == dropData.title then popupsHide(dropdown); else popupsShow(dropdown, newDropdown, newDropdown.instance.indicator); newDropdown.selectionChangedConnection = dropdownPopup.onSelectionChangedConnect(function(value string) determiningDict[determiningKey] = value; end); end end); dropdownPopup.onDropdownChangedConnect(function(value string) if value and value ~= dropData.title and newDropdown.selectionChangedConnection then newDropdown.selectionChangedConnectionDisconnect(); end end); newDropdownSet(newDropdown.value); return newDropdown; end function dropdownSet(value string) self.value = value; self.instance.indicator.selected.Text = value; self.instance.indicator.Size = UDim2.new(0, 52 + textServiceGetTextBoundsAsync(instanceUtilsCreate(GetTextBoundsParams, { Font = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), Text = value, Size = 14, Width = math.huge })).X, 0, 32); if self.callback then self.callback(value); end end framework.pages.exploitSettings.optionTypes.dropdown = dropdown; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; --[[ Functions ]]-- local function createButton(title string, parent Instance) Instance return instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = stringUtilsConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 36) }, { instanceUtilsCreate(TextLabel, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Size = UDim2.new(1, 0, 1, 0), Text = title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(TextButton, { AnchorPoint = Vector2.new(1, 0.5), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(eb4545), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = click, Position = UDim2.new(1, 0, 0.5, 0), Size = UDim2.new(0, 0, 0, 32), Text = Click Here!, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 6), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }) }); end --[[ Module ]]-- local button = {}; button.__index = button; function button.new(buttonData {any}, parent Instance) local newButton = setmetatable({ instance = createButton(buttonData.title or Unnamed Button, parent), callback = buttonData.callback }, button); newButton.instance.click.MouseButton1ClickConnect(function() if newButton.callback then newButton.callback(); end end); return newButton; end framework.pages.exploitSettings.optionTypes.button = button; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; --[[ Functions ]]-- local function createSeparator(parent Instance) Instance return instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = separator, Parent = parent, Size = UDim2.new(1, 0, 0, 14) }, { instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex(3a3a4a), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = line, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, 0, 0, 2) }, { instanceUtilsCreate(UIGradient, { Name = gradient, Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.175, 0), NumberSequenceKeypoint.new(0.825, 0), NumberSequenceKeypoint.new(1, 1) }) }) }) }); end --[[ Module ]]-- local separator = {}; separator.__index = separator; function separator.new(separatorData {any}, parent Instance) return setmetatable({ instance = createSeparator(parent) }, separator); end framework.pages.exploitSettings.optionTypes.separator = separator; end do --[[ Variables ]]-- local textButton = framework.components.base.textButton; local instanceUtils = framework.dependencies.utils.instance; local stringUtils = framework.dependencies.utils.string; local layoutMap = framework.pages.exploitSettings.layoutMap; local map = {}; --[[ Functions ]]-- local function createUI(directory Instance) Instance return instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0, 1), BackgroundColor3 = Color3.fromHex(15151d), BackgroundTransparency = 1, BorderSizePixel = 0, Name = exploitSettings, Parent = directory, Position = UDim2.new(1, 0, 1, 0), Size = UDim2.new(1, 0, 1, -36) }, { instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 0), AutomaticCanvasSize = Enum.AutomaticSize.X, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = tabButtons, Position = UDim2.new(0.5, 0, 0, 10), ScrollBarImageColor3 = Color3.fromHex(515158), ScrollBarThickness = 4, ScrollingDirection = Enum.ScrollingDirection.X, Size = UDim2.new(1, -20, 0, 40) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtilsCreate(Folder, { Name = tabs }) }); end local function createFrame(title string, directory Instance) return instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 1), BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 130), Name = stringUtilsConvertToCamelCase(title), Parent = directory, Position = UDim2.new(0.5, 0, 1, 0), ScrollBarThickness = 2, Size = UDim2.new(1, -40, 1, -50), Visible = false }, { instanceUtilsCreate(UIListLayout, { Name = list, Padding = UDim.new(0, 5), SortOrder = Enum.SortOrder.LayoutOrder }) }); end --[[ Module ]]-- local exploitSettings = { title = Exploit Settings, icon = rbxassetid11558196447, overwritePosition = UDim2.new(0, 0, 1, -66), selected = nil }; function exploitSettingsInitialize(directory Instance) self.base = createUI(directory); layoutMapInitialize(); for i, v in layoutMap.map do selfAdd(v); end return self.base; end function exploitSettingsAdd(tab {any}) local btn = textButton({ BackgroundColor3 = Color3.fromRGB(58, 58, 74), Name = stringUtilsConvertToCamelCase(tab.title), Text = tab.title, TextColor3 = Color3.fromRGB(159, 164, 186), Parent = self.base.tabButtons }); local frame = createFrame(tab.title, self.base.tabs); btn.MouseButton1ClickConnect(function() selfSelect(tab); end) map[tab] = { btn = btn, frame = frame }; for i, v in tab.items do framework[pages.exploitSettings.optionTypes. .. v.optionType].new(v, frame); end if self.selected == nil then selfSelect(tab); end end function exploitSettingsSelect(tab {any}) if self.selected then if self.selected == tab then return; end local oldMap = map[self.selected]; oldMap.frame.Visible = false; instanceUtilsTween(oldMap.btn, 0.2, { BackgroundColor3 = Color3.fromRGB(58, 58, 74), TextColor3 = Color3.fromRGB(159, 164, 186) }); end self.selected = tab; local newMap = map[tab]; newMap.frame.Visible = true; instanceUtilsTween(newMap.btn, 0.2, { BackgroundColor3 = Color3.fromRGB(235, 69, 69), TextColor3 = Color3.fromRGB(255, 255, 255) }); end framework.pages.exploitSettings.exploitSettings = exploitSettings; end do --[[ Variables ]]-- local sets = { keywords = { local, function, if, and, or, not, then, else, elseif, repeat, until, while, do, end, for, in, break, continue, return }, constants = { true, false, nil }, operators = { and, or, not, , , =, =, ==, ~=, +, -, , , %, ^, #, .. }, assignments = { =, +=, -=, =, =, %=, ^=, ..= }, globals = getfenv() }; --[[ Functions ]]-- local function isDigit(character string, index number) boolean return (character = 0 and character = 9) or (index 0 and (character == e or character == _)); end local function isHexadecimalDigit(character string) boolean return (character = 0 and character = 9) or (character = a and character = f) or (character = A and character = F); end local function isWord(character string, isFirstCharacter boolean) boolean return character == _ or (character = a and character = z) or (character = A and character = Z) or (not isFirstCharacter and isDigit(character, 0)); end local function isWhitespace(character string) boolean return character == or character == t or character == n; end --[[ Module ]]-- local lexer = {}; function lexer_consume() string self.position += 1; return string.sub(self.string, self.position, self.position); end function lexer_peek(amount number nil) string local index = self.position + (amount or 1); return string.sub(self.string, index, index); end function lexer_pushToken(tokenName string, value string) self.result[#self.result + 1] = { token = tokenName, value = value }; end function lexer_pushSymbol(text string) local token = symbol; if table.find(sets.operators, text) then token = operator; elseif table.find(sets.assignments, text) then token = assignment; end self_pushToken(token, text); end function lexer_readString() string local delimiter, value = self_peek(), self_consume(); while self.position = self.length do local character = self_consume(); if character == then value ..= character .. self_consume(); else value ..= character; if character == delimiter then break; end end end return value; end function lexer_readMultilineString() string nil local delimiter = self_peek(); if delimiter ~= [ then return nil; end local start = self.position; local value = self_consume(); local nestedEquals = 0; while self.position = self.length and self_peek() == = do value ..= self_consume(); nestedEquals += 1; end if self_peek() ~= [ then self.position = start; return nil; end value ..= self_consume(); while self.position = self.length do local character = self_consume(); value ..= character; if character == ] then local equalsCount = 0; while self.position = self.length and self_peek() == = do value ..= self_consume(); equalsCount += 1; end if self_peek() == ] and nestedEquals == equalsCount then value ..= self_consume(); break; end end end return value; end function lexer_readComment() string local value = self_consume() .. self_consume(); if self_peek() == [ then local multilineString = self_readMultilineString(); if multilineString ~= nil then return value .. multilineString; end end while self.position = self.length do local character = self_peek(); if character == n then break; end value ..= self_consume(); end return value; end function lexer_readWord() string nil local value = ; local isFirstCharacter = true; while self.position = self.length do local character = self_peek(); if not isWord(character, isFirstCharacter) then break; end value ..= self_consume(); isFirstCharacter = false; end return value ~= and value or nil; end function lexer_readWhitespace() string nil local value = ; while self.position = self.length do local character = self_peek(); if not isWhitespace(character) then break; end value ..= self_consume(); end return value ~= and value or nil end function lexer_readNumber() string nil local value = ; local isHexadecimal = false; local index = 0; while self.position = self.length do local character = self_peek(); if character == 0 or character == x then isHexadecimal = true; value ..= self_consume(); index += 1; continue; elseif (isHexadecimal and not isHexadecimalDigit(character)) or not isDigit(character, index) then break; end value ..= self_consume(); index += 1; end return value ~= and value or nil; end function lexer_getAssociatedToken(word string) string if table.find(sets.keywords, word) then return keyword; elseif table.find(sets.constants, word) then return constant; elseif table.find(sets.operators, word) then return operator; elseif sets.globals[word] then return global; elseif self_peek() == ( then return callback; end return identifier; end function lexerParse(text string) {any} self.string = text; self.position = 0; self.length = #text; self.result = {}; local symbol = ; while self.position = self.length do local character = self_peek(); if character == [ then local multilineString = self_readMultilineString(); if multilineString ~= nil then self_pushToken(string, multilineString); continue; end elseif character == ' or character == then self_pushToken(string, self_readString()); continue; elseif isDigit(character, 0) then local value = self_readNumber(); if value ~= nil then self_pushToken(number, value); continue; end elseif isWord(character, true) then local value = self_readWord(); if value ~= nil then self_pushToken(self_getAssociatedToken(value), value); continue; end elseif character == - and self_peek(2) == - then self_pushToken(comment, self_readComment()); continue; elseif isWhitespace(character) then local value = self_readWhitespace(); if value ~= nil then self_pushToken(whitespace, value); continue; end end symbol ..= self_consume(); if symbol ~= then self_pushSymbol(symbol); symbol = ; else break; end end local result = {}; for i, v in self.result do if string.match(v.value, n) then local lines = string.split(v.value, n); for i2, v2 in lines do if v2 ~= then result[#result + 1] = { token = v.token, value = v2 }; end if i2 #lines then result[#result + 1] = { token = whitespace, value = n }; end end else result[#result + 1] = v; end end return result; end framework.pages.editor.lexer = lexer; end do --[[ Variables ]]-- local editorButton = framework.components.editorButton; local tabButton = framework.components.tabButton; local userSettings = framework.data.userSettings; local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local lexer = framework.pages.editor.lexer; local tabSystem = framework.data.tabSystem; local popups = framework.popups.popups; local userInputService = gameGetService(UserInputService); local textService = gameGetService(TextService); local highlightAssociations = { string = #69B397, number = #91C087, constant = #E0BA91, callback = #81a6da, keyword = #E18DB9, comment = #606060, global = #bd93db, operator = #AAAAAA, assignment = #AAAAAA, identifier = #DCDCCC, symbol = #DCDCCC }; local map = {}; local base; --[[ Functions ]]-- local function insertHighlight(position Vector2, size number, text string, colour string) instanceUtilsCreate(TextLabel, { BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesRobotoMono.json, Enum.FontWeight.SemiBold, Enum.FontStyle.Normal), Name = text, Parent = base.contentContainer.inputBox, Position = position, Size = UDim2.new(0, size, 0, 12), Text = text, TextColor3 = Color3.fromHex(colour), TextSize = 16, ZIndex = 2 }); end local function handleLexResult(lexResult {any}, addTruncateEllipsis boolean) base.contentContainer.inputBoxClearAllChildren(); local x, y = 0, 0; local lastX = 0; for i, v in lexResult do lastX = textServiceGetTextBoundsAsync(instanceUtilsCreate(GetTextBoundsParams, { Font = Font.new(rbxassetfontsfamiliesRobotoMono.json, Enum.FontWeight.SemiBold, Enum.FontStyle.Normal), Size = 16, Text = v.value, Width = math.huge })).X; if v.token == whitespace then if v.value == n then y += 16; x = 0; end else local associatedColour = highlightAssociations[v.token]; if associatedColour then insertHighlight(UDim2.new(0, x, 0, y), lastX, v.value, associatedColour); end end x += lastX; if i == #lexResult and addTruncateEllipsis then insertHighlight(UDim2.new(0, x, 0, y), lastX + 24, ..., highlightAssociations.identifier); end end end local function generateLineNumberString(text string) local str = ; for i = 1, #string.split(text, n) do str ..= tostring(i) .. n; end return string.sub(str, 1, #str - 1); end local function createUI(directory Instance) Instance return instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0, 1), BackgroundColor3 = Color3.fromHex(15151d), BackgroundTransparency = 1, BorderSizePixel = 0, Name = editor, Parent = directory, Position = UDim2.new(1, 0, 1, 0), Size = UDim2.new(1, 0, 1, -36) }, { instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 0), AutomaticCanvasSize = Enum.AutomaticSize.X, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = tabButtons, Position = UDim2.new(0.5, 0, 0, 10), ScrollBarImageColor3 = Color3.fromHex(515158), ScrollBarThickness = 4, ScrollingDirection = Enum.ScrollingDirection.X, Size = UDim2.new(1, -20, 0, 40) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtilsCreate(ScrollingFrame, { AutomaticCanvasSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(), HorizontalScrollBarInset = Enum.ScrollBarInset.ScrollBar, Name = contentContainer, Position = UDim2.new(0, 0, 0, 50), ScrollBarThickness = 4, Size = UDim2.new(1, 0, 1, -50), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar }, { instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesRobotoMono.json, Enum.FontWeight.SemiBold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = lineNumbers, Size = UDim2.new(0, 30, 0, 0), Text = 1, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTransparency = 0.7, TextXAlignment = Enum.TextXAlignment.Right, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextBox, { BackgroundTransparency = 1, ClearTextOnFocus = false, CursorPosition = -1, FontFace = Font.new(rbxassetfontsfamiliesRobotoMono.json, Enum.FontWeight.SemiBold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, MultiLine = true, Name = inputBox, Position = UDim2.new(0, 40, 0, 0), Size = UDim2.new(1, -40, 1, 0), Text = , TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTransparency = 1, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }) }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 1), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = buttons, Position = UDim2.new(1, -25, 1, -25), Size = UDim2.new(1, -50, 0, 50) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }) }); end --[[ Module ]]-- local editor = { title = Editor, icon = rbxassetid11558196842, selected = nil, text = }; function editorInitialize(directory Instance) base = createUI(); do local inputBox = base.contentContainer.inputBox; inputBoxGetPropertyChangedSignal(Text)Connect(function() if userInputServiceGetFocusedTextBox() == inputBox then selfSetText(inputBox.Text); end end); inputBox.FocusLostConnect(function() if userSettings.cache.executor.autoSaveTabs then tabSystemSave(); end end); end do editorButton(New Tab, rbxassetid14808232261, { MouseButton1Click = function() tabSystemAdd(Script .. tostring(tabSystem.accumulator + 1)); end, Parent = base.buttons }); editorButton(Save Current Tab, rbxassetid14883119324, { MouseButton1Click = function() popupsShow(saveCurrentTab, select(-1, tabSystemGet(self.selected))); end, Parent = base.buttons }); editorButton(Execute Clipboard, rbxassetid14808228630, { MouseButton1Click = function() if getclipboard then internalUtilsExecute(getclipboard()); end end, Parent = base.buttons }); editorButton(Clear, rbxassetid14808219001, { MouseButton1Click = function() selfSetText(); end, Parent = base.buttons }); editorButton(Execute, rbxassetid14808225296, { BackgroundColor3 = Color3.fromRGB(235, 69, 69), MouseButton1Click = function() internalUtilsExecute(self.text); end, Parent = base.buttons }, Color3.new(1, 1, 1)); end tabSystem.onTabCreatedConnect(function(tab) local btn = tabButton.new(tab); btn.instance.Parent = base.tabButtons; map[tab.index] = btn; if userSettings.cache.executor.autoSaveTabs then tabSystemSave(); end end); tabSystem.onTabRemovedConnect(function(tab) map[tab.index]Destroy(); map[tab.index] = nil; if userSettings.cache.executor.autoSaveTabs then tabSystemSave(); end end); tabSystem.onTabSelectedConnect(function(tab) if self.selected then map[self.selected]Highlight(false); end map[tab.index]Highlight(true); self.selected = tab.index; selfSetText(tab.content); end); if #tabSystem.cache 0 then for i, v in tabSystem.cache do tabSystem.onTabCreatedFire(v); end tabSystemSelect(tabSystem.cache[1].index); else tabSystemAdd(Script 1); end return base; end function editorSetText(text string) local truncatedText = string.sub(text, 1, 16384); self.text = text; tabSystemUpdateContent(self.selected, text); base.contentContainer.inputBox.Text = truncatedText; base.contentContainer.lineNumbers.Text = generateLineNumberString(truncatedText); handleLexResult(lexerParse(truncatedText), #truncatedText #text); end framework.pages.editor.editor = editor; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local stringUtils = framework.dependencies.utils.string; --[[ Module ]]-- framework.pages.localScripts.builtInScript = (function(builtInScript {any}) local base = instanceUtilsCreate(ImageLabel, { BackgroundTransparency = 1, BorderSizePixel = 0, Image = builtInScript.icon, ImageTransparency = 0.5, Name = stringUtilsConvertToCamelCase(builtInScript.title), Size = UDim2.new(1, 0, 1, 0) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(TextButton, { AnchorPoint = Vector2.new(1, 1), AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(eb4545), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesSourceSansPro.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = execute, Position = UDim2.new(1, -10, 1, -10), Size = UDim2.new(0, 40, 0, 40), Text = }, { instanceUtilsCreate(UICorner, { Name = corner }), instanceUtilsCreate(ImageLabel, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = rbxassetid13075469149, Name = icon, Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 18, 0, 18) }) }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = title, Position = UDim2.new(0.5, 0, 0, 14), Size = UDim2.new(1, -28, 0, 0), Text = builtInScript.title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0, 1), BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = description, Position = UDim2.new(0, 14, 1, -14), Size = UDim2.new(1, -70, 1, -52), Text = builtInScript.description, TextColor3 = Color3.fromHex(c8c8c8), TextSize = 13, TextTruncate = Enum.TextTruncate.AtEnd, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }) }); base.execute.MouseButton1ClickConnect(function() internalUtilsExecute(builtInScript.content); end); return base; end); end do --[[ Variables ]]-- local textButton = framework.components.base.textButton; local savedScripts = framework.data.savedScripts; local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local stringUtils = framework.dependencies.utils.string; local tabSystem; --[[ Functions ]]-- local function createSavedScript(scriptData {any}) Instance return instanceUtilsCreate(Frame, { BackgroundColor3 = Color3.fromHex(202028), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = stringUtilsConvertToCamelCase(scriptData.title), Size = UDim2.new(1, -4, 0, 82) }, { instanceUtilsCreate(UICorner, { Name = corner }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 1), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Position = UDim2.new(0.5, 0, 0.5, -2), Size = UDim2.new(1, -32, 0, 0), Text = scriptData.title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 1), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = buttons, Position = UDim2.new(1, -8, 1, -8), Size = UDim2.new(0, 0, 0, 30) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }), textButton({ BackgroundColor3 = Color3.fromHex(3a3a4a), Name = execute, Text = Execute }), textButton({ BackgroundColor3 = Color3.fromHex(3a3a4a), Name = loadToEditor, Text = Load to Editor }), textButton({ BackgroundColor3 = Color3.fromHex(3a3a4a), Name = delete, Text = Delete }) }), instanceUtilsCreate(TextButton, { AnchorPoint = Vector2.new(1, 0), AutoButtonColor = false, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesSourceSansPro.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = autoExecute, Position = UDim2.new(1, -8, 0, 8), Size = UDim2.new(0, 160, 0, 28), Text = , TextColor3 = Color3.fromHex(000000), TextSize = 14 }, { instanceUtilsCreate(TextLabel, { BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = text, Size = UDim2.new(1, 0, 1, 0), Text = Auto Execute, TextColor3 = Color3.fromHex(9fa4ba), TextSize = 16, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(1, 0.5), BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = indicator, Position = UDim2.new(1, -2, 0.5, 0), Size = UDim2.new(0, 42, 0, 24) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }), instanceUtilsCreate(UIStroke, { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = scriptData.autoExecute and Color3.fromRGB(235, 69, 69) or Color3.fromRGB(58, 58, 74), Name = stroke, Thickness = 2 }), instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = scriptData.autoExecute and Color3.fromRGB(235, 69, 69) or Color3.fromRGB(58, 58, 74), BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, Name = dot, Position = UDim2.new(0.5, scriptData.autoExecute and 9 or -9, 0.5, 0), Size = UDim2.new(0, 18, 0, 18) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(1, 0), Name = corner }) }) }) }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = description, Position = UDim2.new(0.5, 0, 0.5, 2), Size = UDim2.new(1, -32, 0, 0), Text = scriptData.description, TextColor3 = Color3.fromHex(9fa4ba), TextSize = 14, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left }) }); end --[[ Module ]]-- local savedScript = {}; savedScript.__index = savedScript; function savedScript.new(scriptData {any}) local newSavedScript = setmetatable({ scriptData = scriptData, instance = createSavedScript(scriptData) }, savedScript); newSavedScript.instance.buttons.execute.MouseButton1ClickConnect(function() internalUtilsExecute(scriptData.content); end); newSavedScript.instance.buttons.loadToEditor.MouseButton1ClickConnect(function() if tabSystem == nil then tabSystem = framework.data.tabSystem; end tabSystemAdd(scriptData.title, scriptData.content); end); newSavedScript.instance.buttons.delete.MouseButton1ClickConnect(function() savedScriptsRemove(scriptData.index); end); if scriptData.autoExecute then newSavedScriptToggleAutomaticExecution(true); end scriptData.onAutoExecuteToggledConnect(function(state boolean) newSavedScriptToggleAutomaticExecution(state); end); newSavedScript.instance.autoExecute.MouseButton1ClickConnect(function() savedScriptsToggleAutomaticExecution(scriptData.index, not scriptData.autoExecute); end); return newSavedScript; end function savedScriptToggleAutomaticExecution(state boolean) instanceUtilsTween(self.instance.autoExecute.indicator.dot, 0.2, { BackgroundColor3 = state and Color3.fromRGB(235, 69, 69) or Color3.fromHex(3a3a4a), Position = UDim2.new(0.5, state and 9 or -9, 0.5, 0) }); instanceUtilsTween(self.instance.autoExecute.indicator.stroke, 0.2, { Color = state and Color3.fromRGB(235, 69, 69) or Color3.fromHex(3a3a4a) }); end framework.pages.localScripts.savedScript = savedScript; end do --[[ Variables ]]-- local savedScripts = framework.data.savedScripts; local textButton = framework.components.base.textButton; local instanceUtils = framework.dependencies.utils.instance; local builtInScript = framework.pages.localScripts.builtInScript; local savedScript = framework.pages.localScripts.savedScript; local map = {}; local savedScriptMap = {}; --[[ Functions ]]-- local function createUI(directory Instance) Instance return instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0, 1), BackgroundColor3 = Color3.fromHex(15151d), BackgroundTransparency = 1, BorderSizePixel = 0, Name = localScripts, Parent = directory, Position = UDim2.new(1, 0, 1, 0), Size = UDim2.new(1, 0, 1, -36) }, { instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 0), AutomaticCanvasSize = Enum.AutomaticSize.X, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = tabButtons, Position = UDim2.new(0.5, 0, 0, 10), ScrollBarImageColor3 = Color3.fromHex(515158), ScrollBarThickness = 4, ScrollingDirection = Enum.ScrollingDirection.X, Size = UDim2.new(1, -20, 0, 40) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }), textButton({ BackgroundColor3 = Color3.fromRGB(58, 58, 74), Name = builtInLibrary, Text = Built-in Library, TextColor3 = Color3.fromRGB(159, 164, 186) }), textButton({ BackgroundColor3 = Color3.fromRGB(58, 58, 74), Name = savedScripts, Text = Saved Scripts, TextColor3 = Color3.fromRGB(159, 164, 186) }) }), instanceUtilsCreate(Folder, { Name = tabs }, { instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 1), AutomaticCanvasSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = builtInLibrary, Position = UDim2.new(0.5, 0, 1, 0), ScrollBarImageColor3 = Color3.fromHex(191923), ScrollBarThickness = 4, Size = UDim2.new(1, -28, 1, -60), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar }, { instanceUtilsCreate(UIGridLayout, { CellPadding = UDim2.new(0, 12, 0, 12), CellSize = UDim2.new(0.333, -12, 0.3, 50), HorizontalAlignment = Enum.HorizontalAlignment.Center, Name = grid, SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0, 1), AutomaticCanvasSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = savedScripts, Position = UDim2.new(0, 14, 1, 0), ScrollBarImageColor3 = Color3.fromHex(191923), ScrollBarThickness = 4, Size = UDim2.new(1, -24, 1, -60), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar, Visible = false }, { instanceUtilsCreate(UIListLayout, { Name = list, Padding = UDim.new(0, 12), SortOrder = Enum.SortOrder.LayoutOrder }) }) }) }); end --[[ Module ]]-- local localScripts = { title = Local Scripts, icon = rbxassetid11558196718, selected = nil }; function localScriptsInitialize(directory Instance) self.base = createUI(directory); map[self.base.tabButtons.builtInLibrary] = self.base.tabs.builtInLibrary; map[self.base.tabButtons.savedScripts] =self. base.tabs.savedScripts; for i, v in framework.data.builtInScripts do builtInScript(v).Parent = self.base.tabs.builtInLibrary; end for i, v in savedScripts.cache do selfAddSavedScript(v); end savedScripts.onScriptAddedConnect(function(newScript) selfAddSavedScript(newScript); end); savedScripts.onScriptRemovedConnect(function(oldScript) local oldSavedScript = savedScriptMap[oldScript]; if oldSavedScript then oldSavedScript.instanceDestroy(); end end); for i, v in map do i.MouseButton1ClickConnect(function() selfSelect(i); end); end selfSelect(self.base.tabButtons.builtInLibrary); return self.base; end function localScriptsAddSavedScript(newScript {any}) local newSavedScript = savedScript.new(newScript); savedScriptMap[newScript] = newSavedScript; newSavedScript.instance.Parent = self.base.tabs.savedScripts; end function localScriptsSelect(button TextButton) if self.selected then if self.selected == button then return; end map[self.selected].Visible = false; instanceUtilsTween(self.selected, 0.2, { BackgroundColor3 = Color3.fromRGB(58, 58, 74), TextColor3 = Color3.fromRGB(159, 164, 186) }); end self.selected = button; map[button].Visible = true; instanceUtilsTween(self.selected, 0.2, { BackgroundColor3 = Color3.fromRGB(235, 69, 69), TextColor3 = Color3.fromRGB(255, 255, 255) }); end framework.pages.localScripts.localScripts = localScripts; end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local mathsUtils = framework.dependencies.utils.maths; local popups = framework.popups.popups; local textService = gameGetService(TextService); local tagOrder = { verified, isPatched, isUniversal, key }; local tags = { key = { title = Key, colour = #eab515 }, isPatched = { title = Patched, colour = #eb4545 }, isUniversal = { title = Universal, colour = #459beb }, verified = { title = Verified, colour = #15151d } }; --[[ Functions ]]-- local function generateTag(data {any}) Instance return instanceUtilsCreate(TextLabel, { AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(data.colour), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = data.title, Size = UDim2.new(0, 0, 0, 30), Text = data.title, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }); end --[[ Module ]]-- framework.pages.globalScripts.scriptResult = (function(scriptResult {any}) Instance local viewCount = mathsUtilsFormatAsCount(scriptResult.views, 0.1); local base = instanceUtilsCreate(ImageButton, { Active = false, AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Image = string.format(httpsassetgame.roblox.comGameToolsThumbnailAsset.ashxaid=%d&fmt=png&wd=1920&ht=1080, scriptResult.isUniversal and 4483381587 or scriptResult.game.gameId), ImageTransparency = 0.5, Name = scriptResult.title, Selectable = false, Size = UDim2.new(1, 0, 1, 0) }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Bold, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size18, Name = title, Position = UDim2.new(0.5, 0, 0, 48), Size = UDim2.new(1, -28, 0, 0), Text = scriptResult.title, TextColor3 = Color3.fromHex(ffffff), TextSize = 16, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(0.5, 1), BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = description, Position = UDim2.new(0.5, 0, 1, -14), Size = UDim2.new(1, -28, 1, -86), Text = scriptResult.description or , TextColor3 = Color3.fromHex(c8c8c8), TextSize = 13, TextTruncate = Enum.TextTruncate.AtEnd, TextWrap = true, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top }), instanceUtilsCreate(TextLabel, { AnchorPoint = Vector2.new(1, 0), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(3a3a4a), FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = views, Position = UDim2.new(1, -10, 0, 10), Size = UDim2.new(0, 0, 0, 30), Text = viewCount, TextColor3 = Color3.fromHex(ffffff), TextSize = 14 }, { instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }), instanceUtilsCreate(ScrollingFrame, { Active = true, AutomaticCanvasSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(ffffff), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex(000000), BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = tags, Position = UDim2.new(0, 10, 0, 10), ScrollBarImageColor3 = Color3.fromHex(000000), ScrollBarThickness = 0, ScrollingDirection = Enum.ScrollingDirection.X, Size = UDim2.new(1, -(textServiceGetTextBoundsAsync(instanceUtilsCreate(GetTextBoundsParams, { Font = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), Text = viewCount, Size = 14, Width = math.huge })).X + 46), 0, 30) }, { instanceUtilsCreate(UIListLayout, { FillDirection = Enum.FillDirection.Horizontal, Name = list, Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }) }); for i, v in tagOrder do if scriptResult[v] then generateTag(tags[v]).Parent = base.tags; end end base.MouseButton1ClickConnect(function() popupsShow(globalScriptSelection, scriptResult); end); return base; end); end do --[[ Variables ]]-- local instanceUtils = framework.dependencies.utils.instance; local internalUtils = framework.dependencies.utils.internal; local scriptResult = framework.pages.globalScripts.scriptResult; local httpService = gameGetService(HttpService); local basis; --[[ Module ]]-- local globalScripts = { title = Global Scripts, icon = rbxassetid13449277995, isSearching = false }; function globalScriptsInitialize(directory Instance) basis = instanceUtilsCreate(Frame, { AnchorPoint = Vector2.new(0, 1), BackgroundColor3 = Color3.fromHex(15151d), BackgroundTransparency = 1, BorderSizePixel = 0, Name = globalScripts, Position = UDim2.new(1, 0, 1, 0), Size = UDim2.new(1, 0, 1, -36) }, { instanceUtilsCreate(ScrollingFrame, { AnchorPoint = Vector2.new(0.5, 1), AutomaticCanvasSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 0), Name = container, Position = UDim2.new(0.5, 0, 1, 0), ScrollBarImageColor3 = Color3.fromHex(050507), ScrollBarThickness = 4, ScrollingDirection = Enum.ScrollingDirection.Y, Size = UDim2.new(1, -28, 1, -60), VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar }, { instanceUtilsCreate(UIGridLayout, { CellPadding = UDim2.new(0, 12, 0, 12), CellSize = UDim2.new(0.333, -12, 0.3, 50), HorizontalAlignment = Enum.HorizontalAlignment.Center, Name = grid, SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtilsCreate(TextButton, { AnchorPoint = Vector2.new(0.5, 0), AutoButtonColor = false, BackgroundColor3 = Color3.fromRGB(21, 21, 29), MouseButton1Click = function() basis.searchBox.inputCaptureFocus(); end, Name = searchBox, Position = UDim2.new(0.5, 0, 0, 14), Size = UDim2.new(1, -28, 0, 36), Text = }, { instanceUtilsCreate(TextBox, { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, FontFace = Font.new(rbxassetfontsfamiliesGothamSSm.json, Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = input, PlaceholderColor3 = Color3.fromHex(b2b2b2), PlaceholderText = Search..., Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, 0, 1, 0), Text = , TextColor3 = Color3.fromHex(ffffff), TextSize = 14, TextTruncate = Enum.TextTruncate.AtEnd, TextXAlignment = Enum.TextXAlignment.Left }), instanceUtilsCreate(UICorner, { CornerRadius = UDim.new(0, 5), Name = corner }), instanceUtilsCreate(UIPadding, { Name = padding, PaddingLeft = UDim.new(0, 12), PaddingRight = UDim.new(0, 12) }) }); }); basis.searchBox.input.FocusLostConnect(function() local contents = basis.searchBox.input.Text; if #contents 0 then selfSearch(contents); end end); do local res = internalUtilsRequest(httpsscriptblox.comapiscriptsearchfilters=free&q=Hub, GET, { [Content-Type] = applicationjson }); if res then selfParseResults(httpServiceJSONDecode(res).result.scripts); end end return basis; end function globalScriptsSearch(query string) if self.isSearching or getgenv == nil then return; end self.isSearching = true; local res = internalUtilsRequest(httpsscriptblox.comapiscriptsearchfilters=free&q= .. httpServiceUrlEncode(query), GET, { [Content-Type] = applicationjson }); if res then selfParseResults(httpServiceJSONDecode(res).result.scripts); end self.isSearching = false; end function globalScriptsParseResults(res {any}) for i, v in basis.containerGetChildren() do if vIsA(ImageButton) then vDestroy(); end end for i, v in res do scriptResult(v).Parent = basis.container; end end framework.pages.globalScripts.globalScripts = globalScripts; end do local signal = framework.dependencies.signal; local instanceUtils = framework.dependencies.utils.instance; framework.init = (function() local sig = signal.new(); local directory = instanceUtilsDynamicParent(instanceUtilsCreate(Folder, { Name = Codex })); local login; sigConnect(function(basis) if login then loginDestroy(); end basis.gui.Enabled = true; basis.popups.Enabled = true; framework.popups.popupsRegisterGUI(basis.popups); framework.pages.navbar.navbarInitialize(directory); if getgenv then for i, v in { runcode, isuifile, readuifile, writeuifile--[[, iscustomasset, writecustomasset]] } do getgenv()[i] = nil; end end end); login = framework.pages.startup.startup(directory, sig); end); end framework.init(); end) loadstring(gameHttpGet(“httpsraw.githubusercontent.comXNEOFFFlyGuiV3mainFlyGuiV3.txt”))()