Blox Fruits is an immensely popular game on the Roblox platform, boasting a vast user base. This action-adventure game revolves around a pirate theme, where players engage in combat against a variety of enemies and challenging bosses. Exploring islands and consuming different fruits are essential for advancing your character’s level.
What is Roblox Script?
Roblox Scripts typically refer to snippets of code that offer automation advantages within the game. Independent developers and scripters create these scripts, which are not officially endorsed by the Roblox platform. Nevertheless, you can still utilize these scripts through Roblox executors such as Arceus X, Hydrogen Executor, JJSploit, Fluxus executor, and others.
How to Use Roblox Script?
- Launch Roblox and join your desired game.
- Click the “Copy” button to duplicate the script code.
- Paste the script code into your preferred Roblox executor.
- Execute the script code and savor the enhanced experience
Blox Fruits is an immensely popular game on the Roblox platform, boasting a vast user base. This action-adventure game revolves around a pirate theme, where players engage in combat against a variety of enemies and challenging bosses. Exploring islands and consuming different fruits are essential for advancing your character’s level.
--[[ 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 connection:Disconnect() self._signal[self] = nil; end --[[ Signal ]]-- local signal = {}; signal.__index = signal; function signal.new() return setmetatable({}, signal); end function signal:Connect(fn: (any)) local conn = connection.new(self, fn); self[conn] = true; return conn; end function signal:Once(fn: (any)) local conn; conn = self:Connect(function(...) conn:Disconnect(); fn(...); end); return conn; end function signal:Fire(...) for conn, _ in self do task.spawn(conn._fn, ...); end end function signal:Wait() local thread = coroutine.running(); local conn; conn = self:Connect(function(...) conn:Disconnect(); task.spawn(thread, ...); end); return coroutine.yield(); end function signal:DisconnectAll() table.clear(self); end framework.dependencies.signal = signal; end do --[[ Variables ]]-- local runService = game:GetService("RunService"); local tweenService = game:GetService("TweenService"); local dynamicParent; --[[ Setup ]]-- if gethui then dynamicParent = gethui(); elseif runService:IsRunning() then dynamicParent = runService:IsStudio() and game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui") or game:GetService("CoreGui"); else dynamicParent = game:GetService("StarterGui"); end --[[ Module ]]-- local utils = {}; function utils:Create(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 utils:Tween(instance: Instance, duration: number, properties: {any}, ...): Tween local tween = tweenService:Create(instance, TweenInfo.new(duration, ...), properties); tween:Play(); return tween; end function utils:DynamicParent(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 utils:Round(input: number, float: number): number local bracket = 1 / float; return math.round(input * bracket) / bracket; end function utils:FormatAsCount(input: number, float: number): string if input < 1000 then return tostring(input); end local denominationIndex = math.floor(math.log10(input) / 3); return tostring(self:Round(input / (10 ^ (denominationIndex * 3)), float)) .. tostring(denominations[denominationIndex]); end function utils:FormatAsLiteralCount(input: number): string local x = string.gsub(string.reverse(tostring(input)), "(%d%d%d)", "%1,"); return string.gsub(string.reverse(x), "^,", ""); end function utils:IsWithin2DBounds(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 utils:DeepCopy(x: {any}) local y = {}; for i, v in x do y[i] = type(v) == "table" and self:DeepCopy(v) or v; end return y; end function utils:Concatenate(x: {any}, y: {any}) if y ~= nil then for i, v in y do table.insert(x, v); end end return x; end function utils:DeepOverwrite(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 self:DeepOverwrite(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 utils:CapitaliseFirst(str: string): string return string.upper(string.sub(str, 1, 1)) .. string.lower(string.sub(str, 2)); end function utils:ConvertToCamelCase(str: string): string local res = ""; for i, v in string.split(str, " ") do res ..= i == 1 and string.lower(v) or self:CapitaliseFirst(v); end return res; end framework.dependencies.utils.string = utils; end do --[[ Variables ]]-- local httpService = game:GetService("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 utils:Request(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 httpService:JSONEncode(body) or body }); if s == false or r.Success == false or r.StatusCode ~= 200 then return false; end return r.Body; end function utils:Execute(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 codexEnum:GetEnumItems() return self._items; end --[[ Module ]]-- framework.dependencies.codexEnum = { NavbarState = codexEnum.new({ "Hidden", "Partial", "Full" }) }; end do --[[ Variables ]]-- local httpService = game:GetService("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", httpService:JSONEncode(tableUtils:DeepCopy(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(); userSettings:FirePropertyChangedSignal(hierarchy == "" and k or string.format("%s.%s", hierarchy, k), v); end, __iter = function() return next, options; end }); end --[[ Module ]]-- function userSettings:Initialize() if isfile and isfile("codexSettings.json") then local succ, res = pcall(httpService.JSONDecode, httpService, readfile("codexSettings.json")); if succ then tableUtils:DeepOverwrite(settingsCache, res); else task.defer(error, "settings file is corrupted"); end end self.cache = createAutosaveMetatable(settingsCache, ""); end function userSettings:GetPropertyChangedSignal(path: string) if signalCache[path] == nil then signalCache[path] = signal.new(); end return signalCache[path]; end function userSettings:FirePropertyChangedSignal(path: string, value: any) local sig = signalCache[path]; if sig then sig:Fire(value); end end framework.data.userSettings = userSettings; end do --[[ Variables ]]-- local changelog = { { stamp = "2023-10-07T17:38:21Z", data = { "98% UNC Success Rate", "Added Server Hopper", "Added FPS Settings", "Added Auto Save Tabs", "Bug Fixes" } }, { stamp = "2023-10-06T17:47:39Z", data = { "Updated for V2.596", "Bug Fixes" } }, { stamp = "2023-09-28T10:43:41Z", data = { "Added Save Scripts from Tabs", "Premium Whitelist Page", "Game Hub Shows Hot Scripts On Launch", "Toggleable Auto Execute" } }, { stamp = "2023-09-27T01:00:04Z", data = { "Fixed Bugs in Filesystem Functions", "SkyHub and BananaHub Fixed", "Performance Upgrades" } }, { stamp = "2023-09-26T20:16:21Z", 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 = game:GetService("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 and/or 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 = tableUtils:DeepCopy(savedScripts.cache); for i, v in cache do v.onAutoExecuteToggled = nil; end writefile("codexScriptCache.json", httpService:JSONEncode(cache)); end end --[[ Module ]]-- function savedScripts:Initialize() loadScriptCache(); for i, v in savedScripts.cache do if v.autoExecute then task.spawn(function() internalUtils:Execute(v.content); end); end end end function savedScripts:Get(index: number) for i, v in self.cache do if v.index == index then return i, v; end end end function savedScripts:Add(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.onScriptAdded:Fire(newScript); saveScriptCache(); end function savedScripts:Remove(index: number) local i, save = self:Get(index); if save then table.remove(self.cache, i); self.onScriptRemoved:Fire(save); saveScriptCache(); end end function savedScripts:ToggleAutomaticExecution(index: number, state: boolean) local _, save = self:Get(index); if save then save.autoExecute = state; save.onAutoExecuteToggled:Fire(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 = "rbxassetid://14806198159", content = "local file = \"dexV4.lua\"; local raw = isfile and isfile(file) and readfile(file); raw = raw or game:HttpGetAsync(\"https://raw.githubusercontent.com/loglizzy/dexV4/main/source.lua\"); if isfile then task.spawn(writefile, file, game:HttpGet(url)); end loadstring(raw)();" }, { title = "Unnamed ESP", description = "Player ESP for Roblox, fully undetectable, uses built in drawing API.", icon = "rbxassetid://14806221310", content = "pcall(function() loadstring(game:HttpGet(\"https://raw.githubusercontent.com/ic3w0lf22/Unnamed-ESP/master/UnnamedESP.lua\"))(); end);" }, { title = "Hydroxide", description = "General purpose pen-testing tool for games on the Roblox engine", icon = "rbxassetid://14806229032", content = "loadstring(game:HttpGetAsync(\"https://raw.githubusercontent.com/Upbolt/Hydroxide/revision/init.lua\"))(); loadstring(game:HttpGetAsync(\"https://raw.githubusercontent.com/Upbolt/Hydroxide/revision/ui/main.lua\"))();" }, { title = "Infinite Yield", description = "Admin command line script with 300+ commands and 6 years of development", icon = "rbxassetid://14806239733", content = "loadstring(game:HttpGetAsync(\"https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source\"))();" }, { title = "Owl Hub", description = "Owl Hub is a free Roblox script hub developed by Google Chrome and CriShoux. It currently has 30+ games.", icon = "rbxassetid://14806252030", content = "loadstring(game:HttpGet(\"https://raw.githubusercontent.com/CriShoux/OwlHub/master/OwlHub.txt\"))();" } }; end do --[[ Variables ]]-- local signal = framework.dependencies.signal; local tableUtils = framework.dependencies.utils.table; local httpService = game:GetService("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 and/or 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 tabSystem:Initialize() loadTabCache(); end function tabSystem:Get(index: number) for i, v in self.cache do if v.index == index then return i, v; end end end function tabSystem:Add(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.onTabCreated:Fire(newTab); self:Select(index); end function tabSystem:Remove(index: number) if #self.cache > 1 then local i, tab = self:Get(index); if tab then if self.selected == tab then self:Select(self.cache[i == 1 and 2 or 1].index); end table.remove(self.cache, i); self.onTabRemoved:Fire(tab); end end end function tabSystem:Select(index: number) local _, tab = self:Get(index); if tab and (self.selected == nil or tab.index ~= self.selected.index) then self.selected = tab; self.onTabSelected:Fire(tab); end end function tabSystem:UpdateContent(index: number, content: string) local _, tab = self:Get(index); if tab then tab.content = content; end end function tabSystem:Save() if writefile then writefile("codexTabs.json", httpService:JSONEncode(tableUtils:DeepCopy(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 instanceUtils:Create("TextLabel", tableUtils:DeepOverwrite({ AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 instanceUtils:Create("TextBox", tableUtils:DeepOverwrite({ AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromRGB(58, 58, 74), FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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), tableUtils:Concatenate({ instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtils:Create("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 instanceUtils:Create("TextButton", tableUtils:DeepOverwrite({ AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromRGB(235, 69, 69), FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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), tableUtils:Concatenate({ instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtils:Create("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 instanceUtils:Create("Frame", tableUtils:DeepOverwrite({ 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 instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Name = stringUtils:ConvertToCamelCase(title), Size = UDim2.new(1, 0, 0, 50), Text = "", ZIndex = 2 }, { instanceUtils:Create("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 }, { instanceUtils:Create("ImageLabel", { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = "rbxassetid://11559270573", ImageTransparency = 1, Name = "glow", Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 85, 0, 102), ZIndex = 2 }) }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0, 0.5), AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("ImageLabel", { AnchorPoint = Vector2.new(0, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = "rbxassetid://11558444554", 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 navbarButton:Highlight(selected: boolean) instanceUtils:Tween(self.instance.icon, 0.2, { ImageColor3 = selected and Color3.fromHex("eb4545") or Color3.fromHex("979ebd"), ImageTransparency = selected and 0 or 0.6 }); instanceUtils:Tween(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 instanceUtils:Create("TextButton", tableUtils:DeepOverwrite({ BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = stringUtils:ConvertToCamelCase(title), Size = UDim2.new(0, 50, 0, 50), Text = "", TextColor3 = Color3.fromHex("1b2a35"), ZIndex = 2 }, overwriteProps, true), { instanceUtils:Create("UICorner", { Name = "corner" }), instanceUtils:Create("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 = game:GetService("TextService"); --[[ Functions ]]-- local function createButton(title: string): Instance return instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = stringUtils:ConvertToCamelCase(title), Position = UDim2.new(1, -75, 1, -75), Size = UDim2.new(0, textService:GetTextBoundsAsync(instanceUtils:Create("GetTextBoundsParams", { Font = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal), Text = title, Size = 14, Width = math.huge })).X + 42, 0, 32), Text = "" }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("ImageButton", { AnchorPoint = Vector2.new(1, 0.5), AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Image = "rbxassetid://14808246706", Name = "close", Position = UDim2.new(1, -6, 0.5, 0), Size = UDim2.new(0, 20, 0, 20) }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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.MouseButton1Click:Connect(function() tabSystem:Select(tab.index); end); btn.close.MouseButton1Click:Connect(function() tabSystem:Remove(tab.index); end); return setmetatable({ instance = btn }, tabButton); end function tabButton:Highlight(selected: boolean) instanceUtils:Tween(self.instance, 0.2, { BackgroundColor3 = Color3.fromHex(selected and "eb4545" or "3a3a4a"); }); instanceUtils:Tween(self.instance.title, 0.2, { TextColor3 = Color3.fromHex(selected and "ffffff" or "9fa4ba"); }); instanceUtils:Tween(self.instance.close, 0.2, { ImageColor3 = Color3.fromHex(selected and "ffffff" or "9fa4ba"); }); end function tabButton:Destroy() self.instance:Destroy(); 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 = instanceUtils:Create("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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("UIStroke", { Color = Color3.fromHex("202028"), Name = "stroke", Thickness = 2 }), instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("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) }, { instanceUtils:Create("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 }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }) }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("UIAspectRatioConstraint", { AspectRatio = 16 / 9, AspectType = Enum.AspectType.ScaleWithParentSize, DominantAxis = Enum.DominantAxis.Height, Name = "aspectRatio" }) }), instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("UIAspectRatioConstraint", { AspectRatio = 480 / 244, Name = "aspectRatio" }) }); base.buttons.execute.MouseButton1Click:Connect(function() internalUtils:Execute(globalScriptSelection.selectedScript.script); globalScriptSelection:Hide(); end); base.buttons.loadToEditor.MouseButton1Click:Connect(function() if tabSystem == nil then tabSystem = framework.data.tabSystem; end tabSystem:Add(globalScriptSelection.selectedScript.title, globalScriptSelection.selectedScript.script); globalScriptSelection:Hide(); end); base.buttons.saveScript.MouseButton1Click:Connect(function() savedScripts:Add(globalScriptSelection.selectedScript.title, "", globalScriptSelection.selectedScript.script); globalScriptSelection:Hide(); end); base.buttons.cancel.MouseButton1Click:Connect(function() globalScriptSelection:Hide(); end); return base; end --[[ Module ]]-- function globalScriptSelection:CreateUI(gui: ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function globalScriptSelection:Show(scriptResult: {any}) self.selectedScript = scriptResult; self.frame.icon.Image = string.format("https://assetgame.roblox.com/Game/Tools/ThumbnailAsset.ashx?aid=%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: " .. mathsUtils:FormatAsLiteralCount(scriptResult.views); self.frame.updatedAt.Text = "Updated: " .. DateTime.fromIsoDate(scriptResult.updatedAt or scriptResult.createdAt):FormatLocalTime("ll", "en-us"); self.frame.Visible = true; end function globalScriptSelection:Hide() 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 = instanceUtils:Create("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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("UIStroke", { Color = Color3.fromHex("202028"), Name = "stroke", Thickness = 2 }), instanceUtils:Create("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) }, { instanceUtils:Create("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 }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }), instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }) }) }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextBox", { AnchorPoint = Vector2.new(0.5, 1), BackgroundColor3 = Color3.fromHex("202028"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtils:Create("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex("3a3a4a"), Name = "stroke" }) }), instanceUtils:Create("TextBox", { AnchorPoint = Vector2.new(0.5, 1), BackgroundColor3 = Color3.fromHex("202028"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }), instanceUtils:Create("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex("3a3a4a"), Name = "stroke" }) }), instanceUtils:Create("UISizeConstraint", { MaxSize = Vector2.new(600, math.huge), Name = "sizeConstraint" }), instanceUtils:Create("UIAspectRatioConstraint", { AspectRatio = 480 / 244, Name = "aspectRatio" }) }); base.buttons.saveScript.MouseButton1Click:Connect(function() local title = base.title.Text; if #title > 0 then savedScripts:Add(title, base.description.Text, saveCurrentTab.selectedTab.content); saveCurrentTab:Hide(); end end); base.buttons.cancel.MouseButton1Click:Connect(function() saveCurrentTab:Hide(); end); return base; end --[[ Module ]]-- function saveCurrentTab:CreateUI(gui: ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function saveCurrentTab:Show(selectedTab: {any}) self.selectedTab = selectedTab; self.frame.text.Text = selectedTab.title; self.frame.title.Text = selectedTab.title; self.frame.Visible = true; end function saveCurrentTab:Hide() 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 = game:GetService("TextService"); local dropdown = { selectedDropdown = nil, selectedItem = nil, onDropdownChanged = signal.new(), onSelectionChanged = signal.new() }; --[[ Functions ]]-- local function createItem(title: string) return instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("3a3a4a"), BackgroundTransparency = 1, BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Medium, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = stringUtils:ConvertToCamelCase(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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 4), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }); end local function toggleItemSelection(item: TextButton, selected: boolean) instanceUtils:Tween(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 instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("UIStroke", { Color = Color3.fromHex("3a3a4a"), Name = "stroke", Thickness = 2 }), instanceUtils:Create("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 }, { instanceUtils:Create("UIListLayout", { Name = "list", Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }) }); end local function clearDropdown() for i, v in dropdown.frame.container:GetChildren() do if v:IsA("TextButton") then v:Destroy(); end end end --[[ Module ]]-- function dropdown:CreateUI(gui: ScreenGui) if self.frame == nil then self.frame = createUI(gui); end end function dropdown:Show(item: {any}, adornee: GuiBase2d) clearDropdown(); self.selectedDropdown = item.title; self.onDropdownChanged:Fire(item.title); if self.adornConnection then self.adornConnection:Disconnect(); end do local bottomRight = adornee.AbsolutePosition + adornee.AbsoluteSize; self.frame.Position = UDim2.new(0, bottomRight.X, 0, bottomRight.Y + 44); self.adornConnection = adornee:GetPropertyChangedSignal("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.MouseButton1Click:Connect(function() toggleItemSelection(self.selectedItem, false); toggleItemSelection(currentItem, true); self.selectedItem = currentItem; self.onSelectionChanged:Fire(v); end); end self.frame.Visible = true; end function dropdown:Hide() clearDropdown(); self.selectedDropdown = nil; self.selectedItem = nil; self.onDropdownChanged:Fire(); self.frame.Visible = false; end framework.popups.dropdown = dropdown; end do --[[ Module ]]-- local popups = { cache = {} }; function popups:RegisterGUI(gui: ScreenGui) self.gui = gui; end function popups:Show(name: string, ...) local module = self.cache[name]; if module == nil then module = framework["popups." .. name]; module:CreateUI(self.gui); self.cache[name] = module; end module:Show(...); end function popups:Hide(name: string, ...) local module = self.cache[name]; if module then module:Hide(...); 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]\n\n", str == "" and "" or "\n\n", 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 instanceUtils:Create("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 }), instanceUtils:Create("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("rbxasset://fonts/families/GothamSSm.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 = instanceUtils:Create("Frame", { AnchorPoint = Vector2.new(0.5, 0), BackgroundTransparency = 1, Name = stepCount, Parent = parent, Size = UDim2.new(1, 0, 0, 22) }, { instanceUtils:Create("ImageLabel", { BackgroundTransparency = 1, Image = "rbxassetid://14840862230", 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("rbxasset://fonts/families/GothamSSm.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 startupStep:Start(): {any} self.tween = instanceUtils:Tween(self.frame.icon, 1, { Rotation = 360 }, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, math.huge); instanceUtils:Tween(self.frame.icon, 0.4, { ImageTransparency = 0 }); instanceUtils:Tween(self.frame.note, 0.4, { TextTransparency = 0 }).Completed:Wait(); return self; end function startupStep:Complete() if self.isFinished then return; end self.isFinished = true; local icon = self.frame.icon; local note = self.frame.note; instanceUtils:Tween(note, 0.4, { TextTransparency = 1 }).Completed:Connect(function() note.Text = self.finishText; instanceUtils:Tween(note, 0.4, { TextTransparency = 0 }); end); instanceUtils:Tween(icon, 0.4, { ImageTransparency = 1 }).Completed:Wait(); self.tween:Cancel(); icon.Image = "rbxassetid://14840859703"; icon.Rotation = 0; instanceUtils:Tween(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 = game:GetService("HttpService"); local completionSignal; local ui; --[[ Functions ]]-- dd = true local function checkWhitelist() if getgenv then return internalUtils:Request("https://api.codex.lol/v1/auth/authenticate", "POST") ~= true; end return false; end local function createBasis(directory: Instance) local gui = instanceUtils:Create("ScreenGui", { Enabled = false, IgnoreGuiInset = true, Name = "gui", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Global }, { instanceUtils:Create("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 }), instanceUtils:Create("Folder", { Name = "tabs" }) }); local popups = instanceUtils:Create("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() userSettings:Initialize(); if runautoexec and userSettings.cache.executor.autoExecute then runautoexec(); end tabSystem:Initialize(); savedScripts:Initialize(); 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 = instanceUtils:Create("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("rbxasset://fonts/families/GothamSSm.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) }), instanceUtils:Create("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) }, { instanceUtils:Create("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) }, { instanceUtils:Create("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 = internalUtils:Request("https://api.codex.lol/v1/auth/session", "POST"); if data then setclipboard("https://mobile.codex.lol?token=" .. httpService:JSONDecode(data).token); end end game:GetService("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("rbxasset://fonts/families/GothamSSm.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(), instanceUtils:Create("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 = internalUtils:Request("https://api.codex.lol/v1/auth/claim", "POST", { ["Content-Type"] = "application/json" }, { key = key }); if res then changeTab(true); return; end end game:GetService("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(); whitelistStep:Complete(); local setupStep = startupStep.new("Setting Up...", "Setup Completed!", ui.whitelist.process):Start(); doSetup(); setupStep:Complete(); local loadUIStep = startupStep.new("Loading UI...", "Loaded!", ui.whitelist.process):Start(); local basis = createBasis(directory); loadUIStep:Complete(); task.wait(1); completionSignal:Fire(basis); end); return ui; end --[[ Module ]]-- framework.pages.startup.startup = (function(directory: Instance, signal: {any}): ScreenGui completionSignal = signal; if checkWhitelist() then doSetup(); signal:Fire(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 = game:GetService("UserInputService"); local navbar = { state = "hidden" }; local map = {}; local selected; --[[ Functions ]]-- local function setupDragBar(dragBar: TextButton, indent: NumberValue) local isDragging = false; local startPosition, startOffset; userInputService.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and mathsUtils:IsWithin2DBounds(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.Changed:Connect(function(property) if input.UserInputState == Enum.UserInputState.End then isDragging = false; endedConn:Disconnect(); navbar:SetState(codexEnum.NavbarState[input.Position.X > 140 and "Full" or input.Position.X > 40 and "Partial" or "Hidden"]); end end); end end); userInputService.InputChanged:Connect(function(input) if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then instanceUtils:Tween(indent, 0.06, { Value = math.clamp(input.Position.X - startOffset, 0, 260) }); end end); end local function createNavbar(gui: ScreenGui): Instance local bar = instanceUtils:Create("Frame", { BackgroundTransparency = 1, Name = "navbar", Parent = gui, Size = UDim2.new(0, 0, 1, 0), ZIndex = 2 }, { instanceUtils:Create("NumberValue", { Name = "indent", Value = 0 }), instanceUtils:Create("TextButton", { BackgroundTransparency = 1, Name = "dragBar", Position = UDim2.new(1, 0, 0, 0), Size = UDim2.new(0, 20, 1, 0), Text = "", ZIndex = 2 }, { instanceUtils:Create("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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }) }) }), instanceUtils:Create("Frame", { BackgroundColor3 = Color3.fromHex("15151d"), BorderSizePixel = 0, ClipsDescendants = true, Name = "main", Size = UDim2.new(1, 0, 1, 0), ZIndex = 2 }, { instanceUtils:Create("ImageLabel", { BackgroundTransparency = 1, BorderSizePixel = 0, Image = "rbxassetid://11558559086", Name = "codexIcon", Position = UDim2.new(0, 20, 0, 30), Size = UDim2.new(0, 36, 0, 36), ZIndex = 2 }), instanceUtils:Create("TextLabel", { BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("Frame", { BackgroundTransparency = 1, BorderSizePixel = 0, Name = "container", Size = UDim2.new(1, 0, 1, 0), ZIndex = 2 }, { instanceUtils:Create("UIListLayout", { HorizontalAlignment = Enum.HorizontalAlignment.Center, Name = "list", SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Center }) }) }) }); bar.indent:GetPropertyChangedSignal("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 instanceUtils:Create("Frame", { BackgroundColor3 = Color3.new(), BackgroundTransparency = 1, Name = "fade", Parent = gui, Size = UDim2.new(1, 0, 1, 0), ZIndex = 0 }, { instanceUtils:Create("UIGradient", { Name = "gradient", Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.3), NumberSequenceKeypoint.new(0.2, 0.3), NumberSequenceKeypoint.new(1, 1) }) }) }); end --[[ Module ]]-- function navbar:Initialize(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)]; self:Add(module.title, module.icon, module:Initialize(), module.overwritePosition); end self:SetState(codexEnum.NavbarState.Full, true); end function navbar:Add(text: string, icon: string, designatedFrame: Frame, overwritePosition: UDim2?) local button = navbarButton.new(text, icon); map[button] = designatedFrame; button.instance.MouseButton1Click:Connect(function() self:Select(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 navbar:SetState(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.tween:Cancel(); end if self.nextInputCheck then self.nextInputCheck:Disconnect(); 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 = instanceUtils:Tween(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 self:SetState(codexEnum.NavbarState.Hidden); end end); self.nextInputCheck = userInputService.InputBegan:Connect(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 self:SetState(codexEnum.NavbarState.Hidden); end end end); end end function navbar:Select(button: TextButton) if selected ~= nil then selected:Highlight(false); instanceUtils:Tween(map[selected], 0.2, { Position = UDim2.new(1, 0, 1, 0) }); if selected == button then selected = nil; instanceUtils:Tween(self.background, 0.2, { BackgroundTransparency = 1 }); return; end end selected = button; selected:Highlight(true); self:SetState(codexEnum.NavbarState.Partial); instanceUtils:Tween(self.background, 0.2, { BackgroundTransparency = 0.1 }); instanceUtils:Tween(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 = game:GetService("HttpService"); local teleportService = game:GetService("TeleportService"); local userInputService = game:GetService("UserInputService"); local player = game:GetService("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, character:WaitForChild("Humanoid", 5), character:WaitForChild("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.Died:Connect(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 = internalUtils:Request(string.format("https://games.roblox.com/v1/games/%d/servers/0?&excludeFullGames=true&cursor=%s", game.PlaceId, cursor)); if res then for i, v in httpService:JSONDecode(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 = internalUtils:Request(string.format("https://games.roblox.com/v1/games/%d/servers/0?sortOrder=%d&excludeFullGames=true&limit=10", game.PlaceId, searchPriority == "Most Players" and 2 or 1)); if res then for i, v in httpService:JSONDecode(res).data do if v.id ~= game.JobId then jobId = v.id; break; end end end end end if jobId then teleportService:TeleportToPlaceInstance(game.PlaceId, jobId); else game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Codex Android", Text = "No suitable servers found" }); end end --[[ Setup ]]-- player.CharacterAdded:Connect(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 layoutMap:Initialize() 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 instanceUtils:Create("TextButton", { AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal), FontSize = Enum.FontSize.Size14, Name = stringUtils:ConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 36), Text = "", TextColor3 = Color3.fromHex("000000"), TextSize = 14 }, { instanceUtils:Create("TextLabel", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }), instanceUtils:Create("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex("3a3a4a"), Name = "stroke", Thickness = 2 }), instanceUtils:Create("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) }, { instanceUtils:Create("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); userSettings:GetPropertyChangedSignal(newToggle.linkedSetting):Connect(function(state: boolean) newToggle:Set(state); end); newToggle.instance.MouseButton1Click:Connect(function() determiningDict[determiningKey] = not determiningDict[determiningKey]; end); if newToggle.state then newToggle:Set(true); end return newToggle; end function toggle:Set(state: boolean) instanceUtils:Tween(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) }); instanceUtils:Tween(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 = game:GetService("UserInputService"); --[[ Functions ]]-- local function createSlider(title: string, parent: Instance): Instance return instanceUtils:Create("Frame", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Name = stringUtils:ConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 60) }, { instanceUtils:Create("TextLabel", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextBox", { AnchorPoint = Vector2.new(1, 0), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex("3a3a4a"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }), instanceUtils:Create("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) }, { instanceUtils:Create("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; userSettings:GetPropertyChangedSignal(newSlider.linkedSetting):Connect(function(value: number) newSlider:Set(value); end); newSlider.instance.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isDragging = true; local endedConn; endedConn = input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then endedConn:Disconnect(); isDragging = false; end end); end end) userInputService.InputChanged:Connect(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.FocusLost:Connect(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); newSlider:Set(newSlider.value); return newSlider; end function slider:Set(value: number) instanceUtils:Tween(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 = game:GetService("TextService"); --[[ Functions ]]-- local function createDropdown(title: string, default: string, parent: Instance): Instance return instanceUtils:Create("Frame", { Active = true, BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Name = stringUtils:ConvertToCamelCase(title), Parent = parent, Selectable = true, Size = UDim2.new(1, 0, 0, 36) }, { instanceUtils:Create("TextLabel", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("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 + textService:GetTextBoundsAsync(instanceUtils:Create("GetTextBoundsParams", { Font = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Medium, Enum.FontStyle.Normal), Text = default, Size = 14, Width = math.huge })).X, 0, 32), Text = "" }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = Color3.fromHex("3a3a4a"), Name = "stroke", Thickness = 2 }), instanceUtils:Create("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("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("ImageLabel", { AnchorPoint = Vector2.new(1, 0.5), BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Image = "rbxassetid://14967733915", 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); userSettings:GetPropertyChangedSignal(newDropdown.linkedSetting):Connect(function(value: number) newDropdown:Set(value); end); newDropdown.instance.indicator.MouseButton1Click:Connect(function() if dropdownPopup.selectedDropdown == dropData.title then popups:Hide("dropdown"); else popups:Show("dropdown", newDropdown, newDropdown.instance.indicator); newDropdown.selectionChangedConnection = dropdownPopup.onSelectionChanged:Connect(function(value: string) determiningDict[determiningKey] = value; end); end end); dropdownPopup.onDropdownChanged:Connect(function(value: string?) if value and value ~= dropData.title and newDropdown.selectionChangedConnection then newDropdown.selectionChangedConnection:Disconnect(); end end); newDropdown:Set(newDropdown.value); return newDropdown; end function dropdown:Set(value: string) self.value = value; self.instance.indicator.selected.Text = value; self.instance.indicator.Size = UDim2.new(0, 52 + textService:GetTextBoundsAsync(instanceUtils:Create("GetTextBoundsParams", { Font = Font.new("rbxasset://fonts/families/GothamSSm.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 instanceUtils:Create("Frame", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Name = stringUtils:ConvertToCamelCase(title), Parent = parent, Size = UDim2.new(1, 0, 0, 36) }, { instanceUtils:Create("TextLabel", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextButton", { AnchorPoint = Vector2.new(1, 0.5), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex("eb4545"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 6), Name = "corner" }), instanceUtils:Create("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.MouseButton1Click:Connect(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 instanceUtils:Create("Frame", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Name = "separator", Parent = parent, Size = UDim2.new(1, 0, 0, 14) }, { instanceUtils:Create("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) }, { instanceUtils:Create("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 instanceUtils:Create("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) }, { instanceUtils:Create("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) }, { instanceUtils:Create("UIListLayout", { FillDirection = Enum.FillDirection.Horizontal, Name = "list", Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtils:Create("Folder", { Name = "tabs" }) }); end local function createFrame(title: string, directory: Instance) return instanceUtils:Create("ScrollingFrame", { AnchorPoint = Vector2.new(0.5, 1), BackgroundTransparency = 1, BorderSizePixel = 0, CanvasSize = UDim2.new(0, 0, 0, 130), Name = stringUtils:ConvertToCamelCase(title), Parent = directory, Position = UDim2.new(0.5, 0, 1, 0), ScrollBarThickness = 2, Size = UDim2.new(1, -40, 1, -50), Visible = false }, { instanceUtils:Create("UIListLayout", { Name = "list", Padding = UDim.new(0, 5), SortOrder = Enum.SortOrder.LayoutOrder }) }); end --[[ Module ]]-- local exploitSettings = { title = "Exploit Settings", icon = "rbxassetid://11558196447", overwritePosition = UDim2.new(0, 0, 1, -66), selected = nil }; function exploitSettings:Initialize(directory: Instance) self.base = createUI(directory); layoutMap:Initialize(); for i, v in layoutMap.map do self:Add(v); end return self.base; end function exploitSettings:Add(tab: {any}) local btn = textButton({ BackgroundColor3 = Color3.fromRGB(58, 58, 74), Name = stringUtils:ConvertToCamelCase(tab.title), Text = tab.title, TextColor3 = Color3.fromRGB(159, 164, 186), Parent = self.base.tabButtons }); local frame = createFrame(tab.title, self.base.tabs); btn.MouseButton1Click:Connect(function() self:Select(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 self:Select(tab); end end function exploitSettings:Select(tab: {any}) if self.selected then if self.selected == tab then return; end local oldMap = map[self.selected]; oldMap.frame.Visible = false; instanceUtils:Tween(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; instanceUtils:Tween(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 lexer:Parse(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 = game:GetService("UserInputService"); local textService = game:GetService("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) instanceUtils:Create("TextLabel", { BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/RobotoMono.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.inputBox:ClearAllChildren(); local x, y = 0, 0; local lastX = 0; for i, v in lexResult do lastX = textService:GetTextBoundsAsync(instanceUtils:Create("GetTextBoundsParams", { Font = Font.new("rbxasset://fonts/families/RobotoMono.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 instanceUtils:Create("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) }, { instanceUtils:Create("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) }, { instanceUtils:Create("UIListLayout", { FillDirection = Enum.FillDirection.Horizontal, Name = "list", Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) }), instanceUtils:Create("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 }, { instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/RobotoMono.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 }), instanceUtils:Create("TextBox", { BackgroundTransparency = 1, ClearTextOnFocus = false, CursorPosition = -1, FontFace = Font.new("rbxasset://fonts/families/RobotoMono.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 }) }), instanceUtils:Create("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) }, { instanceUtils:Create("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 = "rbxassetid://11558196842", selected = nil, text = "" }; function editor:Initialize(directory: Instance) base = createUI(); do local inputBox = base.contentContainer.inputBox; inputBox:GetPropertyChangedSignal("Text"):Connect(function() if userInputService:GetFocusedTextBox() == inputBox then self:SetText(inputBox.Text); end end); inputBox.FocusLost:Connect(function() if userSettings.cache.executor.autoSaveTabs then tabSystem:Save(); end end); end do editorButton("New Tab", "rbxassetid://14808232261", { MouseButton1Click = function() tabSystem:Add("Script " .. tostring(tabSystem.accumulator + 1)); end, Parent = base.buttons }); editorButton("Save Current Tab", "rbxassetid://14883119324", { MouseButton1Click = function() popups:Show("saveCurrentTab", select(-1, tabSystem:Get(self.selected))); end, Parent = base.buttons }); editorButton("Execute Clipboard", "rbxassetid://14808228630", { MouseButton1Click = function() if getclipboard then internalUtils:Execute(getclipboard()); end end, Parent = base.buttons }); editorButton("Clear", "rbxassetid://14808219001", { MouseButton1Click = function() self:SetText(""); end, Parent = base.buttons }); editorButton("Execute", "rbxassetid://14808225296", { BackgroundColor3 = Color3.fromRGB(235, 69, 69), MouseButton1Click = function() internalUtils:Execute(self.text); end, Parent = base.buttons }, Color3.new(1, 1, 1)); end tabSystem.onTabCreated:Connect(function(tab) local btn = tabButton.new(tab); btn.instance.Parent = base.tabButtons; map[tab.index] = btn; if userSettings.cache.executor.autoSaveTabs then tabSystem:Save(); end end); tabSystem.onTabRemoved:Connect(function(tab) map[tab.index]:Destroy(); map[tab.index] = nil; if userSettings.cache.executor.autoSaveTabs then tabSystem:Save(); end end); tabSystem.onTabSelected:Connect(function(tab) if self.selected then map[self.selected]:Highlight(false); end map[tab.index]:Highlight(true); self.selected = tab.index; self:SetText(tab.content); end); if #tabSystem.cache > 0 then for i, v in tabSystem.cache do tabSystem.onTabCreated:Fire(v); end tabSystem:Select(tabSystem.cache[1].index); else tabSystem:Add("Script 1"); end return base; end function editor:SetText(text: string) local truncatedText = string.sub(text, 1, 16384); self.text = text; tabSystem:UpdateContent(self.selected, text); base.contentContainer.inputBox.Text = truncatedText; base.contentContainer.lineNumbers.Text = generateLineNumberString(truncatedText); handleLexResult(lexer:Parse(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 = instanceUtils:Create("ImageLabel", { BackgroundTransparency = 1, BorderSizePixel = 0, Image = builtInScript.icon, ImageTransparency = 0.5, Name = stringUtils:ConvertToCamelCase(builtInScript.title), Size = UDim2.new(1, 0, 1, 0) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("TextButton", { AnchorPoint = Vector2.new(1, 1), AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("eb4545"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal), Name = "execute", Position = UDim2.new(1, -10, 1, -10), Size = UDim2.new(0, 40, 0, 40), Text = "" }, { instanceUtils:Create("UICorner", { Name = "corner" }), instanceUtils:Create("ImageLabel", { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, BorderSizePixel = 0, Image = "rbxassetid://13075469149", Name = "icon", Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(0, 18, 0, 18) }) }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0, 1), BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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.MouseButton1Click:Connect(function() internalUtils:Execute(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 instanceUtils:Create("Frame", { BackgroundColor3 = Color3.fromHex("202028"), BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, Name = stringUtils:ConvertToCamelCase(scriptData.title), Size = UDim2.new(1, -4, 0, 82) }, { instanceUtils:Create("UICorner", { Name = "corner" }), instanceUtils:Create("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("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("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) }, { instanceUtils:Create("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" }) }), instanceUtils:Create("TextButton", { AnchorPoint = Vector2.new(1, 0), AutoButtonColor = false, BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.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 }, { instanceUtils:Create("TextLabel", { BackgroundColor3 = Color3.fromHex("ffffff"), BackgroundTransparency = 1, BorderColor3 = Color3.fromHex("000000"), BorderSizePixel = 0, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }), instanceUtils:Create("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Color = scriptData.autoExecute and Color3.fromRGB(235, 69, 69) or Color3.fromRGB(58, 58, 74), Name = "stroke", Thickness = 2 }), instanceUtils:Create("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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(1, 0), Name = "corner" }) }) }) }), instanceUtils:Create("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("rbxasset://fonts/families/GothamSSm.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.MouseButton1Click:Connect(function() internalUtils:Execute(scriptData.content); end); newSavedScript.instance.buttons.loadToEditor.MouseButton1Click:Connect(function() if tabSystem == nil then tabSystem = framework.data.tabSystem; end tabSystem:Add(scriptData.title, scriptData.content); end); newSavedScript.instance.buttons.delete.MouseButton1Click:Connect(function() savedScripts:Remove(scriptData.index); end); if scriptData.autoExecute then newSavedScript:ToggleAutomaticExecution(true); end scriptData.onAutoExecuteToggled:Connect(function(state: boolean) newSavedScript:ToggleAutomaticExecution(state); end); newSavedScript.instance.autoExecute.MouseButton1Click:Connect(function() savedScripts:ToggleAutomaticExecution(scriptData.index, not scriptData.autoExecute); end); return newSavedScript; end function savedScript:ToggleAutomaticExecution(state: boolean) instanceUtils:Tween(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) }); instanceUtils:Tween(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 instanceUtils:Create("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) }, { instanceUtils:Create("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) }, { instanceUtils:Create("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) }) }), instanceUtils:Create("Folder", { Name = "tabs" }, { instanceUtils:Create("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 }, { instanceUtils:Create("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 }) }), instanceUtils:Create("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 }, { instanceUtils:Create("UIListLayout", { Name = "list", Padding = UDim.new(0, 12), SortOrder = Enum.SortOrder.LayoutOrder }) }) }) }); end --[[ Module ]]-- local localScripts = { title = "Local Scripts", icon = "rbxassetid://11558196718", selected = nil }; function localScripts:Initialize(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 self:AddSavedScript(v); end savedScripts.onScriptAdded:Connect(function(newScript) self:AddSavedScript(newScript); end); savedScripts.onScriptRemoved:Connect(function(oldScript) local oldSavedScript = savedScriptMap[oldScript]; if oldSavedScript then oldSavedScript.instance:Destroy(); end end); for i, v in map do i.MouseButton1Click:Connect(function() self:Select(i); end); end self:Select(self.base.tabButtons.builtInLibrary); return self.base; end function localScripts:AddSavedScript(newScript: {any}) local newSavedScript = savedScript.new(newScript); savedScriptMap[newScript] = newSavedScript; newSavedScript.instance.Parent = self.base.tabs.savedScripts; end function localScripts:Select(button: TextButton) if self.selected then if self.selected == button then return; end map[self.selected].Visible = false; instanceUtils:Tween(self.selected, 0.2, { BackgroundColor3 = Color3.fromRGB(58, 58, 74), TextColor3 = Color3.fromRGB(159, 164, 186) }); end self.selected = button; map[button].Visible = true; instanceUtils:Tween(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 = game:GetService("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 instanceUtils:Create("TextLabel", { AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex(data.colour), FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("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 = mathsUtils:FormatAsCount(scriptResult.views, 0.1); local base = instanceUtils:Create("ImageButton", { Active = false, AutoButtonColor = false, BackgroundTransparency = 1, BorderSizePixel = 0, Image = string.format("https://assetgame.roblox.com/Game/Tools/ThumbnailAsset.ashx?aid=%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) }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(0.5, 1), BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("TextLabel", { AnchorPoint = Vector2.new(1, 0), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = Color3.fromHex("3a3a4a"), FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }, { instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 10) }) }), instanceUtils:Create("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, -(textService:GetTextBoundsAsync(instanceUtils:Create("GetTextBoundsParams", { Font = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Medium, Enum.FontStyle.Normal), Text = viewCount, Size = 14, Width = math.huge })).X + 46), 0, 30) }, { instanceUtils:Create("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.MouseButton1Click:Connect(function() popups:Show("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 = game:GetService("HttpService"); local basis; --[[ Module ]]-- local globalScripts = { title = "Global Scripts", icon = "rbxassetid://13449277995", isSearching = false }; function globalScripts:Initialize(directory: Instance) basis = instanceUtils:Create("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) }, { instanceUtils:Create("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 }, { instanceUtils:Create("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 }) }), instanceUtils:Create("TextButton", { AnchorPoint = Vector2.new(0.5, 0), AutoButtonColor = false, BackgroundColor3 = Color3.fromRGB(21, 21, 29), MouseButton1Click = function() basis.searchBox.input:CaptureFocus(); end, Name = "searchBox", Position = UDim2.new(0.5, 0, 0, 14), Size = UDim2.new(1, -28, 0, 36), Text = "" }, { instanceUtils:Create("TextBox", { AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, FontFace = Font.new("rbxasset://fonts/families/GothamSSm.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 }), instanceUtils:Create("UICorner", { CornerRadius = UDim.new(0, 5), Name = "corner" }), instanceUtils:Create("UIPadding", { Name = "padding", PaddingLeft = UDim.new(0, 12), PaddingRight = UDim.new(0, 12) }) }); }); basis.searchBox.input.FocusLost:Connect(function() local contents = basis.searchBox.input.Text; if #contents > 0 then self:Search(contents); end end); do local res = internalUtils:Request("https://scriptblox.com/api/script/search?filters=free&q=Hub", "GET", { ["Content-Type"] = "application/json" }); if res then self:ParseResults(httpService:JSONDecode(res).result.scripts); end end return basis; end function globalScripts:Search(query: string) if self.isSearching or getgenv == nil then return; end self.isSearching = true; local res = internalUtils:Request("https://scriptblox.com/api/script/search?filters=free&q=" .. httpService:UrlEncode(query), "GET", { ["Content-Type"] = "application/json" }); if res then self:ParseResults(httpService:JSONDecode(res).result.scripts); end self.isSearching = false; end function globalScripts:ParseResults(res: {any}) for i, v in basis.container:GetChildren() do if v:IsA("ImageButton") then v:Destroy(); 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 = instanceUtils:DynamicParent(instanceUtils:Create("Folder", { Name = "Codex" })); local login; sig:Connect(function(basis) if login then login:Destroy(); end basis.gui.Enabled = true; basis.popups.Enabled = true; framework.popups.popups:RegisterGUI(basis.popups); framework.pages.navbar.navbar:Initialize(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(game:HttpGet(“https://raw.githubusercontent.com/XNEOFF/FlyGuiV3/main/FlyGuiV3.txt”))()