Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- MarcoUI Interface
- Author: 4lpaca
- License: MIT
- Github: https://github.com/4lpaca-pin/MarcoUI
- Original: MarcoUI.net
- Version: 2.6
- - Improved Performance Mode
- MarcoUI:OptimizeMode(< boolean >)
- - Added Auto Color Logo
- MarcoUI:CustomIconHighlight()
- --]]
- --- Export Types ---
- export type cloneref = (target: Instance) -> Instance;
- export type Window = {
- Name: string,
- Keybind: string | Enum.KeyCode,
- Logo: string,
- Scale: UDim2,
- TextSize: number
- };
- export type ConfigManager = {
- Directory: string,
- Config: string,
- };
- export type WriteConfig = {
- Name: string,
- Author: string,
- };
- export type WindowUpdate = {
- Username: string,
- ExpireDate: string,
- Logo: string,
- WindowName: string,
- UserProfile: string
- };
- export type ConfigFunctions = {
- Directory: string,
- WriteConfig: (self: ConfigFunctions , Config: WriteConfig) -> any?,
- ReadInfo: (self: ConfigFunctions , ConfigName: string) -> any?,
- DeleteConfig: (self: ConfigFunctions , ConfigName: string) -> any?,
- LoadConfig: (self: ConfigFunctions , ConfigName: string) -> any?,
- GetConfigs: (self: ConfigFunctions , ConfigName: string) -> {string},
- GetConfigCount: (self: ConfigFunctions) -> number,
- GetFullConfigs: (self: ConfigFunctions , ConfigName: string) -> {
- {
- Name: string,
- Info: {
- Type: string,
- Author: string,
- Name: string,
- CreatedDate: string,
- }
- }
- },
- };
- export type KeybindSettings = {
- Key : string,
- On : boolean | number,
- Off : boolean | number,
- Mode : number,
- Name : string,
- }
- export type SecurityConfig = {
- BlurEnabled : boolean,
- ImageScale: number,
- };
- export type Notify = {
- Icon: string,
- Title: string,
- Content: string,
- Duration: number
- };
- export type NotifyPayback = {
- SetProgress: (self: Notify , time: number) -> any?,
- Content: (self: Notify , str: string) -> any?,
- Title: (self: Notify , str: string) -> any?,
- Close: () -> any?,
- }
- export type Watermark = {
- Icon: string,
- Text: string
- };
- export type TabConfig = {
- Name: string,
- Icon: string,
- Type: string,
- EnableScrolling: boolean
- };
- export type TabConfigManager = {
- Name: string,
- Icon: string,
- Config: ConfigFunctions
- }
- export type ContainerTab = {
- Name: string,
- Icon: string,
- EnableScrolling: boolean
- };
- export type Category = {
- Name: string
- };
- export type Section = {
- Name: string,
- Position: string
- };
- export type Toggle = {
- Name: string,
- Default: boolean,
- Flag: string | nil,
- Risky: boolean,
- Callback: (Value: boolean) -> any?
- };
- export type MiniToggle = {
- Default: boolean,
- Flag: string | nil,
- Callback: (Value: boolean) -> any?
- };
- export type TextBoxConfig = {
- Name: string,
- Default: string,
- Placeholder: string,
- Flag: string | nil,
- Numeric: boolean,
- Callback: (Text: string) -> any?
- };
- export type ColorPicker = {
- Name: string,
- Default: Color3,
- Flag: string | nil,
- Transparency: number,
- Callback: (Value: Color3 , Trans: number) -> any?
- };
- export type MiniColorPicker = {
- Default: Color3,
- Transparency: number,
- Flag: string | nil,
- Callback: (Value: Color3 , Trans: number) -> any?
- };
- export type Slider = {
- Name: string,
- Min: number,
- Max: number,
- Default: number,
- Type: string,
- Round: number,
- Callback: (Value: number) -> any?
- };
- export type Dropdown = {
- Name: string,
- Default: string | {string},
- Values: {string},
- Multi: boolean,
- Callback: (Value: string | {[string]: boolean}) -> any?
- };
- export type Button = {
- Name: string,
- Callback: () -> any?
- };
- export type Keybind = {
- Name: string,
- Default: string | Enum.KeyCode,
- Callback: (Value: string) -> any,
- Blacklist: {string | Enum.KeyCode}
- };
- export type MiniKeybind = {
- Default: string | Enum.KeyCode,
- Callback: (Value: string) -> any,
- Blacklist: {string | Enum.KeyCode}
- };
- export type Helper = {
- Text: string
- };
- export type Paragraph = {
- Title: string,
- Content: string
- }
- pcall(function() -- for Luraph
- local Constant = table.concat({"LP","H_NO"}).."_VI".."RTU".."AL".."IZE";
- getfenv()[Constant] = getfenv()[Constant] or function(f) return f end;
- -- LPH_NO_VIRTUALIZE
- end);
- pcall(function() -- for IB1
- local Constant = "IB".."_NO_VI".."RTU".."AL".."IZE";
- getfenv()[Constant] = getfenv()[Constant] or function(f) return f end;
- -- IB_NO_VIRTUALIZE
- end);
- getgenv = getgenv or getfenv;
- -- Please ignore the ugly code. [Custom File System] --
- if game:GetService('RunService'):IsStudio() then
- local BaseWorkspace = Instance.new('Folder',game:GetService("ReplicatedFirst"));
- BaseWorkspace.Name = tostring(string.char(math.random(50,120)))..tostring(string.char(math.random(50,120)))..tostring(string.char(math.random(50,120)))..tostring(string.char(math.random(50,120)))..tostring(string.char(math.random(50,120)))..tostring(string.char(math.random(50,120)));
- local __get_path_c = function(path)
- return (string.find(path,'/',1,true) and string.split(path,'/')) or (string.find(path,'\\',1,true) and string.split(path,'\\')) or {path};
- end;
- local __get_path = function(path)
- local main = __get_path_c(path);
- local block = BaseWorkspace;
- for i,v in next , main do
- block = block[v];
- end;
- return block;
- end;
- getgenv().readfile = function(path)
- local path : StringValue = __get_path(path);
- return path.Value;
- end;
- getgenv().isfile = function(path)
- local success , message = pcall(function()
- return __get_path(path);
- end);
- if success and not message:IsA("Folder") then
- return true;
- end;
- return false;
- end;
- getgenv().isfolder = function(path)
- local success , message = pcall(function()
- return __get_path(path);
- end);
- if success and message:IsA("Folder") then
- return true;
- end;
- return false;
- end;
- getgenv().writefile = function(path,content)
- local main = __get_path_c(path);
- local block = BaseWorkspace;
- for i,v in next , main do
- local item = block:FindFirstChild(v);
- if not item then
- local c = Instance.new('StringValue',block);
- c.Name = tostring(v);
- c.Value = content;
- else
- if item:IsA('StringValue') and tostring(item) == v then
- item.Name = tostring(v);
- item.Value = content;
- end;
- block = item;
- end;
- end;
- end;
- getgenv().listfiles = function(path)
- local fold = __get_path(path);
- local pa = {};
- for i,v in next , fold:GetChildren() do
- if v:IsA('StringValue') then
- table.insert(pa,path..'/'..tostring(v));
- end;
- end;
- return pa;
- end;
- getgenv().makefolder = function(path)
- local main = __get_path_c(path);
- local block = BaseWorkspace;
- for i,v in next , main do
- local item = block:FindFirstChild(v);
- if not item then
- local c = Instance.new('Folder',block);
- c.Name = tostring(v);
- else
- block = item;
- end;
- end;
- end;
- getgenv().delfile = function(path)
- local main = __get_path_c(path);
- local block = BaseWorkspace;
- for i,v in next , main do
- local item = block:FindFirstChild(v);
- if item and item:IsA('StringValue') then
- item:Destroy();
- else
- block = item;
- end;
- end;
- end;
- end;
- --- Local Variables ---
- local cloneref: cloneref = cloneref or function(f) return f end;
- local TweenService: TweenService = cloneref(game:GetService('TweenService'));
- local UserInputService: UserInputService = cloneref(game:GetService('UserInputService'));
- local TextService: TextService = cloneref(game:GetService('TextService'));
- local RunService: RunService = cloneref(game:GetService('RunService'));
- local Players: Players = cloneref(game:GetService('Players'));
- local HttpService: HttpService = cloneref(game:GetService('HttpService'));
- local LocalPlayer: Player = (Players and Players.LocalPlayer) or nil;
- local CoreGui: PlayerGui = (gethui and gethui()) or (get_hidden_gui and get_hidden_gui()) or cloneref(game:FindFirstChild('CoreGui')) or (LocalPlayer and cloneref(LocalPlayer.PlayerGui)) or cloneref(game:FindFirstChild('CoreGui'));
- local Mouse: Mouse = nil;
- pcall(function()
- if LocalPlayer then
- Mouse = LocalPlayer:GetMouse();
- end;
- end);
- local CurrentCamera: Camera? = cloneref(workspace.CurrentCamera);
- local MarcoUI = {
- Version = '2.6',
- Logo = "rbxassetid://120245531583106",
- Windows = {},
- Scale = {
- Window = UDim2.new(0, 580,0, 680), -- Increased size for less clumped feel
- Mobile = UDim2.new(0, 450,0, 375),
- TabOpen = 185,
- TabClose = 85,
- },
- PerformanceMode = false,
- WindowsNil = {},
- NilFolder = nil, -- Will be created on first use
- ArcylicParent = CurrentCamera,
- ProtectGui = protect_gui or protectgui or (syn and syn.protect_gui) or function(s) return s; end,
- };
- -- Initialize NilFolder safely
- pcall(function()
- MarcoUI.NilFolder = Instance.new('Folder');
- MarcoUI.NilFolder.Name = "Nil-Instances";
- end);
- MarcoUI.Colors = {
- Highlight = Color3.fromRGB(220, 20, 60),
- Toggle = Color3.fromRGB(180, 16, 48),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(10, 10, 10),
- BlockColor = Color3.fromRGB(16, 16, 16),
- StrokeColor = Color3.fromRGB(35, 35, 35),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(22, 22, 22),
- MouseEnter = Color3.fromRGB(40, 40, 40),
- BlockBackground = Color3.fromRGB(24, 24, 24),
- LineColor = Color3.fromRGB(220, 20, 60),
- HighStrokeColor = Color3.fromRGB(55, 55, 55),
- };
- MarcoUI.Elements = {
- Highlight = {},
- DropHighlight = {},
- Risky = {},
- BGDBColor = {},
- BlockColor = {},
- StrokeColor = {},
- SwitchColor = {},
- DropColor = {},
- BlockBackground = {},
- LineColor = {},
- HighStrokeColor = {},
- };
- MarcoUI.DragBlacklist = {};
- MarcoUI.IaDrag = false;
- MarcoUI.LastDrag = tick();
- MarcoUI.Flags = {};
- MarcoUI.Lucide = {
- ['lucide-mouse-2'] = "rbxassetid://10088146939",
- ['lucide-internet'] = "rbxassetid://12785195438",
- ['lucide-earth'] = "rbxassetid://115986292591138",
- ['lucide-settings-3'] = "rbxassetid://14007344336",
- ["lucide-accessibility"] = "rbxassetid://10709751939",
- ["lucide-activity"] = "rbxassetid://10709752035",
- ["lucide-air-vent"] = "rbxassetid://10709752131",
- ["lucide-airplay"] = "rbxassetid://10709752254",
- ["lucide-alarm-check"] = "rbxassetid://10709752405",
- ["lucide-alarm-clock"] = "rbxassetid://10709752630",
- ["lucide-alarm-clock-off"] = "rbxassetid://10709752508",
- ["lucide-alarm-minus"] = "rbxassetid://10709752732",
- ["lucide-alarm-plus"] = "rbxassetid://10709752825",
- ["lucide-album"] = "rbxassetid://10709752906",
- ["lucide-alert-circle"] = "rbxassetid://10709752996",
- ["lucide-alert-octagon"] = "rbxassetid://10709753064",
- ["lucide-alert-triangle"] = "rbxassetid://10709753149",
- ["lucide-align-center"] = "rbxassetid://10709753570",
- ["lucide-align-center-horizontal"] = "rbxassetid://10709753272",
- ["lucide-align-center-vertical"] = "rbxassetid://10709753421",
- ["lucide-align-end-horizontal"] = "rbxassetid://10709753692",
- ["lucide-align-end-vertical"] = "rbxassetid://10709753808",
- ["lucide-align-horizontal-distribute-center"] = "rbxassetid://10747779791",
- ["lucide-align-horizontal-distribute-end"] = "rbxassetid://10747784534",
- ["lucide-align-horizontal-distribute-start"] = "rbxassetid://10709754118",
- ["lucide-align-horizontal-justify-center"] = "rbxassetid://10709754204",
- ["lucide-align-horizontal-justify-end"] = "rbxassetid://10709754317",
- ["lucide-align-horizontal-justify-start"] = "rbxassetid://10709754436",
- ["lucide-align-horizontal-space-around"] = "rbxassetid://10709754590",
- ["lucide-align-horizontal-space-between"] = "rbxassetid://10709754749",
- ["lucide-align-justify"] = "rbxassetid://10709759610",
- ["lucide-align-left"] = "rbxassetid://10709759764",
- ["lucide-align-right"] = "rbxassetid://10709759895",
- ["lucide-align-start-horizontal"] = "rbxassetid://10709760051",
- ["lucide-align-start-vertical"] = "rbxassetid://10709760244",
- ["lucide-align-vertical-distribute-center"] = "rbxassetid://10709760351",
- ["lucide-align-vertical-distribute-end"] = "rbxassetid://10709760434",
- ["lucide-align-vertical-distribute-start"] = "rbxassetid://10709760612",
- ["lucide-align-vertical-justify-center"] = "rbxassetid://10709760814",
- ["lucide-align-vertical-justify-end"] = "rbxassetid://10709761003",
- ["lucide-align-vertical-justify-start"] = "rbxassetid://10709761176",
- ["lucide-align-vertical-space-around"] = "rbxassetid://10709761324",
- ["lucide-align-vertical-space-between"] = "rbxassetid://10709761434",
- ["lucide-anchor"] = "rbxassetid://10709761530",
- ["lucide-angry"] = "rbxassetid://10709761629",
- ["lucide-annoyed"] = "rbxassetid://10709761722",
- ["lucide-aperture"] = "rbxassetid://10709761813",
- ["lucide-apple"] = "rbxassetid://10709761889",
- ["lucide-archive"] = "rbxassetid://10709762233",
- ["lucide-archive-restore"] = "rbxassetid://10709762058",
- ["lucide-armchair"] = "rbxassetid://10709762327",
- ["lucide-arrow-big-down"] = "rbxassetid://10747796644",
- ["lucide-arrow-big-left"] = "rbxassetid://10709762574",
- ["lucide-arrow-big-right"] = "rbxassetid://10709762727",
- ["lucide-arrow-big-up"] = "rbxassetid://10709762879",
- ["lucide-arrow-down"] = "rbxassetid://10709767827",
- ["lucide-arrow-down-circle"] = "rbxassetid://10709763034",
- ["lucide-arrow-down-left"] = "rbxassetid://10709767656",
- ["lucide-arrow-down-right"] = "rbxassetid://10709767750",
- ["lucide-arrow-left"] = "rbxassetid://10709768114",
- ["lucide-arrow-left-circle"] = "rbxassetid://10709767936",
- ["lucide-arrow-left-right"] = "rbxassetid://10709768019",
- ["lucide-arrow-right"] = "rbxassetid://10709768347",
- ["lucide-arrow-right-circle"] = "rbxassetid://10709768226",
- ["lucide-arrow-up"] = "rbxassetid://10709768939",
- ["lucide-arrow-up-circle"] = "rbxassetid://10709768432",
- ["lucide-arrow-up-down"] = "rbxassetid://10709768538",
- ["lucide-arrow-up-left"] = "rbxassetid://10709768661",
- ["lucide-arrow-up-right"] = "rbxassetid://10709768787",
- ["lucide-asterisk"] = "rbxassetid://10709769095",
- ["lucide-at-sign"] = "rbxassetid://10709769286",
- ["lucide-award"] = "rbxassetid://10709769406",
- ["lucide-axe"] = "rbxassetid://10709769508",
- ["lucide-axis-3d"] = "rbxassetid://10709769598",
- ["lucide-baby"] = "rbxassetid://10709769732",
- ["lucide-backpack"] = "rbxassetid://10709769841",
- ["lucide-baggage-claim"] = "rbxassetid://10709769935",
- ["lucide-banana"] = "rbxassetid://10709770005",
- ["lucide-banknote"] = "rbxassetid://10709770178",
- ["lucide-bar-chart"] = "rbxassetid://10709773755",
- ["lucide-bar-chart-2"] = "rbxassetid://10709770317",
- ["lucide-bar-chart-3"] = "rbxassetid://10709770431",
- ["lucide-bar-chart-4"] = "rbxassetid://10709770560",
- ["lucide-bar-chart-horizontal"] = "rbxassetid://10709773669",
- ["lucide-barcode"] = "rbxassetid://10747360675",
- ["lucide-baseline"] = "rbxassetid://10709773863",
- ["lucide-bath"] = "rbxassetid://10709773963",
- ["lucide-battery"] = "rbxassetid://10709774640",
- ["lucide-battery-charging"] = "rbxassetid://10709774068",
- ["lucide-battery-full"] = "rbxassetid://10709774206",
- ["lucide-battery-low"] = "rbxassetid://10709774370",
- ["lucide-battery-medium"] = "rbxassetid://10709774513",
- ["lucide-beaker"] = "rbxassetid://10709774756",
- ["lucide-bed"] = "rbxassetid://10709775036",
- ["lucide-bed-double"] = "rbxassetid://10709774864",
- ["lucide-bed-single"] = "rbxassetid://10709774968",
- ["lucide-beer"] = "rbxassetid://10709775167",
- ["lucide-bell"] = "rbxassetid://10709775704",
- ["lucide-bell-minus"] = "rbxassetid://10709775241",
- ["lucide-bell-off"] = "rbxassetid://10709775320",
- ["lucide-bell-plus"] = "rbxassetid://10709775448",
- ["lucide-bell-ring"] = "rbxassetid://10709775560",
- ["lucide-bike"] = "rbxassetid://10709775894",
- ["lucide-binary"] = "rbxassetid://10709776050",
- ["lucide-bitcoin"] = "rbxassetid://10709776126",
- ["lucide-bluetooth"] = "rbxassetid://10709776655",
- ["lucide-bluetooth-connected"] = "rbxassetid://10709776240",
- ["lucide-bluetooth-off"] = "rbxassetid://10709776344",
- ["lucide-bluetooth-searching"] = "rbxassetid://10709776501",
- ["lucide-bold"] = "rbxassetid://10747813908",
- ["lucide-bomb"] = "rbxassetid://10709781460",
- ["lucide-bone"] = "rbxassetid://10709781605",
- ["lucide-book"] = "rbxassetid://10709781824",
- ["lucide-book-open"] = "rbxassetid://10709781717",
- ["lucide-bookmark"] = "rbxassetid://10709782154",
- ["lucide-bookmark-minus"] = "rbxassetid://10709781919",
- ["lucide-bookmark-plus"] = "rbxassetid://10709782044",
- ["lucide-bot"] = "rbxassetid://10709782230",
- ["lucide-box"] = "rbxassetid://10709782497",
- ["lucide-box-select"] = "rbxassetid://10709782342",
- ["lucide-boxes"] = "rbxassetid://10709782582",
- ["lucide-briefcase"] = "rbxassetid://10709782662",
- ["lucide-brush"] = "rbxassetid://10709782758",
- ["lucide-bug"] = "rbxassetid://10709782845",
- ["lucide-building"] = "rbxassetid://10709783051",
- ["lucide-building-2"] = "rbxassetid://10709782939",
- ["lucide-bus"] = "rbxassetid://10709783137",
- ["lucide-cake"] = "rbxassetid://10709783217",
- ["lucide-calculator"] = "rbxassetid://10709783311",
- ["lucide-calendar"] = "rbxassetid://10709789505",
- ["lucide-calendar-check"] = "rbxassetid://10709783474",
- ["lucide-calendar-check-2"] = "rbxassetid://10709783392",
- ["lucide-calendar-clock"] = "rbxassetid://10709783577",
- ["lucide-calendar-days"] = "rbxassetid://10709783673",
- ["lucide-calendar-heart"] = "rbxassetid://10709783835",
- ["lucide-calendar-minus"] = "rbxassetid://10709783959",
- ["lucide-calendar-off"] = "rbxassetid://10709788784",
- ["lucide-calendar-plus"] = "rbxassetid://10709788937",
- ["lucide-calendar-range"] = "rbxassetid://10709789053",
- ["lucide-calendar-search"] = "rbxassetid://10709789200",
- ["lucide-calendar-x"] = "rbxassetid://10709789407",
- ["lucide-calendar-x-2"] = "rbxassetid://10709789329",
- ["lucide-camera"] = "rbxassetid://10709789686",
- ["lucide-camera-off"] = "rbxassetid://10747822677",
- ["lucide-car"] = "rbxassetid://10709789810",
- ["lucide-carrot"] = "rbxassetid://10709789960",
- ["lucide-cast"] = "rbxassetid://10709790097",
- ["lucide-charge"] = "rbxassetid://10709790202",
- ["lucide-check"] = "rbxassetid://10709790644",
- ["lucide-check-circle"] = "rbxassetid://10709790387",
- ["lucide-check-circle-2"] = "rbxassetid://10709790298",
- ["lucide-check-square"] = "rbxassetid://10709790537",
- ["lucide-chef-hat"] = "rbxassetid://10709790757",
- ["lucide-cherry"] = "rbxassetid://10709790875",
- ["lucide-chevron-down"] = "rbxassetid://10709790948",
- ["lucide-chevron-first"] = "rbxassetid://10709791015",
- ["lucide-chevron-last"] = "rbxassetid://10709791130",
- ["lucide-chevron-left"] = "rbxassetid://10709791281",
- ["lucide-chevron-right"] = "rbxassetid://10709791437",
- ["lucide-chevron-up"] = "rbxassetid://10709791523",
- ["lucide-chevrons-down"] = "rbxassetid://10709796864",
- ["lucide-chevrons-down-up"] = "rbxassetid://10709791632",
- ["lucide-chevrons-left"] = "rbxassetid://10709797151",
- ["lucide-chevrons-left-right"] = "rbxassetid://10709797006",
- ["lucide-chevrons-right"] = "rbxassetid://10709797382",
- ["lucide-chevrons-right-left"] = "rbxassetid://10709797274",
- ["lucide-chevrons-up"] = "rbxassetid://10709797622",
- ["lucide-chevrons-up-down"] = "rbxassetid://10709797508",
- ["lucide-chrome"] = "rbxassetid://10709797725",
- ["lucide-circle"] = "rbxassetid://10709798174",
- ["lucide-circle-dot"] = "rbxassetid://10709797837",
- ["lucide-circle-ellipsis"] = "rbxassetid://10709797985",
- ["lucide-circle-slashed"] = "rbxassetid://10709798100",
- ["lucide-citrus"] = "rbxassetid://10709798276",
- ["lucide-clapperboard"] = "rbxassetid://10709798350",
- ["lucide-clipboard"] = "rbxassetid://10709799288",
- ["lucide-clipboard-check"] = "rbxassetid://10709798443",
- ["lucide-clipboard-copy"] = "rbxassetid://10709798574",
- ["lucide-clipboard-edit"] = "rbxassetid://10709798682",
- ["lucide-clipboard-list"] = "rbxassetid://10709798792",
- ["lucide-clipboard-signature"] = "rbxassetid://10709798890",
- ["lucide-clipboard-type"] = "rbxassetid://10709798999",
- ["lucide-clipboard-x"] = "rbxassetid://10709799124",
- ["lucide-clock"] = "rbxassetid://10709805144",
- ["lucide-clock-1"] = "rbxassetid://10709799535",
- ["lucide-clock-10"] = "rbxassetid://10709799718",
- ["lucide-clock-11"] = "rbxassetid://10709799818",
- ["lucide-clock-12"] = "rbxassetid://10709799962",
- ["lucide-clock-2"] = "rbxassetid://10709803876",
- ["lucide-clock-3"] = "rbxassetid://10709803989",
- ["lucide-clock-4"] = "rbxassetid://10709804164",
- ["lucide-clock-5"] = "rbxassetid://10709804291",
- ["lucide-clock-6"] = "rbxassetid://10709804435",
- ["lucide-clock-7"] = "rbxassetid://10709804599",
- ["lucide-clock-8"] = "rbxassetid://10709804784",
- ["lucide-clock-9"] = "rbxassetid://10709804996",
- ["lucide-cloud"] = "rbxassetid://10709806740",
- ["lucide-cloud-cog"] = "rbxassetid://10709805262",
- ["lucide-cloud-drizzle"] = "rbxassetid://10709805371",
- ["lucide-cloud-fog"] = "rbxassetid://10709805477",
- ["lucide-cloud-hail"] = "rbxassetid://10709805596",
- ["lucide-cloud-lightning"] = "rbxassetid://10709805727",
- ["lucide-cloud-moon"] = "rbxassetid://10709805942",
- ["lucide-cloud-moon-rain"] = "rbxassetid://10709805838",
- ["lucide-cloud-off"] = "rbxassetid://10709806060",
- ["lucide-cloud-rain"] = "rbxassetid://10709806277",
- ["lucide-cloud-rain-wind"] = "rbxassetid://10709806166",
- ["lucide-cloud-snow"] = "rbxassetid://10709806374",
- ["lucide-cloud-sun"] = "rbxassetid://10709806631",
- ["lucide-cloud-sun-rain"] = "rbxassetid://10709806475",
- ["lucide-cloudy"] = "rbxassetid://10709806859",
- ["lucide-clover"] = "rbxassetid://10709806995",
- ["lucide-code"] = "rbxassetid://10709810463",
- ["lucide-code-2"] = "rbxassetid://10709807111",
- ["lucide-codepen"] = "rbxassetid://10709810534",
- ["lucide-codesandbox"] = "rbxassetid://10709810676",
- ["lucide-coffee"] = "rbxassetid://10709810814",
- ["lucide-cog"] = "rbxassetid://10709810948",
- ["lucide-coins"] = "rbxassetid://10709811110",
- ["lucide-columns"] = "rbxassetid://10709811261",
- ["lucide-command"] = "rbxassetid://10709811365",
- ["lucide-compass"] = "rbxassetid://10709811445",
- ["lucide-component"] = "rbxassetid://10709811595",
- ["lucide-concierge-bell"] = "rbxassetid://10709811706",
- ["lucide-connection"] = "rbxassetid://10747361219",
- ["lucide-contact"] = "rbxassetid://10709811834",
- ["lucide-contrast"] = "rbxassetid://10709811939",
- ["lucide-cookie"] = "rbxassetid://10709812067",
- ["lucide-copy"] = "rbxassetid://10709812159",
- ["lucide-copyleft"] = "rbxassetid://10709812251",
- ["lucide-copyright"] = "rbxassetid://10709812311",
- ["lucide-corner-down-left"] = "rbxassetid://10709812396",
- ["lucide-corner-down-right"] = "rbxassetid://10709812485",
- ["lucide-corner-left-down"] = "rbxassetid://10709812632",
- ["lucide-corner-left-up"] = "rbxassetid://10709812784",
- ["lucide-corner-right-down"] = "rbxassetid://10709812939",
- ["lucide-corner-right-up"] = "rbxassetid://10709813094",
- ["lucide-corner-up-left"] = "rbxassetid://10709813185",
- ["lucide-corner-up-right"] = "rbxassetid://10709813281",
- ["lucide-cpu"] = "rbxassetid://10709813383",
- ["lucide-croissant"] = "rbxassetid://10709818125",
- ["lucide-crop"] = "rbxassetid://10709818245",
- ["lucide-cross"] = "rbxassetid://10709818399",
- ["lucide-crosshair"] = "rbxassetid://10709818534",
- ["lucide-crown"] = "rbxassetid://10709818626",
- ["lucide-cup-soda"] = "rbxassetid://10709818763",
- ["lucide-curly-braces"] = "rbxassetid://10709818847",
- ["lucide-currency"] = "rbxassetid://10709818931",
- ["lucide-database"] = "rbxassetid://10709818996",
- ["lucide-delete"] = "rbxassetid://10709819059",
- ["lucide-diamond"] = "rbxassetid://10709819149",
- ["lucide-dice-1"] = "rbxassetid://10709819266",
- ["lucide-dice-2"] = "rbxassetid://10709819361",
- ["lucide-dice-3"] = "rbxassetid://10709819508",
- ["lucide-dice-4"] = "rbxassetid://10709819670",
- ["lucide-dice-5"] = "rbxassetid://10709819801",
- ["lucide-dice-6"] = "rbxassetid://10709819896",
- ["lucide-dices"] = "rbxassetid://10723343321",
- ["lucide-diff"] = "rbxassetid://10723343416",
- ["lucide-disc"] = "rbxassetid://10723343537",
- ["lucide-divide"] = "rbxassetid://10723343805",
- ["lucide-divide-circle"] = "rbxassetid://10723343636",
- ["lucide-divide-square"] = "rbxassetid://10723343737",
- ["lucide-dollar-sign"] = "rbxassetid://10723343958",
- ["lucide-download"] = "rbxassetid://10723344270",
- ["lucide-download-cloud"] = "rbxassetid://10723344088",
- ["lucide-droplet"] = "rbxassetid://10723344432",
- ["lucide-droplets"] = "rbxassetid://10734883356",
- ["lucide-drumstick"] = "rbxassetid://10723344737",
- ["lucide-edit"] = "rbxassetid://10734883598",
- ["lucide-edit-2"] = "rbxassetid://10723344885",
- ["lucide-edit-3"] = "rbxassetid://10723345088",
- ["lucide-egg"] = "rbxassetid://10723345518",
- ["lucide-egg-fried"] = "rbxassetid://10723345347",
- ["lucide-electricity"] = "rbxassetid://10723345749",
- ["lucide-electricity-off"] = "rbxassetid://10723345643",
- ["lucide-equal"] = "rbxassetid://10723345990",
- ["lucide-equal-not"] = "rbxassetid://10723345866",
- ["lucide-eraser"] = "rbxassetid://10723346158",
- ["lucide-euro"] = "rbxassetid://10723346372",
- ["lucide-expand"] = "rbxassetid://10723346553",
- ["lucide-external-link"] = "rbxassetid://10723346684",
- ["lucide-eye"] = "rbxassetid://10723346959",
- ["lucide-eye-off"] = "rbxassetid://10723346871",
- ["lucide-factory"] = "rbxassetid://10723347051",
- ["lucide-fan"] = "rbxassetid://10723354359",
- ["lucide-fast-forward"] = "rbxassetid://10723354521",
- ["lucide-feather"] = "rbxassetid://10723354671",
- ["lucide-figma"] = "rbxassetid://10723354801",
- ["lucide-file"] = "rbxassetid://10723374641",
- ["lucide-file-archive"] = "rbxassetid://10723354921",
- ["lucide-file-audio"] = "rbxassetid://10723355148",
- ["lucide-file-audio-2"] = "rbxassetid://10723355026",
- ["lucide-file-axis-3d"] = "rbxassetid://10723355272",
- ["lucide-file-badge"] = "rbxassetid://10723355622",
- ["lucide-file-badge-2"] = "rbxassetid://10723355451",
- ["lucide-file-bar-chart"] = "rbxassetid://10723355887",
- ["lucide-file-bar-chart-2"] = "rbxassetid://10723355746",
- ["lucide-file-box"] = "rbxassetid://10723355989",
- ["lucide-file-check"] = "rbxassetid://10723356210",
- ["lucide-file-check-2"] = "rbxassetid://10723356100",
- ["lucide-file-clock"] = "rbxassetid://10723356329",
- ["lucide-file-code"] = "rbxassetid://10723356507",
- ["lucide-file-cog"] = "rbxassetid://10723356830",
- ["lucide-file-cog-2"] = "rbxassetid://10723356676",
- ["lucide-file-diff"] = "rbxassetid://10723357039",
- ["lucide-file-digit"] = "rbxassetid://10723357151",
- ["lucide-file-down"] = "rbxassetid://10723357322",
- ["lucide-file-edit"] = "rbxassetid://10723357495",
- ["lucide-file-heart"] = "rbxassetid://10723357637",
- ["lucide-file-image"] = "rbxassetid://10723357790",
- ["lucide-file-input"] = "rbxassetid://10723357933",
- ["lucide-file-json"] = "rbxassetid://10723364435",
- ["lucide-file-json-2"] = "rbxassetid://10723364361",
- ["lucide-file-key"] = "rbxassetid://10723364605",
- ["lucide-file-key-2"] = "rbxassetid://10723364515",
- ["lucide-file-line-chart"] = "rbxassetid://10723364725",
- ["lucide-file-lock"] = "rbxassetid://10723364957",
- ["lucide-file-lock-2"] = "rbxassetid://10723364861",
- ["lucide-file-minus"] = "rbxassetid://10723365254",
- ["lucide-file-minus-2"] = "rbxassetid://10723365086",
- ["lucide-file-output"] = "rbxassetid://10723365457",
- ["lucide-file-pie-chart"] = "rbxassetid://10723365598",
- ["lucide-file-plus"] = "rbxassetid://10723365877",
- ["lucide-file-plus-2"] = "rbxassetid://10723365766",
- ["lucide-file-question"] = "rbxassetid://10723365987",
- ["lucide-file-scan"] = "rbxassetid://10723366167",
- ["lucide-file-search"] = "rbxassetid://10723366550",
- ["lucide-file-search-2"] = "rbxassetid://10723366340",
- ["lucide-file-signature"] = "rbxassetid://10723366741",
- ["lucide-file-spreadsheet"] = "rbxassetid://10723366962",
- ["lucide-file-symlink"] = "rbxassetid://10723367098",
- ["lucide-file-terminal"] = "rbxassetid://10723367244",
- ["lucide-file-text"] = "rbxassetid://10723367380",
- ["lucide-file-type"] = "rbxassetid://10723367606",
- ["lucide-file-type-2"] = "rbxassetid://10723367509",
- ["lucide-file-up"] = "rbxassetid://10723367734",
- ["lucide-file-video"] = "rbxassetid://10723373884",
- ["lucide-file-video-2"] = "rbxassetid://10723367834",
- ["lucide-file-volume"] = "rbxassetid://10723374172",
- ["lucide-file-volume-2"] = "rbxassetid://10723374030",
- ["lucide-file-warning"] = "rbxassetid://10723374276",
- ["lucide-file-x"] = "rbxassetid://10723374544",
- ["lucide-file-x-2"] = "rbxassetid://10723374378",
- ["lucide-files"] = "rbxassetid://10723374759",
- ["lucide-film"] = "rbxassetid://10723374981",
- ["lucide-filter"] = "rbxassetid://10723375128",
- ["lucide-fingerprint"] = "rbxassetid://10723375250",
- ["lucide-flag"] = "rbxassetid://10723375890",
- ["lucide-flag-off"] = "rbxassetid://10723375443",
- ["lucide-flag-triangle-left"] = "rbxassetid://10723375608",
- ["lucide-flag-triangle-right"] = "rbxassetid://10723375727",
- ["lucide-flame"] = "rbxassetid://10723376114",
- ["lucide-flashlight"] = "rbxassetid://10723376471",
- ["lucide-flashlight-off"] = "rbxassetid://10723376365",
- ["lucide-flask-conical"] = "rbxassetid://10734883986",
- ["lucide-flask-round"] = "rbxassetid://10723376614",
- ["lucide-flip-horizontal"] = "rbxassetid://10723376884",
- ["lucide-flip-horizontal-2"] = "rbxassetid://10723376745",
- ["lucide-flip-vertical"] = "rbxassetid://10723377138",
- ["lucide-flip-vertical-2"] = "rbxassetid://10723377026",
- ["lucide-flower"] = "rbxassetid://10747830374",
- ["lucide-flower-2"] = "rbxassetid://10723377305",
- ["lucide-focus"] = "rbxassetid://10723377537",
- ["lucide-folder"] = "rbxassetid://10723387563",
- ["lucide-folder-archive"] = "rbxassetid://10723384478",
- ["lucide-folder-check"] = "rbxassetid://10723384605",
- ["lucide-folder-clock"] = "rbxassetid://10723384731",
- ["lucide-folder-closed"] = "rbxassetid://10723384893",
- ["lucide-folder-cog"] = "rbxassetid://10723385213",
- ["lucide-folder-cog-2"] = "rbxassetid://10723385036",
- ["lucide-folder-down"] = "rbxassetid://10723385338",
- ["lucide-folder-edit"] = "rbxassetid://10723385445",
- ["lucide-folder-heart"] = "rbxassetid://10723385545",
- ["lucide-folder-input"] = "rbxassetid://10723385721",
- ["lucide-folder-key"] = "rbxassetid://10723385848",
- ["lucide-folder-lock"] = "rbxassetid://10723386005",
- ["lucide-folder-minus"] = "rbxassetid://10723386127",
- ["lucide-folder-open"] = "rbxassetid://10723386277",
- ["lucide-folder-output"] = "rbxassetid://10723386386",
- ["lucide-folder-plus"] = "rbxassetid://10723386531",
- ["lucide-folder-search"] = "rbxassetid://10723386787",
- ["lucide-folder-search-2"] = "rbxassetid://10723386674",
- ["lucide-folder-symlink"] = "rbxassetid://10723386930",
- ["lucide-folder-tree"] = "rbxassetid://10723387085",
- ["lucide-folder-up"] = "rbxassetid://10723387265",
- ["lucide-folder-x"] = "rbxassetid://10723387448",
- ["lucide-folders"] = "rbxassetid://10723387721",
- ["lucide-form-input"] = "rbxassetid://10723387841",
- ["lucide-forward"] = "rbxassetid://10723388016",
- ["lucide-frame"] = "rbxassetid://10723394389",
- ["lucide-framer"] = "rbxassetid://10723394565",
- ["lucide-frown"] = "rbxassetid://10723394681",
- ["lucide-fuel"] = "rbxassetid://10723394846",
- ["lucide-function-square"] = "rbxassetid://10723395041",
- ["lucide-gamepad"] = "rbxassetid://10723395457",
- ["lucide-gamepad-2"] = "rbxassetid://10723395215",
- ["lucide-gauge"] = "rbxassetid://10723395708",
- ["lucide-gavel"] = "rbxassetid://10723395896",
- ["lucide-gem"] = "rbxassetid://10723396000",
- ["lucide-ghost"] = "rbxassetid://10723396107",
- ["lucide-gift"] = "rbxassetid://10723396402",
- ["lucide-gift-card"] = "rbxassetid://10723396225",
- ["lucide-git-branch"] = "rbxassetid://10723396676",
- ["lucide-git-branch-plus"] = "rbxassetid://10723396542",
- ["lucide-git-commit"] = "rbxassetid://10723396812",
- ["lucide-git-compare"] = "rbxassetid://10723396954",
- ["lucide-git-fork"] = "rbxassetid://10723397049",
- ["lucide-git-merge"] = "rbxassetid://10723397165",
- ["lucide-git-pull-request"] = "rbxassetid://10723397431",
- ["lucide-git-pull-request-closed"] = "rbxassetid://10723397268",
- ["lucide-git-pull-request-draft"] = "rbxassetid://10734884302",
- ["lucide-glass"] = "rbxassetid://10723397788",
- ["lucide-glass-2"] = "rbxassetid://10723397529",
- ["lucide-glass-water"] = "rbxassetid://10723397678",
- ["lucide-glasses"] = "rbxassetid://10723397895",
- ["lucide-globe"] = "rbxassetid://10723404337",
- ["lucide-globe-2"] = "rbxassetid://10723398002",
- ["lucide-grab"] = "rbxassetid://10723404472",
- ["lucide-graduation-cap"] = "rbxassetid://10723404691",
- ["lucide-grape"] = "rbxassetid://10723404822",
- ["lucide-grid"] = "rbxassetid://10723404936",
- ["lucide-grip-horizontal"] = "rbxassetid://10723405089",
- ["lucide-grip-vertical"] = "rbxassetid://10723405236",
- ["lucide-hammer"] = "rbxassetid://10723405360",
- ["lucide-hand"] = "rbxassetid://10723405649",
- ["lucide-hand-metal"] = "rbxassetid://10723405508",
- ["lucide-hard-drive"] = "rbxassetid://10723405749",
- ["lucide-hard-hat"] = "rbxassetid://10723405859",
- ["lucide-hash"] = "rbxassetid://10723405975",
- ["lucide-haze"] = "rbxassetid://10723406078",
- ["lucide-headphones"] = "rbxassetid://10723406165",
- ["lucide-heart"] = "rbxassetid://10723406885",
- ["lucide-heart-crack"] = "rbxassetid://10723406299",
- ["lucide-heart-handshake"] = "rbxassetid://10723406480",
- ["lucide-heart-off"] = "rbxassetid://10723406662",
- ["lucide-heart-pulse"] = "rbxassetid://10723406795",
- ["lucide-help-circle"] = "rbxassetid://10723406988",
- ["lucide-hexagon"] = "rbxassetid://10723407092",
- ["lucide-highlighter"] = "rbxassetid://10723407192",
- ["lucide-history"] = "rbxassetid://10723407335",
- ["lucide-home"] = "rbxassetid://10723407389",
- ["lucide-hourglass"] = "rbxassetid://10723407498",
- ["lucide-ice-cream"] = "rbxassetid://10723414308",
- ["lucide-image"] = "rbxassetid://10723415040",
- ["lucide-image-minus"] = "rbxassetid://10723414487",
- ["lucide-image-off"] = "rbxassetid://10723414677",
- ["lucide-image-plus"] = "rbxassetid://10723414827",
- ["lucide-import"] = "rbxassetid://10723415205",
- ["lucide-inbox"] = "rbxassetid://10723415335",
- ["lucide-indent"] = "rbxassetid://10723415494",
- ["lucide-indian-rupee"] = "rbxassetid://10723415642",
- ["lucide-infinity"] = "rbxassetid://10723415766",
- ["lucide-info"] = "rbxassetid://10723415903",
- ["lucide-inspect"] = "rbxassetid://10723416057",
- ["lucide-italic"] = "rbxassetid://10723416195",
- ["lucide-japanese-yen"] = "rbxassetid://10723416363",
- ["lucide-joystick"] = "rbxassetid://10723416527",
- ["lucide-key"] = "rbxassetid://10723416652",
- ["lucide-keyboard"] = "rbxassetid://10723416765",
- ["lucide-lamp"] = "rbxassetid://10723417513",
- ["lucide-lamp-ceiling"] = "rbxassetid://10723416922",
- ["lucide-lamp-desk"] = "rbxassetid://10723417016",
- ["lucide-lamp-floor"] = "rbxassetid://10723417131",
- ["lucide-lamp-wall-down"] = "rbxassetid://10723417240",
- ["lucide-lamp-wall-up"] = "rbxassetid://10723417356",
- ["lucide-landmark"] = "rbxassetid://10723417608",
- ["lucide-languages"] = "rbxassetid://10723417703",
- ["lucide-laptop"] = "rbxassetid://10723423881",
- ["lucide-laptop-2"] = "rbxassetid://10723417797",
- ["lucide-lasso"] = "rbxassetid://10723424235",
- ["lucide-lasso-select"] = "rbxassetid://10723424058",
- ["lucide-laugh"] = "rbxassetid://10723424372",
- ["lucide-layers"] = "rbxassetid://10723424505",
- ["lucide-layout"] = "rbxassetid://10723425376",
- ["lucide-layout-dashboard"] = "rbxassetid://10723424646",
- ["lucide-layout-grid"] = "rbxassetid://10723424838",
- ["lucide-layout-list"] = "rbxassetid://10723424963",
- ["lucide-layout-template"] = "rbxassetid://10723425187",
- ["lucide-leaf"] = "rbxassetid://10723425539",
- ["lucide-library"] = "rbxassetid://10723425615",
- ["lucide-life-buoy"] = "rbxassetid://10723425685",
- ["lucide-lightbulb"] = "rbxassetid://10723425852",
- ["lucide-lightbulb-off"] = "rbxassetid://10723425762",
- ["lucide-line-chart"] = "rbxassetid://10723426393",
- ["lucide-link"] = "rbxassetid://10723426722",
- ["lucide-link-2"] = "rbxassetid://10723426595",
- ["lucide-link-2-off"] = "rbxassetid://10723426513",
- ["lucide-list"] = "rbxassetid://10723433811",
- ["lucide-list-checks"] = "rbxassetid://10734884548",
- ["lucide-list-end"] = "rbxassetid://10723426886",
- ["lucide-list-minus"] = "rbxassetid://10723426986",
- ["lucide-list-music"] = "rbxassetid://10723427081",
- ["lucide-list-ordered"] = "rbxassetid://10723427199",
- ["lucide-list-plus"] = "rbxassetid://10723427334",
- ["lucide-list-start"] = "rbxassetid://10723427494",
- ["lucide-list-video"] = "rbxassetid://10723427619",
- ["lucide-list-x"] = "rbxassetid://10723433655",
- ["lucide-loader"] = "rbxassetid://10723434070",
- ["lucide-loader-2"] = "rbxassetid://10723433935",
- ["lucide-locate"] = "rbxassetid://10723434557",
- ["lucide-locate-fixed"] = "rbxassetid://10723434236",
- ["lucide-locate-off"] = "rbxassetid://10723434379",
- ["lucide-lock"] = "rbxassetid://10723434711",
- ["lucide-log-in"] = "rbxassetid://10723434830",
- ["lucide-log-out"] = "rbxassetid://10723434906",
- ["lucide-luggage"] = "rbxassetid://10723434993",
- ["lucide-magnet"] = "rbxassetid://10723435069",
- ["lucide-mail"] = "rbxassetid://10734885430",
- ["lucide-mail-check"] = "rbxassetid://10723435182",
- ["lucide-mail-minus"] = "rbxassetid://10723435261",
- ["lucide-mail-open"] = "rbxassetid://10723435342",
- ["lucide-mail-plus"] = "rbxassetid://10723435443",
- ["lucide-mail-question"] = "rbxassetid://10723435515",
- ["lucide-mail-search"] = "rbxassetid://10734884739",
- ["lucide-mail-warning"] = "rbxassetid://10734885015",
- ["lucide-mail-x"] = "rbxassetid://10734885247",
- ["lucide-mails"] = "rbxassetid://10734885614",
- ["lucide-map"] = "rbxassetid://10734886202",
- ["lucide-map-pin"] = "rbxassetid://10734886004",
- ["lucide-map-pin-off"] = "rbxassetid://10734885803",
- ["lucide-maximize"] = "rbxassetid://10734886735",
- ["lucide-maximize-2"] = "rbxassetid://10734886496",
- ["lucide-medal"] = "rbxassetid://10734887072",
- ["lucide-megaphone"] = "rbxassetid://10734887454",
- ["lucide-megaphone-off"] = "rbxassetid://10734887311",
- ["lucide-meh"] = "rbxassetid://10734887603",
- ["lucide-menu"] = "rbxassetid://10734887784",
- ["lucide-message-circle"] = "rbxassetid://10734888000",
- ["lucide-message-square"] = "rbxassetid://10734888228",
- ["lucide-mic"] = "rbxassetid://10734888864",
- ["lucide-mic-2"] = "rbxassetid://10734888430",
- ["lucide-mic-off"] = "rbxassetid://10734888646",
- ["lucide-microscope"] = "rbxassetid://10734889106",
- ["lucide-microwave"] = "rbxassetid://10734895076",
- ["lucide-milestone"] = "rbxassetid://10734895310",
- ["lucide-minimize"] = "rbxassetid://10734895698",
- ["lucide-minimize-2"] = "rbxassetid://10734895530",
- ["lucide-minus"] = "rbxassetid://10734896206",
- ["lucide-minus-circle"] = "rbxassetid://10734895856",
- ["lucide-minus-square"] = "rbxassetid://10734896029",
- ["lucide-monitor"] = "rbxassetid://10734896881",
- ["lucide-monitor-off"] = "rbxassetid://10734896360",
- ["lucide-monitor-speaker"] = "rbxassetid://10734896512",
- ["lucide-moon"] = "rbxassetid://10734897102",
- ["lucide-more-horizontal"] = "rbxassetid://10734897250",
- ["lucide-more-vertical"] = "rbxassetid://10734897387",
- ["lucide-mountain"] = "rbxassetid://10734897956",
- ["lucide-mountain-snow"] = "rbxassetid://10734897665",
- ["lucide-mouse"] = "rbxassetid://10734898592",
- ["lucide-mouse-pointer"] = "rbxassetid://10734898476",
- ["lucide-mouse-pointer-2"] = "rbxassetid://10734898194",
- ["lucide-mouse-pointer-click"] = "rbxassetid://10734898355",
- ["lucide-move"] = "rbxassetid://10734900011",
- ["lucide-move-3d"] = "rbxassetid://10734898756",
- ["lucide-move-diagonal"] = "rbxassetid://10734899164",
- ["lucide-move-diagonal-2"] = "rbxassetid://10734898934",
- ["lucide-move-horizontal"] = "rbxassetid://10734899414",
- ["lucide-move-vertical"] = "rbxassetid://10734899821",
- ["lucide-music"] = "rbxassetid://10734905958",
- ["lucide-music-2"] = "rbxassetid://10734900215",
- ["lucide-music-3"] = "rbxassetid://10734905665",
- ["lucide-music-4"] = "rbxassetid://10734905823",
- ["lucide-navigation"] = "rbxassetid://10734906744",
- ["lucide-navigation-2"] = "rbxassetid://10734906332",
- ["lucide-navigation-2-off"] = "rbxassetid://10734906144",
- ["lucide-navigation-off"] = "rbxassetid://10734906580",
- ["lucide-network"] = "rbxassetid://10734906975",
- ["lucide-newspaper"] = "rbxassetid://10734907168",
- ["lucide-octagon"] = "rbxassetid://10734907361",
- ["lucide-option"] = "rbxassetid://10734907649",
- ["lucide-outdent"] = "rbxassetid://10734907933",
- ["lucide-package"] = "rbxassetid://10734909540",
- ["lucide-package-2"] = "rbxassetid://10734908151",
- ["lucide-package-check"] = "rbxassetid://10734908384",
- ["lucide-package-minus"] = "rbxassetid://10734908626",
- ["lucide-package-open"] = "rbxassetid://10734908793",
- ["lucide-package-plus"] = "rbxassetid://10734909016",
- ["lucide-package-search"] = "rbxassetid://10734909196",
- ["lucide-package-x"] = "rbxassetid://10734909375",
- ["lucide-paint-bucket"] = "rbxassetid://10734909847",
- ["lucide-paintbrush"] = "rbxassetid://10734910187",
- ["lucide-paintbrush-2"] = "rbxassetid://10734910030",
- ["lucide-palette"] = "rbxassetid://10734910430",
- ["lucide-palmtree"] = "rbxassetid://10734910680",
- ["lucide-paperclip"] = "rbxassetid://10734910927",
- ["lucide-party-popper"] = "rbxassetid://10734918735",
- ["lucide-pause"] = "rbxassetid://10734919336",
- ["lucide-pause-circle"] = "rbxassetid://10735024209",
- ["lucide-pause-octagon"] = "rbxassetid://10734919143",
- ["lucide-pen-tool"] = "rbxassetid://10734919503",
- ["lucide-pencil"] = "rbxassetid://10734919691",
- ["lucide-percent"] = "rbxassetid://10734919919",
- ["lucide-person-standing"] = "rbxassetid://10734920149",
- ["lucide-phone"] = "rbxassetid://10734921524",
- ["lucide-phone-call"] = "rbxassetid://10734920305",
- ["lucide-phone-forwarded"] = "rbxassetid://10734920508",
- ["lucide-phone-incoming"] = "rbxassetid://10734920694",
- ["lucide-phone-missed"] = "rbxassetid://10734920845",
- ["lucide-phone-off"] = "rbxassetid://10734921077",
- ["lucide-phone-outgoing"] = "rbxassetid://10734921288",
- ["lucide-pie-chart"] = "rbxassetid://10734921727",
- ["lucide-piggy-bank"] = "rbxassetid://10734921935",
- ["lucide-pin"] = "rbxassetid://10734922324",
- ["lucide-pin-off"] = "rbxassetid://10734922180",
- ["lucide-pipette"] = "rbxassetid://10734922497",
- ["lucide-pizza"] = "rbxassetid://10734922774",
- ["lucide-plane"] = "rbxassetid://10734922971",
- ["lucide-play"] = "rbxassetid://10734923549",
- ["lucide-play-circle"] = "rbxassetid://10734923214",
- ["lucide-plus"] = "rbxassetid://10734924532",
- ["lucide-plus-circle"] = "rbxassetid://10734923868",
- ["lucide-plus-square"] = "rbxassetid://10734924219",
- ["lucide-podcast"] = "rbxassetid://10734929553",
- ["lucide-pointer"] = "rbxassetid://10734929723",
- ["lucide-pound-sterling"] = "rbxassetid://10734929981",
- ["lucide-power"] = "rbxassetid://10734930466",
- ["lucide-power-off"] = "rbxassetid://10734930257",
- ["lucide-printer"] = "rbxassetid://10734930632",
- ["lucide-puzzle"] = "rbxassetid://10734930886",
- ["lucide-quote"] = "rbxassetid://10734931234",
- ["lucide-radio"] = "rbxassetid://10734931596",
- ["lucide-radio-receiver"] = "rbxassetid://10734931402",
- ["lucide-rectangle-horizontal"] = "rbxassetid://10734931777",
- ["lucide-rectangle-vertical"] = "rbxassetid://10734932081",
- ["lucide-recycle"] = "rbxassetid://10734932295",
- ["lucide-redo"] = "rbxassetid://10734932822",
- ["lucide-redo-2"] = "rbxassetid://10734932586",
- ["lucide-refresh-ccw"] = "rbxassetid://10734933056",
- ["lucide-refresh-cw"] = "rbxassetid://10734933222",
- ["lucide-refrigerator"] = "rbxassetid://10734933465",
- ["lucide-regex"] = "rbxassetid://10734933655",
- ["lucide-repeat"] = "rbxassetid://10734933966",
- ["lucide-repeat-1"] = "rbxassetid://10734933826",
- ["lucide-reply"] = "rbxassetid://10734934252",
- ["lucide-reply-all"] = "rbxassetid://10734934132",
- ["lucide-rewind"] = "rbxassetid://10734934347",
- ["lucide-rocket"] = "rbxassetid://10734934585",
- ["lucide-rocking-chair"] = "rbxassetid://10734939942",
- ["lucide-rotate-3d"] = "rbxassetid://10734940107",
- ["lucide-rotate-ccw"] = "rbxassetid://10734940376",
- ["lucide-rotate-cw"] = "rbxassetid://10734940654",
- ["lucide-rss"] = "rbxassetid://10734940825",
- ["lucide-ruler"] = "rbxassetid://10734941018",
- ["lucide-russian-ruble"] = "rbxassetid://10734941199",
- ["lucide-sailboat"] = "rbxassetid://10734941354",
- ["lucide-save"] = "rbxassetid://10734941499",
- ["lucide-scale"] = "rbxassetid://10734941912",
- ["lucide-scale-3d"] = "rbxassetid://10734941739",
- ["lucide-scaling"] = "rbxassetid://10734942072",
- ["lucide-scan"] = "rbxassetid://10734942565",
- ["lucide-scan-face"] = "rbxassetid://10734942198",
- ["lucide-scan-line"] = "rbxassetid://10734942351",
- ["lucide-scissors"] = "rbxassetid://10734942778",
- ["lucide-screen-share"] = "rbxassetid://10734943193",
- ["lucide-screen-share-off"] = "rbxassetid://10734942967",
- ["lucide-scroll"] = "rbxassetid://10734943448",
- ["lucide-search"] = "rbxassetid://10734943674",
- ["lucide-send"] = "rbxassetid://10734943902",
- ["lucide-separator-horizontal"] = "rbxassetid://10734944115",
- ["lucide-separator-vertical"] = "rbxassetid://10734944326",
- ["lucide-server"] = "rbxassetid://10734949856",
- ["lucide-server-cog"] = "rbxassetid://10734944444",
- ["lucide-server-crash"] = "rbxassetid://10734944554",
- ["lucide-server-off"] = "rbxassetid://10734944668",
- ["lucide-settings"] = "rbxassetid://10734950309",
- ["lucide-settings-2"] = "rbxassetid://10734950020",
- ["lucide-share"] = "rbxassetid://10734950813",
- ["lucide-share-2"] = "rbxassetid://10734950553",
- ["lucide-sheet"] = "rbxassetid://10734951038",
- ["lucide-shield"] = "rbxassetid://10734951847",
- ["lucide-shield-alert"] = "rbxassetid://10734951173",
- ["lucide-shield-check"] = "rbxassetid://10734951367",
- ["lucide-shield-close"] = "rbxassetid://10734951535",
- ["lucide-shield-off"] = "rbxassetid://10734951684",
- ["lucide-shirt"] = "rbxassetid://10734952036",
- ["lucide-shopping-bag"] = "rbxassetid://10734952273",
- ["lucide-shopping-cart"] = "rbxassetid://10734952479",
- ["lucide-shovel"] = "rbxassetid://10734952773",
- ["lucide-shower-head"] = "rbxassetid://10734952942",
- ["lucide-shrink"] = "rbxassetid://10734953073",
- ["lucide-shrub"] = "rbxassetid://10734953241",
- ["lucide-shuffle"] = "rbxassetid://10734953451",
- ["lucide-sidebar"] = "rbxassetid://10734954301",
- ["lucide-sidebar-close"] = "rbxassetid://10734953715",
- ["lucide-sidebar-open"] = "rbxassetid://10734954000",
- ["lucide-sigma"] = "rbxassetid://10734954538",
- ["lucide-signal"] = "rbxassetid://10734961133",
- ["lucide-signal-high"] = "rbxassetid://10734954807",
- ["lucide-signal-low"] = "rbxassetid://10734955080",
- ["lucide-signal-medium"] = "rbxassetid://10734955336",
- ["lucide-signal-zero"] = "rbxassetid://10734960878",
- ["lucide-siren"] = "rbxassetid://10734961284",
- ["lucide-skip-back"] = "rbxassetid://10734961526",
- ["lucide-skip-forward"] = "rbxassetid://10734961809",
- ["lucide-skull"] = "rbxassetid://10734962068",
- ["lucide-slack"] = "rbxassetid://10734962339",
- ["lucide-slash"] = "rbxassetid://10734962600",
- ["lucide-slice"] = "rbxassetid://10734963024",
- ["lucide-sliders"] = "rbxassetid://10734963400",
- ["lucide-sliders-horizontal"] = "rbxassetid://10734963191",
- ["lucide-smartphone"] = "rbxassetid://10734963940",
- ["lucide-smartphone-charging"] = "rbxassetid://10734963671",
- ["lucide-smile"] = "rbxassetid://10734964441",
- ["lucide-smile-plus"] = "rbxassetid://10734964188",
- ["lucide-snowflake"] = "rbxassetid://10734964600",
- ["lucide-sofa"] = "rbxassetid://10734964852",
- ["lucide-sort-asc"] = "rbxassetid://10734965115",
- ["lucide-sort-desc"] = "rbxassetid://10734965287",
- ["lucide-speaker"] = "rbxassetid://10734965419",
- ["lucide-sprout"] = "rbxassetid://10734965572",
- ["lucide-square"] = "rbxassetid://10734965702",
- ["lucide-star"] = "rbxassetid://10734966248",
- ["lucide-star-half"] = "rbxassetid://10734965897",
- ["lucide-star-off"] = "rbxassetid://10734966097",
- ["lucide-stethoscope"] = "rbxassetid://10734966384",
- ["lucide-sticker"] = "rbxassetid://10734972234",
- ["lucide-sticky-note"] = "rbxassetid://10734972463",
- ["lucide-stop-circle"] = "rbxassetid://10734972621",
- ["lucide-stretch-horizontal"] = "rbxassetid://10734972862",
- ["lucide-stretch-vertical"] = "rbxassetid://10734973130",
- ["lucide-strikethrough"] = "rbxassetid://10734973290",
- ["lucide-subscript"] = "rbxassetid://10734973457",
- ["lucide-sun"] = "rbxassetid://10734974297",
- ["lucide-sun-dim"] = "rbxassetid://10734973645",
- ["lucide-sun-medium"] = "rbxassetid://10734973778",
- ["lucide-sun-moon"] = "rbxassetid://10734973999",
- ["lucide-sun-snow"] = "rbxassetid://10734974130",
- ["lucide-sunrise"] = "rbxassetid://10734974522",
- ["lucide-sunset"] = "rbxassetid://10734974689",
- ["lucide-superscript"] = "rbxassetid://10734974850",
- ["lucide-swiss-franc"] = "rbxassetid://10734975024",
- ["lucide-switch-camera"] = "rbxassetid://10734975214",
- ["lucide-sword"] = "rbxassetid://10734975486",
- ["lucide-swords"] = "rbxassetid://10734975692",
- ["lucide-syringe"] = "rbxassetid://10734975932",
- ["lucide-table"] = "rbxassetid://10734976230",
- ["lucide-table-2"] = "rbxassetid://10734976097",
- ["lucide-tablet"] = "rbxassetid://10734976394",
- ["lucide-tag"] = "rbxassetid://10734976528",
- ["lucide-tags"] = "rbxassetid://10734976739",
- ["lucide-target"] = "rbxassetid://10734977012",
- ["lucide-tent"] = "rbxassetid://10734981750",
- ["lucide-terminal"] = "rbxassetid://10734982144",
- ["lucide-terminal-square"] = "rbxassetid://10734981995",
- ["lucide-text-cursor"] = "rbxassetid://10734982395",
- ["lucide-text-cursor-input"] = "rbxassetid://10734982297",
- ["lucide-thermometer"] = "rbxassetid://10734983134",
- ["lucide-thermometer-snowflake"] = "rbxassetid://10734982571",
- ["lucide-thermometer-sun"] = "rbxassetid://10734982771",
- ["lucide-thumbs-down"] = "rbxassetid://10734983359",
- ["lucide-thumbs-up"] = "rbxassetid://10734983629",
- ["lucide-ticket"] = "rbxassetid://10734983868",
- ["lucide-timer"] = "rbxassetid://10734984606",
- ["lucide-timer-off"] = "rbxassetid://10734984138",
- ["lucide-timer-reset"] = "rbxassetid://10734984355",
- ["lucide-toggle-left"] = "rbxassetid://10734984834",
- ["lucide-toggle-right"] = "rbxassetid://10734985040",
- ["lucide-tornado"] = "rbxassetid://10734985247",
- ["lucide-toy-brick"] = "rbxassetid://10747361919",
- ["lucide-train"] = "rbxassetid://10747362105",
- ["lucide-trash"] = "rbxassetid://10747362393",
- ["lucide-trash-2"] = "rbxassetid://10747362241",
- ["lucide-tree-deciduous"] = "rbxassetid://10747362534",
- ["lucide-tree-pine"] = "rbxassetid://10747362748",
- ["lucide-trees"] = "rbxassetid://10747363016",
- ["lucide-trending-down"] = "rbxassetid://10747363205",
- ["lucide-trending-up"] = "rbxassetid://10747363465",
- ["lucide-triangle"] = "rbxassetid://10747363621",
- ["lucide-trophy"] = "rbxassetid://10747363809",
- ["lucide-truck"] = "rbxassetid://10747364031",
- ["lucide-tv"] = "rbxassetid://10747364593",
- ["lucide-tv-2"] = "rbxassetid://10747364302",
- ["lucide-type"] = "rbxassetid://10747364761",
- ["lucide-umbrella"] = "rbxassetid://10747364971",
- ["lucide-underline"] = "rbxassetid://10747365191",
- ["lucide-undo"] = "rbxassetid://10747365484",
- ["lucide-undo-2"] = "rbxassetid://10747365359",
- ["lucide-unlink"] = "rbxassetid://10747365771",
- ["lucide-unlink-2"] = "rbxassetid://10747397871",
- ["lucide-unlock"] = "rbxassetid://10747366027",
- ["lucide-upload"] = "rbxassetid://10747366434",
- ["lucide-upload-cloud"] = "rbxassetid://10747366266",
- ["lucide-usb"] = "rbxassetid://10747366606",
- ["lucide-user"] = "rbxassetid://10747373176",
- ["lucide-user-check"] = "rbxassetid://10747371901",
- ["lucide-user-cog"] = "rbxassetid://10747372167",
- ["lucide-user-minus"] = "rbxassetid://10747372346",
- ["lucide-user-plus"] = "rbxassetid://10747372702",
- ["lucide-user-x"] = "rbxassetid://10747372992",
- ["lucide-users"] = "rbxassetid://10747373426",
- ["lucide-utensils"] = "rbxassetid://10747373821",
- ["lucide-utensils-crossed"] = "rbxassetid://10747373629",
- ["lucide-venetian-mask"] = "rbxassetid://10747374003",
- ["lucide-verified"] = "rbxassetid://10747374131",
- ["lucide-vibrate"] = "rbxassetid://10747374489",
- ["lucide-vibrate-off"] = "rbxassetid://10747374269",
- ["lucide-video"] = "rbxassetid://10747374938",
- ["lucide-video-off"] = "rbxassetid://10747374721",
- ["lucide-view"] = "rbxassetid://10747375132",
- ["lucide-voicemail"] = "rbxassetid://10747375281",
- ["lucide-volume"] = "rbxassetid://10747376008",
- ["lucide-volume-1"] = "rbxassetid://10747375450",
- ["lucide-volume-2"] = "rbxassetid://10747375679",
- ["lucide-volume-x"] = "rbxassetid://10747375880",
- ["lucide-wallet"] = "rbxassetid://10747376205",
- ["lucide-wand"] = "rbxassetid://10747376565",
- ["lucide-wand-2"] = "rbxassetid://10747376349",
- ["lucide-watch"] = "rbxassetid://10747376722",
- ["lucide-waves"] = "rbxassetid://10747376931",
- ["lucide-webcam"] = "rbxassetid://10747381992",
- ["lucide-wifi"] = "rbxassetid://10747382504",
- ["lucide-wifi-off"] = "rbxassetid://10747382268",
- ["lucide-wind"] = "rbxassetid://10747382750",
- ["lucide-wrap-text"] = "rbxassetid://10747383065",
- ["lucide-wrench"] = "rbxassetid://10747383470",
- ["lucide-x"] = "rbxassetid://10747384394",
- ["lucide-x-circle"] = "rbxassetid://10747383819",
- ["lucide-x-octagon"] = "rbxassetid://10747384037",
- ["lucide-x-square"] = "rbxassetid://10747384217",
- ["lucide-zoom-in"] = "rbxassetid://10747384552",
- ["lucide-zoom-out"] = "rbxassetid://10747384679",
- };
- MarcoUI.FontAwesome = {
- a = "rbxassetid://74244459944328",
- ['accessible-icon'] = "rbxassetid://135242143909610",
- accusoft = "rbxassetid://94057545767519",
- ['address-book'] = "rbxassetid://129578640498728",
- ['address-card'] = 'rbxassetid://102106715141928',
- ['align-center'] = "rbxassetid://84408132800466",
- ['align-justify'] = "rbxassetid://125569339749500",
- ['align-left'] = "rbxassetid://110008004178539",
- ['align-right'] = "rbxassetid://79774893981710",
- alipay = "rbxassetid://134274199490629",
- anchor = "rbxassetid://94979524088900",
- ['anchor-circle-check'] = "rbxassetid://91871463373335",
- ['anchor-circle-exclamation'] = "rbxassetid://72303311082053",
- ['anchor-circle-xmark'] = "rbxassetid://106917001300524",
- ['anchor-lock'] = "rbxassetid://109198662645391",
- android = "rbxassetid://93605821179752",
- ['angle-down'] = "rbxassetid://122395101934469",
- ['angle-left'] = "rbxassetid://132632410309959",
- ['angle-right'] = "rbxassetid://105971664068240",
- ['angles-down'] = "rbxassetid://96703500127872",
- ['angles-left'] = "rbxassetid://70595546989447",
- ['angles-right'] = "rbxassetid://131176182882747",
- ['angles-up'] = "rbxassetid://96847020381396",
- ['angle-up'] = "rbxassetid://136517226470297",
- ['arrow-down'] = "rbxassetid://100174052036797",
- ['arrow-left'] = "rbxassetid://133922718486450",
- ['arrow-pointer'] = "rbxassetid://128639550333559",
- ['arrow-right'] = 'rbxassetid://105166519175969',
- ['arrow-right-arrow-left'] = "rbxassetid://87405428139040",
- ['arrow-right-from-bracket'] = "rbxassetid://111722018253482",
- ['arrow-right-to-bracket'] = "rbxassetid://79400903745367",
- ['arrow-rotate-left'] = "rbxassetid://127876635051023",
- ['arrow-rotate-right'] = "rbxassetid://82773599534347",
- ['arrows-left-right'] = "rbxassetid://85625938291926",
- ['arrows-rotate'] = "rbxassetid://109882153776270",
- ['arrows-up-down'] = "rbxassetid://88240470530518",
- ['arrows-up-down-left-right'] = "rbxassetid://136830364721572",
- ['arrow-trend-down'] = "rbxassetid://138593805214121",
- ['arrow-trend-up'] = "rbxassetid://121301107868410",
- ['arrow-up'] = "rbxassetid://116473498857626",
- ['arrow-up-from-bracket'] = "rbxassetid://77716847027695",
- ['arrow-up-right-from-square'] = "rbxassetid://101883941536459",
- at = "rbxassetid://116468402170315",
- atom = "rbxassetid://136905279132440",
- ['audio-description'] = 'rbxassetid://137490376195308',
- award = "rbxassetid://134322732056464",
- backward = "rbxassetid://115437448962693",
- ['backward-fast'] = "rbxassetid://133478473989228",
- ['backward-step'] = "rbxassetid://118301206125870",
- ban = "rbxassetid://89004310664420",
- bandage = "rbxassetid://109104902535966",
- bars = "rbxassetid://127661324755454",
- ['bars-progress'] = "rbxassetid://77774174241071",
- ['bars-staggered'] = "rbxassetid://97337529919486",
- baseball = "rbxassetid://87677782809968",
- basketball = "rbxassetid://71403045563776",
- ['basket-shopping'] = "rbxassetid://129578273645224",
- ['battery-empty'] = "rbxassetid://99777750808099",
- ['battery-full'] = "rbxassetid://93999278270214",
- ['battery-half'] = "rbxassetid://87762099115036",
- ['battery-quarter'] = "rbxassetid://96680551535938",
- ['battery-three-quarters'] = "rbxassetid://130840615974067",
- bell = "rbxassetid://109971903438934",
- ['bell-slash'] = "rbxassetid://101758939103378",
- bilibili = "rbxassetid://85834752961243",
- biohazard = "rbxassetid://102610067899783",
- bitcoin = "rbxassetid://131632152157382",
- ['bitcoin-sign'] = "rbxassetid://127809070259506",
- ['bluetooth-b'] = "rbxassetid://96522278309021",
- bluetooth = "rbxassetid://113081372628241",
- bolt = "rbxassetid://89858717966393",
- bomb = "rbxassetid://113184250292244",
- book = "rbxassetid://134006112957521",
- ['book-open'] = "rbxassetid://109774137257967",
- bug = "rbxassetid://105314179657552",
- ['bug-slash'] = "rbxassetid://133973969610093",
- broom = "rbxassetid://95267009545395",
- bullhorn = "rbxassetid://87251830910561",
- ['bullseye'] = "rbxassetid://83080500555400",
- bus = "rbxassetid://126579638968493",
- calculator = "rbxassetid://119527046782470",
- camera = "rbxassetid://133029797251962",
- ['cc-amazon-pay'] = "rbxassetid://108859760370504",
- ['cc-amex'] = "rbxassetid://138233598058785",
- ['cc-apple-pay'] = "rbxassetid://133747941882534",
- ['cc-diners-club'] = "rbxassetid://99626539664553",
- ['cc-mastercard'] = "rbxassetid://118541621561504",
- ['cc-visa'] = "rbxassetid://120055576031063",
- ['cc-paypal'] = "rbxassetid://87250418163030",
- check = "rbxassetid://129443092324752",
- ['chevron-down'] = "rbxassetid://109535175596957",
- ['chevron-left'] = "rbxassetid://129113930144228",
- ['chevron-right'] = "rbxassetid://105723602996553",
- ['chevron-up'] = "rbxassetid://117264500851637",
- chromecast = "rbxassetid://71543589030583",
- circle = "rbxassetid://131274957777266",
- ['circle-check'] = "rbxassetid://98678528147000",
- ['circle-info'] = "rbxassetid://97519285421665",
- clipboard = 'rbxassetid://111512950362265',
- ['clipboard-check'] = "rbxassetid://118535733506457",
- clock = "rbxassetid://98767608471295",
- code = "rbxassetid://91882036126433",
- ['computer-mouse'] = "rbxassetid://114752565381440",
- cookie = "rbxassetid://101854685117513",
- copy = "rbxassetid://76996819137437",
- copyright = "rbxassetid://131736117717053",
- ['credit-card'] = "rbxassetid://85213342061383",
- ['crosshairs'] = "rbxassetid://133441774847498",
- database = "rbxassetid://109882554524389",
- discord = "rbxassetid://75871011309830",
- display = "rbxassetid://101851152220134",
- download = "rbxassetid://122321311031549",
- ['earth-africa'] = "rbxassetid://107029199584204",
- ['earth-americas'] = "rbxassetid://105574352653407",
- ['earth-asia'] = "rbxassetid://138155660327900",
- ['earth-europe'] = "rbxassetid://134638370907021",
- ['earth-oceania'] = "rbxassetid://121780690380624",
- envelope = "rbxassetid://136184483524922",
- ['envelope-open'] = "rbxassetid://132492127839357",
- envira = "rbxassetid://75781570526788",
- equals = "rbxassetid://134271902308970",
- eraser = "rbxassetid://128970640154301",
- ethereum = "rbxassetid://103421769879532",
- exclamation = "rbxassetid://125718656366676",
- eye = "rbxassetid://95235861336970",
- feather = "rbxassetid://135995843954302",
- fingerprint = "rbxassetid://125379360015007",
- fire = "rbxassetid://122498238725085",
- ['floppy-disk'] = "rbxassetid://101374426361499",
- folder = "rbxassetid://131374292202389",
- ['folder-open'] = "rbxassetid://78238714442180",
- forward = "rbxassetid://107937467448020",
- ['forward-fast'] = "rbxassetid://83735840669276",
- ['forward-step'] = "rbxassetid://104040171143566",
- gear = "rbxassetid://137945854328407",
- gift = "rbxassetid://129718366414314",
- git = "rbxassetid://117711060446092",
- github = "rbxassetid://123783733365919",
- globe = "rbxassetid://102861769355196",
- ['hand-holding-hand'] = "rbxassetid://120797412134954",
- headphones = "rbxassetid://86076153665072",
- headset = "rbxassetid://108070801288944",
- ['headphones-simple'] = "rbxassetid://97516570978183",
- house = "rbxassetid://86540166012974",
- ['house-chimney'] = "rbxassetid://90066192203346",
- image = "rbxassetid://107205506080751",
- infinity = "rbxassetid://129024756905166",
- info = "rbxassetid://113157514619684",
- keyboard = "rbxassetid://97417417526948",
- list = "rbxassetid://87155993544457",
- ['location-arrow'] = "rbxassetid://72621673664457",
- ['location-crosshairs'] = "rbxassetid://93887450723164",
- lock = 'rbxassetid://80031239225283',
- palette = "rbxassetid://81372281623830",
- paste = "rbxassetid://88846256867074",
- paw = "rbxassetid://80005916079930",
- pen = "rbxassetid://97404859124912",
- pencil = "rbxassetid://76590960968733",
- ['pen-nib'] = "rbxassetid://91232219924341",
- ['pen-ruler'] = "rbxassetid://138407458813207",
- phone = "rbxassetid://72814141651992",
- plane = "rbxassetid://136248807279679",
- plus = "rbxassetid://133137619535544",
- ['right-left'] = "rbxassetid://91273051324368",
- ['right-to-bracket'] = "rbxassetid://137132451900886",
- rotate = "rbxassetid://95883878890200",
- ['rotate-right'] = "rbxassetid://93357988077552",
- ['rotate-left'] = "rbxassetid://96753646113822",
- shield = "rbxassetid://73441026473893",
- ['shield-halved'] = "rbxassetid://114554606211174",
- user = "rbxassetid://98376828270066",
- unlock = "rbxassetid://99060354229117",
- trash = "rbxassetid://82859108629080",
- ['trash-can'] = "rbxassetid://81463703129214",
- skull = "rbxassetid://99276754296574",
- robot = "rbxassetid://134497060038109",
- tag = "rbxassetid://129024358125754",
- thumbtack = "rbxassetid://119847869089109",
- ['thumbs-up'] = "rbxassetid://74340984021785",
- ['thumbs-down'] = "rbxassetid://86090492737223",
- ['user-gear'] = "rbxassetid://137604201056497",
- video = "rbxassetid://112274059143251",
- virus = "rbxassetid://91843339206686",
- volleyball = "rbxassetid://73870192536894",
- ['magnifying-glass'] = "rbxassetid://74387839235930",
- };
- function MarcoUI:OptimizeMode(v)
- MarcoUI.PerformanceMode = v;
- end;
- function MarcoUI:IsStudio()
- return RunService:IsStudio()
- end;
- function MarcoUI:CustomIconHighlight()
- MarcoUI.CustomHighlightMode = true;
- end;
- function MarcoUI:_SetNilP(Ins: Instance , Parent: Instance)
- MarcoUI.WindowsNil = MarcoUI.WindowsNil or {};
- if not MarcoUI.NilFolder then
- local success, folder = pcall(function()
- return Instance.new('Folder');
- end);
- MarcoUI.NilFolder = folder;
- if MarcoUI.NilFolder then
- MarcoUI.NilFolder.Name = "Nil-Instances";
- end;
- end;
- if not MarcoUI.WindowsNil[Ins] then
- local win = MarcoUI:_GetWindowFromElement(Ins);
- MarcoUI.WindowsNil[Ins] = win;
- end;
- Ins.Parent = Parent or MarcoUI.NilFolder;
- end;
- function MarcoUI:SetAllText(flags : {[string] : string})
- if not flags then -- reset to default
- for i,v in next , MarcoUI.Flags do
- if v.SetText then
- v:SetText(nil);
- end;
- end;
- return;
- end;
- flags = flags or {};
- for i,v in next , flags do
- if MarcoUI.Flags[i] and MarcoUI.Flags[i].SetText then
- MarcoUI.Flags[i]:SetText(v);
- end;
- end;
- end;
- function MarcoUI:_GetIcon(name : string , font_aws) : string
- if MarcoUI.SecureMode then
- local AssetId;
- if font_aws then
- AssetId = MarcoUI.FontAwesome[name] or name;
- else
- AssetId = MarcoUI.Lucide['lucide-'..tostring(name)] or MarcoUI.Lucide[name] or MarcoUI.Lucide[tostring(name)] or MarcoUI.FontAwesome[name] or name;
- end;
- if AssetId and AssetId ~= nil then
- local asset = MarcoUI:CacheImage(AssetId);
- return asset;
- end;
- return "";
- end;
- if font_aws then
- return MarcoUI.FontAwesome[name] or name;
- end;
- return MarcoUI.Lucide['lucide-'..tostring(name)] or MarcoUI.Lucide[name] or MarcoUI.Lucide[tostring(name)] or MarcoUI.FontAwesome[name] or name;
- end;
- function MarcoUI:_RandomString() : string
- return "CK="..string.char(math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102),math.random(64,102));
- end;
- function MarcoUI:_IsMouseOverFrame(Frame : Frame) : boolean
- if not Frame or not Mouse then
- return false;
- end;
- local AbsPos: Vector2, AbsSize: Vector2 = Frame.AbsolutePosition, Frame.AbsoluteSize;
- if Mouse.X >= AbsPos.X and Mouse.X <= AbsPos.X + AbsSize.X and Mouse.Y >= AbsPos.Y and Mouse.Y <= AbsPos.Y + AbsSize.Y then
- return true;
- end;
- return false;
- end;
- function MarcoUI:_Rounding(num: number, numDecimalPlaces: number) : number
- local mult: number = 10 ^ (numDecimalPlaces or 0);
- return math.floor(num * mult + 0.5) / mult;
- end;
- function MarcoUI:_Animation(Self: Instance , Info: TweenInfo , Property :{[K] : V})
- local Tween = TweenService:Create(Self , Info or TweenInfo.new(0.25,Enum.EasingStyle.Exponential) , Property);
- Tween:Play();
- return Tween;
- end;
- function MarcoUI:_Input(Frame : Frame , Callback : () -> ()) : TextButton
- local Button = Instance.new('TextButton',Frame);
- Button.ZIndex = Frame.ZIndex + 10;
- Button.Size = UDim2.fromScale(1,1);
- Button.BackgroundTransparency = 1;
- Button.TextTransparency = 1;
- if Callback then
- Button.MouseButton1Click:Connect(Callback);
- end;
- return Button;
- end;
- function MarcoUI:GetCalculatePosition(planePos: number, planeNormal: number, rayOrigin: number, rayDirection: number) : number
- local n = planeNormal;
- local d = rayDirection;
- local v = rayOrigin - planePos;
- local num = (n.x * v.x) + (n.y * v.y) + (n.z * v.z);
- local den = (n.x * d.x) + (n.y * d.y) + (n.z * d.z);
- local a = -num / den;
- return rayOrigin + (a * rayDirection);
- end;
- function MarcoUI:_Blur(element : Frame , WindowRemote) : RBXScriptSignal
- if MarcoUI.SecureMode and not MarcoUI.SecurityConfig.BlurEnabled then
- return game.Changed:Connect(function() end);
- end;
- local Part = Instance.new('Part',MarcoUI.ArcylicParent);
- local DepthOfField = Instance.new('DepthOfFieldEffect',cloneref(game:GetService('Lighting')));
- local BlockMesh = Instance.new("BlockMesh");
- local userSettings = UserSettings():GetService("UserGameSettings");
- BlockMesh.Parent = Part;
- Part.Material = Enum.Material.Glass;
- Part.Transparency = 1;
- Part.Reflectance = 1;
- Part.CastShadow = false;
- Part.Anchored = true;
- Part.CanCollide = false;
- Part.CanQuery = false;
- Part.CollisionGroup = MarcoUI:_RandomString();
- Part.Size = Vector3.new(1, 1, 1) * 0.01;
- Part.Color = Color3.fromRGB(0,0,0);
- DepthOfField.Enabled = true;
- DepthOfField.FarIntensity = 0;
- DepthOfField.FocusDistance = 0;
- DepthOfField.InFocusRadius = 1000;
- DepthOfField.NearIntensity = 1;
- DepthOfField.Name = MarcoUI:_RandomString();
- Part.Name = MarcoUI:_RandomString();
- local disconnect;
- local UpdateFunction = function()
- if MarcoUI.SecureMode then
- if Part then
- Part:Destroy();
- Part = nil;
- end;
- if DepthOfField then
- DepthOfField:Destroy();
- DepthOfField = nil;
- end;
- if BlockMesh then
- BlockMesh:Destroy();
- BlockMesh = nil;
- end;
- if disconnect then
- disconnect();
- disconnect = nil;
- end;
- return;
- end;
- local IsWindowActive = WindowRemote:GetValue();
- if IsWindowActive then
- MarcoUI:_Animation(DepthOfField,TweenInfo.new(0.1),{
- NearIntensity = 1
- })
- MarcoUI:_Animation(Part,TweenInfo.new(0.1),{
- Transparency = 0.97,
- Size = Vector3.new(1, 1, 1) * 0.01;
- })
- else
- MarcoUI:_Animation(DepthOfField,TweenInfo.new(0.1),{
- NearIntensity = 0
- })
- MarcoUI:_Animation(Part,TweenInfo.new(0.1),{
- Size = Vector3.zero,
- Transparency = 1.5,
- })
- return false;
- end;
- if IsWindowActive then
- local corner0 = element.AbsolutePosition;
- local corner1 = corner0 + element.AbsoluteSize;
- local ray0 = CurrentCamera.ScreenPointToRay(CurrentCamera,corner0.X, corner0.Y, 1);
- local ray1 = CurrentCamera.ScreenPointToRay(CurrentCamera,corner1.X, corner1.Y, 1);
- local planeOrigin = CurrentCamera.CFrame.Position + CurrentCamera.CFrame.LookVector * (0.05 - CurrentCamera.NearPlaneZ);
- local planeNormal = CurrentCamera.CFrame.LookVector;
- local pos0 = MarcoUI:GetCalculatePosition(planeOrigin, planeNormal, ray0.Origin, ray0.Direction);
- local pos1 = MarcoUI:GetCalculatePosition(planeOrigin, planeNormal, ray1.Origin, ray1.Direction);
- pos0 = CurrentCamera.CFrame:PointToObjectSpace(pos0);
- pos1 = CurrentCamera.CFrame:PointToObjectSpace(pos1);
- local size = pos1 - pos0;
- local center = (pos0 + pos1) / 2;
- BlockMesh.Offset = center
- BlockMesh.Scale = size / 0.0101;
- Part.CFrame = CurrentCamera.CFrame;
- end;
- end;
- local rbxsignal = CurrentCamera:GetPropertyChangedSignal('CFrame'):Connect(UpdateFunction)
- local loopThread = UserInputService.InputChanged:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then
- pcall(UpdateFunction);
- end;
- end);
- local THREAD = task.spawn(function()
- while true do task.wait(0.1)
- pcall(UpdateFunction);
- end;
- end);
- disconnect = function()
- rbxsignal:Disconnect();
- loopThread:Disconnect();
- task.cancel(THREAD);
- Part:Destroy();
- DepthOfField:Destroy();
- end;
- element.Destroying:Connect(disconnect);
- return rbxsignal;
- end;
- function MarcoUI:_AddDragBlacklist(Frame: Frame)
- local IsAdded = false;
- local BASE_TIME = 0.01;
- local SET_BLACKLIST = function(value)
- local index = table.find(MarcoUI.DragBlacklist , Frame);
- if value and not MarcoUI.IS_DRAG_MOVE then
- if not index then
- table.insert(MarcoUI.DragBlacklist,Frame);
- end;
- else
- if index then
- table.remove(MarcoUI.DragBlacklist,index);
- end;
- end;
- end;
- Frame.InputBegan:Connect(function(input)
- if MarcoUI:_IsMouseOverFrame(Frame) then
- SET_BLACKLIST(true)
- end;
- end);
- Frame.InputEnded:Connect(function(input)
- SET_BLACKLIST(false);
- end);
- UserInputService.InputChanged:Connect(function()
- if not MarcoUI:_IsMouseOverFrame(Frame) then
- SET_BLACKLIST(false);
- end
- end);
- end;
- function MarcoUI:_GetWindowFromElement(Element)
- if MarcoUI.WindowsNil[Element] then
- return MarcoUI.WindowsNil[Element];
- end;
- for i,v : ScreenGui in next , MarcoUI.Windows do
- if v and Element:IsDescendantOf(v) then
- return v;
- end;
- end;
- for Frame,Window in next , MarcoUI.WindowsNil do
- if Element:IsDescendantOf(Frame) or Frame == Element then
- return Window;
- end;
- end;
- end;
- function MarcoUI.__SIGNAL(default)
- local Bindable = Instance.new('BindableEvent');
- Bindable.Name = string.sub(tostring({}),7);
- Bindable:SetAttribute('Value',default);
- local Binds = {
- __signals = {}
- };
- function Binds:Connect(event)
- event(Bindable:GetAttribute("Value"));
- local signal = Bindable.Event:Connect(event);
- table.insert(Binds.__signals,signal);
- return signal;
- end;
- function Binds:Fire(value)
- local IsSame = Bindable:GetAttribute("Value") == value;
- Bindable:SetAttribute('Value',value);
- if not IsSame then
- Bindable:Fire(value);
- end;
- end;
- function Binds:GetValue()
- return Bindable:GetAttribute("Value");
- end;
- return Binds;
- end;
- -- Interaction locking system to prevent hover effects during interactions
- MarcoUI.__InteractionLock = nil;
- MarcoUI.__LockedSection = nil;
- function MarcoUI:_SetInteractionLock(section, locked)
- if locked then
- MarcoUI.__InteractionLock = true;
- MarcoUI.__LockedSection = section;
- else
- MarcoUI.__InteractionLock = false;
- MarcoUI.__LockedSection = nil;
- end;
- end;
- function MarcoUI:_IsInteractionLocked()
- return MarcoUI.__InteractionLock == true;
- end;
- function MarcoUI:_GetLockedSection()
- return MarcoUI.__LockedSection;
- end;
- function MarcoUI:_Hover(Frame: Frame , OnHover: () -> any?, Release: () -> any?)
- local isLocked = false;
- local lockedSection = nil;
- Frame.MouseEnter:Connect(function()
- -- Check if interaction is locked and if this frame is not the locked section
- if MarcoUI:_IsInteractionLocked() then
- lockedSection = MarcoUI:_GetLockedSection();
- if lockedSection and Frame:IsDescendantOf(lockedSection) then
- -- This is the locked section, allow hover
- isLocked = false;
- else
- -- Different section, block hover
- isLocked = true;
- end;
- else
- isLocked = false;
- end;
- if not isLocked and OnHover then
- OnHover();
- end;
- end);
- Frame.MouseLeave:Connect(function()
- -- Only trigger release if not locked or if this is the locked section
- if not isLocked and Release then
- Release();
- end;
- end);
- end;
- function MarcoUI.__CONFIG(config , default)
- config = config or {};
- for i,v in next , default do
- if config[i] == nil then
- config[i] = v;
- end;
- end;
- return config;
- end;
- function MarcoUI:Drag(InputFrame: Frame, MoveFrame: Frame, Speed : number)
- local dragToggle: boolean = false;
- local dragStart: Vector3 = nil;
- local startPos: UDim2 = nil;
- local Tween = TweenInfo.new(Speed);
- local updateInput = function(input)
- local delta = input.Position - dragStart;
- local position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
- startPos.Y.Scale, startPos.Y.Offset + delta.Y);
- MarcoUI:_Animation(MoveFrame,Tween,{
- Position = position
- });
- end;
- InputFrame.InputBegan:Connect(function(input)
- if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and #MarcoUI.DragBlacklist <= 0 then
- dragToggle = true
- dragStart = input.Position
- startPos = MoveFrame.Position
- input.Changed:Connect(function()
- if input.UserInputState == Enum.UserInputState.End then
- dragToggle = false;
- MarcoUI.IS_DRAG_MOVE = false;
- end
- end)
- end
- if not MarcoUI.IsDrage and dragToggle then
- MarcoUI.LastDrag = tick();
- end;
- MarcoUI.IaDrag = dragToggle;
- end)
- UserInputService.InputChanged:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch and #MarcoUI.DragBlacklist <= 0 then
- if dragToggle then
- MarcoUI.IS_DRAG_MOVE = true;
- updateInput(input)
- else
- MarcoUI.IS_DRAG_MOVE = false;
- end
- else
- if #MarcoUI.DragBlacklist > 0 then
- dragToggle = false
- MarcoUI.IS_DRAG_MOVE = false;
- end
- end
- MarcoUI.IaDrag = dragToggle;
- end);
- end;
- function MarcoUI:_IsMobile()
- return UserInputService.TouchEnabled;
- end;
- function MarcoUI:_AddLinkValue(Name , Default , GlobalBlock , LinkValues , rep , Signal)
- if Name == "Toggle" then
- local Toggle = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local UIStroke = Instance.new("UIStroke")
- local ToggleValue = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- Toggle.Name = MarcoUI:_RandomString()
- Toggle.Parent = LinkValues
- Toggle.BackgroundColor3 = MarcoUI.Colors.DropColor
- Toggle.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Toggle.BorderSizePixel = 0
- Toggle.Size = UDim2.new(0, 30, 0, 16)
- Toggle.ZIndex = GlobalBlock.ZIndex + 1
- Toggle.LayoutOrder = -#LinkValues:GetChildren();
- table.insert(MarcoUI.Elements.DropColor , {
- Element = Toggle,
- Property = "BackgroundColor3"
- })
- UICorner.CornerRadius = UDim.new(1, 0)
- UICorner.Parent = Toggle
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = Toggle
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke,
- Property = "Color"
- })
- ToggleValue.Name = MarcoUI:_RandomString()
- ToggleValue.Parent = Toggle
- ToggleValue.AnchorPoint = Vector2.new(0.5, 0.5)
- ToggleValue.BackgroundColor3 = MarcoUI.Colors.SwitchColor
- ToggleValue.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ToggleValue.BorderSizePixel = 0
- ToggleValue.Position = UDim2.new(0.25, 0, 0.5, 0)
- ToggleValue.Size = UDim2.new(0.550000012, 0, 0.550000012, 0)
- ToggleValue.SizeConstraint = Enum.SizeConstraint.RelativeYY
- ToggleValue.ZIndex = GlobalBlock.ZIndex + 2
- UICorner_2.CornerRadius = UDim.new(1, 0)
- UICorner_2.Parent = ToggleValue;
- -- Track for RGB updates
- local isActive = false;
- local ToggleElement = function(bool,noChange)
- if not noChange then
- Default = bool;
- end;
- if bool then
- isActive = true;
- Toggle:SetAttribute('Enabled',true);
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- Position = UDim2.new(0.75, 0, 0.5, 0)
- })
- -- Store reference for RGB updates
- if not MarcoUI.__ActiveRGBToggles then
- MarcoUI.__ActiveRGBToggles = {};
- end;
- table.insert(MarcoUI.__ActiveRGBToggles, {
- Toggle = Toggle,
- ToggleValue = ToggleValue
- });
- MarcoUI:_Animation(Toggle,rep.Tween,{
- BackgroundColor3 = MarcoUI.Colors.Toggle
- })
- else
- isActive = false;
- Toggle:SetAttribute('Enabled',false);
- -- Remove from RGB tracking
- if MarcoUI.__ActiveRGBToggles then
- for i, v in ipairs(MarcoUI.__ActiveRGBToggles) do
- if v.Toggle == Toggle then
- table.remove(MarcoUI.__ActiveRGBToggles, i);
- break;
- end;
- end;
- end;
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- Position = UDim2.new(0.25, 0, 0.5, 0)
- })
- MarcoUI:_Animation(Toggle,rep.Tween,{
- BackgroundColor3 = MarcoUI.Colors.DropColor
- })
- end;
- end;
- local Input = MarcoUI:_Input(Toggle);
- MarcoUI:_Hover(Input , function()
- if not Default then
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- Size = UDim2.new(0.6, 0, 0.6, 0)
- })
- end;
- end , function()
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- Size = UDim2.new(0.550000012, 0, 0.550000012, 0)
- })
- end);
- local ToggleUI = function(bool)
- if bool then
- ToggleElement(Default,true);
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(Toggle,rep.Tween,{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(UIStroke,rep.Tween,{
- Transparency = 0
- })
- else
- ToggleElement(false,true);
- MarcoUI:_Animation(ToggleValue,rep.Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(Toggle,rep.Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(UIStroke,rep.Tween,{
- Transparency = 1
- })
- end;
- end;
- ToggleElement(Default);
- Signal:Connect(ToggleUI)
- return {
- Root = Toggle,
- ChangeValue = ToggleElement,
- Input = Input,
- ToggleUI = ToggleUI,
- };
- elseif Name == "ColorPicker" then
- local ColorPicker = Instance.new("Frame")
- local ColorFrame = Instance.new("Frame")
- local UIScale = Instance.new("UIScale")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- ColorPicker.Name = MarcoUI:_RandomString()
- ColorPicker.Parent = LinkValues
- ColorPicker.BackgroundTransparency = 1.000
- ColorPicker.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorPicker.BorderSizePixel = 0
- ColorPicker.Size = UDim2.new(0, 16, 0, 16)
- ColorPicker.ZIndex = GlobalBlock.ZIndex + 1
- ColorPicker.LayoutOrder = -#LinkValues:GetChildren();
- ColorFrame.Name = MarcoUI:_RandomString()
- ColorFrame.Parent = ColorPicker
- ColorFrame.AnchorPoint = Vector2.new(0.5, 0.5)
- ColorFrame.BackgroundColor3 = Color3.fromRGB(15, 255, 207)
- ColorFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorFrame.BorderSizePixel = 0
- ColorFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
- ColorFrame.Size = UDim2.new(1, -1, 1, -1)
- ColorFrame.ZIndex = GlobalBlock.ZIndex + 1
- UIScale.Parent = ColorFrame
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = ColorFrame
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke,
- Property = "Color"
- })
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = ColorFrame
- Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(ColorFrame,TweenInfo.new(0.15),{
- BackgroundTransparency = 0,
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.15),{
- Transparency = 0,
- })
- else
- MarcoUI:_Animation(ColorFrame,TweenInfo.new(0.15),{
- BackgroundTransparency = 1,
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.15),{
- Transparency = 1,
- })
- end;
- end)
- MarcoUI:_Hover(ColorPicker, function()
- if Signal:GetValue() then
- MarcoUI:_Animation(UIScale,TweenInfo.new(0.35),{
- Scale = 1.2
- })
- end;
- end , function()
- if Signal:GetValue() then
- MarcoUI:_Animation(UIScale,TweenInfo.new(0.35),{
- Scale = 1
- })
- end;
- end)
- return ColorPicker , ColorFrame;
- elseif Name == "Keybind" then
- local Keys = {
- One = '1',
- Two = '2',
- Three = '3',
- Four = '4',
- Five = '5',
- Six = '6',
- Seven = '7',
- Eight = '8',
- Nine = '9',
- Zero = '0',
- ['Minus'] = "-",
- ['Plus'] = "+",
- BackSlash = "\\",
- Slash = "/",
- Period = '.',
- Semicolon = ';',
- Colon = ":",
- LeftControl = "LCtrl",
- RightControl = "RCtrl",
- LeftShift = "LShift",
- RightShift = "RShift",
- Return = "Enter",
- LeftBracket = "[",
- RightBracket = "]",
- Quote = "'",
- Comma = ",",
- Equals = "=",
- LeftSuper = "Super",
- RightSuper = "Super",
- LeftAlt = "LAlt",
- RightAlt = "RAlt",
- Escape = "Esc",
- };
- local GetItem = function(item)
- if item then
- if typeof(item) == 'EnumItem' then
- return Keys[item.Name] or item.Name;
- else
- return Keys[tostring(item)] or tostring(item);
- end;
- else
- return 'None';
- end;
- end;
- local Keybind = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local UIStroke = Instance.new("UIStroke")
- local TextLabel = Instance.new("TextLabel")
- Keybind.Name = MarcoUI:_RandomString()
- Keybind.Parent = LinkValues
- Keybind.BackgroundColor3 = MarcoUI.Colors.DropColor
- Keybind.BackgroundTransparency = 0.8
- Keybind.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Keybind.BorderSizePixel = 0
- Keybind.Size = UDim2.new(0, 45, 0, 16)
- Keybind.ZIndex = GlobalBlock.ZIndex + 2
- Keybind.ClipsDescendants = true
- Keybind.LayoutOrder = -#LinkValues:GetChildren();
- table.insert(MarcoUI.Elements.DropColor , {
- Element = Keybind,
- Property = "BackgroundColor3"
- })
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Keybind
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = Keybind
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke,
- Property = "Color"
- })
- TextLabel.Parent = Keybind
- TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextLabel.Size = UDim2.new(1, -5, 1, -5)
- TextLabel.ZIndex = GlobalBlock.ZIndex + 3
- TextLabel.Font = Enum.Font.Gotham
- TextLabel.Text = GetItem(Default or "None");
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 12.000
- TextLabel.TextTransparency = 0.200
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = TextLabel,
- Property = "TextColor3"
- });
- local Update = function()
- local size = TextService:GetTextSize(TextLabel.Text,TextLabel.TextSize,TextLabel.Font,Vector2.new(math.huge,math.huge));
- MarcoUI:_Animation(Keybind,TweenInfo.new(0.1),{
- Size = UDim2.new(0, size.X + 5, 0, 16)
- });
- end;
- Update();
- local ToggleUI = function(bool)
- if bool then
- MarcoUI:_Animation(Keybind,rep.Tween,{
- BackgroundTransparency = 0.8
- })
- MarcoUI:_Animation(UIStroke,rep.Tween,{
- Transparency = 0
- })
- MarcoUI:_Animation(TextLabel,rep.Tween,{
- TextTransparency = 0.200
- })
- else
- MarcoUI:_Animation(Keybind,rep.Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(UIStroke,rep.Tween,{
- Transparency = 1
- })
- MarcoUI:_Animation(TextLabel,rep.Tween,{
- TextTransparency = 1
- })
- end;
- end;
- Signal:Connect(ToggleUI);
- return {
- SetValue = function(text)
- TextLabel.Text = GetItem(text or "None");
- Update();
- end,
- Root = Keybind,
- };
- elseif Name == "Helper" then
- local InfoButton = Instance.new("ImageButton")
- local UICorner = Instance.new("UICorner")
- local BlockText = Instance.new("TextLabel")
- local UIStroke = Instance.new("UIStroke")
- local UICorner_2 = Instance.new("UICorner")
- InfoButton.Name = MarcoUI:_RandomString()
- InfoButton.Parent = LinkValues
- InfoButton.BackgroundTransparency = 1.000
- InfoButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- InfoButton.BorderSizePixel = 0
- InfoButton.LayoutOrder = -#LinkValues:GetChildren();
- InfoButton.Size = UDim2.new(0, 15, 0, 15)
- InfoButton.ZIndex = GlobalBlock.ZIndex + 25
- InfoButton.Image = MarcoUI:CacheImage("rbxassetid://10723415903")
- InfoButton.ImageTransparency = 0.500
- UICorner.CornerRadius = UDim.new(1, 0)
- UICorner.Parent = InfoButton
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = InfoButton
- BlockText.AnchorPoint = Vector2.new(0, 0)
- BlockText.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = BlockText,
- Property = "BackgroundColor3"
- });
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 5, 0, 0)
- BlockText.Size = UDim2.new(0, 250, 0, 15)
- BlockText.ZIndex = GlobalBlock.ZIndex + 26
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = " "
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 13.000
- BlockText.TextTransparency = 0.300
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = BlockText,
- Property = "TextColor3"
- });
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
- UIStroke.Parent = BlockText
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner_2.CornerRadius = UDim.new(0, 3)
- UICorner_2.Parent = BlockText
- Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(InfoButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.500
- })
- else
- MarcoUI:_Animation(InfoButton,TweenInfo.new(0.15),{
- ImageTransparency = 1
- })
- end;
- end)
- MarcoUI:_Hover(InfoButton, function()
- if Signal:GetValue() then
- MarcoUI:_Animation(InfoButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.1
- })
- end;
- end , function()
- if Signal:GetValue() then
- MarcoUI:_Animation(InfoButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.500
- })
- end;
- end)
- return {
- Text = BlockText,
- UIStroke = UIStroke,
- InfoButton = InfoButton,
- };
- elseif Name == "Option" then
- local OptionButton = Instance.new("ImageButton")
- local UICorner = Instance.new("UICorner")
- OptionButton.Name = MarcoUI:_RandomString()
- OptionButton.Parent = LinkValues
- OptionButton.BackgroundTransparency = 1.000
- OptionButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- OptionButton.BorderSizePixel = 0
- OptionButton.Size = UDim2.new(0, 15, 0, 15)
- OptionButton.ZIndex = GlobalBlock.ZIndex + 2
- OptionButton.Image = MarcoUI:CacheImage("rbxassetid://14007344336")
- OptionButton.ImageTransparency = 0.500
- OptionButton.LayoutOrder = -#LinkValues:GetChildren();
- UICorner.CornerRadius = UDim.new(1, 0)
- UICorner.Parent = OptionButton
- Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(OptionButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.500
- })
- else
- MarcoUI:_Animation(OptionButton,TweenInfo.new(0.15),{
- ImageTransparency = 1
- })
- end;
- end)
- MarcoUI:_Hover(OptionButton, function()
- if Signal:GetValue() then
- MarcoUI:_Animation(OptionButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.1
- })
- end;
- end , function()
- if Signal:GetValue() then
- MarcoUI:_Animation(OptionButton,TweenInfo.new(0.15),{
- ImageTransparency = 0.500
- })
- end;
- end)
- return OptionButton;
- end;
- end;
- function MarcoUI:_CreateBlock(Signal)
- local GlobalBlock = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local LinkValues = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- local BlockLine = Instance.new("Frame")
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(GlobalBlock);
- end;
- GlobalBlock.Name = MarcoUI:_RandomString()
- GlobalBlock.BackgroundTransparency = 1.000
- GlobalBlock.BorderColor3 = Color3.fromRGB(0, 0, 0)
- GlobalBlock.BorderSizePixel = 0
- GlobalBlock.Size = UDim2.new(1, -1, 0, 30)
- GlobalBlock.ZIndex = 10
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = GlobalBlock
- BlockText.AnchorPoint = Vector2.new(0, 0.5)
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 12, 0.5, 0)
- BlockText.Size = UDim2.new(1, -20, 0, 25)
- BlockText.ZIndex = 10
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = "Block"
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 14.000
- BlockText.TextTransparency = 0.300
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- LinkValues.Name = MarcoUI:_RandomString()
- LinkValues.Parent = GlobalBlock
- LinkValues.AnchorPoint = Vector2.new(1, 0.540000021)
- LinkValues.BackgroundTransparency = 1.000
- LinkValues.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LinkValues.BorderSizePixel = 0
- LinkValues.Position = UDim2.new(1, -12, 0.5, 0)
- LinkValues.Size = UDim2.new(1, 0, 0, 18)
- LinkValues.ZIndex = 11
- UIListLayout.Parent = LinkValues
- UIListLayout.FillDirection = Enum.FillDirection.Horizontal
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- UIListLayout.Padding = UDim.new(0, 8)
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = GlobalBlock
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = 12
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- local rep = {
- TextTransparency = 0.300,
- Root = GlobalBlock,
- Tween = TweenInfo.new(0.25),
- };
- function rep:SetText(Text)
- BlockText.Text = Text;
- end;
- function rep:GetText()
- return BlockText.Text;
- end;
- function rep:SetTextColor(Color)
- local oldIndex = table.find(MarcoUI.Elements.SwitchColor , BlockText);
- table.remove(MarcoUI.Elements.SwitchColor , oldIndex);
- BlockText.TextColor3 = Color;
- table.insert(MarcoUI.Elements.Risky , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- end;
- function rep:SetLine(visible)
- BlockLine.Visible = visible;
- if not visible then
- BlockLine.Parent = nil;
- else
- BlockLine.Parent = rep.Root;
- end;
- end;
- function rep:SetTransparency(num)
- rep.TextTransparency = num;
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.3),{
- TextTransparency = rep.TextTransparency
- });
- end;
- function rep:SetParent(parent: Frame)
- GlobalBlock.Parent = parent;
- local ZINDEX = parent.ZIndex;
- GlobalBlock.ZIndex = ZINDEX + 1;
- BlockText.ZIndex = ZINDEX + 2;
- LinkValues.ZIndex = ZINDEX + 2;
- BlockLine.ZIndex = ZINDEX + 2;
- end;
- function rep:SetVisible(bool)
- if bool then
- MarcoUI:_Animation(BlockText,rep.Tween,{
- TextTransparency = rep.TextTransparency
- });
- MarcoUI:_Animation(BlockLine,rep.Tween,{
- BackgroundTransparency = 0.500
- });
- else
- MarcoUI:_Animation(BlockText,rep.Tween,{
- TextTransparency = 1
- });
- MarcoUI:_Animation(BlockLine,rep.Tween,{
- BackgroundTransparency = 1
- });
- end;
- end;
- function rep:AddLink(Name , Default)
- return MarcoUI:_AddLinkValue(Name , Default , GlobalBlock , LinkValues , rep , Signal);
- end;
- return rep;
- end;
- MarcoUI.Hash = function(str: string)
- if typeof(str) ~= "string" then
- return "ck-unknow";
- end;
- local hex = #str;
- string.gsub(str,'.',function(byte)
- hex += byte:byte() + #str;
- end);
- local dh = string.match(str,'%d+');
- return "ck-"..tostring(math.round(hex + 15))..tostring(dh);
- end;
- function MarcoUI:CacheImage(id: string) : string
- if not MarcoUI.SecureMode or not id or not id:byte() then
- return id or "";
- end;
- assert(MarcoUI.SecureMode , "please use MarcoUI:Security(< string >) before cache image")
- assert(MarcoUI.CacheDirectory , "please use MarcoUI:Security(< string >) before cache image")
- local ids = string.match(id , "%d+");
- if ids == nil then
- return id;
- end;
- local Hash = MarcoUI.Hash(id);
- local cache_path = string.format("%s/cache-%s.png" ,MarcoUI.CacheDirectory , Hash);
- if isfile(cache_path) then
- return (getcustomasset or getsynasset or function() return ''; end)(cache_path);
- end;
- local imgSize = MarcoUI.SecurityConfig.ImageScale;
- local imagesize = (imgSize and string.format("%sx%s", tostring(math.round(imgSize)), tostring(math.round(imgSize)))) or "150x150"
- if imagesize == nil then
- return ''
- end;
- local endpoint = string.format(
- "https://thumbnails.roblox.com/v1/assets?assetIds=%s&size=%s&format=Png&isCircular=false",
- ids,
- imagesize
- );
- local json = game:HttpGet(endpoint);
- local JSON_Decode = select(2, pcall(function()
- return HttpService:JSONDecode(json);
- end));
- if typeof(JSON_Decode) == "table" and JSON_Decode and JSON_Decode.data and JSON_Decode.data[1] and JSON_Decode.data[1].imageUrl and JSON_Decode.data[1].state == "Completed" then task.wait()
- local en = JSON_Decode.data[1].imageUrl;
- writefile(cache_path , game:HttpGet(en));
- task.wait();
- return (getcustomasset or getsynasset or function() return ''; end)(cache_path);
- end;
- return "";
- end;
- function MarcoUI:PreloadIcons()
- local RequiredAssets = {
- "http://www.roblox.com/asset/?id=112554223509763",
- "rbxassetid://4805639000",
- "rbxassetid://6198493000",
- "rbxassetid://10709790948",
- "rbxassetid://18518299306",
- "rbxassetid://10747362393",
- "rbxassetid://18720640102",
- "rbxassetid://10723344270",
- "rbxassetid://109535175596957",
- "rbxassetid://10747384394",
- "rbxassetid://10734941499",
- MarcoUI.Logo,
- };
- if MarcoUI.SecureMode then
- for i,v in next , RequiredAssets do task.wait()
- pcall(function()
- MarcoUI:CacheImage(v);
- end);
- end;
- else
- local ContentProvider: ContentProvider = cloneref(game:GetService('ContentProvider'));
- for i,v in next , RequiredAssets do
- ContentProvider:Preload(v);
- end;
- end;
- end;
- function MarcoUI:Security(directory: string,Config: SecurityConfig) -- Security Mode
- directory = directory or "MarcoUI-Cache";
- if not isfolder(directory) then
- makefolder(directory);
- end;
- MarcoUI.SecureMode = true;
- MarcoUI.SecurityConfig = Config or {};
- MarcoUI.CacheDirectory = directory;
- end;
- function MarcoUI:_AddColorPickerPanel(Button: ImageButton , Callback: (Color: Color3) -> any?)
- local Window = MarcoUI:_GetWindowFromElement(Button);
- local BaseZ_Index = math.random(1,15) * 100;
- local ColorPickerWindow = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local ColorPickBox = Instance.new("ImageLabel")
- local MouseMovement = Instance.new("ImageLabel")
- local UICorner_2 = Instance.new("UICorner")
- local UIStroke_2 = Instance.new("UIStroke")
- local ColorRedGreenBlue = Instance.new("Frame")
- local UIGradient = Instance.new("UIGradient")
- local UICorner_3 = Instance.new("UICorner")
- local ColorRGBSlide = Instance.new("Frame")
- local Left = Instance.new("Frame")
- local UIStroke_3 = Instance.new("UIStroke")
- local Right = Instance.new("Frame")
- local UIStroke_4 = Instance.new("UIStroke")
- local ColorOpc = Instance.new("Frame")
- local UICorner_4 = Instance.new("UICorner")
- local ColorOptSlide = Instance.new("Frame")
- local Left_2 = Instance.new("Frame")
- local UIStroke_5 = Instance.new("UIStroke")
- local Right_2 = Instance.new("Frame")
- local UIStroke_6 = Instance.new("UIStroke")
- local UIGradient_2 = Instance.new("UIGradient")
- local UIStroke_7 = Instance.new("UIStroke")
- local TransparentImage = Instance.new("ImageLabel")
- local UICorner_5 = Instance.new("UICorner")
- local HexFrame = Instance.new("Frame")
- local UICorner_6 = Instance.new("UICorner")
- local UIStroke_8 = Instance.new("UIStroke")
- local TextLabel = Instance.new("TextLabel")
- ColorPickerWindow.Name = MarcoUI:_RandomString()
- ColorPickerWindow.Parent = Window
- ColorPickerWindow.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- ColorPickerWindow.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorPickerWindow.BorderSizePixel = 0
- ColorPickerWindow.Position = UDim2.new(123, 0, 123, 0)
- ColorPickerWindow.Size = UDim2.new(0, 175, 0, 200)
- ColorPickerWindow.ZIndex = BaseZ_Index
- ColorPickerWindow.AnchorPoint = Vector2.new(0.5,0)
- ColorPickerWindow.Active = true;
- table.insert(MarcoUI.Elements.BlockBackground,{
- Element = ColorPickerWindow,
- Property = "BackgroundColor3"
- });
- MarcoUI:_AddDragBlacklist(ColorPickerWindow)
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = ColorPickerWindow
- table.insert(MarcoUI.Elements.HighStrokeColor , {
- Element = UIStroke,
- Property = "Color"
- })
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = ColorPickerWindow
- ColorPickBox.Name = MarcoUI:_RandomString()
- ColorPickBox.Parent = ColorPickerWindow
- ColorPickBox.BackgroundColor3 = Color3.fromRGB(39, 255, 35)
- ColorPickBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorPickBox.BorderSizePixel = 0
- ColorPickBox.Position = UDim2.new(0, 7, 0, 7)
- ColorPickBox.Size = UDim2.new(0, 145, 0, 145)
- ColorPickBox.ZIndex = BaseZ_Index + 1
- ColorPickBox.Image = MarcoUI:CacheImage("http://www.roblox.com/asset/?id=112554223509763");
- MouseMovement.Name = MarcoUI:_RandomString()
- MouseMovement.Parent = ColorPickBox
- MouseMovement.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- MouseMovement.BackgroundTransparency = 1.000
- MouseMovement.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MouseMovement.BorderSizePixel = 0
- MouseMovement.Position = UDim2.new(0.822222233, 0, 0.0592592582, 0)
- MouseMovement.Size = UDim2.new(0, 12, 0, 12)
- MouseMovement.ZIndex = BaseZ_Index + 5
- MouseMovement.AnchorPoint = Vector2.new(0.5,0.5)
- MouseMovement.Image = MarcoUI:CacheImage("rbxassetid://4805639000")
- UICorner_2.CornerRadius = UDim.new(0, 2)
- UICorner_2.Parent = ColorPickBox
- UIStroke_2.Color = Color3.fromRGB(29, 29, 29)
- UIStroke_2.Parent = ColorPickBox
- ColorRedGreenBlue.Name = MarcoUI:_RandomString()
- ColorRedGreenBlue.Parent = ColorPickerWindow
- ColorRedGreenBlue.AnchorPoint = Vector2.new(1, 0)
- ColorRedGreenBlue.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- ColorRedGreenBlue.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorRedGreenBlue.BorderSizePixel = 0
- ColorRedGreenBlue.ClipsDescendants = true
- ColorRedGreenBlue.Position = UDim2.new(1, -7, 0, 7)
- ColorRedGreenBlue.Size = UDim2.new(0, 10, 0, 145)
- ColorRedGreenBlue.ZIndex = BaseZ_Index + 6
- UIGradient.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.10, Color3.fromRGB(255, 153, 0)), ColorSequenceKeypoint.new(0.20, Color3.fromRGB(203, 255, 0)), ColorSequenceKeypoint.new(0.30, Color3.fromRGB(50, 255, 0)), ColorSequenceKeypoint.new(0.40, Color3.fromRGB(0, 255, 102)), ColorSequenceKeypoint.new(0.50, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.60, Color3.fromRGB(0, 101, 255)), ColorSequenceKeypoint.new(0.70, Color3.fromRGB(50, 0, 255)), ColorSequenceKeypoint.new(0.80, Color3.fromRGB(204, 0, 255)), ColorSequenceKeypoint.new(0.90, Color3.fromRGB(255, 0, 153)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 0, 0))}
- UIGradient.Rotation = 90
- UIGradient.Parent = ColorRedGreenBlue
- UICorner_3.CornerRadius = UDim.new(1, 0)
- UICorner_3.Parent = ColorRedGreenBlue
- ColorRGBSlide.Name = MarcoUI:_RandomString()
- ColorRGBSlide.Parent = ColorRedGreenBlue
- ColorRGBSlide.AnchorPoint = Vector2.new(0.5, 0)
- ColorRGBSlide.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- ColorRGBSlide.BackgroundTransparency = 1.000
- ColorRGBSlide.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorRGBSlide.BorderSizePixel = 0
- ColorRGBSlide.Position = UDim2.new(0.5, 0, 0.5, 0)
- ColorRGBSlide.Size = UDim2.new(1, 0, 0, 2)
- ColorRGBSlide.ZIndex = BaseZ_Index + 7
- Left.Name = MarcoUI:_RandomString()
- Left.Parent = ColorRGBSlide
- Left.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Left.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Left.BorderSizePixel = 0
- Left.Size = UDim2.new(0, 2, 1, 0)
- Left.ZIndex = BaseZ_Index + 100
- UIStroke_3.Parent = Left
- Right.Name = MarcoUI:_RandomString()
- Right.Parent = ColorRGBSlide
- Right.AnchorPoint = Vector2.new(1, 0)
- Right.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Right.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Right.BorderSizePixel = 0
- Right.Position = UDim2.new(1, 0, 0, 0)
- Right.Size = UDim2.new(0, 2, 1, 0)
- Right.ZIndex = BaseZ_Index + 100
- UIStroke_4.Parent = Right
- ColorOpc.Name = MarcoUI:_RandomString()
- ColorOpc.Parent = ColorPickerWindow
- ColorOpc.BackgroundColor3 = Color3.fromRGB(102, 255, 0)
- ColorOpc.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorOpc.BorderSizePixel = 0
- ColorOpc.Position = UDim2.new(0, 7, 0, 160)
- ColorOpc.Size = UDim2.new(1, -30, 0, 9)
- ColorOpc.ZIndex = BaseZ_Index + 6
- UICorner_4.CornerRadius = UDim.new(1, 0)
- UICorner_4.Parent = ColorOpc
- ColorOptSlide.Name = MarcoUI:_RandomString()
- ColorOptSlide.Parent = ColorOpc
- ColorOptSlide.AnchorPoint = Vector2.new(0, 0.5)
- ColorOptSlide.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- ColorOptSlide.BackgroundTransparency = 1.000
- ColorOptSlide.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ColorOptSlide.BorderSizePixel = 0
- ColorOptSlide.Position = UDim2.new(0.5, 0, 0.5, 0)
- ColorOptSlide.Size = UDim2.new(0, 2, 1, 0)
- ColorOptSlide.ZIndex = BaseZ_Index + 7
- Left_2.Name = MarcoUI:_RandomString()
- Left_2.Parent = ColorOptSlide
- Left_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Left_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Left_2.BorderSizePixel = 0
- Left_2.Size = UDim2.new(1, 0, 0, 2)
- Left_2.ZIndex = BaseZ_Index + 100
- UIStroke_5.Parent = Left_2
- Right_2.Name = MarcoUI:_RandomString()
- Right_2.Parent = ColorOptSlide
- Right_2.AnchorPoint = Vector2.new(0, 1)
- Right_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Right_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Right_2.BorderSizePixel = 0
- Right_2.Position = UDim2.new(0, 0, 1, 0)
- Right_2.Size = UDim2.new(1, 0, 0, 2)
- Right_2.ZIndex = BaseZ_Index + 100
- UIStroke_6.Parent = Right_2
- UIGradient_2.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0.00, 0.00), NumberSequenceKeypoint.new(1.00, 1.00)}
- UIGradient_2.Parent = ColorOpc
- UIStroke_7.Transparency = 0.500
- UIStroke_7.Color = Color3.fromRGB(29, 29, 29)
- UIStroke_7.Parent = ColorOpc
- TransparentImage.Name = MarcoUI:_RandomString()
- TransparentImage.Parent = ColorOpc
- TransparentImage.BackgroundTransparency = 1.000
- TransparentImage.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TransparentImage.BorderSizePixel = 0
- TransparentImage.Size = UDim2.new(1, 0, 1, 0)
- TransparentImage.ZIndex = BaseZ_Index + 5
- TransparentImage.Image = MarcoUI:CacheImage("rbxassetid://6198493000")
- TransparentImage.ImageColor3 = Color3.fromRGB(206, 206, 206)
- TransparentImage.ScaleType = Enum.ScaleType.Crop
- UICorner_5.CornerRadius = UDim.new(1, 0)
- UICorner_5.Parent = TransparentImage
- HexFrame.Name = MarcoUI:_RandomString()
- HexFrame.Parent = ColorPickerWindow
- HexFrame.AnchorPoint = Vector2.new(0.5, 1)
- HexFrame.BackgroundColor3 = MarcoUI.Colors.BlockColor
- HexFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- HexFrame.BorderSizePixel = 0
- HexFrame.Position = UDim2.new(0.5, 0, 1, -5)
- HexFrame.Size = UDim2.new(1, -16, 0, 20)
- HexFrame.ZIndex = BaseZ_Index + 205
- table.insert(MarcoUI.Elements.BlockColor,{
- Element = HexFrame,
- Property = "BackgroundColor3"
- });
- UICorner_6.CornerRadius = UDim.new(0, 4)
- UICorner_6.Parent = HexFrame
- UIStroke_8.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke_8.Parent = HexFrame
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke_8,
- Property = "Color"
- });
- TextLabel.Parent = HexFrame
- TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextLabel.Size = UDim2.new(1, -10, 1, -5)
- TextLabel.ZIndex = BaseZ_Index + 206
- TextLabel.Font = Enum.Font.Gotham
- TextLabel.Text = "#FFFFFFF"
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 13.000
- TextLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- local Args = {
- IsHold = false,
- IsVisible = false,
- };
- local Tween = TweenInfo.new(0.2 , Enum.EasingStyle.Quad);
- local Tween2 = TweenInfo.new(0.275 , Enum.EasingStyle.Quad);
- MarcoUI:_AddPropertyEvent(ColorPickerWindow,function(v)
- ColorPickerWindow.Visible = v;
- if MarcoUI.PerformanceMode then
- if ColorPickerWindow.Visible then
- MarcoUI:_SetNilP(ColorPickerWindow , Window);
- else
- MarcoUI:_SetNilP(ColorPickerWindow , nil);
- end;
- else
- MarcoUI:_SetNilP(ColorPickerWindow , Window);
- end;
- end)
- local ToggleUI = function(bool)
- local IsSame = Args.IsVisible == bool;
- Args.IsVisible = bool;
- local MainPosition = UDim2.new(0,Button.AbsolutePosition.X + 95,0,Button.AbsolutePosition.Y + 65);
- local DropPosition = UDim2.new(0,MainPosition.X.Offset,0,MainPosition.Y.Offset + 15);
- local MUL = Window.AbsoluteSize.Y / 2;
- if MainPosition.Y.Offset > MUL then -- go up
- MainPosition = UDim2.fromOffset(Button.AbsolutePosition.X,Button.AbsolutePosition.Y + 45);
- DropPosition = UDim2.fromOffset(MainPosition.X.Offset,MainPosition.Y.Offset - 25);
- ColorPickerWindow.AnchorPoint = Vector2.new(0.5,1)
- else
- ColorPickerWindow.AnchorPoint = Vector2.new(0.5,0)
- end;
- if bool then
- if not IsSame then
- ColorPickerWindow.Position = DropPosition
- end;
- MarcoUI:_Animation(ColorPickerWindow,Tween2,{
- BackgroundTransparency = 0,
- Size = UDim2.new(0, 175, 0, 200)
- });
- MarcoUI:_Animation(ColorPickerWindow,Tween,{
- Position = MainPosition,
- });
- MarcoUI:_Animation(UIStroke_8,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke_7,Tween,{
- Transparency = 0.5
- });
- MarcoUI:_Animation(UIStroke_6,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke_5,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke_4,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke_3,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(ColorPickBox,Tween,{
- BackgroundTransparency = 0,
- ImageTransparency = 0
- });
- MarcoUI:_Animation(MouseMovement,Tween,{
- ImageTransparency = 0
- });
- MarcoUI:_Animation(ColorOpc,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(TransparentImage,Tween,{
- ImageTransparency = 0
- });
- MarcoUI:_Animation(Left,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(Left_2,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(Right,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(Right_2,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(ColorRedGreenBlue,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(HexFrame,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(UIStroke_8,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_7,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_6,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_5,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_4,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_3,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(ColorPickerWindow,Tween2,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(ColorPickerWindow,Tween,{
- Position = DropPosition,
- });
- MarcoUI:_Animation(ColorPickBox,Tween,{
- BackgroundTransparency = 1,
- ImageTransparency = 1
- });
- MarcoUI:_Animation(MouseMovement,Tween,{
- ImageTransparency = 1
- });
- MarcoUI:_Animation(ColorOpc,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(TransparentImage,Tween,{
- ImageTransparency = 1
- });
- MarcoUI:_Animation(Left,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(Left_2,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(Right,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(Right_2,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(ColorRedGreenBlue,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(HexFrame,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextTransparency = 1
- });
- end;
- end;
- Button.MouseButton1Click:Connect(function()
- ToggleUI(true);
- end)
- local H , S , V = 0,0,0;
- local Transparency = 0;
- function Args:SetColor(Color: Color3 , TransparencyValue: number)
- H , S , V = Color:ToHSV();
- Transparency = TransparencyValue;
- end;
- function Args:Update()
- local MainColor = Color3.fromHSV(H , S , 1);
- local RealColor = Color3.fromHSV(H , S , V);
- MarcoUI:_Animation(ColorPickBox,TweenInfo.new(0.2),{
- BackgroundColor3 = Color3.fromHSV(H , 1 , 1)
- });
- MarcoUI:_Animation(ColorOpc,TweenInfo.new(0.2),{
- BackgroundColor3 = RealColor
- });
- MarcoUI:_Animation(MouseMovement,TweenInfo.new(0.2),{
- Position = UDim2.fromScale(S , 1 - V)
- });
- MarcoUI:_Animation(ColorOptSlide,TweenInfo.new(0.2),{
- Position = UDim2.new(Transparency ,0 , 0.5 ,0)
- });
- MarcoUI:_Animation(ColorRGBSlide,TweenInfo.new(0.2),{
- Position = UDim2.new(0.5 ,0 , H ,0)
- });
- TextLabel.Text = "#" .. tostring(RealColor:ToHex())
- Callback(RealColor , Transparency);
- end;
- local SPAWN_THREAD;
- -- Find parent section for interaction locking
- local parentSection = Button;
- while parentSection and not parentSection:GetAttribute("IsSection") do
- parentSection = parentSection.Parent;
- if not parentSection or parentSection:IsA("ScreenGui") then
- parentSection = nil;
- break;
- end;
- end;
- ColorPickerWindow.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- Args.IsHold = true;
- -- Lock interaction to this section
- if parentSection then
- MarcoUI:_SetInteractionLock(parentSection, true);
- end;
- if SPAWN_THREAD then
- task.cancel(SPAWN_THREAD);
- SPAWN_THREAD = nil;
- end;
- SPAWN_THREAD = task.spawn(function()
- while true do task.wait(0.00001)
- if not Args.IsHold then
- break;
- end;
- Callback(Color3.fromHSV(H , S , V),Transparency);
- end;
- end);
- end;
- end)
- ColorPickerWindow.InputEnded:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- Args.IsHold = false;
- -- Unlock interaction
- if parentSection then
- MarcoUI:_SetInteractionLock(parentSection, false);
- end;
- if SPAWN_THREAD then
- task.cancel(SPAWN_THREAD);
- SPAWN_THREAD = nil;
- end;
- end;
- end)
- UserInputService.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- if not MarcoUI:_IsMouseOverFrame(ColorPickerWindow) then
- ToggleUI(false);
- end;
- end;
- end)
- ColorRedGreenBlue.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- Args.IsHold = true;
- while (UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) or Args.IsHold) do task.wait()
- local ColorY = ColorRedGreenBlue.AbsolutePosition.Y
- local ColorYM = ColorY + ColorRedGreenBlue.AbsoluteSize.Y;
- local Value = math.clamp(Mouse.Y, ColorY, ColorYM)
- local Code = ((Value - ColorY) / (ColorYM - ColorY));
- H = Code;
- Args:Update();
- end;
- end;
- end);
- ColorOpc.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- Args.IsHold = true;
- while (UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) or Args.IsHold) do task.wait()
- local transparency = math.clamp((((Mouse.X) - ColorOpc.AbsolutePosition.X) / ColorOpc.AbsoluteSize.X), 0, 1);
- local RealColor = Color3.fromHSV(H , S , V);
- TextLabel.Text = "#" .. tostring(RealColor:ToHex())
- Transparency = transparency;
- Args:Update();
- end;
- end;
- end);
- ColorPickBox.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- Args.IsHold = true;
- while (UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) or Args.IsHold) do task.wait();
- local PosX = ColorPickBox.AbsolutePosition.X
- local ScaleX = PosX + ColorPickBox.AbsoluteSize.X
- local Value, PosY = math.clamp(Mouse.X, PosX, ScaleX), ColorPickBox.AbsolutePosition.Y
- local ScaleY = PosY + ColorPickBox.AbsoluteSize.Y
- local Vals = math.clamp(Mouse.Y, PosY, ScaleY)
- local RealColor = Color3.fromHSV(H , S , V);
- S = (Value - PosX) / (ScaleX - PosX);
- V = (1 - ((Vals - PosY) / (ScaleY - PosY)));
- TextLabel.Text = "#" .. tostring(RealColor:ToHex())
- Args:Update();
- end
- end
- end)
- return Args;
- end;
- function MarcoUI:_DrawKeybinds(Window: ScreenGui)
- if MarcoUI.__KEYBINDS_CACHE then
- return MarcoUI.__KEYBINDS_CACHE;
- end;
- local Keybinds = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local IconFrame = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local Frame = Instance.new("Frame")
- local Icon = Instance.new("ImageLabel")
- local HeaderFrame = Instance.new("Frame")
- local HeadLabel = Instance.new("TextLabel")
- local MainFrame = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- local MovingFrame = Instance.new("Frame")
- Keybinds.Name = MarcoUI:_RandomString()
- Keybinds.Parent = Window
- Keybinds.BackgroundColor3 = MarcoUI.Colors.BGDBColor;
- Keybinds.BackgroundTransparency = 0.025
- Keybinds.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Keybinds.BorderSizePixel = 0
- Keybinds.Position = UDim2.new(0,100,0,100)
- Keybinds.Size = UDim2.new(0, 125, 0, 25)
- Keybinds.ZIndex = 150
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = Keybinds,
- Property = 'BackgroundColor3'
- });
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Keybinds
- IconFrame.Name = MarcoUI:_RandomString()
- IconFrame.Parent = Keybinds
- IconFrame.AnchorPoint = Vector2.new(1, 0.5)
- IconFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- IconFrame.BackgroundTransparency = 0.300
- IconFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- IconFrame.BorderSizePixel = 0
- IconFrame.Position = UDim2.new(0, 5, 0.5, 0)
- IconFrame.Size = UDim2.new(1, 10, 1, 0)
- IconFrame.SizeConstraint = Enum.SizeConstraint.RelativeYY
- IconFrame.ZIndex = 149
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = IconFrame,
- Property = 'BackgroundColor3'
- });
- UICorner_2.CornerRadius = UDim.new(0, 3)
- UICorner_2.Parent = IconFrame
- Frame.Parent = IconFrame
- Frame.AnchorPoint = Vector2.new(0, 0.5)
- Frame.BackgroundColor3 = MarcoUI.Colors.Highlight;
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(1, -5, 0.5, 0)
- Frame.Size = UDim2.new(0, 2, 1, 0)
- Frame.ZIndex = 151
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame,
- Property = 'BackgroundColor3'
- });
- Icon.Name = self:_RandomString()
- Icon.Parent = IconFrame
- Icon.AnchorPoint = Vector2.new(0.5, 0.5)
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0.5, -2, 0.5, 0)
- Icon.Size = UDim2.new(0, 20, 0, 20)
- Icon.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Icon.ZIndex = 159
- Icon.Image = MarcoUI:CacheImage("rbxassetid://10723416765");
- HeaderFrame.Name = MarcoUI:_RandomString()
- HeaderFrame.Parent = Keybinds
- HeaderFrame.AnchorPoint = Vector2.new(0.5, 0)
- HeaderFrame.BackgroundTransparency = 1.000
- HeaderFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- HeaderFrame.BorderSizePixel = 0
- HeaderFrame.ClipsDescendants = true
- HeaderFrame.Position = UDim2.new(0.5, 0, 0, 0)
- HeaderFrame.Size = UDim2.new(1, -10, 1, 0)
- HeaderFrame.ZIndex = 155
- HeadLabel.Name = MarcoUI:_RandomString()
- HeadLabel.Parent = HeaderFrame
- HeadLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- HeadLabel.BackgroundTransparency = 1.000
- HeadLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- HeadLabel.BorderSizePixel = 0
- HeadLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- HeadLabel.Size = UDim2.new(1, -10, 1, 0)
- HeadLabel.ZIndex = 156
- HeadLabel.Font = Enum.Font.GothamMedium
- HeadLabel.Text = "Keybinds"
- HeadLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- HeadLabel.TextSize = 12.000
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = HeadLabel,
- Property = 'TextColor3'
- });
- MainFrame.Name = MarcoUI:_RandomString()
- MainFrame.Parent = Keybinds
- MainFrame.AnchorPoint = Vector2.new(1, 0)
- MainFrame.BackgroundTransparency = 1.000
- MainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MainFrame.BorderSizePixel = 0
- MainFrame.Position = UDim2.new(1, 0, 1, 5)
- MainFrame.Size = UDim2.new(1, 30, 1, 3)
- MainFrame.ZIndex = 156;
- MainFrame.ClipsDescendants = true;
- UIListLayout.Parent = MainFrame
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 5)
- MovingFrame.Name = MarcoUI:_RandomString()
- MovingFrame.Parent = Keybinds
- MovingFrame.AnchorPoint = Vector2.new(1, 0.5)
- MovingFrame.BackgroundTransparency = 1.000
- MovingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MovingFrame.BorderSizePixel = 0
- MovingFrame.Position = UDim2.new(1, 0, 0.5, 0)
- MovingFrame.Size = UDim2.new(1, 30, 1, 0)
- MarcoUI:Drag(MovingFrame,Keybinds,0.1);
- local Ref = {
- Root = Keybinds
- };
- Ref.THREAD = task.spawn(function()
- while true do task.wait()
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.4),{
- Size = UDim2.new(1, 30, 1, UIListLayout.AbsoluteContentSize.Y + 1)
- });
- if UIListLayout.AbsoluteContentSize.Y > 1 then
- MarcoUI:_Animation(IconFrame,TweenInfo.new(0.25),{
- BackgroundTransparency = 0.3
- })
- MarcoUI:_Animation(Frame,TweenInfo.new(0.25),{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(HeadLabel,TweenInfo.new(0.25),{
- TextTransparency = 0
- })
- MarcoUI:_Animation(Icon,TweenInfo.new(0.25),{
- ImageTransparency = 0
- });
- local LargF = 100;
- for i,v in next , MainFrame:GetChildren() do
- if v:GetAttribute('AvgScale') then
- if v:GetAttribute('AvgScale') > LargF then
- LargF = v:GetAttribute('AvgScale');
- end;
- end;
- end;
- MarcoUI:_Animation(Keybinds,TweenInfo.new(0.25),{
- BackgroundTransparency = 0.025,
- Size = UDim2.new(0, LargF, 0, 25)
- })
- else
- MarcoUI:_Animation(HeadLabel,TweenInfo.new(0.25),{
- TextTransparency = 1
- })
- MarcoUI:_Animation(Keybinds,TweenInfo.new(0.25),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(IconFrame,TweenInfo.new(0.25),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(Frame,TweenInfo.new(0.25),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(Icon,TweenInfo.new(0.25),{
- ImageTransparency = 1
- });
- end;
- Keybinds.Visible = (Keybinds.BackgroundTransparency < 0.9 and true) or false;
- if MarcoUI.PerformanceMode then
- if Keybinds.Visible then
- MarcoUI:_SetNilP(Keybinds , Window);
- else
- MarcoUI:_SetNilP(Keybinds , nil);
- end;
- else
- MarcoUI:_SetNilP(Keybinds , Window);
- end;
- end;
- end);
- function Ref:AddFrame()
- local Keyholder = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local Label = Instance.new("TextLabel")
- local Line = Instance.new("Frame")
- local TypeLabel = Instance.new("TextLabel")
- local UICorner_2 = Instance.new("UICorner")
- Keyholder.Name = MarcoUI:_RandomString()
- Keyholder.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- Keyholder.BackgroundTransparency = 1
- Keyholder.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Keyholder.BorderSizePixel = 0
- Keyholder.Size = UDim2.new(1, 0, 0, 28)
- Keyholder.ZIndex = MainFrame.ZIndex + 3
- Keyholder.ClipsDescendants = true;
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = Keyholder,
- Property = 'BackgroundColor3'
- });
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Keyholder
- Label.Name = MarcoUI:_RandomString()
- Label.Parent = Keyholder
- Label.AnchorPoint = Vector2.new(0.5, 0.5)
- Label.BackgroundTransparency = 1.000
- Label.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Label.BorderSizePixel = 0
- Label.Position = UDim2.new(0.5, 0, 0.5, 0)
- Label.Size = UDim2.new(1, -10, 1, 0)
- Label.ZIndex = MainFrame.ZIndex + 5;
- Label.Font = Enum.Font.GothamMedium
- Label.TextColor3 = MarcoUI.Colors.SwitchColor
- Label.TextSize = 11.000
- Label.TextTransparency = 1
- Label.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = Label,
- Property = 'TextColor3'
- });
- Line.Name = MarcoUI:_RandomString()
- Line.Parent = Keyholder
- Line.AnchorPoint = Vector2.new(1, 0.5)
- Line.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- Line.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Line.BorderSizePixel = 0
- Line.Position = UDim2.new(1, 0, 0.5, 0)
- Line.Size = UDim2.new(0, 30, 1, 0)
- Line.ZIndex = MainFrame.ZIndex + 4
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = Line,
- Property = 'BackgroundColor3'
- });
- TypeLabel.Name = MarcoUI:_RandomString()
- TypeLabel.Parent = Line
- TypeLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TypeLabel.BackgroundTransparency = 1.000
- TypeLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TypeLabel.BorderSizePixel = 0
- TypeLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- TypeLabel.Size = UDim2.new(1, 0, 1, 0)
- TypeLabel.ZIndex = MainFrame.ZIndex + 6
- TypeLabel.Font = Enum.Font.GothamMedium
- TypeLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TypeLabel.TextSize = 11.000
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = TypeLabel,
- Property = 'TextColor3'
- });
- UICorner_2.CornerRadius = UDim.new(0, 3)
- UICorner_2.Parent = Line
- local UpdateScale = function()
- local t = TextService:GetTextSize(TypeLabel.Text , TypeLabel.TextSize , TypeLabel.Font , Vector2.new(math.huge,math.huge));
- local z = TextService:GetTextSize(Label.Text , Label.TextSize , Label.Font , Vector2.new(math.huge,math.huge));
- Line.Size = UDim2.new(0, t.X + 5, 1, 0);
- Keyholder:SetAttribute('AvgScale',(t.X + z.X) + 55);
- end;
- UpdateScale();
- local frame_ref = {};
- function frame_ref:SetName(str: string)
- Label.Text = str or Label.Text;
- UpdateScale();
- end;
- function frame_ref:SetType(str: string)
- TypeLabel.Text = str or TypeLabel.Text;
- UpdateScale();
- end;
- function frame_ref:SetVisible(v)
- if v then
- MarcoUI:_Animation(Keyholder,TweenInfo.new(0.1),{
- BackgroundTransparency = 0.600,
- Size = UDim2.new(1, 0, 0, 28)
- });
- MarcoUI:_Animation(Label,TweenInfo.new(0.15),{
- TextTransparency = 0.100
- });
- MarcoUI:_Animation(Line,TweenInfo.new(0.15),{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(TypeLabel,TweenInfo.new(0.15),{
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(Keyholder,TweenInfo.new(0.1),{
- BackgroundTransparency = 1,
- Size = UDim2.new(1, 0, 0, 0)
- });
- MarcoUI:_Animation(Label,TweenInfo.new(0.15),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(Line,TweenInfo.new(0.15),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(TypeLabel,TweenInfo.new(0.15),{
- TextTransparency = 1
- });
- end;
- if Keyholder.BackgroundTransparency <= 0.95 then
- Keyholder.Parent = MainFrame;
- else
- Keyholder.Parent = nil;
- end;
- UpdateScale();
- end;
- return frame_ref;
- end;
- MarcoUI.__KEYBINDS_CACHE = Ref;
- return Ref;
- end;
- function MarcoUI:_KeybindHandler(Parent: Frame , ObjectType: string , ElementAPI: Toggle & Slider , Signal , Zindex: number , ElementCFG: Slider)
- local Window = MarcoUI:_GetWindowFromElement(Parent);
- local KB_Signal = MarcoUI.__SIGNAL(false);
- local SubIndex = math.random(40,100);
- local KeybindInd = MarcoUI:_DrawKeybinds(Window);
- local KeybindFrame = KeybindInd:AddFrame();
- local KeybindHandler = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local ElementObjs = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- KeybindHandler.Name = MarcoUI:_RandomString()
- KeybindHandler.Parent = Window
- KeybindHandler.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- KeybindHandler.BorderColor3 = Color3.fromRGB(0, 0, 0)
- KeybindHandler.BorderSizePixel = 0
- KeybindHandler.ClipsDescendants = true
- KeybindHandler.Position = UDim2.new(1,999,1,999)
- KeybindHandler.Size = UDim2.new(0, 225, 0, 0)
- KeybindHandler.ZIndex = Zindex + SubIndex
- KeybindHandler.AnchorPoint = Vector2.new(0.5,0)
- table.insert(MarcoUI.Elements.BlockBackground,{
- Element = KeybindHandler,
- Property = 'BackgroundColor3'
- });
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = KeybindHandler
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke,
- Property = 'Color'
- });
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = KeybindHandler
- ElementObjs.Name = MarcoUI:_RandomString()
- ElementObjs.Parent = KeybindHandler
- ElementObjs.AnchorPoint = Vector2.new(0.5, 0.5)
- ElementObjs.BackgroundTransparency = 1.000
- ElementObjs.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ElementObjs.BorderSizePixel = 0
- ElementObjs.Position = UDim2.new(0.5, 0, 0.5, 0)
- ElementObjs.Size = UDim2.new(1, -5, 1, -5)
- ElementObjs.ZIndex = Zindex + SubIndex + 10
- UIListLayout.Parent = ElementObjs
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- local refreshPF = function()
- if MarcoUI.PerformanceMode then
- if KeybindHandler.Size.Y.Offset > 1 then
- MarcoUI:_SetNilP(KeybindHandler , Window);
- else
- MarcoUI:_SetNilP(KeybindHandler , nil);
- end;
- else
- MarcoUI:_SetNilP(KeybindHandler , Window);
- end;
- end;
- KeybindHandler:GetPropertyChangedSignal('Size'):Connect(refreshPF);
- task.delay(0.1,refreshPF);
- local ToggleUI = function(bool)
- if bool then
- KeybindHandler.Position = UDim2.new(0,Parent.AbsolutePosition.X + 225,0,Parent.AbsolutePosition.Y)
- MarcoUI:_Animation(KeybindHandler,TweenInfo.new(0.25),{
- BackgroundTransparency = 0,
- Size = UDim2.new(0, 225, 0, UIListLayout.AbsoluteContentSize.Y + 5)
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.3),{
- Transparency = 0
- });
- else
- MarcoUI:_Animation(KeybindHandler,TweenInfo.new(0.3),{
- BackgroundTransparency = 1,
- Size = UDim2.new(0, 225, 0, 0)
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.3),{
- Transparency = 1
- });
- end;
- end;
- ToggleUI(false);
- KB_Signal:Connect(ToggleUI);
- local APIRef = {
- Name = ElementAPI:GetText()
- };
- local ModeEnum = {
- [1] = 'Off', -- disabled / off
- [2] = "Hold",
- [3] = "Toggle",
- [4] = "On", -- alway on
- };
- local e_m = {
- ['Off'] = 1,
- ['Hold'] = 2,
- ['Toggle'] = 3,
- ['On'] = 4,
- };
- if ObjectType == "Toggle" then
- APIRef.Off = false;
- APIRef.On = true;
- APIRef.Keybind = nil;
- APIRef.Mode = e_m.Off;
- elseif ObjectType == "Number" then
- APIRef.Off = 1;
- APIRef.On = 0;
- APIRef.Keybind = nil;
- APIRef.Mode = e_m.Off;
- end;
- local Flag = {};
- APIRef.Update = function()
- KeybindFrame:SetName(APIRef.Name);
- KeybindFrame:SetType(ModeEnum[APIRef.Mode]);
- end
- local ElementAPIs = MarcoUI:_LoadElement(ElementObjs , true , KB_Signal , true);
- Flag.Key = ElementAPIs:AddKeybind({
- Name = "Key",
- Default = APIRef.Keybind,
- Callback = function(v)
- APIRef.Keybind = v;
- end,
- });
- Flag.Mode = ElementAPIs:AddDropdown({
- Name = "Mode",
- Default = ModeEnum[APIRef.Mode],
- Values = ModeEnum,
- Callback = function(v)
- APIRef.Mode = e_m[v];
- if APIRef.Mode == 4 then
- ElementAPI:SetValue(APIRef.On);
- end;
- end,
- });
- if ObjectType == "Toggle" then
- Flag.On = ElementAPIs:AddToggle({
- Name = "ON Value",
- Default = APIRef.On,
- Callback = function(v)
- APIRef.On = v;
- end,
- });
- Flag.Off = ElementAPIs:AddToggle({
- Name = "OFF Value",
- Default = APIRef.Off,
- Callback = function(v)
- APIRef.Off = v;
- end,
- });
- elseif ObjectType == "Number" then
- Flag.On = ElementAPIs:AddSlider({
- Name = "ON Value",
- Default = APIRef.On,
- Min = ElementCFG.Min,
- Round = ElementCFG.Round,
- Max = ElementCFG.Max,
- Type = ElementCFG.Type,
- Callback = function(v)
- APIRef.On = v;
- end,
- });
- Flag.Off = ElementAPIs:AddSlider({
- Name = "OFF Value",
- Default = APIRef.Off,
- Min = ElementCFG.Min,
- Round = ElementCFG.Round,
- Max = ElementCFG.Max,
- Type = ElementCFG.Type,
- Callback = function(v)
- APIRef.Off = v;
- end,
- });
- end;
- Flag.ShowInKeybindList = ElementAPIs:AddTextBox({
- Name = "Name",
- Default = APIRef.Name,
- Placeholder = "Keybind Name",
- Callback = function(v)
- APIRef.Name = v;
- end,
- })
- function APIRef:GetSettings()
- APIRef.Update();
- return {
- Key = APIRef.Keybind,
- On = APIRef.On,
- Off = APIRef.Off,
- Mode = APIRef.Mode,
- Name = APIRef.Name,
- };
- end;
- function APIRef:LoadSettings(cfg : KeybindSettings)
- Flag.ShowInKeybindList:SetValue(cfg.Name);
- Flag.Off:SetValue(cfg.Off);
- Flag.On:SetValue(cfg.On);
- Flag.Mode:SetValue(ModeEnum[cfg.Mode]);
- Flag.Key:SetValue(cfg.Key);
- APIRef.Update();
- end;
- APIRef.Thread = task.spawn(function()
- while true do task.wait(0.01)
- if APIRef.Mode ~= 1 then
- if ElementAPI:GetValue() == APIRef.On then
- KeybindFrame:SetVisible(true);
- else
- KeybindFrame:SetVisible(false);
- end;
- APIRef.Update();
- else
- KeybindFrame:SetVisible(false);
- end;
- end;
- end)
- Parent.InputEnded:Connect(function(Input,Typing)
- if Input.UserInputType == Enum.UserInputType.MouseButton2 and not Typing then
- KB_Signal:Fire(true);
- end;
- end);
- UserInputService.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.MouseButton2 or Input.UserInputType == Enum.UserInputType.Touch then
- if not MarcoUI:_IsMouseOverFrame(Parent) and not MarcoUI:_IsMouseOverFrame(KeybindHandler) then
- KB_Signal:Fire(false);
- end;
- end;
- end);
- UserInputService.InputBegan:Connect(function(Input,Typing)
- if Input.KeyCode.Name == APIRef.Keybind or Input.KeyCode == APIRef.Keybind or (Input.UserInputType == Enum.UserInputType.MouseButton1 and APIRef.Keybind == "MouseLeft") or (Input.UserInputType == Enum.UserInputType.MouseButton2 and APIRef.Keybind == "MouseRight") then
- if APIRef.Mode == 2 or APIRef.Mode == 4 then
- ElementAPI:SetValue(APIRef.On);
- elseif APIRef.Mode == 3 then
- if ElementAPI:GetValue() == APIRef.On then
- ElementAPI:SetValue(APIRef.Off);
- else
- ElementAPI:SetValue(APIRef.On);
- end;
- end;
- end;
- end);
- UserInputService.InputEnded:Connect(function(Input,Typing)
- if Input.KeyCode.Name == APIRef.Keybind or Input.KeyCode == APIRef.Keybind or (Input.UserInputType == Enum.UserInputType.MouseButton1 and APIRef.Keybind == "MouseLeft") or (Input.UserInputType == Enum.UserInputType.MouseButton2 and APIRef.Keybind == "MouseRight") then
- if APIRef.Mode == 2 then
- ElementAPI:SetValue(APIRef.Off);
- elseif APIRef.Mode == 4 then
- ElementAPI:SetValue(APIRef.On);
- end;
- end;
- end);
- return APIRef;
- end;
- function MarcoUI:_AddPropertyEvent(Target: Frame , Callback: (boolean) -> any)
- Target:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
- Callback(Target.BackgroundTransparency <= 0.9)
- end)
- end;
- function MarcoUI:_LoadOption(Value , TabSignal)
- local Args = {};
- local Window = MarcoUI:_GetWindowFromElement(Value.Root);
- local Tween = TweenInfo.new(0.3,Enum.EasingStyle.Quint);
- function Args:AddKeybind(Config: MiniKeybind)
- Config = MarcoUI.__CONFIG(Config,{
- Name = "Keybind",
- Default = nil,
- Flag = nil,
- Callback = function() end;
- Blacklist = {}
- });
- local Keybind = Value:AddLink('Keybind' , Config.Default);
- local IsBinding = false;
- local IsBlacklist = function(v)
- return Config.Blacklist and (Config.Blacklist[v] or table.find(Config.Blacklist,v))
- end;
- MarcoUI:_Input(Keybind.Root,function()
- if IsBinding then
- return;
- end;
- Keybind.SetValue("...");
- local Selected = nil;
- while not Selected do
- local Key = UserInputService.InputBegan:Wait();
- if Key.KeyCode ~= Enum.KeyCode.Unknown and not IsBlacklist(Key.KeyCode) and not IsBlacklist(Key.KeyCode.Name) then
- Selected = Key.KeyCode;
- else
- if Key.UserInputType == Enum.UserInputType.MouseButton1 and not IsBlacklist(Enum.UserInputType.MouseButton1) and not IsBlacklist("MouseLeft") then
- Selected = "MouseLeft";
- elseif Key.UserInputType == Enum.UserInputType.MouseButton2 and not IsBlacklist(Enum.UserInputType.MouseButton2) and not IsBlacklist("MouseRight") then
- Selected = "MouseRight";
- end;
- end;
- end;
- local KeyName = (typeof(Selected) == "string" and Selected) or Selected.Name;
- Config.Default = KeyName;
- Keybind.SetValue(Selected);
- IsBinding = false;
- Config.Callback(KeyName);
- end);
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(value)
- Config.Default = value;
- Keybind.SetValue(Config.Default);
- Config.Callback(Config.Default);
- end;
- function Args:GetValue()
- return (typeof(Config.Default) == "string" and Config.Default) or Config.Default.Name;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddHelper(Config: Helper)
- Config = MarcoUI.__CONFIG(Config,{
- Text = "Information."
- });
- local Helper = Value:AddLink("Helper" , Config.Default);
- local Button: ImageButton = Helper.InfoButton;
- Helper.Text.Parent = Window;
- Helper.UIStroke:GetPropertyChangedSignal('Transparency'):Connect(function()
- if Helper.UIStroke.Transparency > 0.9 then
- Helper.Text.Visible = false;
- else
- Helper.Text.Visible = true;
- end;
- if MarcoUI.PerformanceMode then
- if Helper.Text.Visible then
- MarcoUI:_SetNilP(Helper.Text , Window);
- else
- MarcoUI:_SetNilP(Helper.Text , nil);
- end;
- else
- MarcoUI:_SetNilP(Helper.Text , Window);
- end;
- end)
- local Update = function()
- local mainText = " "..Config.Text;
- mainText = string.gsub(mainText,'\n','\n ')
- Helper.Text.Text = mainText;
- local scale = TextService:GetTextSize(Helper.Text.Text,Helper.Text.TextSize,Helper.Text.Font,Vector2.new(math.huge,math.huge));
- MarcoUI:_Animation(Helper.Text , TweenInfo.new(0.15), {
- Size = UDim2.fromOffset(scale.X + 50, scale.Y + 5)
- })
- return scale;
- end;
- local Release = function()
- local scale = Update()
- MarcoUI:_Animation(Helper.Text,TweenInfo.new(0.15),{
- TextTransparency = 1,
- BackgroundTransparency = 1,
- Position = UDim2.fromOffset(Button.AbsolutePosition.X,Button.AbsolutePosition.Y + (45))
- });
- MarcoUI:_Animation(Helper.UIStroke,TweenInfo.new(0.15),{
- Transparency = 1
- });
- end;
- local Hold = function()
- local scale = Update()
- if not Helper.Text.Visible then
- Helper.Text.Position = UDim2.fromOffset(Button.AbsolutePosition.X,Button.AbsolutePosition.Y + (45))
- end;
- MarcoUI:_Animation(Helper.Text,TweenInfo.new(0.15),{
- TextTransparency = 0.35,
- BackgroundTransparency = 0,
- Position = UDim2.fromOffset(Button.AbsolutePosition.X,Button.AbsolutePosition.Y + (40 - (scale.Y / 2)))
- });
- MarcoUI:_Animation(Helper.UIStroke,TweenInfo.new(0.15),{
- Transparency = 0
- });
- end;
- MarcoUI:_Hover(Button, Hold, Release);
- Release();
- local Args = {};
- function Args:SetValue(value)
- Config.Text = value;
- end;
- return Args;
- end;
- function Args:AddColorPicker(Config: MiniColorPicker)
- Config = MarcoUI.__CONFIG(Config,{
- Default = Color3.fromRGB(255,255,255),
- Transparency = 0,
- Callback = function() end
- });
- local ColorPicker:Frame , ColorFrame: Frame = Value:AddLink('ColorPicker' , Config.Default);
- local Button = MarcoUI:_Input(ColorPicker);
- local ColorPicker = MarcoUI:_AddColorPickerPanel(Button,function(color,opc)
- Config.Default = color;
- Config.Transparency = opc;
- ColorFrame.BackgroundColor3 = color;
- ColorFrame.BackgroundTransparency = opc;
- Config.Callback(Config.Default , Config.Transparency);
- end);
- ColorPicker:SetColor(Config.Default,Config.Transparency);
- ColorPicker:Update()
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(value,opc)
- Config.Default = value;
- Config.Transparency = opc;
- ColorPicker:SetColor(value,opc)
- ColorPicker:Update()
- Config.Callback(value,opc);
- end;
- function Args:GetValue()
- return {
- ColorPicker = {
- Color = Config.Default,
- Transparency = Config.Transparency
- }
- };
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddToggle(Config : MiniToggle)
- Config = MarcoUI.__CONFIG(Config,{
- Flag = nil,
- Default = false,
- Callback = function() end;
- });
- local Toggle = Value:AddLink("Toggle" , Config.Default);
- Toggle.Input.MouseButton1Click:Connect(function()
- Config.Default = not Config.Default;
- Toggle.ChangeValue(Config.Default);
- Config.Callback(Config.Default);
- end);
- local Args = {};
- Args.Flag = Config.Flag
- function Args:SetValue(value)
- Config.Default = value;
- Toggle.ChangeValue(Config.Default);
- Config.Callback(Config.Default);
- end;
- function Args:GetValue()
- return Config.Default;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddOption()
- local Element: ImageButton = Value:AddLink("Option");
- local BaseZ_Index = math.random(1,15) * 100;
- local Signal = MarcoUI.__SIGNAL(false);
- local ExtractElement = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local Elements = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- local Toggl = false;
- local ToggleUI = function(bool)
- local IsSameValue = bool == Toggl;
- Toggl = bool;
- local MainPosition = UDim2.fromOffset(Element.AbsolutePosition.X,Element.AbsolutePosition.Y + 80);
- local DropPosition = UDim2.fromOffset(MainPosition.X.Offset,MainPosition.Y.Offset + 15);
- local MUL = Window.AbsoluteSize.Y / 2;
- if MainPosition.Y.Offset > MUL then -- go up
- MainPosition = UDim2.fromOffset(Element.AbsolutePosition.X,Element.AbsolutePosition.Y + 45);
- DropPosition = UDim2.fromOffset(MainPosition.X.Offset,MainPosition.Y.Offset - 25);
- ExtractElement.AnchorPoint = Vector2.new(0,1)
- else
- ExtractElement.AnchorPoint = Vector2.new(0,0)
- end;
- if bool then
- Signal:Fire(true);
- if not IsSameValue then
- ExtractElement.Position = DropPosition
- end;
- MarcoUI:_Animation(ExtractElement , Tween , {
- Position = MainPosition,
- BackgroundTransparency = 0,
- Size = UDim2.new(0, 225, 0, UIListLayout.AbsoluteContentSize.Y)
- });
- MarcoUI:_Animation(UIStroke , Tween , {
- Transparency = 0
- });
- else
- Signal:Fire(false);
- MarcoUI:_Animation(ExtractElement , Tween , {
- Position = DropPosition,
- BackgroundTransparency = 1,
- Size = UDim2.new(0, 225, 0, UIListLayout.AbsoluteContentSize.Y - 10)
- });
- MarcoUI:_Animation(UIStroke , Tween , {
- Transparency = 1
- });
- end;
- end;
- MarcoUI:_AddPropertyEvent(ExtractElement,function(bool)
- ExtractElement.Visible = bool;
- if MarcoUI.PerformanceMode then
- if ExtractElement.Visible then
- MarcoUI:_SetNilP(ExtractElement , Window);
- else
- MarcoUI:_SetNilP(ExtractElement , nil);
- end;
- else
- MarcoUI:_SetNilP(ExtractElement , Window);
- end;
- end);
- MarcoUI:_AddDragBlacklist(ExtractElement);
- ExtractElement.Name = MarcoUI:_RandomString()
- ExtractElement.Parent = Window
- ExtractElement.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- ExtractElement.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ExtractElement.BorderSizePixel = 0
- ExtractElement.ClipsDescendants = true
- ExtractElement.Position = UDim2.new(123, 0, 123, 0)
- ExtractElement.Size = UDim2.new(0, 225, 0, 35)
- ExtractElement.ZIndex = BaseZ_Index
- ExtractElement.Visible = false
- ExtractElement.ClipsDescendants = true
- table.insert(MarcoUI.Elements.BlockBackground,{
- Element = ExtractElement,
- Property = "BackgroundColor3"
- });
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = ExtractElement
- table.insert(MarcoUI.Elements.HighStrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = ExtractElement
- Elements.Name = MarcoUI:_RandomString()
- Elements.Parent = ExtractElement
- Elements.AnchorPoint = Vector2.new(0.5, 0.5)
- Elements.BackgroundTransparency = 1.000
- Elements.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Elements.BorderSizePixel = 0
- Elements.Position = UDim2.new(0.5, 0, 0.5, 0)
- Elements.Size = UDim2.new(1, -5, 1,-1)
- Elements.ZIndex = BaseZ_Index + 20
- UIListLayout.Parent = Elements
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 0)
- ToggleUI(false);
- Element.MouseButton1Click:Connect(function()
- ToggleUI(true);
- end);
- UserInputService.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- if Toggl and not MarcoUI:_IsMouseOverFrame(ExtractElement) and not MarcoUI:_IsMouseOverFrame(Element) then
- ToggleUI(false);
- end;
- end
- end)
- return MarcoUI:_LoadElement(Elements , true , Signal)
- end;
- return Args;
- end;
- function MarcoUI:_LoadDropdown(BaseParent: TextButton , Callback: () -> any)
- local Window = MarcoUI:_GetWindowFromElement(BaseParent);
- local BaseZ_Index = BaseParent.ZIndex + (math.random(1,15) * 100);
- local DropdownWindow = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local ScrollingFrame = Instance.new("ScrollingFrame")
- local UIListLayout = Instance.new("UIListLayout")
- local ToggleDb = MarcoUI.__SIGNAL(false);
- local EventOut = MarcoUI.__SIGNAL(0);
- DropdownWindow.Name = MarcoUI:_RandomString()
- DropdownWindow.Parent = Window
- DropdownWindow.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- DropdownWindow.BorderColor3 = Color3.fromRGB(0, 0, 0)
- DropdownWindow.BorderSizePixel = 0
- DropdownWindow.Position = UDim2.new(123, 0, 123, 0)
- DropdownWindow.Size = UDim2.new(0, 190, 0, 200)
- DropdownWindow.ZIndex = BaseZ_Index
- table.insert(MarcoUI.Elements.BlockBackground,{
- Element = DropdownWindow,
- Property = "BackgroundColor3"
- });
- MarcoUI:_AddDragBlacklist(DropdownWindow);
- MarcoUI:_AddPropertyEvent(DropdownWindow,function(v)
- DropdownWindow.Visible = v;
- if MarcoUI.PerformanceMode then
- if DropdownWindow.Visible then
- MarcoUI:_SetNilP(DropdownWindow , Window);
- else
- MarcoUI:_SetNilP(DropdownWindow , nil);
- end;
- else
- MarcoUI:_SetNilP(DropdownWindow , Window);
- end;
- end)
- UIStroke.Color = MarcoUI.Colors.HighStrokeColor
- UIStroke.Parent = DropdownWindow
- table.insert(MarcoUI.Elements.HighStrokeColor , {
- Element = UIStroke,
- Property = "Color"
- })
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = DropdownWindow
- ScrollingFrame.Parent = DropdownWindow
- ScrollingFrame.Active = true
- ScrollingFrame.AnchorPoint = Vector2.new(0.5, 0.5)
- ScrollingFrame.BackgroundTransparency = 1.000
- ScrollingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ScrollingFrame.BorderSizePixel = 0
- ScrollingFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
- ScrollingFrame.Size = UDim2.new(1, -5, 1, -5)
- ScrollingFrame.ZIndex = BaseZ_Index + 5
- ScrollingFrame.BottomImage = ""
- ScrollingFrame.ScrollBarThickness = 0
- ScrollingFrame.TopImage = ""
- UIListLayout.Parent = ScrollingFrame
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 10)
- UIListLayout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- ScrollingFrame.CanvasSize = UDim2.fromOffset(UIListLayout.AbsoluteContentSize.X,UIListLayout.AbsoluteContentSize.Y)
- end);
- local ToggleUI = function(bool)
- local IsSame = ToggleDb:GetValue() == bool;
- EventOut:Fire(bool);
- ToggleDb:Fire(bool);
- local MUL = Window.AbsoluteSize.Y / 2;
- local MainPosition = UDim2.fromOffset(BaseParent.AbsolutePosition.X + 1,BaseParent.AbsolutePosition.Y + 80);
- local DropPosition = UDim2.fromOffset(MainPosition.X.Offset,MainPosition.Y.Offset + 25);
- if MainPosition.Y.Offset > MUL then -- go up
- MainPosition = UDim2.fromOffset(BaseParent.AbsolutePosition.X + 1,BaseParent.AbsolutePosition.Y + 55);
- DropPosition = UDim2.fromOffset(MainPosition.X.Offset,MainPosition.Y.Offset - 25);
- DropdownWindow.AnchorPoint = Vector2.new(0,1);
- else
- DropdownWindow.AnchorPoint = Vector2.zero;
- end;
- if bool then
- if not IsSame then
- DropdownWindow.Position = DropPosition;
- end;
- MarcoUI:_Animation(DropdownWindow,TweenInfo.new(0.2),{
- BackgroundTransparency = 0,
- Position = MainPosition,
- Size = UDim2.new(0, BaseParent.AbsoluteSize.X - 1, 0, math.clamp(UIListLayout.AbsoluteContentSize.Y + 10,10 , 200))
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 0
- })
- else
- MarcoUI:_Animation(DropdownWindow,TweenInfo.new(0.2),{
- BackgroundTransparency = 1,
- Position = DropPosition,
- Size = UDim2.new(0, BaseParent.AbsoluteSize.X - 1, 0, math.clamp(UIListLayout.AbsoluteContentSize.Y / 1.5, 10 , 200))
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 1
- })
- end;
- end;
- ToggleUI(false)
- local SpamUpdate,_Delay = false , tick();
- local __signals = {};
- local Default = nil;
- local Values = nil;
- local IsMulti = false;
- local DrawButton = function()
- local DropdownItem = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local BlockLine = Instance.new("Frame")
- DropdownItem.Name = MarcoUI:_RandomString()
- DropdownItem.BackgroundTransparency = 1.000
- DropdownItem.BorderColor3 = Color3.fromRGB(0, 0, 0)
- DropdownItem.BorderSizePixel = 0
- DropdownItem.Size = UDim2.new(1, -1, 0, 20)
- DropdownItem.ZIndex = BaseZ_Index + 6
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = DropdownItem
- BlockText.AnchorPoint = Vector2.new(0, 0.5)
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 5, 0.5, 0)
- BlockText.Size = UDim2.new(1, -10, 0, 25)
- BlockText.ZIndex = BaseZ_Index + 6
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = ""
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 13.000
- BlockText.TextTransparency = 0.500
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = DropdownItem
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -6, 0, 1)
- BlockLine.ZIndex = BaseZ_Index + 7
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- return {
- BlockText = BlockText,
- DropdownItem = DropdownItem,
- BlockLine = BlockLine,
- };
- end;
- local ClearDropdown = function()
- for i,v in next , ScrollingFrame:GetChildren() do
- if v:IsA('Frame') then
- v:Destroy();
- end;
- end;
- for i,v in next, __signals do
- v:Disconnect();
- end;
- end;
- local IsDefault = function(v)
- return (typeof(Default) == 'table' and (Default[v] or table.find(Default,v))) or Default == v;
- end;
- local MatchDefault = function(v,DataFrame)
- return (typeof(DataFrame) == 'table' and (DataFrame[v] or table.find(DataFrame,v))) or DataFrame == v;
- end;
- local UpdateDropdown = function()
- local DataFrame;
- if IsMulti then
- DataFrame = {};
- end;
- for i,v in next , Values do
- local bth = DrawButton();
- bth.BlockText.Text = tostring(v);
- bth.DropdownItem.Parent = ScrollingFrame;
- bth.Value = v;
- table.insert(__signals , ToggleDb:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((IsDefault(v) or MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- MarcoUI:_Animation(bth.BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 0
- });
- else
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(bth.BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- end;
- end));
- if ToggleDb:GetValue() then
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((IsDefault(v) or MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- end;
- if IsDefault(v) and not IsMulti then
- DataFrame = bth;
- end;
- if IsMulti then
- if IsDefault(v) or MatchDefault(v,DataFrame) then
- DataFrame[v] = true;
- else
- DataFrame[v] = false;
- end;
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- MarcoUI:_Input(bth.DropdownItem,function()
- DataFrame[v] = not DataFrame[v];
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- Callback(DataFrame)
- end);
- else
- MarcoUI:_Input(bth.DropdownItem,function()
- if DataFrame then
- MarcoUI:_Animation(DataFrame.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((IsDefault(v) or MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- end;
- Default = v;
- DataFrame = bth;
- MarcoUI:_Animation(bth.BlockText,TweenInfo.new(0.2),{
- TextTransparency = ((IsDefault(v) or MatchDefault(v,DataFrame)) and 0) or 0.5
- });
- Callback(DataFrame.Value)
- end);
- end;
- end;
- end;
- BaseParent.MouseButton1Click:Connect(function()
- if SpamUpdate then
- ClearDropdown();
- UpdateDropdown();
- end;
- ToggleUI(true);
- if not ToggleDb:GetValue() then
- ToggleUI(false);
- end
- end);
- UserInputService.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- if not MarcoUI:_IsMouseOverFrame(DropdownWindow) then
- ToggleUI(false);
- end;
- end;
- end);
- local Args = {};
- function Args:SetDefault(v)
- Default = v;
- end;
- function Args:SetData(Def,Val,Multi,Vis)
- if Vis and ((tick() - _Delay) <= 0.5 or #Val > 10) then
- _Delay = tick();
- SpamUpdate = true;
- else
- SpamUpdate = false;
- end;
- IsMulti = Multi;
- Default = Def;
- Values = Val;
- if Vis and not SpamUpdate then
- ClearDropdown();
- UpdateDropdown();
- end;
- end;
- function Args:Refersh()
- ClearDropdown();
- UpdateDropdown();
- end;
- Args.EventOut = EventOut;
- return Args;
- end;
- function MarcoUI:_LoadElement(Parent: Frame , EnabledLine: boolean , Signal , DisableStackKeybind)
- local Zindex = Parent.ZIndex + 1;
- local Tween = TweenInfo.new(0.25,Enum.EasingStyle.Quint);
- local Args = {};
- function Args:AddToggle(Config : Toggle)
- Config = MarcoUI.__CONFIG(Config,{
- Name = "Toggle",
- Default = false,
- Flag = nil,
- Risky = false,
- Callback = function() end;
- });
- local Block = MarcoUI:_CreateBlock(Signal);
- Block:SetParent(Parent);
- Block:SetText(Config.Name);
- if Config.Risky then
- Block:SetTextColor(MarcoUI.Colors.Risky);
- end;
- Block:SetLine(EnabledLine);
- Block:SetVisible(Signal:GetValue());
- local Toggle = Block:AddLink('Toggle' , Config.Default);
- Toggle.Input.MouseButton1Click:Connect(function()
- Config.Default = not Config.Default;
- Toggle.ChangeValue(Config.Default);
- Block:SetTransparency((Config.Default and 0.1) or 0.3);
- Config.Callback(Config.Default);
- end);
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(value)
- Config.Default = value;
- Toggle.ChangeValue(Config.Default);
- Block:SetTransparency((Config.Default and 0.1) or 0.3);
- Config.Callback(Config.Default);
- end;
- Args.Signal = Signal:Connect(function(bool)
- Block:SetVisible(bool);
- end);
- Args.Link = MarcoUI:_LoadOption(Block);
- function Args:GetValue()
- return Config.Default;
- end;
- function Args:SetText(str : string)
- Block:SetText(str or Config.Name);
- end;
- function Args:GetText()
- return Block:GetText();
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- if not DisableStackKeybind then
- local AutoKeybind = MarcoUI:_KeybindHandler(Block.Root , "Toggle" , Args , Signal , Zindex , Config);
- Args.AutoKeybind = AutoKeybind;
- end;
- return Args;
- end;
- function Args:AddKeybind(Config : Keybind)
- Config = MarcoUI.__CONFIG(Config,{
- Name = "Keybind",
- Default = nil,
- Flag = nil,
- Callback = function() end;
- Blacklist = {}
- });
- local Block = MarcoUI:_CreateBlock(Signal);
- Block:SetParent(Parent);
- Block:SetText(Config.Name);
- Block:SetLine(EnabledLine);
- Block:SetVisible(Signal:GetValue());
- local Keybind = Block:AddLink('Keybind' , Config.Default);
- local IsBinding = false;
- local IsBlacklist = function(v)
- return Config.Blacklist and (Config.Blacklist[v] or table.find(Config.Blacklist,v))
- end;
- MarcoUI:_Input(Keybind.Root,function()
- if IsBinding then
- return;
- end;
- Keybind.SetValue("...");
- local Selected = nil;
- while not Selected do
- local Key = UserInputService.InputBegan:Wait();
- if Key.KeyCode ~= Enum.KeyCode.Unknown and not IsBlacklist(Key.KeyCode) and not IsBlacklist(Key.KeyCode.Name) then
- Selected = Key.KeyCode;
- else
- if Key.UserInputType == Enum.UserInputType.MouseButton1 and not IsBlacklist(Enum.UserInputType.MouseButton1) and not IsBlacklist("MouseLeft") then
- Selected = "MouseLeft";
- elseif Key.UserInputType == Enum.UserInputType.MouseButton2 and not IsBlacklist(Enum.UserInputType.MouseButton2) and not IsBlacklist("MouseRight") then
- Selected = "MouseRight";
- end;
- end;
- end;
- local KeyName = typeof(Selected) == "string" and Selected or Selected.Name;
- Config.Default = KeyName;
- Keybind.SetValue(Selected);
- IsBinding = false;
- Config.Callback(KeyName);
- end);
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetText(str : string)
- Block:SetText(str or Config.Name);
- end;
- function Args:GetText()
- return Block:GetText();
- end;
- function Args:SetValue(value)
- Config.Default = value;
- Keybind.SetValue(Config.Default);
- Config.Callback(Config.Default);
- end;
- Args.Signal = Signal:Connect(function(bool)
- Block:SetVisible(bool);
- end);
- Args.Link = MarcoUI:_LoadOption(Block);
- function Args:GetValue()
- return (typeof(Config.Default) == "string" and Config.Default) or Config.Default.Name;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddColorPicker(Config: ColorPicker)
- Config = MarcoUI.__CONFIG(Config,{
- Name = "ColorPicker",
- Default = Color3.fromRGB(255,255,255),
- Flag = nil,
- Transparency = 0,
- Callback = function() end;
- });
- local Block = MarcoUI:_CreateBlock(Signal);
- Block:SetParent(Parent);
- Block:SetText(Config.Name);
- Block:SetLine(EnabledLine);
- Block:SetVisible(Signal:GetValue());
- local ColorPicker:Frame , ColorFrame: Frame = Block:AddLink('ColorPicker' , Config.Default);
- local Button = MarcoUI:_Input(ColorPicker);
- local ColorPicker = MarcoUI:_AddColorPickerPanel(Button,function(color,opc)
- Config.Default = color;
- Config.Transparency = opc;
- ColorFrame.BackgroundColor3 = color;
- ColorFrame.BackgroundTransparency = opc;
- Config.Callback(Config.Default , Config.Transparency);
- end);
- ColorPicker:SetColor(Config.Default,Config.Transparency);
- ColorPicker:Update()
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(value,opc)
- Config.Default = value;
- Config.Transparency = opc;
- ColorPicker:SetColor(value,opc);
- ColorPicker:Update();
- Config.Callback(value,opc);
- end;
- function Args:SetText(str : string)
- Block:SetText(str or Config.Name);
- end;
- function Args:GetText()
- return Block:GetText();
- end;
- Args.Signal = Signal:Connect(function(bool)
- Block:SetVisible(bool);
- end);
- Args.Link = MarcoUI:_LoadOption(Block);
- function Args:GetValue()
- return {
- ColorPicker = {
- Color = Config.Default,
- Transparency = Config.Transparency
- }
- };
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddButton(Config: Button)
- Config = MarcoUI.__CONFIG(Config , {
- Name = 'Button',
- Callback = function() end
- });
- local Button = Instance.new("Frame")
- local BlockLine = Instance.new("Frame")
- local Frame = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local TextLabel = Instance.new("TextLabel")
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Button);
- end;
- Button.Name = MarcoUI:_RandomString()
- Button.Parent = Parent
- Button.BackgroundTransparency = 1.000
- Button.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Button.BorderSizePixel = 0
- Button.Size = UDim2.new(1, -1, 0, 30)
- Button.ZIndex = Zindex + 5
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = Button
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = Zindex + 6
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- Frame.Parent = Button
- Frame.AnchorPoint = Vector2.new(0.5, 0.5)
- Frame.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame.BackgroundTransparency = 0.100
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(0.5, 0, 0.5, 0)
- Frame.Size = UDim2.new(1, -15, 1, -5)
- Frame.ZIndex = Zindex + 7;
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame,
- Property = "BackgroundColor3"
- });
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = Frame
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Frame
- TextLabel.Parent = Frame
- TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextLabel.Size = UDim2.new(1, 0, 1, 0)
- TextLabel.ZIndex = Zindex + 8
- TextLabel.Font = Enum.Font.GothamMedium
- TextLabel.Text = Config.Name;
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 12.000
- TextLabel.TextStrokeTransparency = 0.900
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- MarcoUI:_Hover(Frame,function()
- if Signal:GetValue() then
- MarcoUI:_Animation(Frame,TweenInfo.new(0.2),{
- BackgroundTransparency = 0
- })
- end;
- end,function()
- if Signal:GetValue() then
- MarcoUI:_Animation(Frame,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.1
- })
- end;
- end);
- MarcoUI:_Input(Frame,function()
- Config.Callback();
- end);
- local Args = {};
- Args.Signal = Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(BlockLine, TweenInfo.new(0.35),{
- BackgroundTransparency = 0.500
- });
- MarcoUI:_Animation(Frame, TweenInfo.new(0.35),{
- BackgroundTransparency = 0.1
- });
- MarcoUI:_Animation(UIStroke, TweenInfo.new(0.35),{
- Transparency = 0
- });
- MarcoUI:_Animation(TextLabel, TweenInfo.new(0.35),{
- TextStrokeTransparency = 0.900,
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(BlockLine, TweenInfo.new(0.35),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(Frame, TweenInfo.new(0.35),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(UIStroke, TweenInfo.new(0.35),{
- Transparency = 1
- });
- MarcoUI:_Animation(TextLabel, TweenInfo.new(0.35),{
- TextStrokeTransparency = 1,
- TextTransparency = 1
- });
- end;
- end);
- function Args:SetText(t)
- Config.Name = t;
- TextLabel.Text = Config.Name;
- end;
- function Args:GetText()
- return TextLabel.Text;
- end;
- return Args;
- end;
- function Args:AddSlider(Config: Slider)
- Config = MarcoUI.__CONFIG(Config , {
- Name = 'Slider',
- Default = 50,
- Min = 0,
- Max = 100,
- Type = "",
- Round = 0,
- Callback = function() end
- });
- local Slider = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local BlockLine = Instance.new("Frame")
- local SliderBar = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local SliderInput = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local Frame = Instance.new("Frame")
- local UICorner_3 = Instance.new("UICorner")
- local UIScale = Instance.new("UIScale")
- local ValueText = Instance.new("TextLabel")
- MarcoUI:_AddDragBlacklist(Slider);
- Slider.Name = MarcoUI:_RandomString()
- Slider.Parent = Parent
- Slider.BackgroundTransparency = 1.000
- Slider.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Slider.BorderSizePixel = 0
- Slider.Size = UDim2.new(1, -1, 0, 45)
- Slider.ZIndex = Zindex + 1
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = Slider
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 12, 0, 1)
- BlockText.Size = UDim2.new(1, -20, 0, 25)
- BlockText.ZIndex = Zindex + 2
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = Config.Name
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 14.000
- BlockText.TextTransparency = 0.100
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = Slider
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = Zindex + 2
- BlockLine.Visible = EnabledLine or false;
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- SliderBar.Name = MarcoUI:_RandomString()
- SliderBar.Parent = Slider
- SliderBar.AnchorPoint = Vector2.new(0.5, 1)
- SliderBar.BackgroundColor3 = MarcoUI.Colors.DropColor
- SliderBar.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SliderBar.BorderSizePixel = 0
- SliderBar.ClipsDescendants = true
- SliderBar.Position = UDim2.new(0.5, 0, 1, -9)
- SliderBar.Size = UDim2.new(1, -25, 0, 10)
- SliderBar.ZIndex = Zindex + 3
- table.insert(MarcoUI.Elements.DropColor , {
- Element = SliderBar,
- Property = "BackgroundColor3"
- })
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = SliderBar
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = SliderBar
- SliderInput.Name = MarcoUI:_RandomString()
- SliderInput.Parent = SliderBar
- SliderInput.AnchorPoint = Vector2.new(0, 0.5)
- SliderInput.BackgroundColor3 = MarcoUI.Colors.Highlight
- SliderInput.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SliderInput.BorderSizePixel = 0
- SliderInput.Position = UDim2.new(0, 0, 0.5, 0)
- SliderInput.Size = UDim2.new(math.max((Config.Default - Config.Min) / (Config.Max - Config.Min) , 0.045), 0, 1, 0)
- SliderInput.ZIndex = Zindex + 4
- table.insert(MarcoUI.Elements.Highlight,{
- Element = SliderInput,
- Property = "BackgroundColor3"
- });
- -- Track slider for RGB updates (always active when visible)
- if not MarcoUI.__ActiveRGBSliders then
- MarcoUI.__ActiveRGBSliders = {};
- end;
- table.insert(MarcoUI.__ActiveRGBSliders, {
- SliderInput = SliderInput
- });
- UICorner_2.CornerRadius = UDim.new(0, 6)
- UICorner_2.Parent = SliderInput
- Frame.Parent = SliderInput
- Frame.AnchorPoint = Vector2.new(1, 0.5)
- Frame.BackgroundColor3 = MarcoUI.Colors.SwitchColor
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(1, 5, 0.5, 0)
- Frame.Rotation = 45.000
- Frame.Size = UDim2.new(1, 0, 1, 0)
- Frame.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Frame.ZIndex = Zindex + 6
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = Frame,
- Property = 'BackgroundColor3'
- });
- UICorner_3.CornerRadius = UDim.new(3, 0)
- UICorner_3.Parent = Frame
- UIScale.Parent = Frame
- UIScale.Scale = 1.300
- ValueText.Name = MarcoUI:_RandomString()
- ValueText.Parent = Slider
- ValueText.BackgroundTransparency = 1.000
- ValueText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ValueText.BorderSizePixel = 0
- ValueText.Position = UDim2.new(0, 12, 0, 1)
- ValueText.Size = UDim2.new(1, -20, 0, 25)
- ValueText.ZIndex = Zindex + 4
- ValueText.Font = Enum.Font.GothamMedium
- ValueText.Text = tostring(Config.Default)..tostring(Config.Type)
- ValueText.TextColor3 = MarcoUI.Colors.SwitchColor
- ValueText.TextSize = 12.000
- ValueText.TextTransparency = 0.750
- ValueText.TextXAlignment = Enum.TextXAlignment.Right
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = ValueText,
- Property = 'TextColor3'
- });
- MarcoUI:_Hover(SliderBar,function()
- if Signal:GetValue() then
- MarcoUI:_Animation(ValueText,TweenInfo.new(0.2),{
- TextTransparency = 0.2
- })
- end;
- end,function()
- if Signal:GetValue() then
- MarcoUI:_Animation(ValueText,TweenInfo.new(0.2),{
- TextTransparency = 0.750
- })
- end;
- end)
- local IsHold = false;
- local Update = function(Input)
- local SizeScale = math.clamp((((Input.Position.X) - SliderBar.AbsolutePosition.X) / SliderBar.AbsoluteSize.X), 0, 1);
- local Main = ((Config.Max - Config.Min) * SizeScale) + Config.Min;
- local Value = MarcoUI:_Rounding(Main,Config.Round);
- local PositionX = UDim2.fromScale(SizeScale, 1);
- local Size = (Value - Config.Min) / (Config.Max - Config.Min);
- TweenService:Create(SliderInput , TweenInfo.new(0.2),{
- Size = UDim2.new(math.clamp(Size,0.045,1), 0, 1, 0)
- }):Play();
- Config.Default = Value;
- ValueText.Text = tostring(Config.Default)..tostring(Config.Type)
- Config.Callback(Value)
- end;
- -- Find parent section for interaction locking
- local parentSection = SliderBar;
- while parentSection and not parentSection:GetAttribute("IsSection") do
- parentSection = parentSection.Parent;
- if not parentSection or parentSection:IsA("ScreenGui") then
- parentSection = nil;
- break;
- end;
- end;
- do
- SliderBar.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- IsHold = true
- -- Lock interaction to this section
- if parentSection then
- MarcoUI:_SetInteractionLock(parentSection, true);
- end;
- Update(Input)
- end
- end)
- SliderBar.InputEnded:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- if UserInputService.TouchEnabled then
- if not MarcoUI:_IsMouseOverFrame(SliderBar) then
- IsHold = false
- -- Unlock interaction
- if parentSection then
- MarcoUI:_SetInteractionLock(parentSection, false);
- end;
- end;
- else
- IsHold = false
- -- Unlock interaction
- if parentSection then
- MarcoUI:_SetInteractionLock(parentSection, false);
- end;
- end;
- end
- end)
- UserInputService.InputChanged:Connect(function(Input)
- if IsHold then
- if (Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch) then
- if UserInputService.TouchEnabled then
- if not MarcoUI:_IsMouseOverFrame(SliderBar) then
- IsHold = false
- else
- Update(Input)
- end;
- else
- Update(Input)
- end;
- end;
- end;
- end);
- end;
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(Value)
- Config.Default = Value;
- ValueText.Text = tostring(Config.Default)..tostring(Config.Type)
- MarcoUI:_Animation(SliderInput, TweenInfo.new(0.35),{
- Size = UDim2.new(math.max((Config.Default - Config.Min) / (Config.Max - Config.Min) , 0.045), 0, 1, 0)
- });
- Config.Callback(Value);
- end;
- function Args:SetText(str : string)
- BlockText.Text = str or Config.Name
- end;
- function Args:GetText()
- return BlockText.Text;
- end;
- Args.Signal = Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(SliderInput, TweenInfo.new(0.35),{
- Size = UDim2.new(math.max((Config.Default - Config.Min) / (Config.Max - Config.Min) , 0.045), 0, 1, 0)
- });
- MarcoUI:_Animation(ValueText,Tween,{
- TextTransparency = 0.750
- })
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(SliderInput,Tween,{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 0
- })
- MarcoUI:_Animation(SliderBar,Tween,{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(BlockLine,Tween,{
- BackgroundTransparency = 0.5
- })
- MarcoUI:_Animation(BlockText,Tween,{
- TextTransparency = 0.1
- })
- else
- MarcoUI:_Animation(SliderInput, TweenInfo.new(0.35),{
- Size = UDim2.new(0, 0, 1, 0)
- });
- MarcoUI:_Animation(ValueText,Tween,{
- TextTransparency = 1
- })
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(SliderInput,Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 1
- })
- MarcoUI:_Animation(SliderBar,Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(BlockLine,Tween,{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(BlockText,Tween,{
- TextTransparency = 1
- })
- end;
- end);
- function Args:GetValue()
- return Config.Default;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- if not DisableStackKeybind then
- local AutoKeybind = MarcoUI:_KeybindHandler(Slider , "Number" , Args , Signal , Zindex , Config);
- Args.AutoKeybind = AutoKeybind;
- end;
- return Args;
- end;
- function Args:AddParagraph(Config: Paragraph) -- request by Neptune
- Config = MarcoUI.__CONFIG(Config, {
- Title = "Paragraph",
- Content = "",
- });
- local Paragraph = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local BlockLine = Instance.new("Frame")
- local DescriptionText = Instance.new("TextLabel")
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Paragraph);
- end;
- Paragraph.Name = MarcoUI:_RandomString()
- Paragraph.Parent = Parent
- Paragraph.BackgroundTransparency = 1.000
- Paragraph.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Paragraph.BorderSizePixel = 0
- Paragraph.Size = UDim2.new(1, -1, 0, 40)
- Paragraph.ZIndex = Zindex + 2
- Paragraph.ClipsDescendants = true
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = Paragraph
- BlockText.AnchorPoint = Vector2.new(0, 0.5)
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 12, 0, 12)
- BlockText.Size = UDim2.new(1, -20, 0, 25)
- BlockText.ZIndex = Zindex + 3
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = Config.Title
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 14.000
- BlockText.TextTransparency = 0.300
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- BlockText.RichText = true
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = Paragraph
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = Zindex + 4
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- DescriptionText.RichText = true
- DescriptionText.Name = MarcoUI:_RandomString()
- DescriptionText.Parent = Paragraph
- DescriptionText.BackgroundTransparency = 1.000
- DescriptionText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- DescriptionText.BorderSizePixel = 0
- DescriptionText.Position = UDim2.new(0, 12, 0, 22)
- DescriptionText.Size = UDim2.new(1, -20, 1, -25)
- DescriptionText.ZIndex = Zindex + 5
- DescriptionText.Font = Enum.Font.GothamMedium
- DescriptionText.Text = Config.Content
- DescriptionText.TextColor3 = MarcoUI.Colors.SwitchColor
- DescriptionText.TextSize = 13.000
- DescriptionText.TextTransparency = 0.500
- DescriptionText.TextXAlignment = Enum.TextXAlignment.Left
- DescriptionText.TextYAlignment = Enum.TextYAlignment.Top
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = DescriptionText,
- Property = 'TextColor3'
- });
- local Base = 15;
- local UpdateScale = function()
- if not DescriptionText.Text:byte() then
- local TitleScale = TextService:GetTextSize(BlockText.Text,BlockText.TextSize,BlockText.Font,Vector2.new(math.huge,math.huge));
- MarcoUI:_Animation(Paragraph,TweenInfo.new(0.15),{
- Size = UDim2.new(1, -1, 0, TitleScale.Y + Base)
- });
- else
- local TitleScale = TextService:GetTextSize(BlockText.Text,BlockText.TextSize,BlockText.Font,Vector2.new(math.huge,math.huge));
- local ContentScale = TextService:GetTextSize(DescriptionText.Text,DescriptionText.TextSize,DescriptionText.Font,Vector2.new(math.huge,math.huge));
- MarcoUI:_Animation(Paragraph,TweenInfo.new(0.15),{
- Size = UDim2.new(1, -1, 0, (TitleScale.Y + ContentScale.Y) + Base)
- });
- end;
- end;
- UpdateScale();
- local Args = {};
- function Args:SetTitle(title)
- BlockText.Text = title;
- UpdateScale();
- end;
- function Args:SetContent(content)
- DescriptionText.Text = content;
- UpdateScale();
- end;
- Args.Signal = Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 0.300
- });
- MarcoUI:_Animation(DescriptionText,TweenInfo.new(0.2),{
- TextTransparency = 0.500
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.500
- });
- else
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(DescriptionText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- end;
- end);
- return Args;
- end;
- function Args:AddTextBox(Config: TextBoxConfig)
- Config = MarcoUI.__CONFIG(Config , {
- Name = "TextBox",
- Default = "",
- Placeholder = "Placeholder",
- Numberic = false,
- Callback = function() end,
- });
- local TextBox = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local LinkValues = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local TextBox_2 = Instance.new("TextBox")
- local BlockLine = Instance.new("Frame")
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(TextBox);
- end;
- TextBox.Name = MarcoUI:_RandomString()
- TextBox.Parent = Parent
- TextBox.BackgroundTransparency = 1.000
- TextBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextBox.BorderSizePixel = 0
- TextBox.Size = UDim2.new(1, -1, 0, 30)
- TextBox.ZIndex = Zindex + 1
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = TextBox
- BlockText.AnchorPoint = Vector2.new(0, 0.5)
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 12, 0.5, 0)
- BlockText.Size = UDim2.new(1, -20, 0, 25)
- BlockText.ZIndex = Zindex + 2
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = Config.Name
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 14.000
- BlockText.TextTransparency = 0.300
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = BlockText,
- Property = "TextColor3"
- })
- LinkValues.Name = MarcoUI:_RandomString()
- LinkValues.Parent = TextBox
- LinkValues.AnchorPoint = Vector2.new(1, 0.540000021)
- LinkValues.BackgroundColor3 = MarcoUI.Colors.DropColor
- LinkValues.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LinkValues.BorderSizePixel = 0
- LinkValues.Position = UDim2.new(1, -12, 0.5, 0)
- LinkValues.Size = UDim2.new(0, 95, 0, 16)
- LinkValues.ZIndex = Zindex + 3
- table.insert(MarcoUI.Elements.DropColor,{
- Element = LinkValues,
- Property = "BackgroundColor3"
- })
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = LinkValues
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- })
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = LinkValues
- TextBox_2.Parent = LinkValues
- TextBox_2.AnchorPoint = Vector2.new(0.5, 0.5)
- TextBox_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- TextBox_2.BackgroundTransparency = 1.000
- TextBox_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextBox_2.BorderSizePixel = 0
- TextBox_2.ClipsDescendants = true
- TextBox_2.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextBox_2.Size = UDim2.new(1, -5, 1, 0)
- TextBox_2.ZIndex = Zindex + 5
- TextBox_2.ClearTextOnFocus = false
- TextBox_2.Font = Enum.Font.GothamMedium
- TextBox_2.PlaceholderText = Config.Placeholder
- TextBox_2.Text = Config.Default
- TextBox_2.TextColor3 = MarcoUI.Colors.SwitchColor
- TextBox_2.TextSize = 11.000
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = TextBox_2,
- Property = "TextColor3"
- })
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = TextBox
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = Zindex + 3;
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- })
- local Update = function()
- local scale = TextService:GetTextSize(TextBox_2.Text,TextBox_2.TextSize,TextBox_2.Font,Vector2.new(math.huge,math.huge));
- local Base = TextService:GetTextSize(TextBox_2.PlaceholderText,TextBox_2.TextSize,TextBox_2.Font,Vector2.new(math.huge,math.huge));
- local MainScale = ((scale.X > Base.X) and scale.X) or Base.X;
- local xp = pcall(function()
- MarcoUI:_Animation(LinkValues,TweenInfo.new(0.25),{
- Size = UDim2.fromOffset(math.clamp(MainScale + 7 , Base.X , TextBox.AbsoluteSize.X / 2) , 16)
- })
- end);
- if not xp then
- MarcoUI:_Animation(LinkValues,TweenInfo.new(0.25),{
- Size = UDim2.fromOffset(MainScale + 7 , 16)
- })
- end;
- end;
- local parse = function(text)
- if not text then
- return "";
- end;
- if Config.Numeric then
- local out = string.gsub(tostring(text), '[^0-9.]', '')
- if tonumber(out) then
- return tonumber(out);
- end;
- return nil;
- end;
- return text;
- end;
- Update();
- TextBox_2:GetPropertyChangedSignal('Text'):Connect(Update);
- TextBox_2:GetPropertyChangedSignal('Text'):Connect(function()
- local value = parse(TextBox_2.Text);
- if value then
- TextBox_2.Text = tostring(value);
- task.spawn(Config.Callback,value);
- Config.Default = value;
- else
- TextBox_2.Text = string.gsub(TextBox_2.Text, '[^0-9.]', '');
- Config.Default = TextBox_2.Text;
- end;
- end);
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetText(str : string)
- BlockText.Text = str or Config.Name
- end;
- function Args:GetText()
- return BlockText.Text;
- end;
- function Args:SetValue(Value)
- Config.Default = Value;
- TextBox_2.Text = tostring(Config.Default);
- Config.Callback(Value);
- end;
- Args.Signal = Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 0.3
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.5
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 0
- });
- MarcoUI:_Animation(LinkValues,TweenInfo.new(0.2),{
- BackgroundTransparency = 0
- });
- else
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 1
- });
- MarcoUI:_Animation(LinkValues,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- end;
- end);
- function Args:GetValue()
- return Config.Default;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- function Args:AddDropdown(Config : Dropdown)
- Config = MarcoUI.__CONFIG(Config,{
- Name = "Dropdown",
- Default = nil,
- Values = {"Item 1","Item 2","Item 3"},
- Multi = false,
- Callback = function() end;
- });
- local DaTabarser = function(value)
- if not value then return ''; end;
- local Out;
- if typeof(value) == 'table' then
- if #value > 0 then
- local x = {};
- for i,v in next , value do
- table.insert(x , tostring(v))
- end;
- Out = table.concat(x,' , ');
- else
- local x = {};
- for i,v in next , value do
- if v == true then
- table.insert(x , tostring(i));
- end
- end;
- Out = table.concat(x,' , ');
- end;
- else
- Out = tostring(value);
- end;
- return Out;
- end;
- local Dropdown = Instance.new("Frame")
- local BlockText = Instance.new("TextLabel")
- local BlockLine = Instance.new("Frame")
- local LinkValues = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- local ValueItems = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local ValueText = Instance.new("TextLabel")
- local MainButton = Instance.new("ImageButton")
- Dropdown.Name = MarcoUI:_RandomString()
- Dropdown.Parent = Parent
- Dropdown.BackgroundTransparency = 1.000
- Dropdown.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Dropdown.BorderSizePixel = 0
- Dropdown.Size = UDim2.new(1, -1, 0, 55)
- Dropdown.ZIndex = Zindex + 2
- BlockText.Name = MarcoUI:_RandomString()
- BlockText.Parent = Dropdown
- BlockText.BackgroundTransparency = 1.000
- BlockText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockText.BorderSizePixel = 0
- BlockText.Position = UDim2.new(0, 12, 0, 1)
- BlockText.Size = UDim2.new(1, -20, 0, 25)
- BlockText.ZIndex = Zindex + 3
- BlockText.Font = Enum.Font.GothamMedium
- BlockText.Text = Config.Name
- BlockText.TextColor3 = MarcoUI.Colors.SwitchColor
- BlockText.TextSize = 14.000
- BlockText.TextTransparency = 0.100
- BlockText.TextXAlignment = Enum.TextXAlignment.Left
- if not BlockText.Text:byte() then
- Dropdown.Size = UDim2.new(1, -1, 0, 25)
- end;
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = BlockText,
- Property = 'TextColor3'
- });
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = Dropdown
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 1, 0)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = Zindex + 3
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- LinkValues.Name = MarcoUI:_RandomString()
- LinkValues.Parent = Dropdown
- LinkValues.AnchorPoint = Vector2.new(1, 0.540000021)
- LinkValues.BackgroundTransparency = 1.000
- LinkValues.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LinkValues.BorderSizePixel = 0
- LinkValues.Position = UDim2.new(1, -12, 0, 15)
- LinkValues.Size = UDim2.new(1, 0, 0, 18)
- LinkValues.ZIndex = Zindex + 3
- UIListLayout.Parent = LinkValues
- UIListLayout.FillDirection = Enum.FillDirection.Horizontal
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- UIListLayout.Padding = UDim.new(0, 8)
- ValueItems.Name = MarcoUI:_RandomString()
- ValueItems.Parent = Dropdown
- ValueItems.AnchorPoint = Vector2.new(0.5, 1)
- ValueItems.BackgroundColor3 = MarcoUI.Colors.DropColor
- ValueItems.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ValueItems.BorderSizePixel = 0
- ValueItems.ClipsDescendants = true
- ValueItems.Position = UDim2.new(0.5, 0, 1, -7)
- ValueItems.Size = UDim2.new(1, -25, 0, 18)
- ValueItems.ZIndex = Zindex + 5
- table.insert(MarcoUI.Elements.DropColor , {
- Element = ValueItems,
- Property = "BackgroundColor3"
- })
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = ValueItems
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = ValueItems
- ValueText.Name = MarcoUI:_RandomString()
- ValueText.Parent = ValueItems
- ValueText.AnchorPoint = Vector2.new(0.5, 0.5)
- ValueText.BackgroundTransparency = 1.000
- ValueText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ValueText.BorderSizePixel = 0
- ValueText.Position = UDim2.new(0.5, 0, 0.5, 0)
- ValueText.Size = UDim2.new(1, -10, 0, 15)
- ValueText.ZIndex = Zindex + 8
- ValueText.Font = Enum.Font.Gotham
- ValueText.Text = DaTabarser(Config.Default)
- ValueText.TextColor3 = MarcoUI.Colors.SwitchColor
- ValueText.TextSize = 11.000
- ValueText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = ValueText,
- Property = 'TextColor3'
- });
- MainButton.Name = MarcoUI:_RandomString()
- MainButton.Parent = ValueItems
- MainButton.AnchorPoint = Vector2.new(1, 0.5)
- MainButton.BackgroundTransparency = 1.000
- MainButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MainButton.BorderSizePixel = 0
- MainButton.Position = UDim2.new(1, -5, 0.5, 0)
- MainButton.Size = UDim2.new(0, 13, 0, 13)
- MainButton.ZIndex = Zindex + 5
- MainButton.Image = MarcoUI:CacheImage("rbxassetid://109535175596957")
- MarcoUI:_Hover(ValueItems,function()
- MarcoUI:_Animation(ValueItems,TweenInfo.new(0.3),{
- BackgroundColor3 = MarcoUI.Colors.MouseEnter
- });
- end,function()
- MarcoUI:_Animation(ValueItems,TweenInfo.new(0.3),{
- BackgroundColor3 = MarcoUI.Colors.DropColor
- });
- end);
- local repi;
- local Button = MarcoUI:_Input(ValueItems);
- repi = MarcoUI:_LoadDropdown(Button,function(value)
- Config.Default = value;
- repi:SetData(Config.Default,Config.Values,Config.Multi,false);
- repi:SetDefault(Config.Default);
- ValueText.Text = DaTabarser(Config.Default);
- Config.Callback(Config.Default);
- end);
- repi.EventOut:Connect(function(v)
- if v then
- MarcoUI:_Animation(MainButton,TweenInfo.new(0.2),{
- Rotation = -180
- })
- else
- MarcoUI:_Animation(MainButton,TweenInfo.new(0.2),{
- Rotation = 0
- })
- end;
- end)
- repi:SetData(Config.Default,Config.Values,Config.Multi,false);
- repi:Refersh();
- local Args = {};
- Args.Flag = Config.Flag;
- function Args:SetValue(Value)
- Config.Default = Value;
- ValueText.Text = DaTabarser(Config.Default);
- repi:SetData(Config.Default,Config.Values,Config.Multi,true);
- Config.Callback(Value);
- end;
- function Args:SetText(str : string)
- BlockText.Text = str or Config.Name
- end;
- function Args:GetText()
- return BlockText.Text;
- end;
- function Args:SetValues(v)
- Config.Values = v;
- repi:SetData(Config.Default,Config.Values,Config.Multi,true);
- end;
- Args.Signal = Signal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 0.100
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.100
- });
- MarcoUI:_Animation(ValueItems,TweenInfo.new(0.2),{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 0
- });
- MarcoUI:_Animation(ValueText,TweenInfo.new(0.32),{
- TextTransparency = 0
- });
- MarcoUI:_Animation(MainButton,TweenInfo.new(0.2),{
- ImageTransparency = 0
- });
- else
- MarcoUI:_Animation(BlockText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(BlockLine,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(ValueItems,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 1
- });
- MarcoUI:_Animation(ValueText,TweenInfo.new(0.2),{
- TextTransparency = 1
- });
- MarcoUI:_Animation(MainButton,TweenInfo.new(0.2),{
- ImageTransparency = 1
- });
- end;
- end);
- Args.Link = MarcoUI:_LoadOption({
- AddLink = function(self ,Name , Default)
- return MarcoUI:_AddLinkValue(Name , Default , LinkValues , LinkValues , {
- Tween = TweenInfo.new(0.2)
- } , Signal);
- end,
- Root = Dropdown
- });
- function Args:GetValue()
- return Config.Default;
- end;
- if Config.Flag then
- MarcoUI.Flags[Config.Flag] = Args;
- end;
- return Args;
- end;
- return Args;
- end;
- -- Theme Presets System
- MarcoUI.ThemePresets = {
- ["Crimson Red"] = {
- Highlight = Color3.fromRGB(220, 20, 60),
- Toggle = Color3.fromRGB(180, 16, 48),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(10, 10, 10),
- BlockColor = Color3.fromRGB(16, 16, 16),
- StrokeColor = Color3.fromRGB(35, 35, 35),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(22, 22, 22),
- MouseEnter = Color3.fromRGB(40, 40, 40),
- BlockBackground = Color3.fromRGB(24, 24, 24),
- LineColor = Color3.fromRGB(220, 20, 60),
- HighStrokeColor = Color3.fromRGB(55, 55, 55),
- },
- ["Ocean Blue"] = {
- Highlight = Color3.fromRGB(52, 152, 219),
- Toggle = Color3.fromRGB(41, 128, 185),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(12, 15, 20),
- BlockColor = Color3.fromRGB(18, 22, 28),
- StrokeColor = Color3.fromRGB(35, 42, 50),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(25, 30, 38),
- MouseEnter = Color3.fromRGB(45, 55, 65),
- BlockBackground = Color3.fromRGB(28, 35, 45),
- LineColor = Color3.fromRGB(52, 152, 219),
- HighStrokeColor = Color3.fromRGB(60, 70, 80),
- },
- ["Neon Purple"] = {
- Highlight = Color3.fromRGB(155, 89, 182),
- Toggle = Color3.fromRGB(142, 68, 173),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(15, 10, 20),
- BlockColor = Color3.fromRGB(22, 16, 28),
- StrokeColor = Color3.fromRGB(40, 30, 50),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(28, 20, 35),
- MouseEnter = Color3.fromRGB(50, 40, 60),
- BlockBackground = Color3.fromRGB(32, 24, 40),
- LineColor = Color3.fromRGB(155, 89, 182),
- HighStrokeColor = Color3.fromRGB(60, 50, 70),
- },
- ["Emerald Green"] = {
- Highlight = Color3.fromRGB(46, 204, 113),
- Toggle = Color3.fromRGB(39, 174, 96),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(10, 15, 12),
- BlockColor = Color3.fromRGB(16, 22, 18),
- StrokeColor = Color3.fromRGB(35, 45, 38),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(22, 28, 24),
- MouseEnter = Color3.fromRGB(40, 50, 43),
- BlockBackground = Color3.fromRGB(24, 32, 27),
- LineColor = Color3.fromRGB(46, 204, 113),
- HighStrokeColor = Color3.fromRGB(55, 65, 58),
- },
- ["Amber Gold"] = {
- Highlight = Color3.fromRGB(241, 196, 15),
- Toggle = Color3.fromRGB(230, 126, 34),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(18, 15, 10),
- BlockColor = Color3.fromRGB(26, 22, 16),
- StrokeColor = Color3.fromRGB(45, 38, 28),
- SwitchColor = Color3.fromRGB(245, 245, 245),
- DropColor = Color3.fromRGB(32, 28, 20),
- MouseEnter = Color3.fromRGB(50, 45, 35),
- BlockBackground = Color3.fromRGB(35, 30, 22),
- LineColor = Color3.fromRGB(241, 196, 15),
- HighStrokeColor = Color3.fromRGB(60, 55, 45),
- },
- ["Midnight"] = {
- Highlight = Color3.fromRGB(116, 185, 255),
- Toggle = Color3.fromRGB(100, 181, 246),
- Risky = Color3.fromRGB(255, 196, 0),
- BGDBColor = Color3.fromRGB(5, 5, 8),
- BlockColor = Color3.fromRGB(12, 12, 18),
- StrokeColor = Color3.fromRGB(25, 25, 35),
- SwitchColor = Color3.fromRGB(240, 240, 245),
- DropColor = Color3.fromRGB(18, 18, 25),
- MouseEnter = Color3.fromRGB(35, 35, 45),
- BlockBackground = Color3.fromRGB(20, 20, 28),
- LineColor = Color3.fromRGB(116, 185, 255),
- HighStrokeColor = Color3.fromRGB(40, 40, 50),
- },
- };
- function MarcoUI:GetTheme()
- return MarcoUI.Colors;
- end;
- function MarcoUI:GetThemePresets()
- return MarcoUI.ThemePresets;
- end;
- function MarcoUI:SetTheme(name)
- -- Check if it's a custom theme table (user-defined)
- if type(name) == "table" then
- MarcoUI.Colors = {};
- for k, v in pairs(name) do
- MarcoUI.Colors[k] = v;
- end;
- MarcoUI:RefreshCurrentColor();
- return;
- end;
- -- Check if it's a preset name
- if MarcoUI.ThemePresets[name] then
- MarcoUI.Colors = {};
- for k, v in pairs(MarcoUI.ThemePresets[name]) do
- MarcoUI.Colors[k] = v;
- end;
- MarcoUI:RefreshCurrentColor();
- return;
- end;
- -- Legacy theme support
- if name == "Dark Green" then
- MarcoUI.Colors = {
- ["BGDBColor"] = Color3.new(0.0429964, 0.110345, 0.0727226),
- ["BlockBackground"] = Color3.new(0.159287, 0.234483, 0.201811),
- ["BlockColor"] = Color3.new(0, 0.137931, 0.0951249),
- ["DropColor"] = Color3.new(0, 0.227586, 0.100452),
- ["Highlight"] = Color3.new(0.0666667, 0.992157, 0.628343),
- ["LineColor"] = Color3.new(0.263258, 0.372414, 0.329504),
- ["MouseEnter"] = Color3.new(0, 0.841379, 0.51063),
- ["Risky"] = Color3.new(1, 0.398296, 0.152941),
- ["StrokeColor"] = Color3.new(0.132342, 0.241379, 0.198517),
- ["SwitchColor"] = Color3.new(0.927586, 1, 0.980523),
- ["Toggle"] = Color3.new(0, 0.613793, 0.220119),
- HighStrokeColor = Color3.new(0, 0.241379, 0.186445),
- };
- elseif name == "Default" then
- MarcoUI.Colors = {
- Highlight = Color3.fromRGB(17, 238, 253),
- Toggle = Color3.fromRGB(14, 203, 213),
- Risky = Color3.fromRGB(251, 255, 39),
- BGDBColor = Color3.fromRGB(22, 24, 29),
- BlockColor = Color3.fromRGB(28, 29, 34),
- StrokeColor = Color3.fromRGB(37, 38, 43),
- SwitchColor = Color3.fromRGB(255, 255, 255),
- DropColor = Color3.fromRGB(33, 35, 39),
- MouseEnter = Color3.fromRGB(55, 58, 65),
- BlockBackground = Color3.fromRGB(39, 40, 47),
- LineColor = Color3.fromRGB(65, 65, 65),
- HighStrokeColor = Color3.fromRGB(55, 56, 63),
- };
- elseif name == "Dark Blue" then
- MarcoUI.Colors = {
- ["BGDBColor"] = Color3.new(0.0393817, 0.0754204, 0.165517),
- ["BlockBackground"] = Color3.new(0, 0.0618311, 0.172414),
- ["BlockColor"] = Color3.new(0, 0.0172414, 0.103448),
- ["DropColor"] = Color3.new(0, 0.0965518, 0.289655),
- ["HighStrokeColor"] = Color3.new(0, 0.132604, 0.234483),
- ["Highlight"] = Color3.new(0.0666667, 0.781528, 0.992157),
- ["LineColor"] = Color3.new(0, 0.110345, 0.275862),
- ["MouseEnter"] = Color3.new(0, 0.606896, 1),
- ["Risky"] = Color3.new(0.0310345, 0.819572, 1),
- ["StrokeColor"] = Color3.new(0, 0.119857, 0.248276),
- ["SwitchColor"] = Color3.new(1, 1, 1),
- ["Toggle"] = Color3.new(0.054902, 0.463935, 0.835294)
- }
- elseif name == "Purple Rose" then
- MarcoUI.Colors = {
- ["BGDBColor"] = Color3.new(0.0459068, 0.030321, 0.117241),
- ["BlockBackground"] = Color3.new(0.156272, 0.119596, 0.324138),
- ["BlockColor"] = Color3.new(0.0948428, 0.0576457, 0.165517),
- ["DropColor"] = Color3.new(0.131034, 0, 0.0813317),
- ["HighStrokeColor"] = Color3.new(0.136259, 0.101237, 0.296552),
- ["Highlight"] = Color3.new(0.992157, 0.0666667, 0.33474),
- ["LineColor"] = Color3.new(0.20872, 0.137408, 0.372414),
- ["MouseEnter"] = Color3.new(0.365517, 0, 0.120999),
- ["Risky"] = Color3.new(1, 0.6086, 0.152941),
- ["StrokeColor"] = Color3.new(0.148499, 0.137836, 0.248276),
- ["SwitchColor"] = Color3.new(1, 1, 1),
- ["Toggle"] = Color3.new(0.835294, 0.054902, 0.248654)
- }
- elseif name == "Skeet" then
- MarcoUI.Colors = {
- ["BGDBColor"] = Color3.new(0.114578, 0.125191, 0.151724),
- ["BlockBackground"] = Color3.new(0.128181, 0.131124, 0.151724),
- ["BlockColor"] = Color3.new(0.0732699, 0.0760008, 0.0896552),
- ["DropColor"] = Color3.new(0.0809037, 0.0861197, 0.0965517),
- ["HighStrokeColor"] = Color3.new(0.119382, 0.1217, 0.137931),
- ["Highlight"] = Color3.new(0, 0.634483, 0.0700119),
- ["LineColor"] = Color3.new(0.151724, 0.151724, 0.151724),
- ["MouseEnter"] = Color3.new(0.134007, 0.141391, 0.158621),
- ["Risky"] = Color3.new(0.984314, 1, 0.152941),
- ["StrokeColor"] = Color3.new(0.0769798, 0.0790924, 0.0896552),
- ["SwitchColor"] = Color3.new(1, 1, 1),
- ["Toggle"] = Color3.new(0, 0.324138, 0.10283)
- }
- end;
- MarcoUI:RefreshCurrentColor()
- end;
- -- Global color override function
- function MarcoUI:SetGlobalAccentColor(color)
- if typeof(color) == "Color3" then
- MarcoUI.Colors.Highlight = color;
- MarcoUI:RefreshCurrentColor();
- end;
- end;
- function MarcoUI:RefreshCurrentColor()
- for i,v in next , MarcoUI.Elements.Highlight do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.Highlight;
- end;
- end;
- for i,v in next , MarcoUI.Elements do
- if v.Element and v.Property and v.Element:GetAttribute('Enabled') then
- v.Element[v.Property] = MarcoUI.Colors.Highlight;
- end;
- end;
- for i,v in next , MarcoUI.Elements.Risky do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.Risky;
- end;
- end;
- for i,v in next , MarcoUI.Elements.BlockColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.BlockColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.BGDBColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.BGDBColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.StrokeColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.StrokeColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.SwitchColor do
- if v.Element and v.Property and v.Element[v.Property] ~= MarcoUI.Colors.MouseEnter then
- v.Element[v.Property] = MarcoUI.Colors.SwitchColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.BlockBackground do
- if v.Element and v.Property and v.Element[v.Property] then
- v.Element[v.Property] = MarcoUI.Colors.BlockBackground;
- end;
- end;
- for i,v in next , MarcoUI.Elements.DropColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.DropColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.LineColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.LineColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements.HighStrokeColor do
- if v.Element and v.Property then
- v.Element[v.Property] = MarcoUI.Colors.HighStrokeColor;
- end;
- end;
- end;
- function MarcoUI:ChangeHighlightColor(NewColor: Color3)
- local H,S,V = NewColor:ToHSV();
- MarcoUI.Colors.Highlight = NewColor;
- MarcoUI.Colors.Toggle = Color3.fromHSV(H,S,V - 0.2);
- for i,v in next , MarcoUI.Elements.Highlight do
- if v.Element and v.Property then
- v.Element[v.Property] = NewColor;
- end;
- end;
- for i,v in next , MarcoUI.Elements do
- if v.Element and v.Property and v.Element:GetAttribute('Enabled') then
- v.Element[v.Property] = NewColor;
- end;
- end;
- end;
- function MarcoUI:RainbowTexturing(speed)
- if speed == false then
- MarcoUI.__RainbowTexturingRunning = false;
- if MarcoUI.__RainbowTexturingThread then
- MarcoUI.__RainbowTexturingThread:Disconnect();
- MarcoUI.__RainbowTexturingThread = nil;
- end;
- return;
- end;
- -- Default speed is 0.15 (sleek and smooth)
- -- Speed controls how fast the hue cycles (0.05 = very slow, 0.15 = default sleek, 0.3 = fast, 0.6 = very fast)
- speed = speed or 0.15;
- if MarcoUI.__RainbowTexturingThread then
- MarcoUI.__RainbowTexturingRunning = false;
- MarcoUI.__RainbowTexturingThread:Disconnect();
- end;
- MarcoUI.__RainbowTexturingRunning = true;
- local startTime = tick();
- local lastColor = Color3.fromRGB(220, 20, 60);
- -- Use RenderStepped for ultra-smooth, frame-perfect updates
- MarcoUI.__RainbowTexturingThread = RunService.RenderStepped:Connect(function()
- if not MarcoUI.__RainbowTexturingRunning then
- return;
- end;
- -- Calculate hue based on elapsed time and speed - seamless continuous cycle
- local elapsed = tick() - startTime;
- local hue = (elapsed * speed) % 1;
- -- Use smooth color interpolation for cleaner transitions
- local rainbow = Color3.fromHSV(hue, 0.95, 0.98); -- Slightly desaturated for cleaner look
- -- Smooth interpolation between last color and new color for ultra-smooth transitions
- local lerpFactor = 0.15; -- Smooth interpolation factor
- rainbow = lastColor:lerp(rainbow, lerpFactor);
- lastColor = rainbow;
- MarcoUI:ChangeHighlightColor(rainbow);
- MarcoUI.Colors.LineColor = rainbow;
- for i,v in next , MarcoUI.Elements.LineColor do
- if v.Element and v.Property then
- v.Element[v.Property] = rainbow;
- end;
- end;
- -- Real-time RGB updates for active toggles
- if MarcoUI.__ActiveRGBToggles then
- for i, toggleData in ipairs(MarcoUI.__ActiveRGBToggles) do
- if toggleData.Toggle and toggleData.Toggle.Parent then
- toggleData.Toggle.BackgroundColor3 = rainbow;
- end;
- end;
- end;
- -- Real-time RGB updates for active sliders
- if MarcoUI.__ActiveRGBSliders then
- for i, sliderData in ipairs(MarcoUI.__ActiveRGBSliders) do
- if sliderData.SliderInput and sliderData.SliderInput.Parent then
- sliderData.SliderInput.BackgroundColor3 = rainbow;
- end;
- end;
- end;
- end);
- return MarcoUI.__RainbowTexturingThread;
- end;
- function MarcoUI.new(Config : Window)
- Config = Config or {};
- -- Apply theme BEFORE any UI elements are created
- if Config.Theme then
- if type(Config.Theme) == "string" then
- -- Preset theme name
- MarcoUI:SetTheme(Config.Theme);
- elseif type(Config.Theme) == "table" then
- -- Custom theme table
- MarcoUI:SetTheme(Config.Theme);
- end;
- end;
- if not Config.Scale then
- if MarcoUI:_IsMobile() then
- Config.Scale = MarcoUI.Scale.Mobile;
- else
- Config.Scale = MarcoUI.Scale.Window;
- end;
- end;
- local defaultGameName = "Roblox";
- if Config and Config.GameName then
- defaultGameName = Config.GameName;
- end;
- local defaultMinimizeKey = Enum.KeyCode.M;
- if Config and Config.MinimizeKeybind then
- defaultMinimizeKey = Config.MinimizeKeybind;
- end;
- Config = MarcoUI.__CONFIG(Config , {
- Name = "MarcoUI",
- Keybind = "Insert",
- Logo = MarcoUI.Logo;
- Scale = MarcoUI.Scale.Window,
- TextSize = 15,
- GameName = defaultGameName,
- MinimizeKeybind = defaultMinimizeKey,
- Theme = nil, -- Don't include in default config
- Pattern = nil, -- Don't include in default config
- KeyType = "Free", -- "Premium" or "Free"
- KeyExpiration = "Lifetime" -- Customize this
- });
- local TabHover = MarcoUI.__SIGNAL(false);
- local WindowOpen = MarcoUI.__SIGNAL(true);
- local WindowArgs = {
- SelectedTab = nil,
- Tabs = {},
- LastTab = nil,
- IsOpen = true,
- IsMinimized = false,
- AlwayShowTab = false,
- THREADS = {},
- PerformanceMode = false,
- Notify = MarcoUI.newNotify()
- };
- WindowArgs.Username = (LocalPlayer and LocalPlayer.Name) or "Player";
- if MarcoUI:_IsMobile() then
- WindowArgs.AlwayShowTab = true;
- end;
- local WindowGui = Instance.new("ScreenGui")
- local MainFrame = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local TabFrame = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local LineFrame1 = Instance.new("Frame")
- local CompLogo = Instance.new("ImageLabel")
- local WindowLabel = Instance.new("TextLabel")
- local TabButtons = Instance.new("Frame")
- local SelectionFrame = Instance.new("Frame")
- local UICorner_3 = Instance.new("UICorner")
- local TabButtonScrollingFrame = Instance.new("ScrollingFrame")
- local UIListLayout = Instance.new("UIListLayout")
- local Userinfo = Instance.new("Frame")
- local UserProfile = Instance.new("ImageLabel")
- local UICorner_4 = Instance.new("UICorner")
- local UserText = Instance.new("TextLabel")
- local ExpireText = Instance.new("TextLabel")
- local TabMainFrame = Instance.new("Frame")
- MarcoUI:_DrawKeybinds(WindowGui);
- UIListLayout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- TabButtonScrollingFrame.CanvasSize = UDim2.fromOffset(0,UIListLayout.AbsoluteContentSize.Y)
- end);
- WindowGui.Name = "u?name=MarcoUI_?"..MarcoUI:_RandomString();
- WindowGui.Parent = CoreGui;
- WindowGui.Enabled = true;
- WindowGui.ResetOnSpawn = false
- WindowGui.IgnoreGuiInset = true;
- WindowGui.ZIndexBehavior = Enum.ZIndexBehavior.Global;
- MarcoUI.ProtectGui(WindowGui);
- WindowArgs.Root = WindowGui;
- table.insert(MarcoUI.Windows , WindowGui);
- MainFrame.Active = true;
- MainFrame.Name = MarcoUI:_RandomString()
- MainFrame.Parent = WindowGui
- MainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
- MainFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = MainFrame,
- Property = 'BackgroundColor3'
- });
- -- Premium indicator on MainFrame (subtle gold border)
- if isPremium then
- local PremiumMainBorder = Instance.new("UIStroke")
- PremiumMainBorder.Name = MarcoUI:_RandomString()
- PremiumMainBorder.Parent = MainFrame
- PremiumMainBorder.Color = Color3.fromRGB(255, 215, 0)
- PremiumMainBorder.Thickness = 2
- PremiumMainBorder.Transparency = 0.3
- PremiumMainBorder.ZIndex = 5
- end;
- MainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MainFrame.BorderSizePixel = 0
- MainFrame.Position = UDim2.fromScale(0.5,0.5);
- -- Start with small size and transparent for intro animation
- MainFrame.Size = UDim2.new(0, 0, 0, 0)
- MainFrame.BackgroundTransparency = 1
- MainFrame.Visible = true
- MainFrame.ZIndex = 4
- MainFrame:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
- if MainFrame.BackgroundTransparency > 0.9 then
- MainFrame.Visible = false;
- else
- MainFrame.Visible = true;
- end;
- end)
- -- Intro animation: Scale and fade in
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.6,Enum.EasingStyle.Exponential,Enum.EasingDirection.Out),{
- Size = Config.Scale,
- BackgroundTransparency = 0
- });
- UICorner.Parent = MainFrame
- -- Pattern overlay system for MainFrame
- if Config.Pattern and type(Config.Pattern) == "string" and Config.Pattern ~= "" then
- local PatternOverlay = Instance.new("ImageLabel")
- PatternOverlay.Name = MarcoUI:_RandomString()
- PatternOverlay.Parent = MainFrame
- PatternOverlay.BackgroundTransparency = 1.000
- PatternOverlay.BorderSizePixel = 0
- PatternOverlay.Size = UDim2.new(1, 0, 1, 0)
- PatternOverlay.ZIndex = 3
- PatternOverlay.Image = Config.Pattern
- PatternOverlay.ImageTransparency = 0.95 -- High transparency for subtle texture
- PatternOverlay.ImageColor3 = Color3.fromRGB(255, 255, 255)
- PatternOverlay.ScaleType = Enum.ScaleType.Tile
- PatternOverlay.TileSize = UDim2.new(0, 50, 0, 50) -- Adjustable tile size
- end;
- local TabFrameBaseTrans = 0.25;
- TabFrame.Active = true
- TabFrame.Name = MarcoUI:_RandomString()
- TabFrame.Parent = MainFrame
- TabFrame.AnchorPoint = Vector2.new(1, 0)
- TabFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = TabFrame,
- Property = 'BackgroundColor3'
- });
- -- Premium indicator on TabFrame (subtle gold accent)
- if isPremium then
- local PremiumTabAccent = Instance.new("Frame")
- PremiumTabAccent.Name = MarcoUI:_RandomString()
- PremiumTabAccent.Parent = TabFrame
- PremiumTabAccent.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
- PremiumTabAccent.BackgroundTransparency = 0.7
- PremiumTabAccent.BorderSizePixel = 0
- PremiumTabAccent.Size = UDim2.new(0, 3, 1, 0)
- PremiumTabAccent.Position = UDim2.new(0, 0, 0, 0)
- PremiumTabAccent.ZIndex = 1
- end;
- TabFrame.BackgroundTransparency = TabFrameBaseTrans
- TabFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabFrame.BorderSizePixel = 0
- TabFrame.ClipsDescendants = true
- TabFrame.Position = UDim2.new(0, 25, 0, 0)
- TabFrame.Size = UDim2.new(0, 85, 1, 0)
- UICorner_2.Parent = TabFrame
- -- Pattern overlay system for TabFrame (sidebar)
- if Config.Pattern and type(Config.Pattern) == "string" and Config.Pattern ~= "" then
- local TabPatternOverlay = Instance.new("ImageLabel")
- TabPatternOverlay.Name = MarcoUI:_RandomString()
- TabPatternOverlay.Parent = TabFrame
- TabPatternOverlay.BackgroundTransparency = 1.000
- TabPatternOverlay.BorderSizePixel = 0
- TabPatternOverlay.Size = UDim2.new(1, 0, 1, 0)
- TabPatternOverlay.ZIndex = 2
- TabPatternOverlay.Image = Config.Pattern
- TabPatternOverlay.ImageTransparency = 0.98 -- Very high transparency for subtle texture
- TabPatternOverlay.ImageColor3 = Color3.fromRGB(255, 255, 255)
- TabPatternOverlay.ScaleType = Enum.ScaleType.Tile
- TabPatternOverlay.TileSize = UDim2.new(0, 50, 0, 50)
- end;
- LineFrame1.Name = MarcoUI:_RandomString()
- LineFrame1.Parent = TabFrame
- LineFrame1.AnchorPoint = Vector2.new(1, 0)
- LineFrame1.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = LineFrame1,
- Property = 'BackgroundColor3'
- });
- LineFrame1.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LineFrame1.BorderSizePixel = 0
- LineFrame1.Position = UDim2.new(1, -5, 0, 0)
- LineFrame1.Size = UDim2.new(0, 20, 1, 0)
- CompLogo.Name = MarcoUI:_RandomString()
- CompLogo.Parent = TabFrame
- CompLogo.BackgroundTransparency = 1.000
- CompLogo.BorderColor3 = Color3.fromRGB(0, 0, 0)
- CompLogo.BorderSizePixel = 0
- CompLogo.Position = UDim2.new(0, 9, 0, 7)
- CompLogo.Size = UDim2.new(0, 45, 0, 45)
- CompLogo.Image = Config.Logo
- if MarcoUI.CustomHighlightMode then
- CompLogo.ImageColor3 = MarcoUI.Colors.Highlight;
- table.insert(MarcoUI.Elements.Highlight , {
- Element = CompLogo,
- Property = 'ImageColor3'
- });
- end;
- WindowLabel.Name = MarcoUI:_RandomString()
- WindowLabel.Parent = TabFrame
- WindowLabel.BackgroundTransparency = 1.000
- WindowLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- WindowLabel.BorderSizePixel = 0
- WindowLabel.Position = UDim2.new(0, 60, 0, 12)
- WindowLabel.Size = UDim2.new(0, 200, 0, 20)
- WindowLabel.Font = Enum.Font.GothamBold
- WindowLabel.Text = Config.Name
- WindowLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- WindowLabel.TextSize = Config.TextSize
- WindowLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = WindowLabel,
- Property = 'TextColor3'
- });
- -- Game Name Indicator
- local GameNameLabel = Instance.new("TextLabel")
- GameNameLabel.Name = MarcoUI:_RandomString()
- GameNameLabel.Parent = TabFrame
- GameNameLabel.BackgroundTransparency = 1.000
- GameNameLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- GameNameLabel.BorderSizePixel = 0
- GameNameLabel.Position = UDim2.new(0, 60, 0, 32)
- GameNameLabel.Size = UDim2.new(0, 200, 0, 16)
- GameNameLabel.Font = Enum.Font.Gotham
- GameNameLabel.Text = Config.GameName
- GameNameLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
- GameNameLabel.TextSize = 11
- GameNameLabel.TextTransparency = 0.3
- GameNameLabel.TextXAlignment = Enum.TextXAlignment.Left
- TabButtons.Name = MarcoUI:_RandomString()
- TabButtons.Parent = TabFrame
- TabButtons.BackgroundTransparency = 1.000
- TabButtons.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabButtons.BorderSizePixel = 0
- TabButtons.Position = UDim2.new(0, 0, 0, 60)
- TabButtons.Size = UDim2.new(1, -25, 1, -125)
- -- Home Button (Pinned at top, bigger than normal tabs)
- local HomeButton = Instance.new("Frame")
- local HomeIcon = Instance.new("ImageLabel")
- local HomeLabel = Instance.new("TextLabel")
- local HomeHighlight = Instance.new("Frame")
- local HomeCorner = Instance.new("UICorner")
- local HomeTabOpenSignal = MarcoUI.__SIGNAL(false);
- local HomeContent = nil;
- HomeButton.Name = MarcoUI:_RandomString()
- HomeButton.Parent = TabButtons
- HomeButton.BackgroundTransparency = 1.000
- HomeButton.BorderSizePixel = 0
- HomeButton.Size = UDim2.new(1, -10, 0, 38) -- Bigger than normal tabs (38px vs 32px)
- HomeButton.ZIndex = 3
- HomeIcon.Name = MarcoUI:_RandomString()
- HomeIcon.Parent = HomeButton
- HomeIcon.AnchorPoint = Vector2.new(0, 0.5)
- HomeIcon.BackgroundTransparency = 1.000
- HomeIcon.BorderSizePixel = 0
- HomeIcon.Position = UDim2.new(0, 15, 0.5, 0)
- HomeIcon.Size = UDim2.new(0, 22, 0, 22) -- Bigger icon
- HomeIcon.ZIndex = 3
- HomeIcon.Image = MarcoUI:_GetIcon("home");
- HomeIcon.ImageColor3 = MarcoUI.Colors.Highlight
- table.insert(MarcoUI.Elements.Highlight,{
- Element = HomeIcon,
- Property = "ImageColor3"
- });
- HomeLabel.Name = MarcoUI:_RandomString()
- HomeLabel.Parent = HomeButton
- HomeLabel.AnchorPoint = Vector2.new(0, 0.5)
- HomeLabel.BackgroundTransparency = 1.000
- HomeLabel.BorderSizePixel = 0
- HomeLabel.Position = UDim2.new(0, 45, 0.5, 0)
- HomeLabel.Size = UDim2.new(0, 200, 0, 25)
- HomeLabel.ZIndex = 3
- HomeLabel.Font = Enum.Font.GothamBlack -- Even bolder font
- HomeLabel.Text = "Home"
- HomeLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- HomeLabel.TextSize = 17.000 -- Larger text
- HomeLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = HomeLabel,
- Property = 'TextColor3'
- });
- HomeHighlight.Name = MarcoUI:_RandomString()
- HomeHighlight.Parent = HomeButton
- HomeHighlight.AnchorPoint = Vector2.new(0.5, 0.5)
- HomeHighlight.BackgroundColor3 = Color3.fromRGB(161, 161, 161)
- HomeHighlight.BackgroundTransparency = 0.925
- HomeHighlight.BorderSizePixel = 0
- HomeHighlight.Position = UDim2.new(0.5, 0, 0.5, 0)
- HomeHighlight.Size = UDim2.new(1, -17, 1, 0)
- HomeHighlight.ZIndex = 2
- HomeCorner.CornerRadius = UDim.new(0, 4)
- HomeCorner.Parent = HomeHighlight
- SelectionFrame.Name = MarcoUI:_RandomString()
- SelectionFrame.Parent = TabButtons
- SelectionFrame.AnchorPoint = Vector2.new(1, 0)
- SelectionFrame.BackgroundColor3 = MarcoUI.Colors.Highlight
- SelectionFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SelectionFrame.BorderSizePixel = 0
- SelectionFrame.Position = UDim2.new(1, 5, 0, 28)
- SelectionFrame.Size = UDim2.new(0, 8, 0, 27)
- table.insert(MarcoUI.Elements.Highlight,{
- Element = SelectionFrame,
- Property = "BackgroundColor3"
- });
- UICorner_3.CornerRadius = UDim.new(1, 0)
- UICorner_3.Parent = SelectionFrame
- TabButtonScrollingFrame.Name = MarcoUI:_RandomString()
- TabButtonScrollingFrame.Parent = TabButtons
- TabButtonScrollingFrame.Active = true
- TabButtonScrollingFrame.AnchorPoint = Vector2.new(0.5, 0)
- TabButtonScrollingFrame.BackgroundTransparency = 1.000
- TabButtonScrollingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabButtonScrollingFrame.BorderSizePixel = 0
- TabButtonScrollingFrame.Position = UDim2.new(0.5, 0, 0, 46) -- Start right below Home button (small gap)
- TabButtonScrollingFrame.Size = UDim2.new(1, -5, 1, -50) -- Adjusted for Home button
- TabButtonScrollingFrame.BottomImage = ""
- TabButtonScrollingFrame.ScrollBarThickness = 0
- TabButtonScrollingFrame.TopImage = ""
- UIListLayout.Parent = TabButtonScrollingFrame
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 4)
- -- Home Dashboard Content
- local HomeDashboard = Instance.new("ScrollingFrame")
- local DashboardLayout = Instance.new("UIListLayout")
- local DashboardPadding = Instance.new("UIPadding")
- -- Executor logo mapping (easy to add more)
- local ExecutorLogos = {
- ["Seliware"] = "123639305885181",
- -- Add more executors here:
- -- ["ExecutorName"] = "RobloxDecalID",
- };
- -- Get executor name
- local executorName = "Unknown";
- if identifyexecutor then
- local success, result = pcall(identifyexecutor);
- if success and result then
- executorName = tostring(result);
- end;
- end;
- -- Get key type and expiration
- local keyType = Config.KeyType or "Free"; -- "Premium" or "Free"
- local keyExpiration = Config.KeyExpiration or "Lifetime";
- local lastExecuted = os.date("%Y-%m-%d %H:%M:%S", tick());
- local lastGameExecuted = Config.GameName;
- local isPremium = (keyType == "Premium");
- HomeDashboard.Name = MarcoUI:_RandomString()
- HomeDashboard.Parent = TabMainFrame
- HomeDashboard.BackgroundTransparency = 1.000
- HomeDashboard.BorderSizePixel = 0
- HomeDashboard.Size = UDim2.new(1, 0, 1, 0)
- HomeDashboard.ZIndex = 6
- HomeDashboard.Visible = true -- Start visible for Home
- HomeDashboard.BottomImage = ""
- HomeDashboard.ScrollBarThickness = 6
- HomeDashboard.TopImage = ""
- HomeDashboard.AutomaticCanvasSize = Enum.AutomaticSize.Y
- DashboardLayout.Parent = HomeDashboard
- DashboardLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- DashboardLayout.SortOrder = Enum.SortOrder.LayoutOrder
- DashboardLayout.Padding = UDim.new(0, 12)
- DashboardLayout.FillDirection = Enum.FillDirection.Vertical
- DashboardPadding.Parent = HomeDashboard
- DashboardPadding.PaddingTop = UDim.new(0, 20)
- DashboardPadding.PaddingBottom = UDim.new(0, 20)
- DashboardPadding.PaddingLeft = UDim.new(0, 15)
- DashboardPadding.PaddingRight = UDim.new(0, 15)
- -- Top Row Container (Left and Right cards)
- local TopRowContainer = Instance.new("Frame")
- local TopRowLayout = Instance.new("UIListLayout")
- TopRowContainer.Name = MarcoUI:_RandomString()
- TopRowContainer.Parent = HomeDashboard
- TopRowContainer.BackgroundTransparency = 1.000
- TopRowContainer.Size = UDim2.new(1, -30, 0, 0)
- TopRowContainer.AutomaticSize = Enum.AutomaticSize.Y
- TopRowContainer.ZIndex = 7
- TopRowLayout.Parent = TopRowContainer
- TopRowLayout.FillDirection = Enum.FillDirection.Horizontal
- TopRowLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- TopRowLayout.SortOrder = Enum.SortOrder.LayoutOrder
- TopRowLayout.Padding = UDim.new(0, 12)
- -- User Profile Card (Left side)
- local UserProfileCard = Instance.new("Frame")
- local UserProfileCorner = Instance.new("UICorner")
- local UserProfileStroke = Instance.new("UIStroke")
- local UserProfileLayout = Instance.new("UIListLayout")
- local UserProfilePadding = Instance.new("UIPadding")
- local UserAvatar = Instance.new("ImageLabel")
- local UserAvatarCorner = Instance.new("UICorner")
- local UserAvatarStroke = Instance.new("UIStroke")
- local UserNameLabel = Instance.new("TextLabel")
- local UserIDLabel = Instance.new("TextLabel")
- local PremiumBadge = Instance.new("Frame")
- local PremiumBadgeCorner = Instance.new("UICorner")
- local PremiumBadgeStroke = Instance.new("UIStroke")
- local PremiumBadgeText = Instance.new("TextLabel")
- local PremiumCrown = Instance.new("ImageLabel")
- local PremiumShine = Instance.new("Frame")
- local PremiumShineGradient = Instance.new("UIGradient")
- UserProfileCard.Name = MarcoUI:_RandomString()
- UserProfileCard.Parent = TopRowContainer
- UserProfileCard.BackgroundColor3 = MarcoUI.Colors.BlockColor
- UserProfileCard.BorderSizePixel = 0
- UserProfileCard.Size = UDim2.new(0.48, 0, 0, 0)
- UserProfileCard.AutomaticSize = Enum.AutomaticSize.Y
- UserProfileCard.ZIndex = 8
- table.insert(MarcoUI.Elements.BlockColor, {
- Element = UserProfileCard,
- Property = "BackgroundColor3"
- });
- UserProfileCorner.CornerRadius = UDim.new(0, 10)
- UserProfileCorner.Parent = UserProfileCard
- UserProfileStroke.Color = (isPremium and Color3.fromRGB(255, 215, 0)) or MarcoUI.Colors.StrokeColor
- UserProfileStroke.Thickness = (isPremium and 2.5) or 1.5
- UserProfileStroke.Parent = UserProfileCard
- table.insert(MarcoUI.Elements.StrokeColor, {
- Element = UserProfileStroke,
- Property = "Color"
- });
- UserProfileLayout.Parent = UserProfileCard
- UserProfileLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UserProfileLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UserProfileLayout.Padding = UDim.new(0, 15)
- UserProfilePadding.Parent = UserProfileCard
- UserProfilePadding.PaddingTop = UDim.new(0, 20)
- UserProfilePadding.PaddingBottom = UDim.new(0, 20)
- UserProfilePadding.PaddingLeft = UDim.new(0, 20)
- UserProfilePadding.PaddingRight = UDim.new(0, 20)
- -- Avatar
- UserAvatar.Name = MarcoUI:_RandomString()
- UserAvatar.Parent = UserProfileCard
- UserAvatar.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- UserAvatar.BorderSizePixel = 0
- UserAvatar.Size = UDim2.new(0, 110, 0, 110)
- UserAvatar.ZIndex = 9
- UserAvatar.Image = (LocalPlayer and string.format("rbxthumb://type=AvatarHeadShot&id=%s&w=150&h=150", tostring(LocalPlayer.UserId))) or "rbxassetid://18518299306"
- UserAvatarCorner.CornerRadius = UDim.new(1, 0)
- UserAvatarCorner.Parent = UserAvatar
- UserAvatarStroke.Color = (isPremium and Color3.fromRGB(255, 215, 0)) or MarcoUI.Colors.Highlight
- UserAvatarStroke.Thickness = (isPremium and 3) or 2
- UserAvatarStroke.Parent = UserAvatar
- if isPremium then
- table.insert(MarcoUI.Elements.Highlight, {
- Element = UserAvatarStroke,
- Property = "Color"
- });
- end;
- -- Username (just the name, no "Username:")
- UserNameLabel.Name = MarcoUI:_RandomString()
- UserNameLabel.Parent = UserProfileCard
- UserNameLabel.BackgroundTransparency = 1.000
- UserNameLabel.Size = UDim2.new(1, 0, 0, 28)
- UserNameLabel.Font = Enum.Font.GothamBold
- UserNameLabel.Text = (LocalPlayer and LocalPlayer.Name) or "Player"
- UserNameLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- UserNameLabel.TextSize = 20
- UserNameLabel.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = UserNameLabel,
- Property = "TextColor3"
- });
- -- User ID
- UserIDLabel.Name = MarcoUI:_RandomString()
- UserIDLabel.Parent = UserProfileCard
- UserIDLabel.BackgroundTransparency = 1.000
- UserIDLabel.Size = UDim2.new(1, 0, 0, 22)
- UserIDLabel.Font = Enum.Font.Gotham
- UserIDLabel.Text = "ID: " .. ((LocalPlayer and tostring(LocalPlayer.UserId)) or "0")
- UserIDLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- UserIDLabel.TextSize = 14
- UserIDLabel.TextTransparency = 0.2
- UserIDLabel.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = UserIDLabel,
- Property = "TextColor3"
- });
- -- Premium Badge (if premium)
- if isPremium then
- PremiumBadge.Name = MarcoUI:_RandomString()
- PremiumBadge.Parent = UserProfileCard
- PremiumBadge.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
- PremiumBadge.BorderSizePixel = 0
- PremiumBadge.Size = UDim2.new(1, 0, 0, 35)
- PremiumBadge.ZIndex = 9
- PremiumBadge.ClipsDescendants = true
- PremiumBadgeCorner.CornerRadius = UDim.new(0, 6)
- PremiumBadgeCorner.Parent = PremiumBadge
- PremiumBadgeStroke.Color = Color3.fromRGB(255, 200, 0)
- PremiumBadgeStroke.Thickness = 1.5
- PremiumBadgeStroke.Parent = PremiumBadge
- PremiumBadgeText.Name = MarcoUI:_RandomString()
- PremiumBadgeText.Parent = PremiumBadge
- PremiumBadgeText.BackgroundTransparency = 1.000
- PremiumBadgeText.Size = UDim2.new(1, -40, 1, 0)
- PremiumBadgeText.Position = UDim2.new(0, 35, 0, 0)
- PremiumBadgeText.Font = Enum.Font.GothamBold
- PremiumBadgeText.Text = "Premium User"
- PremiumBadgeText.TextColor3 = Color3.fromRGB(30, 30, 30)
- PremiumBadgeText.TextSize = 15
- PremiumBadgeText.ZIndex = 10
- PremiumCrown.Name = MarcoUI:_RandomString()
- PremiumCrown.Parent = PremiumBadge
- PremiumCrown.BackgroundTransparency = 1.000
- PremiumCrown.Size = UDim2.new(0, 25, 0, 25)
- PremiumCrown.Position = UDim2.new(0, 5, 0.5, 0)
- PremiumCrown.AnchorPoint = Vector2.new(0, 0.5)
- PremiumCrown.Image = "rbxassetid://6031075938" -- Crown icon
- PremiumCrown.ImageColor3 = Color3.fromRGB(255, 200, 0)
- PremiumCrown.ZIndex = 10
- -- Gold shine animation
- PremiumShine.Name = MarcoUI:_RandomString()
- PremiumShine.Parent = PremiumBadge
- PremiumShine.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- PremiumShine.BackgroundTransparency = 0.7
- PremiumShine.BorderSizePixel = 0
- PremiumShine.Size = UDim2.new(0, 100, 1, 0)
- PremiumShine.ZIndex = 9
- PremiumShineGradient.Parent = PremiumShine
- PremiumShineGradient.Color = ColorSequence.new({
- ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 200)),
- ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 255, 255))
- });
- PremiumShineGradient.Rotation = 45
- -- Animate shine
- local shineConnection;
- shineConnection = RunService.RenderStepped:Connect(function()
- local offset = (tick() * 0.5) % 2;
- PremiumShine.Position = UDim2.new(offset - 1, 0, 0, 0);
- end);
- end;
- -- Executor Card (Right side)
- local ExecutorCard = Instance.new("Frame")
- local ExecutorCorner = Instance.new("UICorner")
- local ExecutorStroke = Instance.new("UIStroke")
- local ExecutorLayout = Instance.new("UIListLayout")
- local ExecutorPadding = Instance.new("UIPadding")
- local ExecutorLogo = Instance.new("ImageLabel")
- local ExecutorLogoCorner = Instance.new("UICorner")
- local ExecutorNameLabel = Instance.new("TextLabel")
- local ExecutorStatusContainer = Instance.new("Frame")
- local ExecutorStatusLayout = Instance.new("UIListLayout")
- local ExecutorStatusDot = Instance.new("Frame")
- local ExecutorStatusDotCorner = Instance.new("UICorner")
- local ExecutorStatusGlow = Instance.new("Frame")
- local ExecutorStatusGlowCorner = Instance.new("UICorner")
- local ExecutorStatusText = Instance.new("TextLabel")
- ExecutorCard.Name = MarcoUI:_RandomString()
- ExecutorCard.Parent = TopRowContainer
- ExecutorCard.BackgroundColor3 = MarcoUI.Colors.BlockColor
- ExecutorCard.BorderSizePixel = 0
- ExecutorCard.Size = UDim2.new(0.48, 0, 0, 0)
- ExecutorCard.AutomaticSize = Enum.AutomaticSize.Y
- ExecutorCard.ZIndex = 8
- table.insert(MarcoUI.Elements.BlockColor, {
- Element = ExecutorCard,
- Property = "BackgroundColor3"
- });
- ExecutorCorner.CornerRadius = UDim.new(0, 10)
- ExecutorCorner.Parent = ExecutorCard
- ExecutorStroke.Color = MarcoUI.Colors.StrokeColor
- ExecutorStroke.Thickness = 1.5
- ExecutorStroke.Parent = ExecutorCard
- table.insert(MarcoUI.Elements.StrokeColor, {
- Element = ExecutorStroke,
- Property = "Color"
- });
- ExecutorLayout.Parent = ExecutorCard
- ExecutorLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- ExecutorLayout.SortOrder = Enum.SortOrder.LayoutOrder
- ExecutorLayout.Padding = UDim.new(0, 15)
- ExecutorPadding.Parent = ExecutorCard
- ExecutorPadding.PaddingTop = UDim.new(0, 20)
- ExecutorPadding.PaddingBottom = UDim.new(0, 20)
- ExecutorPadding.PaddingLeft = UDim.new(0, 20)
- ExecutorPadding.PaddingRight = UDim.new(0, 20)
- -- Executor Logo
- local executorLogoID = ExecutorLogos[executorName] or nil;
- ExecutorLogo.Name = MarcoUI:_RandomString()
- ExecutorLogo.Parent = ExecutorCard
- ExecutorLogo.BackgroundColor3 = MarcoUI.Colors.BlockBackground
- ExecutorLogo.BorderSizePixel = 0
- ExecutorLogo.Size = UDim2.new(0, 80, 0, 80)
- ExecutorLogo.ZIndex = 9
- ExecutorLogo.Image = executorLogoID and ("rbxassetid://" .. executorLogoID) or "rbxassetid://18518299306"
- ExecutorLogoCorner.CornerRadius = UDim.new(0, 8)
- ExecutorLogoCorner.Parent = ExecutorLogo
- -- Executor Name
- ExecutorNameLabel.Name = MarcoUI:_RandomString()
- ExecutorNameLabel.Parent = ExecutorCard
- ExecutorNameLabel.BackgroundTransparency = 1.000
- ExecutorNameLabel.Size = UDim2.new(1, 0, 0, 25)
- ExecutorNameLabel.Font = Enum.Font.GothamBold
- ExecutorNameLabel.Text = executorName
- ExecutorNameLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- ExecutorNameLabel.TextSize = 18
- ExecutorNameLabel.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = ExecutorNameLabel,
- Property = "TextColor3"
- });
- -- Status Container
- ExecutorStatusContainer.Name = MarcoUI:_RandomString()
- ExecutorStatusContainer.Parent = ExecutorCard
- ExecutorStatusContainer.BackgroundTransparency = 1.000
- ExecutorStatusContainer.Size = UDim2.new(1, 0, 0, 0)
- ExecutorStatusContainer.AutomaticSize = Enum.AutomaticSize.Y
- ExecutorStatusContainer.ZIndex = 9
- ExecutorStatusLayout.Parent = ExecutorStatusContainer
- ExecutorStatusLayout.FillDirection = Enum.FillDirection.Horizontal
- ExecutorStatusLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- ExecutorStatusLayout.SortOrder = Enum.SortOrder.LayoutOrder
- ExecutorStatusLayout.Padding = UDim.new(0, 8)
- -- Glowing Status Dot
- ExecutorStatusGlow.Name = MarcoUI:_RandomString()
- ExecutorStatusGlow.Parent = ExecutorStatusContainer
- ExecutorStatusGlow.BackgroundColor3 = Color3.fromRGB(46, 204, 113)
- ExecutorStatusGlow.BorderSizePixel = 0
- ExecutorStatusGlow.Size = UDim2.new(0, 16, 0, 16)
- ExecutorStatusGlow.ZIndex = 9
- ExecutorStatusGlowCorner.CornerRadius = UDim.new(1, 0)
- ExecutorStatusGlowCorner.Parent = ExecutorStatusGlow
- -- Animate glow
- local glowConnection;
- glowConnection = RunService.RenderStepped:Connect(function()
- local pulse = (math.sin(tick() * 3) + 1) / 2;
- ExecutorStatusGlow.BackgroundTransparency = 0.3 + (pulse * 0.4);
- ExecutorStatusGlow.Size = UDim2.new(0, 16 + (pulse * 4), 0, 16 + (pulse * 4));
- end);
- ExecutorStatusDot.Name = MarcoUI:_RandomString()
- ExecutorStatusDot.Parent = ExecutorStatusContainer
- ExecutorStatusDot.BackgroundColor3 = Color3.fromRGB(46, 204, 113)
- ExecutorStatusDot.BorderSizePixel = 0
- ExecutorStatusDot.Size = UDim2.new(0, 12, 0, 12)
- ExecutorStatusDot.Position = UDim2.new(0.5, 0, 0.5, 0)
- ExecutorStatusDot.AnchorPoint = Vector2.new(0.5, 0.5)
- ExecutorStatusDot.ZIndex = 10
- ExecutorStatusDotCorner.CornerRadius = UDim.new(1, 0)
- ExecutorStatusDotCorner.Parent = ExecutorStatusDot
- ExecutorStatusText.Name = MarcoUI:_RandomString()
- ExecutorStatusText.Parent = ExecutorStatusContainer
- ExecutorStatusText.BackgroundTransparency = 1.000
- ExecutorStatusText.Size = UDim2.new(0, 0, 0, 20)
- ExecutorStatusText.AutomaticSize = Enum.AutomaticSize.X
- ExecutorStatusText.Font = Enum.Font.GothamSemibold
- ExecutorStatusText.Text = "Working"
- ExecutorStatusText.TextColor3 = Color3.fromRGB(46, 204, 113)
- ExecutorStatusText.TextSize = 14
- ExecutorStatusText.ZIndex = 9
- -- Key Info Row Container (Left and Right)
- local KeyInfoRowContainer = Instance.new("Frame")
- local KeyInfoRowLayout = Instance.new("UIListLayout")
- KeyInfoRowContainer.Name = MarcoUI:_RandomString()
- KeyInfoRowContainer.Parent = HomeDashboard
- KeyInfoRowContainer.BackgroundTransparency = 1.000
- KeyInfoRowContainer.Size = UDim2.new(1, -30, 0, 0)
- KeyInfoRowContainer.AutomaticSize = Enum.AutomaticSize.Y
- KeyInfoRowContainer.ZIndex = 7
- KeyInfoRowLayout.Parent = KeyInfoRowContainer
- KeyInfoRowLayout.FillDirection = Enum.FillDirection.Horizontal
- KeyInfoRowLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- KeyInfoRowLayout.SortOrder = Enum.SortOrder.LayoutOrder
- KeyInfoRowLayout.Padding = UDim.new(0, 12)
- -- Key Info Left Card
- local KeyInfoLeft = Instance.new("Frame")
- local KeyInfoLeftCorner = Instance.new("UICorner")
- local KeyInfoLeftStroke = Instance.new("UIStroke")
- local KeyInfoLeftLayout = Instance.new("UIListLayout")
- local KeyInfoLeftPadding = Instance.new("UIPadding")
- local KeyInfoLeftHeader = Instance.new("TextLabel")
- local KeyInfoLeftExpiration = Instance.new("TextLabel")
- local KeyInfoLeftType = Instance.new("TextLabel")
- KeyInfoLeft.Name = MarcoUI:_RandomString()
- KeyInfoLeft.Parent = KeyInfoRowContainer
- KeyInfoLeft.BackgroundColor3 = MarcoUI.Colors.BlockColor
- KeyInfoLeft.BorderSizePixel = 0
- KeyInfoLeft.Size = UDim2.new(0.48, 0, 0, 0)
- KeyInfoLeft.AutomaticSize = Enum.AutomaticSize.Y
- KeyInfoLeft.ZIndex = 8
- table.insert(MarcoUI.Elements.BlockColor, {
- Element = KeyInfoLeft,
- Property = "BackgroundColor3"
- });
- KeyInfoLeftCorner.CornerRadius = UDim.new(0, 10)
- KeyInfoLeftCorner.Parent = KeyInfoLeft
- KeyInfoLeftStroke.Color = MarcoUI.Colors.StrokeColor
- KeyInfoLeftStroke.Thickness = 1.5
- KeyInfoLeftStroke.Parent = KeyInfoLeft
- table.insert(MarcoUI.Elements.StrokeColor, {
- Element = KeyInfoLeftStroke,
- Property = "Color"
- });
- KeyInfoLeftLayout.Parent = KeyInfoLeft
- KeyInfoLeftLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
- KeyInfoLeftLayout.SortOrder = Enum.SortOrder.LayoutOrder
- KeyInfoLeftLayout.Padding = UDim.new(0, 12)
- KeyInfoLeftPadding.Parent = KeyInfoLeft
- KeyInfoLeftPadding.PaddingTop = UDim.new(0, 18)
- KeyInfoLeftPadding.PaddingBottom = UDim.new(0, 18)
- KeyInfoLeftPadding.PaddingLeft = UDim.new(0, 20)
- KeyInfoLeftPadding.PaddingRight = UDim.new(0, 20)
- KeyInfoLeftHeader.Name = MarcoUI:_RandomString()
- KeyInfoLeftHeader.Parent = KeyInfoLeft
- KeyInfoLeftHeader.BackgroundTransparency = 1.000
- KeyInfoLeftHeader.Size = UDim2.new(1, 0, 0, 25)
- KeyInfoLeftHeader.Font = Enum.Font.GothamBold
- KeyInfoLeftHeader.Text = "Key Info"
- KeyInfoLeftHeader.TextColor3 = MarcoUI.Colors.SwitchColor
- KeyInfoLeftHeader.TextSize = 18
- KeyInfoLeftHeader.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoLeftHeader.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoLeftHeader,
- Property = "TextColor3"
- });
- KeyInfoLeftExpiration.Name = MarcoUI:_RandomString()
- KeyInfoLeftExpiration.Parent = KeyInfoLeft
- KeyInfoLeftExpiration.BackgroundTransparency = 1.000
- KeyInfoLeftExpiration.Size = UDim2.new(1, 0, 0, 22)
- KeyInfoLeftExpiration.Font = Enum.Font.GothamSemibold
- KeyInfoLeftExpiration.Text = "Expiration: " .. keyExpiration
- KeyInfoLeftExpiration.TextColor3 = MarcoUI.Colors.SwitchColor
- KeyInfoLeftExpiration.TextSize = 15
- KeyInfoLeftExpiration.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoLeftExpiration.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoLeftExpiration,
- Property = "TextColor3"
- });
- KeyInfoLeftType.Name = MarcoUI:_RandomString()
- KeyInfoLeftType.Parent = KeyInfoLeft
- KeyInfoLeftType.BackgroundTransparency = 1.000
- KeyInfoLeftType.Size = UDim2.new(1, 0, 0, 22)
- KeyInfoLeftType.Font = Enum.Font.GothamSemibold
- KeyInfoLeftType.Text = "Key Type: " .. keyType
- KeyInfoLeftType.TextColor3 = (isPremium and Color3.fromRGB(255, 215, 0)) or MarcoUI.Colors.SwitchColor
- KeyInfoLeftType.TextSize = 15
- KeyInfoLeftType.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoLeftType.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoLeftType,
- Property = "TextColor3"
- });
- -- Key Info Right Card
- local KeyInfoRight = Instance.new("Frame")
- local KeyInfoRightCorner = Instance.new("UICorner")
- local KeyInfoRightStroke = Instance.new("UIStroke")
- local KeyInfoRightLayout = Instance.new("UIListLayout")
- local KeyInfoRightPadding = Instance.new("UIPadding")
- local KeyInfoRightHeader = Instance.new("TextLabel")
- local KeyInfoRightLastGame = Instance.new("TextLabel")
- local KeyInfoRightLastExecuted = Instance.new("TextLabel")
- KeyInfoRight.Name = MarcoUI:_RandomString()
- KeyInfoRight.Parent = KeyInfoRowContainer
- KeyInfoRight.BackgroundColor3 = MarcoUI.Colors.BlockColor
- KeyInfoRight.BorderSizePixel = 0
- KeyInfoRight.Size = UDim2.new(0.48, 0, 0, 0)
- KeyInfoRight.AutomaticSize = Enum.AutomaticSize.Y
- KeyInfoRight.ZIndex = 8
- table.insert(MarcoUI.Elements.BlockColor, {
- Element = KeyInfoRight,
- Property = "BackgroundColor3"
- });
- KeyInfoRightCorner.CornerRadius = UDim.new(0, 10)
- KeyInfoRightCorner.Parent = KeyInfoRight
- KeyInfoRightStroke.Color = MarcoUI.Colors.StrokeColor
- KeyInfoRightStroke.Thickness = 1.5
- KeyInfoRightStroke.Parent = KeyInfoRight
- table.insert(MarcoUI.Elements.StrokeColor, {
- Element = KeyInfoRightStroke,
- Property = "Color"
- });
- KeyInfoRightLayout.Parent = KeyInfoRight
- KeyInfoRightLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
- KeyInfoRightLayout.SortOrder = Enum.SortOrder.LayoutOrder
- KeyInfoRightLayout.Padding = UDim.new(0, 12)
- KeyInfoRightPadding.Parent = KeyInfoRight
- KeyInfoRightPadding.PaddingTop = UDim.new(0, 18)
- KeyInfoRightPadding.PaddingBottom = UDim.new(0, 18)
- KeyInfoRightPadding.PaddingLeft = UDim.new(0, 20)
- KeyInfoRightPadding.PaddingRight = UDim.new(0, 20)
- KeyInfoRightHeader.Name = MarcoUI:_RandomString()
- KeyInfoRightHeader.Parent = KeyInfoRight
- KeyInfoRightHeader.BackgroundTransparency = 1.000
- KeyInfoRightHeader.Size = UDim2.new(1, 0, 0, 25)
- KeyInfoRightHeader.Font = Enum.Font.GothamBold
- KeyInfoRightHeader.Text = "Activity"
- KeyInfoRightHeader.TextColor3 = MarcoUI.Colors.SwitchColor
- KeyInfoRightHeader.TextSize = 18
- KeyInfoRightHeader.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoRightHeader.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoRightHeader,
- Property = "TextColor3"
- });
- KeyInfoRightLastGame.Name = MarcoUI:_RandomString()
- KeyInfoRightLastGame.Parent = KeyInfoRight
- KeyInfoRightLastGame.BackgroundTransparency = 1.000
- KeyInfoRightLastGame.Size = UDim2.new(1, 0, 0, 22)
- KeyInfoRightLastGame.Font = Enum.Font.GothamSemibold
- KeyInfoRightLastGame.Text = "Last Game: " .. lastGameExecuted
- KeyInfoRightLastGame.TextColor3 = MarcoUI.Colors.SwitchColor
- KeyInfoRightLastGame.TextSize = 15
- KeyInfoRightLastGame.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoRightLastGame.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoRightLastGame,
- Property = "TextColor3"
- });
- KeyInfoRightLastExecuted.Name = MarcoUI:_RandomString()
- KeyInfoRightLastExecuted.Parent = KeyInfoRight
- KeyInfoRightLastExecuted.BackgroundTransparency = 1.000
- KeyInfoRightLastExecuted.Size = UDim2.new(1, 0, 0, 20)
- KeyInfoRightLastExecuted.Font = Enum.Font.Gotham
- KeyInfoRightLastExecuted.Text = "Last Executed: " .. lastExecuted
- KeyInfoRightLastExecuted.TextColor3 = MarcoUI.Colors.SwitchColor
- KeyInfoRightLastExecuted.TextSize = 13
- KeyInfoRightLastExecuted.TextTransparency = 0.3
- KeyInfoRightLastExecuted.TextXAlignment = Enum.TextXAlignment.Left
- KeyInfoRightLastExecuted.ZIndex = 9
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = KeyInfoRightLastExecuted,
- Property = "TextColor3"
- });
- -- Discord Button Section
- local DiscordButton = Instance.new("Frame")
- local DiscordButtonCorner = Instance.new("UICorner")
- local DiscordButtonStroke = Instance.new("UIStroke")
- local DiscordButtonText = Instance.new("TextLabel")
- local DiscordButtonHighlight = Instance.new("Frame")
- local DiscordButtonHighlightCorner = Instance.new("UICorner")
- -- Discord Button
- DiscordButton.Name = MarcoUI:_RandomString()
- DiscordButton.Parent = HomeDashboard
- DiscordButton.BackgroundColor3 = MarcoUI.Colors.BlockColor
- DiscordButton.BorderSizePixel = 0
- DiscordButton.Size = UDim2.new(1, -30, 0, 50)
- DiscordButton.ZIndex = 7
- table.insert(MarcoUI.Elements.BlockColor, {
- Element = DiscordButton,
- Property = "BackgroundColor3"
- });
- DiscordButtonCorner.CornerRadius = UDim.new(0, 8)
- DiscordButtonCorner.Parent = DiscordButton
- DiscordButtonStroke.Color = MarcoUI.Colors.Highlight
- DiscordButtonStroke.Thickness = 2
- DiscordButtonStroke.Parent = DiscordButton
- table.insert(MarcoUI.Elements.Highlight, {
- Element = DiscordButtonStroke,
- Property = "Color"
- });
- DiscordButtonText.Name = MarcoUI:_RandomString()
- DiscordButtonText.Parent = DiscordButton
- DiscordButtonText.BackgroundTransparency = 1.000
- DiscordButtonText.Size = UDim2.new(1, 0, 1, 0)
- DiscordButtonText.Font = Enum.Font.GothamBold
- DiscordButtonText.Text = "Copy Discord Link"
- DiscordButtonText.TextColor3 = MarcoUI.Colors.SwitchColor
- DiscordButtonText.TextSize = 16
- DiscordButtonText.ZIndex = 8
- table.insert(MarcoUI.Elements.SwitchColor, {
- Element = DiscordButtonText,
- Property = "TextColor3"
- });
- DiscordButtonHighlight.Name = MarcoUI:_RandomString()
- DiscordButtonHighlight.Parent = DiscordButton
- DiscordButtonHighlight.BackgroundColor3 = MarcoUI.Colors.Highlight
- DiscordButtonHighlight.BackgroundTransparency = 1.000
- DiscordButtonHighlight.BorderSizePixel = 0
- DiscordButtonHighlight.Size = UDim2.new(1, 0, 1, 0)
- DiscordButtonHighlight.ZIndex = 7
- table.insert(MarcoUI.Elements.Highlight, {
- Element = DiscordButtonHighlight,
- Property = "BackgroundColor3"
- });
- DiscordButtonHighlightCorner.CornerRadius = UDim.new(0, 8)
- DiscordButtonHighlightCorner.Parent = DiscordButtonHighlight
- -- Discord button hover and click
- MarcoUI:_Hover(DiscordButton, function()
- MarcoUI:_Animation(DiscordButtonHighlight, TweenInfo.new(0.2), {
- BackgroundTransparency = 0.8
- });
- end, function()
- MarcoUI:_Animation(DiscordButtonHighlight, TweenInfo.new(0.2), {
- BackgroundTransparency = 1.000
- });
- end);
- MarcoUI:_Input(DiscordButton, function()
- local discordLink = "https://discord.gg/yourinvite"; -- Change this to your Discord link
- -- Try to open browser, fallback to clipboard
- if setclipboard then
- setclipboard(discordLink);
- WindowArgs.Notify:Notify({
- Title = "Discord",
- Content = "Discord link copied to clipboard!",
- Duration = 3
- });
- elseif writefile then
- -- Fallback: write to a file
- writefile("discord_link.txt", discordLink);
- WindowArgs.Notify:Notify({
- Title = "Discord",
- Content = "Discord link saved to discord_link.txt",
- Duration = 3
- });
- end;
- end);
- -- Home button click handler
- WindowArgs.IsHomeActive = true; -- Start with Home active
- local function ToggleHome(bool)
- WindowArgs.IsHomeActive = bool;
- if bool then
- -- Show Home Dashboard, hide other tabs
- HomeDashboard.Visible = true;
- MarcoUI:_Animation(HomeIcon, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {
- ImageTransparency = 0,
- Rotation = 360,
- Size = UDim2.new(0, 24, 0, 24)
- });
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.3), {
- TextTransparency = 0
- });
- MarcoUI:_Animation(HomeHighlight, TweenInfo.new(0.3), {
- BackgroundTransparency = 0.925
- });
- -- Hide all other tab contents
- for i, v in next, WindowArgs.Tabs do
- if v.Root and v.Root.Parent then
- v.Remote:Fire(false);
- end;
- end;
- else
- MarcoUI:_Animation(HomeIcon, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {
- ImageTransparency = 0.5,
- Rotation = 0,
- Size = UDim2.new(0, 22, 0, 22)
- });
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.3), {
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(HomeHighlight, TweenInfo.new(0.3), {
- BackgroundTransparency = 1
- });
- HomeDashboard.Visible = false;
- end;
- end;
- MarcoUI:_Input(HomeButton, function()
- if WindowArgs.IsHomeActive then
- return; -- Already active
- end;
- ToggleHome(true);
- end);
- -- Store Home toggle function for use when tabs are created
- WindowArgs._ToggleHome = ToggleHome;
- -- Initialize Home as active
- ToggleHome(true);
- Userinfo.Name = MarcoUI:_RandomString()
- Userinfo.Parent = TabFrame
- Userinfo.AnchorPoint = Vector2.new(0, 1)
- Userinfo.BackgroundTransparency = 1.000
- Userinfo.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Userinfo.BorderSizePixel = 0
- Userinfo.Position = UDim2.new(0, 0, 1, 0)
- Userinfo.Size = UDim2.new(1, -25, 0, 60)
- do
- local Highlight = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- Highlight.Name = MarcoUI:_RandomString()
- Highlight.Parent = Userinfo
- Highlight.AnchorPoint = Vector2.new(0.5, 0)
- Highlight.BackgroundColor3 = Color3.fromRGB(161, 161, 161)
- Highlight.BackgroundTransparency = 1
- Highlight.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Highlight.BorderSizePixel = 0
- Highlight.Position = UDim2.new(0.5, 0, 0, 4)
- Highlight.Size = UDim2.new(1, -15, 1, -15)
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = Highlight
- Userinfo.MouseEnter:Connect(function()
- MarcoUI:_Animation(Highlight,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.925
- });
- end);
- Userinfo.MouseLeave:Connect(function()
- MarcoUI:_Animation(Highlight,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- });
- end);
- MarcoUI:_Input(Userinfo,function()
- if WindowArgs.UserSettings.Root then
- WindowArgs.UserSettings:Window(true);
- end;
- end);
- end;
- UserProfile.Name = MarcoUI:_RandomString()
- UserProfile.Parent = Userinfo
- UserProfile.BackgroundTransparency = 1.000
- UserProfile.BorderColor3 = Color3.fromRGB(0, 0, 0)
- UserProfile.BorderSizePixel = 0
- UserProfile.Position = UDim2.new(0, 13, 0, 9)
- UserProfile.Size = UDim2.new(0, 35, 0, 35)
- UserProfile.ZIndex = 2
- UserProfile.Image = MarcoUI:CacheImage("rbxassetid://18518299306")
- UICorner_4.CornerRadius = UDim.new(1, 0)
- UICorner_4.Parent = UserProfile
- UserText.Name = MarcoUI:_RandomString()
- UserText.Parent = Userinfo
- UserText.BackgroundTransparency = 1.000
- UserText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- UserText.BorderSizePixel = 0
- UserText.Position = UDim2.new(0, 55, 0, 8)
- UserText.Size = UDim2.new(0, 200, 0, 20)
- UserText.ZIndex = 2
- UserText.Font = Enum.Font.GothamMedium
- UserText.Text = "Username"
- UserText.TextColor3 = MarcoUI.Colors.SwitchColor
- UserText.TextSize = 13.000
- UserText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = UserText,
- Property = 'TextColor3'
- });
- ExpireText.Name = MarcoUI:_RandomString()
- ExpireText.Parent = Userinfo
- ExpireText.BackgroundTransparency = 1.000
- ExpireText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ExpireText.BorderSizePixel = 0
- ExpireText.Position = UDim2.new(0, 55, 0, 25)
- ExpireText.Size = UDim2.new(0, 200, 0, 20)
- ExpireText.ZIndex = 2
- ExpireText.Font = Enum.Font.GothamMedium
- ExpireText.Text = "0/0/0"
- ExpireText.TextColor3 = MarcoUI.Colors.SwitchColor
- ExpireText.TextSize = 13.000
- ExpireText.TextTransparency = 0.500
- ExpireText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = ExpireText,
- Property = 'TextColor3'
- });
- TabMainFrame.Name = MarcoUI:_RandomString()
- TabMainFrame.Parent = MainFrame
- TabMainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
- TabMainFrame.BackgroundTransparency = 1.000
- TabMainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabMainFrame.BorderSizePixel = 0
- TabMainFrame.ClipsDescendants = true
- TabMainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
- TabMainFrame.Size = UDim2.new(1, 0, 1, 0)
- TabMainFrame.ZIndex = 5
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(TabButtons);
- end;
- WindowOpen:Connect(function(v)
- if WindowArgs.PerformanceMode then
- MainFrame.BackgroundTransparency = (v and 0) or 1;
- return;
- end;
- if v then
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.2),{
- Size = Config.Scale
- })
- MarcoUI:_Animation(TabButtonScrollingFrame,TweenInfo.new(0.35),{
- Position = UDim2.new(0.5, 0, 0, 46) -- Fixed position
- })
- -- Hide Home button text when sidebar closes
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.2), {
- TextTransparency = 1
- });
- MarcoUI:_Animation(CompLogo,TweenInfo.new(0.2),{
- ImageTransparency = 0
- })
- MarcoUI:_Animation(WindowLabel,TweenInfo.new(0.2),{
- TextTransparency = 0
- })
- MarcoUI:_Animation(UserProfile,TweenInfo.new(0.2),{
- ImageTransparency = 0
- })
- MarcoUI:_Animation(UserText,TweenInfo.new(0.2),{
- TextTransparency = 0
- })
- MarcoUI:_Animation(ExpireText,TweenInfo.new(0.2),{
- TextTransparency = 0.5
- })
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.2),{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(LineFrame1,TweenInfo.new(0.3),{
- BackgroundTransparency = 0,
- Size = UDim2.new(0, 20, 1, 0)
- })
- MarcoUI:_Animation(TabFrame,TweenInfo.new(0.2),{
- BackgroundTransparency = TabFrameBaseTrans
- })
- else
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.2),{
- Size = UDim2.new(math.max(Config.Scale.X.Scale - 0.05,0) , Config.Scale.X.Offset - 10 , math.max(Config.Scale.Y.Scale - 0.05,0) , Config.Scale.Y.Offset - 10)
- })
- MarcoUI:_Animation(TabButtonScrollingFrame,TweenInfo.new(0.35),{
- Position = UDim2.new(1.5, 100, 0, 46) -- Fixed position
- })
- -- Show Home button text when sidebar opens
- if WindowArgs.IsHomeActive then
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.2), {
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.2), {
- TextTransparency = 0.5
- });
- end;
- MarcoUI:_Animation(LineFrame1,TweenInfo.new(0.1),{
- BackgroundTransparency = 1,
- Size = UDim2.new(0, 1, 1, 0)
- })
- MarcoUI:_Animation(CompLogo,TweenInfo.new(0.2),{
- ImageTransparency = 1
- })
- MarcoUI:_Animation(WindowLabel,TweenInfo.new(0.2),{
- TextTransparency = 1
- })
- MarcoUI:_Animation(GameNameLabel,TweenInfo.new(0.2),{
- TextTransparency = 1
- })
- MarcoUI:_Animation(UserProfile,TweenInfo.new(0.2),{
- ImageTransparency = 1
- })
- MarcoUI:_Animation(UserText,TweenInfo.new(0.2),{
- TextTransparency = 1
- })
- MarcoUI:_Animation(ExpireText,TweenInfo.new(0.2),{
- TextTransparency = 1
- })
- -- Hide Home label when sidebar closes
- MarcoUI:_Animation(HomeLabel, TweenInfo.new(0.2), {
- TextTransparency = 1
- });
- MarcoUI:_Animation(MainFrame,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(TabFrame,TweenInfo.new(0.1),{
- BackgroundTransparency = 1
- })
- end;
- end);
- TabHover:Connect(function(value)
- local Style = TweenInfo.new(0.45,Enum.EasingStyle.Quint);
- if value then
- MarcoUI:_Animation(TabFrame , Style , {
- Size = UDim2.new(0, 185,1, 0)
- });
- MarcoUI:_Animation(WindowLabel , Style , {
- Position = UDim2.new(0, 60,0, 17),
- TextTransparency = 0
- });
- MarcoUI:_Animation(GameNameLabel , Style , {
- TextTransparency = 0.3
- });
- MarcoUI:_Animation(UserText , Style , {
- Position = UDim2.new(0, 55,0, 8),
- TextTransparency = 0.1
- });
- MarcoUI:_Animation(ExpireText , Style , {
- Position = UDim2.new(0, 55,0, 25),
- TextTransparency = 0.5
- });
- -- Show Home label based on active state
- if WindowArgs.IsHomeActive then
- MarcoUI:_Animation(HomeLabel, Style, {
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(HomeLabel, Style, {
- TextTransparency = 0.5
- });
- end;
- else
- MarcoUI:_Animation(TabFrame , Style , {
- Size = UDim2.new(0, 85,1, 0)
- });
- MarcoUI:_Animation(WindowLabel , Style , {
- Position = UDim2.new(0, 60 + 25,0, 17),
- TextTransparency = 1
- });
- MarcoUI:_Animation(UserText , Style , {
- Position = UDim2.new(0, 55 + 25,0, 8),
- TextTransparency = 1
- });
- MarcoUI:_Animation(ExpireText , Style , {
- Position = UDim2.new(0, 55 + 25,0, 25),
- TextTransparency = 1
- });
- MarcoUI:_Animation(GameNameLabel , Style , {
- TextTransparency = 1
- });
- -- Hide Home label when sidebar closes
- MarcoUI:_Animation(HomeLabel, Style, {
- TextTransparency = 1
- });
- end;
- end);
- WindowArgs.UserSettings = {};
- do
- local Signal = MarcoUI.__SIGNAL(false);
- local UserSettings = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local SectionFrame = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local UIListLayout = Instance.new("UIListLayout")
- local Header = Instance.new("Frame")
- local HeaderText = Instance.new("TextLabel")
- local ImageLabel = Instance.new("ImageLabel")
- UserSettings.Name = MarcoUI:_RandomString()
- UserSettings.Parent = WindowGui;
- UserSettings.BackgroundColor3 = MarcoUI.Colors.BGDBColor;
- UserSettings.BackgroundTransparency = 1
- UserSettings.BorderColor3 = Color3.fromRGB(0, 0, 0)
- UserSettings.BorderSizePixel = 0
- UserSettings.Position = UDim2.new(0, 50, 0, 50)
- UserSettings.Size = UDim2.new(0, 235, 0, 300)
- UserSettings.ZIndex = 65;
- UserSettings.Visible = false;
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = UserSettings,
- Property = 'BackgroundColor3'
- });
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = UserSettings
- SectionFrame.Name = MarcoUI:_RandomString()
- SectionFrame.Parent = UserSettings
- SectionFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor;
- SectionFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionFrame.BorderSizePixel = 0
- SectionFrame.Position = UDim2.new(0, 0, 0, 45)
- SectionFrame.Size = UDim2.new(1, 0, 1, -45)
- SectionFrame.ZIndex = 66
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = SectionFrame,
- Property = 'BackgroundColor3'
- });
- UICorner_2.CornerRadius = UDim.new(0, 4)
- UICorner_2.Parent = SectionFrame
- UIListLayout.Parent = SectionFrame
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 5)
- Header.Name = MarcoUI:_RandomString()
- Header.Parent = UserSettings
- Header.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Header.BackgroundTransparency = 1.000
- Header.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Header.BorderSizePixel = 0
- Header.Size = UDim2.new(1, 0, 0, 45)
- Header.ZIndex = 66
- HeaderText.Name = MarcoUI:_RandomString()
- HeaderText.Parent = Header
- HeaderText.AnchorPoint = Vector2.new(0.5, 0.5)
- HeaderText.BackgroundTransparency = 1.000
- HeaderText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- HeaderText.BorderSizePixel = 0
- HeaderText.Position = UDim2.new(0.5, 0, 0.5, 0)
- HeaderText.Size = UDim2.new(0, 200, 0, 25)
- HeaderText.ZIndex = 67
- HeaderText.Font = Enum.Font.GothamMedium
- HeaderText.Text = "User Settings"
- HeaderText.TextColor3 = Color3.fromRGB(255, 255, 255)
- HeaderText.TextSize = 15.000
- table.insert(MarcoUI.Elements.SwitchColor,{
- Element = HeaderText,
- Property = 'TextColor3'
- });
- ImageLabel.Parent = Header
- ImageLabel.AnchorPoint = Vector2.new(1, 0)
- ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- ImageLabel.BackgroundTransparency = 1.000
- ImageLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ImageLabel.BorderSizePixel = 0
- ImageLabel.Position = UDim2.new(1, -5, 0, 5)
- ImageLabel.Size = UDim2.new(0, 15, 0, 15)
- ImageLabel.ZIndex = 67
- ImageLabel.Image = MarcoUI:CacheImage("rbxassetid://10747384394")
- ImageLabel.ImageTransparency = 0.500
- function WindowArgs.UserSettings:Create()
- WindowArgs.UserSettings.Root = UserSettings;
- WindowArgs.UserSettings.Signal = Signal;
- WindowArgs.UserSettings.Signal = MarcoUI:_Blur(UserSettings,Signal);
- MarcoUI:Drag(UserSettings , UserSettings, 0.15);
- UIListLayout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- MarcoUI:_Animation(UserSettings,TweenInfo.new(0.2),{
- Size = UDim2.new(0, 235, 0, UIListLayout.AbsoluteContentSize.Y + 50)
- })
- end);
- UserSettings:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
- if UserSettings.BackgroundTransparency < 1 then
- UserSettings.Visible = true;
- else
- UserSettings.Visible = false;
- end;
- end);
- function WindowArgs.UserSettings:Window(Value)
- if Value then
- Signal:Fire(true);
- MarcoUI:_Animation(UserSettings,TweenInfo.new(0.2),{
- BackgroundTransparency = 0.250,
- });
- MarcoUI:_Animation(SectionFrame,TweenInfo.new(0.2),{
- BackgroundTransparency = 0,
- });
- MarcoUI:_Animation(HeaderText,TweenInfo.new(0.2),{
- TextTransparency = 0,
- });
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = 0.5,
- });
- else
- Signal:Fire(false);
- MarcoUI:_Animation(UserSettings,TweenInfo.new(0.2),{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(SectionFrame,TweenInfo.new(0.2),{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(HeaderText,TweenInfo.new(0.2),{
- TextTransparency = 1,
- });
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = 1,
- });
- end;
- end;
- MarcoUI:_Input(ImageLabel,function()
- WindowArgs.UserSettings:Window(false);
- end);
- WindowArgs.UserSettings:Window(false);
- return MarcoUI:_LoadElement(SectionFrame , true , Signal);
- end;
- end;
- function WindowArgs:SetVisible(bool: boolean)
- MarcoUI.Enabled = bool;
- end;
- function WindowArgs:DrawCategory(config : Category)
- config = config or {};
- config.Name = config.Name or "Category";
- local Category = Instance.new("Frame")
- local CategoryText = Instance.new("TextLabel")
- local Frame = Instance.new("Frame")
- local UIGradient = Instance.new("UIGradient")
- Category.Name = MarcoUI:_RandomString()
- Category.Parent = TabButtonScrollingFrame
- Category.BackgroundTransparency = 1.000
- Category.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Category.BorderSizePixel = 0
- Category.ClipsDescendants = true
- Category.Size = UDim2.new(1, -10, 0, 22)
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Category);
- end;
- CategoryText.Name = MarcoUI:_RandomString()
- CategoryText.Parent = Category
- CategoryText.BackgroundTransparency = 1.000
- CategoryText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- CategoryText.BorderSizePixel = 0
- CategoryText.Position = UDim2.new(0, 5, 0, 8)
- CategoryText.Size = UDim2.new(1, 200, 0, 10)
- CategoryText.Font = Enum.Font.Gotham
- CategoryText.Text = config.Name
- CategoryText.TextColor3 = MarcoUI.Colors.SwitchColor
- CategoryText.TextSize = 16.000
- CategoryText.TextTransparency = 0.500
- CategoryText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = CategoryText,
- Property = 'TextColor3'
- });
- Frame.Parent = Category
- Frame.AnchorPoint = Vector2.new(0.5, 1)
- Frame.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame.BackgroundTransparency = 0.750
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(0.5, 0, 1, 0)
- Frame.Size = UDim2.new(1, 0, 0, 1)
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame,
- Property = "BackgroundColor3"
- });
- UIGradient.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0.00, 1.00), NumberSequenceKeypoint.new(0.05, 0.21), NumberSequenceKeypoint.new(0.50, 0.00), NumberSequenceKeypoint.new(0.96, 0.17), NumberSequenceKeypoint.new(1.00, 1.00)}
- UIGradient.Parent = Frame
- local Tween = TweenInfo.new(0.35,Enum.EasingStyle.Quint);
- TabHover:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(CategoryText,Tween,{
- TextTransparency = 0.500
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 0.750
- });
- else
- MarcoUI:_Animation(CategoryText,Tween,{
- TextTransparency = 1
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 1
- });
- end;
- end);
- end;
- function WindowArgs:DrawContainerTab(TabConfig : ContainerTab)
- TabConfig = MarcoUI.__CONFIG(TabConfig,{
- Name = "Tab",
- Icon = "eye",
- });
- local Tween = TweenInfo.new(0.35,Enum.EasingStyle.Quint);
- local TabOpenSignal = MarcoUI.__SIGNAL(false);
- local TabArgs = {
- __Current = nil,
- Tabs = {}
- };
- -- Creating Button --
- local TabButton = Instance.new("Frame")
- local Icon = Instance.new("ImageLabel")
- local TabNameLabel = Instance.new("TextLabel")
- local Highlight = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- TabButton.Name = MarcoUI:_RandomString()
- TabButton.Parent = TabButtonScrollingFrame
- TabButton.BackgroundTransparency = 1.000
- TabButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabButton.BorderSizePixel = 0
- TabButton.ClipsDescendants = true
- TabButton.Size = UDim2.new(1, -10, 0, 32)
- TabButton.ZIndex = 3
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(TabButton);
- end;
- Icon.Name = MarcoUI:_RandomString()
- Icon.Parent = TabButton
- Icon.AnchorPoint = Vector2.new(0, 0.5)
- Icon.BackgroundColor3 = MarcoUI.Colors.Highlight
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0, 15, 0.5, 0)
- Icon.Size = UDim2.new(0, 15, 0, 15)
- Icon.ZIndex = 3
- Icon.Image = MarcoUI:_GetIcon(TabConfig.Icon);
- Icon.ImageColor3 = MarcoUI.Colors.Highlight
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Icon,
- Property = "ImageColor3"
- });
- TabNameLabel.Name = MarcoUI:_RandomString()
- TabNameLabel.Parent = TabButton
- TabNameLabel.AnchorPoint = Vector2.new(0, 0.5)
- TabNameLabel.BackgroundTransparency = 1.000
- TabNameLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabNameLabel.BorderSizePixel = 0
- TabNameLabel.Position = UDim2.new(0, 43, 0.5, 0)
- TabNameLabel.Size = UDim2.new(0, 200, 0, 25)
- TabNameLabel.ZIndex = 3
- TabNameLabel.Font = Enum.Font.GothamMedium
- TabNameLabel.Text = TabConfig.Name;
- TabNameLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TabNameLabel.TextSize = 15.000
- TabNameLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TabNameLabel,
- Property = 'TextColor3'
- });
- Highlight.Name = MarcoUI:_RandomString()
- Highlight.Parent = TabButton
- Highlight.AnchorPoint = Vector2.new(0.5, 0.5)
- Highlight.BackgroundColor3 = Color3.fromRGB(161, 161, 161)
- Highlight.BackgroundTransparency = 0.925
- Highlight.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Highlight.BorderSizePixel = 0
- Highlight.Position = UDim2.new(0.5, 0, 0.5, 0)
- Highlight.Size = UDim2.new(1, -17, 1, 0)
- Highlight.ZIndex = 2
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = Highlight
- -- Creating Container --
- local ContainerTab = Instance.new("Frame")
- local MainFrame = Instance.new("Frame")
- local Top = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- ContainerTab.Name = MarcoUI:_RandomString()
- ContainerTab.Parent = TabMainFrame
- ContainerTab.AnchorPoint = Vector2.new(0.5, 0.5)
- ContainerTab.BackgroundTransparency = 1.000
- ContainerTab.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ContainerTab.BorderSizePixel = 0
- ContainerTab.Position = UDim2.new(0.5, 0, 0.5, 0)
- ContainerTab.Size = UDim2.new(1, -15, 1, -15)
- ContainerTab.ZIndex = 6
- ContainerTab.Visible = true
- MainFrame.Name = MarcoUI:_RandomString()
- MainFrame.Parent = ContainerTab
- MainFrame.AnchorPoint = Vector2.new(0.5, 1)
- MainFrame.BackgroundTransparency = 1.000
- MainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MainFrame.BorderSizePixel = 0
- MainFrame.Position = UDim2.new(0.5, 0, 1, -5)
- MainFrame.Size = UDim2.new(1, 0, 1, -35)
- MainFrame.ZIndex = 6
- MainFrame.Visible = true
- MainFrame.ClipsDescendants = true
- Top.Name = MarcoUI:_RandomString()
- Top.Parent = ContainerTab
- Top.BackgroundTransparency = 1.000
- Top.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Top.BorderSizePixel = 0
- Top.Size = UDim2.new(1, 0, 0, 25)
- Top.ZIndex = 7
- UIListLayout.Parent = Top
- UIListLayout.FillDirection = Enum.FillDirection.Horizontal
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- UIListLayout.Padding = UDim.new(0, 10)
- -- Functions --
- local function updateContainerVisibility()
- if Highlight.BackgroundTransparency <= 0.99 then
- ContainerTab.Visible = true;
- else
- ContainerTab.Visible = false;
- end;
- if MarcoUI.PerformanceMode then
- if ContainerTab.Visible then
- MarcoUI:_SetNilP(ContainerTab , TabMainFrame);
- else
- MarcoUI:_SetNilP(ContainerTab , nil);
- end;
- else
- MarcoUI:_SetNilP(ContainerTab , TabMainFrame);
- end;
- end;
- Highlight:GetPropertyChangedSignal('BackgroundTransparency'):Connect(updateContainerVisibility);
- -- Also listen to tab open signal for immediate updates
- TabOpenSignal:Connect(function(isOpen)
- task.defer(function()
- updateContainerVisibility();
- end);
- end);
- -- Initialize visibility
- updateContainerVisibility();
- local TabOpen = function(bool)
- if bool then
- WindowArgs.SelectedTab = TabButton;
- -- Hide Home when a tab is opened
- if WindowArgs.IsHomeActive and WindowArgs._ToggleHome then
- WindowArgs._ToggleHome(false);
- end;
- -- Selected tab: spin icon 360 degrees and scale up
- MarcoUI:_Animation(Icon,TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- ImageTransparency = 0,
- Rotation = 360,
- Size = UDim2.new(0, 17, 0, 17)
- });
- MarcoUI:_Animation(TabButton,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- Size = UDim2.new(1, -8, 0, 34)
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 0.925
- });
- for i,v in next , TabArgs.Tabs do
- if v.Root == TabArgs.__Current.Root then
- v.Remote:Fire(true);
- end;
- end;
- else
- -- Unselected tab: reset rotation, scale down, offset right
- MarcoUI:_Animation(Icon,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- ImageTransparency = 0.5,
- Rotation = 0,
- Size = UDim2.new(0, 14, 0, 14),
- Position = UDim2.new(0, 16, 0.5, 0)
- });
- MarcoUI:_Animation(TabButton,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- Size = UDim2.new(1, -10, 0, 30),
- Position = UDim2.new(0, 2, 0, 0)
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 1
- });
- for i,v in next , TabArgs.Tabs do
- v.Remote:Fire(false);
- end;
- end;
- end;
- if not WindowArgs.Tabs[1] then
- -- First tab - make it visible immediately
- ContainerTab.Visible = true;
- TabOpenSignal:Fire(true);
- TabOpen(true);
- else
- ContainerTab.Visible = false;
- TabOpen(false);
- end;
- table.insert(WindowArgs.Tabs , {
- Root = TabButton,
- Remote = TabOpenSignal
- });
- MarcoUI:_Hover(TabButton,function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.1
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.1
- });
- end;
- end , function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.5
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- end;
- end)
- TabOpenSignal:Connect(TabOpen);
- TabHover:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 43, 0.5, 0)
- });
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 4)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -17, 1, 0),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- else
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 10)
- });
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 80, 0.5, 0)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -10,1, 5),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- end;
- end);
- MarcoUI:_Input(TabButton,function()
- for i,v in next, WindowArgs.Tabs do
- if v.Root == TabButton then
- v.Remote:Fire(true);
- else
- v.Remote:Fire(false);
- end;
- end;
- end);
- function TabArgs:DrawTab(TabConfig : TabConfig) -- Internal Tab
- TabConfig = MarcoUI.__CONFIG(TabConfig,{
- Name = "Tab",
- Type = "Double",
- EnableScrolling = false,
- });
- local InternalSignal = MarcoUI.__SIGNAL(false);
- local Frame = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local UIStroke = Instance.new("UIStroke")
- local Highlight = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local TextLabel = Instance.new("TextLabel")
- Frame.Parent = Top
- Frame.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = Frame,
- Property = "BackgroundColor3"
- });
- Frame.BackgroundTransparency = 1.000
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.ClipsDescendants = true
- Frame.Size = UDim2.new(0, 0, 0, 32) -- Larger size
- Frame.ZIndex = 10
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = Frame
- UIStroke.Transparency = 1.000
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Thickness = 1.5 -- Slightly thicker
- UIStroke.Parent = Frame
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- -- Active underline indicator
- local Underline = Instance.new("Frame")
- Underline.Name = MarcoUI:_RandomString()
- Underline.Parent = Frame
- Underline.AnchorPoint = Vector2.new(0.5, 1)
- Underline.BackgroundColor3 = MarcoUI.Colors.Highlight
- Underline.BackgroundTransparency = 1.000
- Underline.BorderSizePixel = 0
- Underline.Position = UDim2.new(0.5, 0, 1, 0)
- Underline.Size = UDim2.new(0, 0, 0, 2)
- Underline.ZIndex = 13
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Underline,
- Property = "BackgroundColor3"
- });
- local UnderlineCorner = Instance.new("UICorner")
- UnderlineCorner.CornerRadius = UDim.new(0, 1)
- UnderlineCorner.Parent = Underline
- Highlight.Name = MarcoUI:_RandomString()
- Highlight.Parent = Frame
- Highlight.AnchorPoint = Vector2.new(1, 0.5)
- Highlight.BackgroundColor3 = MarcoUI.Colors.Highlight
- Highlight.BackgroundTransparency = 1.000
- Highlight.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Highlight.BorderSizePixel = 0
- Highlight.Position = UDim2.new(0, 3, 0.5, 0)
- Highlight.Size = UDim2.new(0, 5, 0, 10)
- Highlight.ZIndex = 11
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Highlight,
- Property = "BackgroundColor3"
- });
- UICorner_2.CornerRadius = UDim.new(1, 0)
- UICorner_2.Parent = Highlight
- TextLabel.Parent = Frame
- TextLabel.AnchorPoint = Vector2.new(0, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0, 12, 0.5, 0)
- TextLabel.Size = UDim2.new(0, 200, 0, 24) -- Larger text
- TextLabel.ZIndex = 12
- TextLabel.Font = Enum.Font.GothamSemibold -- Bolder font
- TextLabel.Text = TabConfig.Name
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 14.000 -- Larger text size
- TextLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- local UpdateScale = function()
- local scale = TextService:GetTextSize(TextLabel.Text,TextLabel.TextSize,TextLabel.Font,Vector2.new(math.huge,math.huge));
- Frame.Size = UDim2.new(0, scale.X + 24, 0, 32) -- Larger padding
- end;
- UpdateScale()
- local ToggleUI = function(bool)
- UpdateScale();
- if bool then
- -- Active state: show underline, highlight, glow
- MarcoUI:_Animation(Highlight,TweenInfo.new(0.25, Enum.EasingStyle.Exponential),{
- BackgroundTransparency = 0,
- Size = UDim2.new(0, 5, 0, 10)
- })
- MarcoUI:_Animation(Frame,TweenInfo.new(0.25, Enum.EasingStyle.Exponential),{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.25, Enum.EasingStyle.Exponential),{
- Transparency = 0
- })
- MarcoUI:_Animation(TextLabel,TweenInfo.new(0.25, Enum.EasingStyle.Exponential),{
- TextTransparency = 0,
- TextSize = 15 -- Slightly larger when active
- })
- MarcoUI:_Animation(Underline,TweenInfo.new(0.3, Enum.EasingStyle.Exponential),{
- BackgroundTransparency = 0,
- Size = UDim2.new(0.9, 0, 0, 2) -- Animate underline width
- })
- else
- -- Inactive state
- MarcoUI:_Animation(Highlight,TweenInfo.new(0.2),{
- BackgroundTransparency = 1,
- Size = UDim2.new(0, 5, 0, 2)
- })
- MarcoUI:_Animation(Frame,TweenInfo.new(0.2),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(UIStroke,TweenInfo.new(0.2),{
- Transparency = 1
- })
- MarcoUI:_Animation(TextLabel,TweenInfo.new(0.2),{
- TextTransparency = 0.5,
- TextSize = 14
- })
- MarcoUI:_Animation(Underline,TweenInfo.new(0.2),{
- BackgroundTransparency = 1,
- Size = UDim2.new(0, 0, 0, 2)
- })
- end;
- end;
- local Id = {
- Root = Frame,
- Remote = InternalSignal
- };
- InternalSignal:Connect(ToggleUI)
- if not TabArgs.Tabs[1] then
- TabArgs.__Current = Id;
- InternalSignal:Fire(true)
- end;
- table.insert(TabArgs.Tabs,Id)
- MarcoUI:_Input(Frame,function()
- for i,v in next , TabArgs.Tabs do
- if v.Root == Frame then
- TabArgs.__Current = v;
- v.Remote:Fire(true);
- else
- v.Remote:Fire(false);
- end;
- end;
- end);
- local tabResult = WindowArgs:DrawTab(TabConfig , {
- ID = Id,
- Highlight = Highlight,
- Signal = InternalSignal,
- Parent = MainFrame
- });
- -- Store the first tab's result for DrawSection access
- if not TabArgs.__DefaultTab then
- TabArgs.__DefaultTab = tabResult;
- end;
- return tabResult;
- end;
- -- Create a default tab automatically for direct DrawSection access
- TabArgs.__DefaultTab = TabArgs:DrawTab({
- Name = "Main",
- Type = "Double"
- });
- -- Add DrawSection method that automatically uses the default tab
- function TabArgs:DrawSection(config: Section)
- -- Use the default tab's DrawSection
- return TabArgs.__DefaultTab:DrawSection(config);
- end;
- return TabArgs;
- end;
- function WindowArgs:AddUnbind(UilistLayout: UIListLayout , Scrolling)
- local upd = function()
- Scrolling.ScrollingEnabled = true
- UilistLayout.VerticalFlex = Enum.UIFlexAlignment.None;
- Scrolling.CanvasSize = UDim2.fromOffset(0,UilistLayout.AbsoluteContentSize.Y + 5)
- end;
- UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(upd);
- return task.defer(function()
- while true do task.wait(1)
- upd();
- end;
- end)
- --[[local Parent: ScrollingFrame = UilistLayout.Parent;
- Parent = Parent or Scrolling;
- local Detection = function()
- local Target = (UilistLayout.AbsoluteContentSize.Y);
- for i,v in next , Parent:GetChildren() do task.wait(0.1)
- local UIList = v:FindFirstChildWhichIsA('UIListLayout');
- if v:IsA('Frame') and UIList then
- if (UIList.AbsoluteContentSize.Y >= Target) or (v.AbsoluteSize.Y >= Target) or (UilistLayout.AbsoluteContentSize.Y > Parent.AbsoluteSize.Y) then
- UilistLayout.VerticalFlex = Enum.UIFlexAlignment.None;
- Parent.ScrollingEnabled = true;
- else
- Parent.ScrollingEnabled = false;
- UilistLayout.VerticalFlex = Enum.UIFlexAlignment.None;
- end;
- end
- end;
- end;
- local Executable = function()
- while true do task.wait(0.15);
- pcall(Detection);
- end;
- end;
- table.insert(WindowArgs.THREADS,task.spawn(Executable))]]
- end;
- function WindowArgs:DrawConfig(Configuration : TabConfigManager , Internal)
- Configuration = MarcoUI.__CONFIG(Configuration,{
- Name = "Config",
- Icon = "folder",
- Config = nil
- });
- local TabOpenSignal = MarcoUI.__SIGNAL(false);
- local TabArgs = {};
- -- Button --
- local TabButton = Instance.new("Frame")
- local Icon = Instance.new("ImageLabel")
- local TabNameLabel = Instance.new("TextLabel")
- local Highlight = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(TabButton);
- end;
- TabButton.Name = MarcoUI:_RandomString()
- TabButton.Parent = TabButtonScrollingFrame
- TabButton.BackgroundTransparency = 1.000
- TabButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabButton.BorderSizePixel = 0
- TabButton.ClipsDescendants = true
- TabButton.Size = UDim2.new(1, -10, 0, 32)
- TabButton.ZIndex = 3
- Icon.Name = MarcoUI:_RandomString()
- Icon.Parent = TabButton
- Icon.AnchorPoint = Vector2.new(0, 0.5)
- Icon.BackgroundColor3 = MarcoUI.Colors.Highlight
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0, 15, 0.5, 0)
- Icon.Size = UDim2.new(0, 15, 0, 15)
- Icon.ZIndex = 3
- Icon.Image = MarcoUI:_GetIcon(Configuration.Icon);
- Icon.ImageColor3 = MarcoUI.Colors.Highlight
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Icon,
- Property = "ImageColor3"
- });
- TabNameLabel.Name = MarcoUI:_RandomString()
- TabNameLabel.Parent = TabButton
- TabNameLabel.AnchorPoint = Vector2.new(0, 0.5)
- TabNameLabel.BackgroundTransparency = 1.000
- TabNameLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabNameLabel.BorderSizePixel = 0
- TabNameLabel.Position = UDim2.new(0, 43, 0.5, 0)
- TabNameLabel.Size = UDim2.new(0, 200, 0, 25)
- TabNameLabel.ZIndex = 3
- TabNameLabel.Font = Enum.Font.GothamMedium
- TabNameLabel.Text = Configuration.Name;
- TabNameLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TabNameLabel.TextSize = 15.000
- TabNameLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TabNameLabel,
- Property = 'TextColor3'
- });
- Highlight.Name = MarcoUI:_RandomString()
- Highlight.Parent = TabButton
- Highlight.AnchorPoint = Vector2.new(0.5, 0.5)
- Highlight.BackgroundColor3 = Color3.fromRGB(161, 161, 161)
- Highlight.BackgroundTransparency = 0.925
- Highlight.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Highlight.BorderSizePixel = 0
- Highlight.Position = UDim2.new(0.5, 0, 0.5, 0)
- Highlight.Size = UDim2.new(1, -17, 1, 0)
- Highlight.ZIndex = 2
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = Highlight
- local TabConfig = Instance.new("Frame")
- local ConfigList = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local UIStroke = Instance.new("UIStroke")
- local Header = Instance.new("Frame")
- local SectionText = Instance.new("TextLabel")
- local SectionClose = Instance.new("ImageLabel")
- local ScrollingFrame = Instance.new("ScrollingFrame")
- local UIListLayout = Instance.new("UIListLayout")
- local Space = Instance.new("Frame")
- local AddConfig = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local UIStroke_2 = Instance.new("UIStroke")
- local Header_2 = Instance.new("Frame")
- local SectionText_2 = Instance.new("TextLabel")
- local SectionClose_2 = Instance.new("ImageLabel")
- local Frame = Instance.new("Frame")
- local UIStroke_3 = Instance.new("UIStroke")
- local UICorner_3 = Instance.new("UICorner")
- local TextBox = Instance.new("TextBox")
- local Button = Instance.new("Frame")
- local BlockLine = Instance.new("Frame")
- local Frame_2 = Instance.new("Frame")
- local UIStroke_4 = Instance.new("UIStroke")
- local UICorner_4 = Instance.new("UICorner")
- local TextLabel = Instance.new("TextLabel")
- TabConfig.Name = MarcoUI:_RandomString()
- TabConfig.Parent = TabMainFrame
- TabConfig.AnchorPoint = Vector2.new(0.5, 0.5)
- TabConfig.BackgroundTransparency = 1.000
- TabConfig.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabConfig.BorderSizePixel = 0
- TabConfig.Position = UDim2.new(0.5, 0, 0.5, 0)
- TabConfig.Size = UDim2.new(1, 0, 1, 0)
- TabConfig.ZIndex = 6
- ConfigList.Name = MarcoUI:_RandomString()
- ConfigList.Parent = TabConfig
- ConfigList.AnchorPoint = Vector2.new(0.5, 0)
- ConfigList.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = ConfigList,
- Property = "BackgroundColor3"
- });
- ConfigList.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ConfigList.BorderSizePixel = 0
- ConfigList.Position = UDim2.new(0.5, 0, 0, 5)
- ConfigList.Size = UDim2.new(1, -10, 1, -110)
- ConfigList.ZIndex = 9
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = ConfigList
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = ConfigList
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- Header.Name = MarcoUI:_RandomString()
- Header.Parent = ConfigList
- Header.BackgroundTransparency = 1.000
- Header.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Header.BorderSizePixel = 0
- Header.Size = UDim2.new(1, 0, 0, 35)
- Header.ZIndex = 9
- SectionText.Name = MarcoUI:_RandomString()
- SectionText.Parent = Header
- SectionText.AnchorPoint = Vector2.new(0, 0.5)
- SectionText.BackgroundTransparency = 1.000
- SectionText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionText.BorderSizePixel = 0
- SectionText.Position = UDim2.new(0, 12, 0.5, 0)
- SectionText.Size = UDim2.new(0, 200, 0, 25)
- SectionText.ZIndex = 10
- SectionText.Font = Enum.Font.GothamMedium
- SectionText.Text = "Config List"
- SectionText.TextColor3 = MarcoUI.Colors.SwitchColor
- SectionText.TextSize = 14.000
- SectionText.TextTransparency = 0.500
- SectionText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = SectionText,
- Property = 'TextColor3'
- });
- SectionClose.Name = MarcoUI:_RandomString()
- SectionClose.Parent = Header
- SectionClose.AnchorPoint = Vector2.new(1, 0.5)
- SectionClose.BackgroundTransparency = 1.000
- SectionClose.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionClose.BorderSizePixel = 0
- SectionClose.Position = UDim2.new(1, -12, 0.5, 0)
- SectionClose.Size = UDim2.new(0, 17, 0, 17)
- SectionClose.ZIndex = 10
- SectionClose.Image = MarcoUI:CacheImage("rbxassetid://109535175596957")
- SectionClose.ImageTransparency = 0.500
- ScrollingFrame.Parent = ConfigList
- ScrollingFrame.Active = true
- ScrollingFrame.AnchorPoint = Vector2.new(0.5, 0)
- ScrollingFrame.BackgroundTransparency = 1.000
- ScrollingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ScrollingFrame.BorderSizePixel = 0
- ScrollingFrame.Position = UDim2.new(0.5, 0, 0, 35)
- ScrollingFrame.Size = UDim2.new(1, -10, 1, -45)
- ScrollingFrame.ZIndex = 12
- ScrollingFrame.ScrollBarThickness = 0
- UIListLayout.Parent = ScrollingFrame
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 7)
- Space.Name = MarcoUI:_RandomString()
- Space.Parent = ScrollingFrame
- Space.BackgroundTransparency = 1.000
- Space.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Space.BorderSizePixel = 0
- AddConfig.Name = MarcoUI:_RandomString()
- AddConfig.Parent = TabConfig
- AddConfig.AnchorPoint = Vector2.new(0.5, 1)
- AddConfig.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = AddConfig,
- Property = "BackgroundColor3"
- });
- AddConfig.BorderColor3 = Color3.fromRGB(0, 0, 0)
- AddConfig.BorderSizePixel = 0
- AddConfig.Position = UDim2.new(0.5, 0, 1, -5)
- AddConfig.Size = UDim2.new(1, -10, 0, 95)
- AddConfig.ZIndex = 9
- UICorner_2.CornerRadius = UDim.new(0, 6)
- UICorner_2.Parent = AddConfig
- UIStroke_2.Color = MarcoUI.Colors.StrokeColor
- UIStroke_2.Parent = AddConfig
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke_2,
- Property = "Color"
- });
- Header_2.Name = MarcoUI:_RandomString()
- Header_2.Parent = AddConfig
- Header_2.BackgroundTransparency = 1.000
- Header_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Header_2.BorderSizePixel = 0
- Header_2.Size = UDim2.new(1, 0, 0, 35)
- Header_2.ZIndex = 9
- SectionText_2.Name = MarcoUI:_RandomString()
- SectionText_2.Parent = Header_2
- SectionText_2.AnchorPoint = Vector2.new(0, 0.5)
- SectionText_2.BackgroundTransparency = 1.000
- SectionText_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionText_2.BorderSizePixel = 0
- SectionText_2.Position = UDim2.new(0, 12, 0.5, 0)
- SectionText_2.Size = UDim2.new(0, 200, 0, 25)
- SectionText_2.ZIndex = 10
- SectionText_2.Font = Enum.Font.GothamMedium
- SectionText_2.Text = "Add Config"
- SectionText_2.TextColor3 = MarcoUI.Colors.SwitchColor
- SectionText_2.TextSize = 14.000
- SectionText_2.TextTransparency = 0.500
- SectionText_2.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = SectionText_2,
- Property = 'TextColor3'
- });
- SectionClose_2.Name = MarcoUI:_RandomString()
- SectionClose_2.Parent = Header_2
- SectionClose_2.AnchorPoint = Vector2.new(1, 0.5)
- SectionClose_2.BackgroundTransparency = 1.000
- SectionClose_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionClose_2.BorderSizePixel = 0
- SectionClose_2.Position = UDim2.new(1, -12, 0.5, 0)
- SectionClose_2.Size = UDim2.new(0, 17, 0, 17)
- SectionClose_2.ZIndex = 10
- SectionClose_2.Image = MarcoUI:CacheImage("rbxassetid://109535175596957")
- SectionClose_2.ImageTransparency = 0.500
- Frame.Parent = AddConfig
- Frame.AnchorPoint = Vector2.new(0.5, 0)
- Frame.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = Frame,
- Property = "BackgroundColor3"
- });
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(0.5, 0, 0, 35)
- Frame.Size = UDim2.new(1, -20, 0, 20)
- Frame.ZIndex = 15
- UIStroke_3.Color = MarcoUI.Colors.StrokeColor
- UIStroke_3.Parent = Frame
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke_3,
- Property = "Color"
- });
- UICorner_3.CornerRadius = UDim.new(0, 4)
- UICorner_3.Parent = Frame
- TextBox.Parent = Frame
- TextBox.AnchorPoint = Vector2.new(0.5, 0.5)
- TextBox.BackgroundTransparency = 1.000
- TextBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextBox.BorderSizePixel = 0
- TextBox.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextBox.Size = UDim2.new(1, -15, 1, -2)
- TextBox.ZIndex = 15
- TextBox.ClearTextOnFocus = false
- TextBox.Font = Enum.Font.GothamMedium
- TextBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
- TextBox.PlaceholderText = "Config Name..."
- TextBox.Text = ""
- TextBox.TextColor3 = MarcoUI.Colors.SwitchColor
- TextBox.TextSize = 12.000
- TextBox.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextBox,
- Property = 'TextColor3'
- });
- Button.Name = MarcoUI:_RandomString()
- Button.Parent = AddConfig
- Button.AnchorPoint = Vector2.new(0.5, 1)
- Button.BackgroundColor3 = MarcoUI.Colors.SwitchColor
- Button.BackgroundTransparency = 1.000
- Button.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Button.BorderSizePixel = 0
- Button.Position = UDim2.new(0.5, 0, 1, -10)
- Button.Size = UDim2.new(1, -7, 0, 25)
- Button.ZIndex = 10
- BlockLine.Name = MarcoUI:_RandomString()
- BlockLine.Parent = AddConfig
- BlockLine.AnchorPoint = Vector2.new(0.5, 1)
- BlockLine.BackgroundColor3 = MarcoUI.Colors.LineColor
- BlockLine.BackgroundTransparency = 0.500
- BlockLine.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockLine.BorderSizePixel = 0
- BlockLine.Position = UDim2.new(0.5, 0, 0.5, 12)
- BlockLine.Size = UDim2.new(1, -26, 0, 1)
- BlockLine.ZIndex = 12
- table.insert(MarcoUI.Elements.LineColor,{
- Element = BlockLine,
- Property = "BackgroundColor3"
- });
- Frame_2.Parent = Button
- Frame_2.AnchorPoint = Vector2.new(0.5, 0.5)
- Frame_2.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame_2.BackgroundTransparency = 0.100
- Frame_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame_2.BorderSizePixel = 0
- Frame_2.Position = UDim2.new(0.5, 0, 0.5, 0)
- Frame_2.Size = UDim2.new(1, -15, 1, -5)
- Frame_2.ZIndex = 9
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame_2,
- Property = "BackgroundColor3"
- });
- UIStroke_4.Color = MarcoUI.Colors.StrokeColor
- UIStroke_4.Parent = Frame_2
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke_4,
- Property = "Color"
- });
- UICorner_4.CornerRadius = UDim.new(0, 3)
- UICorner_4.Parent = Frame_2
- TextLabel.Parent = Frame_2
- TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- TextLabel.Size = UDim2.new(1, 0, 1, 0)
- TextLabel.ZIndex = 10
- TextLabel.Font = Enum.Font.GothamMedium
- TextLabel.Text = "Add Config"
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 12.000
- TextLabel.TextStrokeTransparency = 0.900
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- local Tween = TweenInfo.new(0.35,Enum.EasingStyle.Quint);
- Highlight:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
- if Highlight.BackgroundTransparency <= 0.99 then
- TabConfig.Visible = true;
- else
- TabConfig.Visible = false;
- end;
- if MarcoUI.PerformanceMode then
- if TabConfig.Visible then
- MarcoUI:_SetNilP(TabConfig , TabMainFrame);
- else
- MarcoUI:_SetNilP(TabConfig , nil);
- end;
- else
- MarcoUI:_SetNilP(TabConfig , TabMainFrame);
- end;
- end)
- local TabOpen = function(bool)
- if bool then
- WindowArgs.SelectedTab = TabButton;
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0,
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 0.925
- });
- --
- MarcoUI:_Animation(ConfigList,Tween,{
- BackgroundTransparency = 0,
- });
- MarcoUI:_Animation(AddConfig,Tween,{
- BackgroundTransparency = 0,
- });
- MarcoUI:_Animation(UIStroke_4,Tween,{
- Transparency = 0,
- });
- MarcoUI:_Animation(UIStroke_3,Tween,{
- Transparency = 0,
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 0,
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 0,
- });
- MarcoUI:_Animation(SectionText,Tween,{
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextTransparency = 0,
- TextStrokeTransparency = 0.9
- });
- MarcoUI:_Animation(Frame_2,Tween,{
- BackgroundTransparency = 0.1,
- });
- MarcoUI:_Animation(BlockLine,Tween,{
- BackgroundTransparency = 0.5,
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 0,
- });
- MarcoUI:_Animation(SectionText_2,Tween,{
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(TextBox,Tween,{
- TextTransparency = 0
- });
- MarcoUI:_Animation(SectionClose,Tween,{
- ImageTransparency = 0.5,
- });
- MarcoUI:_Animation(SectionClose_2,Tween,{
- ImageTransparency = 0.5,
- });
- else
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.5
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(ConfigList,Tween,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(AddConfig,Tween,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(UIStroke_4,Tween,{
- Transparency = 1,
- });
- MarcoUI:_Animation(UIStroke_3,Tween,{
- Transparency = 1,
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 1,
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 1,
- });
- MarcoUI:_Animation(SectionText,Tween,{
- TextTransparency = 1
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextTransparency = 1,
- TextStrokeTransparency = 1
- });
- MarcoUI:_Animation(Frame_2,Tween,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(BlockLine,Tween,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 1,
- });
- MarcoUI:_Animation(SectionText_2,Tween,{
- TextTransparency = 1
- });
- MarcoUI:_Animation(TextBox,Tween,{
- TextTransparency = 1
- });
- MarcoUI:_Animation(SectionClose,Tween,{
- ImageTransparency = 1,
- });
- MarcoUI:_Animation(SectionClose_2,Tween,{
- ImageTransparency = 1,
- });
- end;
- end;
- if not WindowArgs.Tabs[1] then
- TabOpenSignal:Fire(true);
- TabOpen(true);
- else
- TabOpen(false);
- end;
- table.insert(WindowArgs.Tabs , {
- Root = TabButton,
- Remote = TabOpenSignal
- });
- MarcoUI:_Hover(TabButton,function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.1
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.1
- });
- end;
- end , function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.5
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- end;
- end)
- TabOpenSignal:Connect(TabOpen);
- TabHover:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 43, 0.5, 0)
- });
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 4)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -17, 1, 0),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- else
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 10)
- });
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 80, 0.5, 0)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -10,1, 5),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- end;
- end);
- MarcoUI:_Input(TabButton,function()
- for i,v in next, WindowArgs.Tabs do
- if v.Root == TabButton then
- v.Remote:Fire(true);
- else
- v.Remote:Fire(false);
- end;
- end;
- end);
- function TabArgs:_DrawConfig()
- local ConfigButton = {};
- local ConfigBlock = Instance.new("Frame")
- local ConfigText = Instance.new("TextLabel")
- local LinkValues = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- local SaveButton = Instance.new("Frame")
- local Frame = Instance.new("Frame")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local TextLabel = Instance.new("TextLabel")
- local Icon = Instance.new("ImageLabel")
- local LoadButton = Instance.new("Frame")
- local Frame_2 = Instance.new("Frame")
- local UIStroke_2 = Instance.new("UIStroke")
- local UICorner_2 = Instance.new("UICorner")
- local TextLabel_2 = Instance.new("TextLabel")
- local Icon_2 = Instance.new("ImageLabel")
- local UIStroke_3 = Instance.new("UIStroke")
- local UICorner_3 = Instance.new("UICorner")
- local AuthorText = Instance.new("TextLabel")
- local DelButton = Instance.new("ImageButton")
- local UICorner = Instance.new("UICorner")
- local UIGradient = Instance.new("UIGradient")
- DelButton.Name = MarcoUI:_RandomString()
- DelButton.Parent = LinkValues
- DelButton.BackgroundTransparency = 1.000
- DelButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- DelButton.BorderSizePixel = 0
- DelButton.LayoutOrder = -9999
- DelButton.Size = UDim2.new(0, 35, 0, 15)
- DelButton.ZIndex = 14
- DelButton.Image = MarcoUI:CacheImage("rbxassetid://10747362393")
- DelButton.ImageColor3 = Color3.fromRGB(255, 107, 107)
- DelButton.ImageTransparency = 0.500
- DelButton.ScaleType = Enum.ScaleType.Fit
- UICorner.CornerRadius = UDim.new(1, 0)
- UICorner.Parent = DelButton
- ConfigBlock.Name = MarcoUI:_RandomString()
- ConfigBlock.Parent = ScrollingFrame
- ConfigBlock.BackgroundColor3 = Color3.fromRGB(33, 34, 40)
- ConfigBlock.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ConfigBlock.BorderSizePixel = 0
- ConfigBlock.BackgroundTransparency = 1
- ConfigBlock.Size = UDim2.new(1, -1, 0, 40)
- ConfigBlock.ZIndex = 10
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(ConfigBlock);
- end;
- ConfigText.Name = MarcoUI:_RandomString()
- ConfigText.Parent = ConfigBlock
- ConfigText.AnchorPoint = Vector2.new(0, 0.5)
- ConfigText.BackgroundTransparency = 1.000
- ConfigText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ConfigText.BorderSizePixel = 0
- ConfigText.Position = UDim2.new(0, 12, 0.5, 15)
- ConfigText.Size = UDim2.new(1, -20, 0, 25)
- ConfigText.ZIndex = 10
- ConfigText.Font = Enum.Font.GothamMedium
- ConfigText.RichText = true;
- ConfigText.Text = "Config"
- ConfigText.TextColor3 = MarcoUI.Colors.SwitchColor
- ConfigText.TextSize = 13.000
- ConfigText.TextTransparency = 1
- ConfigText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = ConfigText,
- Property = 'TextColor3'
- });
- UIGradient.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0.00, 0.00), NumberSequenceKeypoint.new(0.29, 0.00), NumberSequenceKeypoint.new(0.33, 1.00), NumberSequenceKeypoint.new(1.00, 1.00)}
- UIGradient.Parent = ConfigText
- LinkValues.Name = MarcoUI:_RandomString()
- LinkValues.Parent = ConfigBlock
- LinkValues.AnchorPoint = Vector2.new(1, 0.540000021)
- LinkValues.BackgroundTransparency = 1.000
- LinkValues.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LinkValues.BorderSizePixel = 0
- LinkValues.Position = UDim2.new(1, -12, 0.5, 15)
- LinkValues.Size = UDim2.new(1, 0, 0, 18)
- LinkValues.ZIndex = 11
- UIListLayout.Parent = LinkValues
- UIListLayout.FillDirection = Enum.FillDirection.Horizontal
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- UIListLayout.Padding = UDim.new(0, -10)
- SaveButton.Name = MarcoUI:_RandomString()
- SaveButton.Parent = LinkValues
- SaveButton.BackgroundTransparency = 1.000
- SaveButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SaveButton.BorderSizePixel = 0
- SaveButton.Size = UDim2.new(0, 77, 0, 30)
- SaveButton.ZIndex = 14
- Frame.Parent = SaveButton
- Frame.AnchorPoint = Vector2.new(0.5, 0.5)
- Frame.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame.BackgroundTransparency = 1
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(0.5, 0, 0.5, 0)
- Frame.Size = UDim2.new(1, -15, 1, -5)
- Frame.ZIndex = 14
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame,
- Property = "BackgroundColor3"
- });
- UIStroke.Transparency = 1
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = Frame
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Frame
- TextLabel.Parent = Frame
- TextLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Position = UDim2.new(0.5, 27, 0.5, 0)
- TextLabel.Size = UDim2.new(1, 0, 1, 0)
- TextLabel.ZIndex = 14
- TextLabel.Font = Enum.Font.GothamMedium
- TextLabel.Text = "Save"
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 12.000
- TextLabel.TextStrokeTransparency = 1
- TextLabel.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel.TextTransparency = 1
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- Icon.Name = MarcoUI:_RandomString()
- Icon.Parent = Frame
- Icon.AnchorPoint = Vector2.new(0, 0.5)
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0, 5, 0.5, 0)
- Icon.Size = UDim2.new(0.699999988, 0, 0.699999988, 0)
- Icon.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Icon.ZIndex = 15
- Icon.Image = MarcoUI:CacheImage("rbxassetid://10734941499")
- Icon.ImageTransparency = 1;
- LoadButton.Name = MarcoUI:_RandomString()
- LoadButton.Parent = LinkValues
- LoadButton.BackgroundTransparency = 1.000
- LoadButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- LoadButton.BorderSizePixel = 0
- LoadButton.Size = UDim2.new(0, 77, 0, 30)
- LoadButton.ZIndex = 14
- Frame_2.Parent = LoadButton
- Frame_2.AnchorPoint = Vector2.new(0.5, 0.5)
- Frame_2.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame_2.BackgroundTransparency = 1
- Frame_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame_2.BorderSizePixel = 0
- Frame_2.Position = UDim2.new(0.5, 0, 0.5, 0)
- Frame_2.Size = UDim2.new(1, -15, 1, -5)
- Frame_2.ZIndex = 14
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame_2,
- Property = "BackgroundColor3"
- });
- UIStroke_2.Transparency = 1
- UIStroke_2.Color = MarcoUI.Colors.StrokeColor
- UIStroke_2.Parent = Frame_2
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke_2,
- Property = "Color"
- });
- UICorner_2.CornerRadius = UDim.new(0, 3)
- UICorner_2.Parent = Frame_2
- TextLabel_2.Parent = Frame_2
- TextLabel_2.AnchorPoint = Vector2.new(0.5, 0.5)
- TextLabel_2.BackgroundTransparency = 1.000
- TextLabel_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel_2.BorderSizePixel = 0
- TextLabel_2.Position = UDim2.new(0.5, 27, 0.5, 0)
- TextLabel_2.Size = UDim2.new(1, 0, 1, 0)
- TextLabel_2.ZIndex = 14
- TextLabel_2.Font = Enum.Font.GothamMedium
- TextLabel_2.Text = "Load"
- TextLabel_2.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel_2.TextSize = 12.000
- TextLabel_2.TextStrokeTransparency = 1
- TextLabel_2.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel_2.TextTransparency = 1
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel_2,
- Property = 'TextColor3'
- });
- Icon_2.Name = MarcoUI:_RandomString()
- Icon_2.Parent = Frame_2
- Icon_2.AnchorPoint = Vector2.new(0, 0.5)
- Icon_2.BackgroundTransparency = 1.000
- Icon_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon_2.BorderSizePixel = 0
- Icon_2.Position = UDim2.new(0, 5, 0.5, 0)
- Icon_2.Size = UDim2.new(0.699999988, 0, 0.699999988, 0)
- Icon_2.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Icon_2.ZIndex = 15
- Icon_2.Image = MarcoUI:CacheImage("rbxassetid://10723344270")
- Icon_2.ImageTransparency = 1
- UIStroke_3.Transparency = 1
- UIStroke_3.Color = MarcoUI.Colors.StrokeColor
- UIStroke_3.Parent = ConfigBlock
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke_3,
- Property = "Color"
- });
- UICorner_3.CornerRadius = UDim.new(0, 6)
- UICorner_3.Parent = ConfigBlock
- AuthorText.Name = MarcoUI:_RandomString()
- AuthorText.Parent = ConfigBlock
- AuthorText.AnchorPoint = Vector2.new(0, 0.5)
- AuthorText.BackgroundTransparency = 1.000
- AuthorText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- AuthorText.BorderSizePixel = 0
- AuthorText.Position = UDim2.new(0.5, -65, 0.5, 15)
- AuthorText.Size = UDim2.new(1, -20, 0, 25)
- AuthorText.ZIndex = 10
- AuthorText.Font = Enum.Font.GothamMedium
- AuthorText.RichText = true;
- AuthorText.Text = "Author: <font color=\"rgb(17, 238, 253)\">NoFi</font>"
- AuthorText.TextColor3 = MarcoUI.Colors.SwitchColor
- AuthorText.TextSize = 13.000
- AuthorText.TextTransparency = 1
- AuthorText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TabNameLabel,
- Property = 'TextColor3'
- });
- function ConfigButton:SetInfo(Author , ConfigName)
- local R,G,B = tostring(math.floor(MarcoUI.Colors.Highlight.R * 255)) , tostring(math.floor(MarcoUI.Colors.Highlight.G * 255)) , tostring(math.floor(MarcoUI.Colors.Highlight.B * 255));
- AuthorText.Text = string.format("Author: <font color=\"rgb(%s, %s, %s)\">%s</font>" ,R,G,B , tostring(Author));
- ConfigText.Text = ConfigName;
- if ConfigBlock.BackgroundTransparency >= 0.7 then
- ConfigButton:Update();
- end;
- end;
- function ConfigButton:Toggle(v)
- if v then
- MarcoUI:_Animation(ConfigBlock,Tween,{
- BackgroundTransparency = 0
- });
- MarcoUI:_Animation(LinkValues,Tween,{
- Position = UDim2.new(1, -12, 0.5, 0)
- });
- MarcoUI:_Animation(ConfigText,Tween,{
- TextTransparency = 0.3,
- Position = UDim2.new(0, 12, 0.5, 0)
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 0.100
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(AuthorText,Tween,{
- TextTransparency = 0.5,
- Position = UDim2.new(0,AuthorText:GetAttribute('SPC'), 0.5, 0)
- });
- MarcoUI:_Animation(Icon_2,Tween,{
- ImageTransparency = 0
- });
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0
- });
- MarcoUI:_Animation(Frame_2,Tween,{
- BackgroundTransparency = 0.100
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 0
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextStrokeTransparency = 0.900,
- TextTransparency = 0
- });
- MarcoUI:_Animation(TextLabel_2,Tween,{
- TextStrokeTransparency = 0.900,
- TextTransparency = 0
- });
- else
- MarcoUI:_Animation(AuthorText,Tween,{
- TextTransparency = 1,
- Position = UDim2.new(0.5, -65, 0.5, 15)
- });
- MarcoUI:_Animation(Icon_2,Tween,{
- ImageTransparency = 1
- });
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 1
- });
- MarcoUI:_Animation(LinkValues,Tween,{
- Position = UDim2.new(1, -12, 0.5, 15)
- });
- MarcoUI:_Animation(ConfigBlock,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(ConfigText,Tween,{
- TextTransparency = 1,
- Position = UDim2.new(0, 12, 0.5, 15)
- });
- MarcoUI:_Animation(Frame,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(UIStroke,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(Frame_2,Tween,{
- BackgroundTransparency = 1
- });
- MarcoUI:_Animation(UIStroke_2,Tween,{
- Transparency = 1
- });
- MarcoUI:_Animation(TextLabel,Tween,{
- TextStrokeTransparency = 1,
- TextTransparency = 1
- });
- MarcoUI:_Animation(TextLabel_2,Tween,{
- TextStrokeTransparency = 1,
- TextTransparency = 1
- });
- end;
- end;
- function ConfigButton:Update()
- local nameScale = TextService:GetTextSize(ConfigText.Text,ConfigText.TextSize,ConfigText.Font,Vector2.new(math.huge,math.huge));
- AuthorText:SetAttribute('SPC',math.clamp(nameScale.X + 20 , 100,150));
- AuthorText.Position = UDim2.new(0, AuthorText:GetAttribute('SPC'), 0.5, 15)
- end;
- ConfigButton:Update();
- MarcoUI:_Input(LoadButton,function()
- task.spawn(ConfigButton.OnLoad);
- end);
- MarcoUI:_Input(SaveButton,function()
- task.spawn(ConfigButton.OnSave);
- end);
- DelButton.MouseButton1Click:Connect(function()
- task.spawn(ConfigButton.OnDelete);
- end)
- ConfigButton.OnLoad = nil;
- ConfigButton.OnSave = nil;
- ConfigButton.OnDelete = nil;
- return ConfigButton;
- end;
- function TabArgs:Init()
- local __signals = {};
- local Init = {};
- MarcoUI:_Input(Button,function()
- if TextBox.Text:byte() then
- WindowArgs.Notify.new({
- Title = "Configs",
- Icon = MarcoUI:_GetIcon(Config.Logo),
- Content = "Create config \""..TextBox.Text.."\""
- })
- Configuration.Config:WriteConfig({
- Name = TextBox.Text,
- Author = WindowArgs.Username,
- });
- end;
- end);
- local Refresh = function()
- local FullConfig = Configuration.Config:GetFullConfigs();
- for i,v in next, ScrollingFrame:GetChildren() do
- if v:IsA('Frame') and v.Name ~= "Space" then
- v:Destroy();
- end;
- end;
- for i,v in next , __signals do
- v:Disconnect();
- end;
- for i,v in next , FullConfig do
- local Button = TabArgs:_DrawConfig();
- Button:SetInfo(v.Info.Author,v.Name);
- table.insert(__signals,TabOpenSignal:Connect(function(v)
- Button:Toggle(v);
- end));
- Button.OnLoad = function()
- WindowArgs.Notify.new({
- Title = "Configs",
- Icon = MarcoUI:CacheImage(Config.Logo),
- Content = "Load config \""..v.Name.."\""
- })
- Configuration.Config:LoadConfig(v.Name);
- end;
- Button.OnSave = function()
- WindowArgs.Notify.new({
- Title = "Configs",
- Icon = MarcoUI:CacheImage(Config.Logo),
- Content = "Save config \""..v.Name.."\""
- })
- Button:SetInfo(v.Info.Author,v.Name);
- Configuration.Config:WriteConfig({
- Name = v.Name,
- Author = v.Info.Author;
- });
- end
- Button.OnDelete = function()
- WindowArgs.Notify.new({
- Title = "Configs",
- Icon = MarcoUI:CacheImage(Config.Logo),
- Content = "Delete config \""..v.Name.."\""
- })
- Configuration.Config:DeleteConfig(v.Name)
- end
- end;
- end;
- Refresh();
- Init.THREAD = task.spawn(function()
- local OldIndex = Configuration.Config:GetConfigCount();
- while true do task.wait(0.125);
- local CountInDirectory = Configuration.Config:GetConfigCount();
- if OldIndex ~= CountInDirectory then
- OldIndex = CountInDirectory;
- Refresh();
- end;
- end;
- end);
- return Init;
- end;
- return TabArgs;
- end;
- function WindowArgs:DrawTab(TabConfig : TabConfig , Internal)
- TabConfig = MarcoUI.__CONFIG(TabConfig,{
- Name = "Tab",
- Icon = "eye",
- Type = "Double"
- });
- local TabOpenSignal = MarcoUI.__SIGNAL(false);
- local TabArgs = {};
- local Upvalue = {};
- local BASE_PADDING = 12; -- Increased for better spacing
- if Internal then
- local TabContent = Instance.new("Frame")
- local Left = Instance.new("ScrollingFrame")
- local UIListLayout = Instance.new("UIListLayout")
- local Right = Instance.new("ScrollingFrame")
- local UIListLayout_2 = Instance.new("UIListLayout")
- TabContent.Name = MarcoUI:_RandomString()
- TabContent.Parent = Internal.Parent;
- TabContent.AnchorPoint = Vector2.new(0.5, 0.5)
- TabContent.BackgroundTransparency = 1.000
- TabContent.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabContent.BorderSizePixel = 0
- TabContent.Position = UDim2.new(0.5, 0, 0.5, 0)
- TabContent.Size = UDim2.new(1, -5,1, -5)
- TabContent.ZIndex = 6
- TabContent.Visible = true
- Left.Name = MarcoUI:_RandomString()
- Left.Parent = TabContent
- Left.Active = true
- Left.AnchorPoint = Vector2.new(0.5, 0.5)
- Left.BackgroundTransparency = 1.000
- Left.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Left.BorderSizePixel = 0
- Left.ClipsDescendants = false
- Left.Position = UDim2.new(0.25, -3, 0.5, 0)
- Left.Size = UDim2.new(0.5, -3, 1, 0)
- Left.ZIndex = 8
- Left.Visible = true
- Left.BottomImage = ""
- Left.ScrollBarThickness = 0
- Left.TopImage = ""
- Left.AutomaticCanvasSize = Enum.AutomaticSize.Y;
- Left.CanvasSize = UDim2.new(0, 0, 0, 0)
- UIListLayout.Parent = Left
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalFlex = Enum.UIFlexAlignment.None
- UIListLayout.Padding = UDim.new(0, BASE_PADDING)
- Right.Name = MarcoUI:_RandomString()
- Right.Parent = TabContent
- Right.Active = true
- Right.AnchorPoint = Vector2.new(0.5, 0.5)
- Right.BackgroundTransparency = 1.000
- Right.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Right.BorderSizePixel = 0
- Right.ClipsDescendants = false
- Right.Position = UDim2.new(0.75, 3, 0.5, 0)
- Right.Size = UDim2.new(0.5, -3, 1, 0)
- Right.ZIndex = 8
- Right.Visible = true
- Right.BottomImage = ""
- Right.AutomaticCanvasSize = Enum.AutomaticSize.Y;
- Right.CanvasSize = UDim2.new(0, 0, 0, 0)
- Right.ScrollBarThickness = 0
- Right.TopImage = ""
- Upvalue.Left = Left;
- Upvalue.Right = Right;
- Upvalue.LeftLayout = UIListLayout;
- Upvalue.RightLayout = UIListLayout_2;
- UIListLayout_2.Parent = Right
- UIListLayout_2.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout_2.Padding = UDim.new(0, BASE_PADDING)
- UIListLayout_2.VerticalFlex = Enum.UIFlexAlignment.None
- WindowArgs:AddUnbind(UIListLayout_2 , Right);
- WindowArgs:AddUnbind(UIListLayout , Left);
- if TabConfig.Type == "Single" then
- Right.Visible = false;
- Left.Position = UDim2.new(0.5, 0, 0.5, 0)
- Left.Size = UDim2.new(1,0,1,0)
- end;
- local Tween = TweenInfo.new(0.35,Enum.EasingStyle.Quint);
- local function updateTabContentVisibility()
- if Internal.Highlight.BackgroundTransparency <= 0.99 then
- TabContent.Visible = true;
- else
- TabContent.Visible = false;
- end;
- if MarcoUI.PerformanceMode then
- if TabContent.Visible then
- MarcoUI:_SetNilP(TabContent , Internal.Parent);
- else
- MarcoUI:_SetNilP(TabContent , nil);
- end;
- else
- MarcoUI:_SetNilP(TabContent , Internal.Parent);
- end;
- end;
- Internal.Highlight:GetPropertyChangedSignal('BackgroundTransparency'):Connect(updateTabContentVisibility);
- -- Also listen to the signal directly for immediate updates
- Internal.Signal:Connect(function(isOpen)
- if isOpen then
- -- Small delay to ensure highlight animation has started
- task.wait(0.05);
- updateTabContentVisibility();
- else
- updateTabContentVisibility();
- end;
- end);
- Upvalue.Left = Left;
- Upvalue.Right = Right;
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Left);
- MarcoUI:_AddDragBlacklist(Right);
- end;
- TabOpenSignal = Internal.Signal;
- -- Initialize visibility based on highlight state
- local function updateVisibility()
- if Internal.Highlight.BackgroundTransparency <= 0.99 then
- TabContent.Visible = true;
- else
- TabContent.Visible = false;
- end;
- end;
- -- Set initial visibility - check immediately and after a small delay to catch animation start
- updateVisibility();
- task.defer(function()
- task.wait(0.1);
- updateVisibility();
- end);
- if MarcoUI.PerformanceMode then
- if TabContent.Visible then
- MarcoUI:_SetNilP(TabContent , Internal.Parent);
- else
- MarcoUI:_SetNilP(TabContent , nil);
- end;
- else
- MarcoUI:_SetNilP(TabContent , Internal.Parent);
- end;
- else
- -- Button --
- local TabButton = Instance.new("Frame")
- local Icon = Instance.new("ImageLabel")
- local TabNameLabel = Instance.new("TextLabel")
- local Highlight = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- TabButton.Name = MarcoUI:_RandomString()
- TabButton.Parent = TabButtonScrollingFrame
- TabButton.BackgroundTransparency = 1.000
- TabButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabButton.BorderSizePixel = 0
- TabButton.ClipsDescendants = true
- TabButton.Size = UDim2.new(1, -10, 0, 32)
- TabButton.ZIndex = 3
- Icon.Name = MarcoUI:_RandomString()
- Icon.Parent = TabButton
- Icon.AnchorPoint = Vector2.new(0, 0.5)
- Icon.BackgroundColor3 = MarcoUI.Colors.Highlight
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0, 15, 0.5, 0)
- Icon.Size = UDim2.new(0, 15, 0, 15)
- Icon.ZIndex = 3
- Icon.Image = MarcoUI:_GetIcon(TabConfig.Icon);
- Icon.ImageColor3 = MarcoUI.Colors.Highlight
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Icon,
- Property = "ImageColor3"
- });
- TabNameLabel.Name = MarcoUI:_RandomString()
- TabNameLabel.Parent = TabButton
- TabNameLabel.AnchorPoint = Vector2.new(0, 0.5)
- TabNameLabel.BackgroundTransparency = 1.000
- TabNameLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabNameLabel.BorderSizePixel = 0
- TabNameLabel.Position = UDim2.new(0, 43, 0.5, 0)
- TabNameLabel.Size = UDim2.new(0, 200, 0, 25)
- TabNameLabel.ZIndex = 3
- TabNameLabel.Font = Enum.Font.GothamMedium
- TabNameLabel.Text = TabConfig.Name;
- TabNameLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TabNameLabel.TextSize = 15.000
- TabNameLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TabNameLabel,
- Property = 'TextColor3'
- });
- Highlight.Name = MarcoUI:_RandomString()
- Highlight.Parent = TabButton
- Highlight.AnchorPoint = Vector2.new(0.5, 0.5)
- Highlight.BackgroundColor3 = Color3.fromRGB(161, 161, 161)
- Highlight.BackgroundTransparency = 0.925
- Highlight.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Highlight.BorderSizePixel = 0
- Highlight.Position = UDim2.new(0.5, 0, 0.5, 0)
- Highlight.Size = UDim2.new(1, -17, 1, 0)
- Highlight.ZIndex = 2
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = Highlight
- local TabContent = Instance.new("Frame")
- local Left = Instance.new("ScrollingFrame")
- local UIListLayout = Instance.new("UIListLayout")
- local Right = Instance.new("ScrollingFrame")
- local UIListLayout_2 = Instance.new("UIListLayout")
- TabContent.Name = MarcoUI:_RandomString()
- TabContent.Parent = TabMainFrame;
- TabContent.AnchorPoint = Vector2.new(0.5, 0.5)
- TabContent.BackgroundTransparency = 1.000
- TabContent.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TabContent.BorderSizePixel = 0
- TabContent.Position = UDim2.new(0.5, 0, 0.5, 0)
- TabContent.Size = UDim2.new(1, -15, 1, -15)
- TabContent.ZIndex = 6
- Left.Name = MarcoUI:_RandomString()
- Left.Parent = TabContent
- Left.Active = true
- Left.AnchorPoint = Vector2.new(0.5, 0.5)
- Left.BackgroundTransparency = 1.000
- Left.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Left.BorderSizePixel = 0
- Left.ClipsDescendants = false
- Left.Position = UDim2.new(0.25, -3, 0.5, 0)
- Left.Size = UDim2.new(0.5, -3, 1, 0)
- Left.ZIndex = 8
- Left.BottomImage = ""
- Left.ScrollBarThickness = 0
- Left.TopImage = ""
- --Left.AutomaticCanvasSize = Enum.AutomaticSize.Y;
- Left.CanvasSize = UDim2.new(0, 0, 0, 0)
- UIListLayout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- Left.CanvasSize = UDim2.fromOffset(0,UIListLayout.AbsoluteContentSize.Y)
- end);
- UIListLayout.Parent = Left
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalFlex = Enum.UIFlexAlignment.None
- UIListLayout.Padding = UDim.new(0, BASE_PADDING)
- Right.Name = MarcoUI:_RandomString()
- Right.Parent = TabContent
- Right.Active = true
- Right.AnchorPoint = Vector2.new(0.5, 0.5)
- Right.BackgroundTransparency = 1.000
- Right.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Right.BorderSizePixel = 0
- Right.ClipsDescendants = false
- Right.Position = UDim2.new(0.75, 3, 0.5, 0)
- Right.Size = UDim2.new(0.5, -3, 1, 0)
- Right.ZIndex = 8
- Right.BottomImage = ""
- Right.ScrollBarThickness = 0
- Right.TopImage = ""
- --Right.AutomaticCanvasSize = Enum.AutomaticSize.Y;
- Right.CanvasSize = UDim2.new(0, 0, 0, 0)
- Upvalue.Left = Left;
- Upvalue.Right = Right;
- Upvalue.LeftLayout = UIListLayout;
- Upvalue.RightLayout = UIListLayout_2;
- UIListLayout_2:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- Right.CanvasSize = UDim2.fromOffset(0,UIListLayout_2.AbsoluteContentSize.Y)
- end)
- UIListLayout_2.Parent = Right
- UIListLayout_2.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout_2.Padding = UDim.new(0, BASE_PADDING)
- UIListLayout_2.VerticalFlex = Enum.UIFlexAlignment.None
- WindowArgs:AddUnbind(UIListLayout_2 , Right);
- WindowArgs:AddUnbind(UIListLayout , Left);
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Left);
- MarcoUI:_AddDragBlacklist(Right);
- end;
- if TabConfig.Type == "Single" then
- Right.Visible = false;
- Left.Position = UDim2.new(0.5, 0, 0.5, 0)
- Left.Size = UDim2.new(1, -1, 1, -1)
- end;
- local Tween = TweenInfo.new(0.35,Enum.EasingStyle.Quint);
- Highlight:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
- if Highlight.BackgroundTransparency <= 0.99 then
- TabContent.Visible = true;
- else
- TabContent.Visible = false;
- end;
- if MarcoUI.PerformanceMode then
- if TabContent.Visible then
- MarcoUI:_SetNilP(TabContent , TabMainFrame);
- else
- MarcoUI:_SetNilP(TabContent , nil);
- end;
- else
- MarcoUI:_SetNilP(TabContent , TabMainFrame);
- end;
- end)
- local TabOpen = function(bool)
- if bool then
- WindowArgs.SelectedTab = TabButton;
- -- Hide Home when a tab is opened
- if WindowArgs.IsHomeActive and WindowArgs._ToggleHome then
- WindowArgs._ToggleHome(false);
- end;
- -- Selected tab: spin icon 360 degrees and scale up
- MarcoUI:_Animation(Icon,TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- ImageTransparency = 0,
- Rotation = 360,
- Size = UDim2.new(0, 17, 0, 17)
- });
- MarcoUI:_Animation(TabButton,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- Size = UDim2.new(1, -8, 0, 34)
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 0.925
- });
- else
- -- Unselected tab: reset rotation, scale down, offset right
- MarcoUI:_Animation(Icon,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- ImageTransparency = 0.5,
- Rotation = 0,
- Size = UDim2.new(0, 14, 0, 14),
- Position = UDim2.new(0, 16, 0.5, 0)
- });
- MarcoUI:_Animation(TabButton,TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out),{
- Size = UDim2.new(1, -10, 0, 30),
- Position = UDim2.new(0, 2, 0, 0)
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- MarcoUI:_Animation(Highlight,Tween,{
- BackgroundTransparency = 1
- });
- end;
- end;
- if not WindowArgs.Tabs[1] then
- TabOpenSignal:Fire(true);
- TabOpen(true);
- else
- TabOpen(false);
- end;
- table.insert(WindowArgs.Tabs , {
- Root = TabButton,
- Remote = TabOpenSignal
- });
- MarcoUI:_Hover(TabButton,function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.1
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.1
- });
- end;
- end , function()
- if WindowArgs.SelectedTab ~= TabButton then
- MarcoUI:_Animation(Icon,Tween,{
- ImageTransparency = 0.5
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- TextTransparency = 0.5
- });
- end;
- end)
- TabOpenSignal:Connect(TabOpen);
- TabHover:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 43, 0.5, 0)
- });
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 4)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -17, 1, 0),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- else
- MarcoUI:_Animation(UICorner,Tween,{
- CornerRadius = UDim.new(0, 10)
- });
- MarcoUI:_Animation(TabButton,Tween,{
- Size = UDim2.new(1, -10, 0, 32)
- });
- MarcoUI:_Animation(Icon,Tween,{
- Size = UDim2.new(0, 16, 0, 16),
- });
- MarcoUI:_Animation(TabNameLabel,Tween,{
- Size = UDim2.new(0, 200, 0, 25),
- Position = UDim2.new(0, 80, 0.5, 0)
- });
- MarcoUI:_Animation(Highlight,Tween,{
- Size = UDim2.new(1, -10,1, 5),
- Position = UDim2.new(0.5, 0, 0.5, 0)
- });
- end;
- end);
- MarcoUI:_Input(TabButton,function()
- for i,v in next, WindowArgs.Tabs do
- if v.Root == TabButton then
- v.Remote:Fire(true);
- else
- v.Remote:Fire(false);
- end;
- end;
- end);
- end;
- function TabArgs:DrawSection(config: Section)
- config = MarcoUI.__CONFIG(config,{
- Name = "Section",
- Position = "left",
- Status = nil
- });
- local Parent = (TabConfig.Type == "Double" and ((string.lower(config.Position) == "left" and Upvalue.Left) or Upvalue.Right)) or Upvalue.Left;
- local IsOpen = true;
- local Section = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local UIStroke = Instance.new("UIStroke")
- local UIListLayout = Instance.new("UIListLayout")
- local Header = Instance.new("Frame")
- local SectionText = Instance.new("TextLabel")
- local SectionClose = Instance.new("ImageLabel")
- local ContentHolder = Instance.new("Frame")
- local ContentLayout = Instance.new("UIListLayout")
- local StatusHolder;
- local StatusDot;
- local StatusLabel;
- Section.Name = MarcoUI:_RandomString()
- Section.Parent = Parent;
- if TabConfig.Type == "Single" then
- Section.Parent = Upvalue.Left;
- end;
- -- Mark section for interaction locking
- Section:SetAttribute("IsSection", true);
- Section.BackgroundColor3 = MarcoUI.Colors.BlockColor
- table.insert(MarcoUI.Elements.BlockColor , {
- Element = Section,
- Property = "BackgroundColor3"
- });
- if MarcoUI:_IsMobile() then
- MarcoUI:_AddDragBlacklist(Section);
- end;
- Section.LayoutOrder = #Parent:GetChildren() + 3;
- Section.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Section.BorderSizePixel = 0
- Section.Size = UDim2.new(1, 0, 0, 0)
- Section.AutomaticSize = Enum.AutomaticSize.Y;
- Section.ZIndex = 9
- Section.ClipsDescendants = true;
- UICorner.CornerRadius = UDim.new(0, 6)
- UICorner.Parent = Section
- UIStroke.Color = MarcoUI.Colors.StrokeColor
- UIStroke.Parent = Section
- table.insert(MarcoUI.Elements.StrokeColor,{
- Element = UIStroke,
- Property = "Color"
- });
- -- Border trace effect for hover
- local BorderTrace = Instance.new("UIStroke")
- BorderTrace.Name = MarcoUI:_RandomString()
- BorderTrace.Parent = Section
- BorderTrace.Color = MarcoUI.Colors.Highlight
- BorderTrace.Transparency = 1.000
- BorderTrace.Thickness = 2
- BorderTrace.ZIndex = 10
- table.insert(MarcoUI.Elements.Highlight,{
- Element = BorderTrace,
- Property = "Color"
- });
- local BorderGradient = Instance.new("UIGradient")
- BorderGradient.Parent = BorderTrace
- BorderGradient.Color = ColorSequence.new({
- ColorSequenceKeypoint.new(0, MarcoUI.Colors.Highlight),
- ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 255)),
- ColorSequenceKeypoint.new(1, MarcoUI.Colors.Highlight)
- });
- BorderGradient.Offset = Vector2.new(0, 0)
- local gradientOffset = 0;
- local gradientConnection;
- local function startGradientAnimation()
- if gradientConnection then
- gradientConnection:Disconnect();
- end;
- gradientConnection = RunService.RenderStepped:Connect(function()
- gradientOffset = (gradientOffset + 0.01) % 1;
- -- Animate offset to create wrapping effect
- local angle = gradientOffset * math.pi * 2;
- BorderGradient.Offset = Vector2.new(math.cos(angle) * 0.5, math.sin(angle) * 0.5);
- end);
- end;
- local function stopGradientAnimation()
- if gradientConnection then
- gradientConnection:Disconnect();
- gradientConnection = nil;
- end;
- end;
- -- Hover effect with border trace
- MarcoUI:_Hover(Section, function()
- MarcoUI:_Animation(BorderTrace, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {
- Transparency = 0.2
- });
- startGradientAnimation();
- end, function()
- MarcoUI:_Animation(BorderTrace, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {
- Transparency = 1.000
- });
- stopGradientAnimation();
- end);
- UIListLayout.Parent = Section
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 8) -- Increased padding for better spacing
- Header.Name = MarcoUI:_RandomString()
- Header.Parent = Section
- Header.BackgroundTransparency = 1.000
- Header.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Header.BorderSizePixel = 0
- Header.LayoutOrder = -100
- Header.Size = UDim2.new(1, 0, 0, 35)
- Header.ZIndex = 9
- SectionText.Name = MarcoUI:_RandomString()
- SectionText.Parent = Header
- SectionText.AnchorPoint = Vector2.new(0, 0.5)
- SectionText.BackgroundTransparency = 1.000
- SectionText.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionText.BorderSizePixel = 0
- SectionText.Position = UDim2.new(0, 12, 0.5, 0)
- SectionText.Size = UDim2.new(0, 200, 0, 25)
- SectionText.ZIndex = 10
- SectionText.Font = Enum.Font.GothamMedium
- SectionText.Text = config.Name;
- -- Section text always uses standard theme color (never changes based on status)
- SectionText.TextColor3 = MarcoUI.Colors.SwitchColor
- SectionText.TextSize = 14.000
- SectionText.TextTransparency = 0.500
- SectionText.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = SectionText,
- Property = 'TextColor3'
- });
- SectionClose.Name = MarcoUI:_RandomString()
- SectionClose.Parent = Header
- SectionClose.AnchorPoint = Vector2.new(1, 0.5)
- SectionClose.BackgroundTransparency = 1.000
- SectionClose.BorderColor3 = Color3.fromRGB(0, 0, 0)
- SectionClose.BorderSizePixel = 0
- SectionClose.Position = UDim2.new(1, -12, 0.5, 0)
- SectionClose.Size = UDim2.new(0, 17, 0, 17)
- SectionClose.ZIndex = 10
- SectionClose.Image = MarcoUI:CacheImage("rbxassetid://109535175596957")
- SectionClose.ImageTransparency = 0.500
- if config.Status then
- StatusHolder = Instance.new("Frame")
- StatusDot = Instance.new("Frame")
- StatusLabel = Instance.new("TextLabel")
- local StatusCorner = Instance.new("UICorner")
- local StatusLayout = Instance.new("UIListLayout")
- local statusColor = MarcoUI.Colors.Highlight;
- local statusLower = string.lower(tostring(config.Status));
- -- Fixed status colors: Working=green, Detected=red, Buggy=yellow, Beta=blue, Not Recommended=red
- if statusLower == "working" or statusLower == "undetected" or statusLower == "online" then
- statusColor = Color3.fromRGB(46, 204, 113); -- Green
- elseif statusLower == "detected" or statusLower == "error" or statusLower == "risky" then
- statusColor = Color3.fromRGB(220, 20, 60); -- Red
- elseif statusLower == "buggy" or statusLower == "testing" or statusLower == "updating" then
- statusColor = Color3.fromRGB(255, 191, 0); -- Yellow
- elseif statusLower == "beta" then
- statusColor = Color3.fromRGB(52, 152, 219); -- Blue
- elseif statusLower == "not recommended" or statusLower == "notrecommended" then
- statusColor = Color3.fromRGB(231, 76, 60); -- Red (slightly different from Detected)
- end;
- StatusHolder.Name = MarcoUI:_RandomString()
- StatusHolder.Parent = Header
- StatusHolder.AnchorPoint = Vector2.new(1, 0.5)
- StatusHolder.BackgroundTransparency = 1.000
- StatusHolder.BorderSizePixel = 0
- StatusHolder.Position = UDim2.new(1, -36, 0.5, 0)
- StatusHolder.Size = UDim2.new(0, 0, 1, 0)
- StatusHolder.AutomaticSize = Enum.AutomaticSize.X
- StatusHolder.ZIndex = 10
- StatusHolder.ClipsDescendants = false
- StatusLayout.Parent = StatusHolder
- StatusLayout.FillDirection = Enum.FillDirection.Horizontal
- StatusLayout.SortOrder = Enum.SortOrder.LayoutOrder
- StatusLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- StatusLayout.Padding = UDim.new(0, 4)
- StatusDot.Name = MarcoUI:_RandomString()
- StatusDot.Parent = StatusHolder
- StatusDot.BackgroundColor3 = statusColor
- StatusDot.BorderSizePixel = 0
- StatusDot.Size = UDim2.new(0, 10, 0, 10)
- StatusDot.ZIndex = 10
- StatusCorner.CornerRadius = UDim.new(1, 0)
- StatusCorner.Parent = StatusDot
- if statusColor == MarcoUI.Colors.Highlight then
- table.insert(MarcoUI.Elements.Highlight , {
- Element = StatusDot,
- Property = 'BackgroundColor3'
- });
- end;
- StatusLabel.Name = MarcoUI:_RandomString()
- StatusLabel.Parent = StatusHolder
- StatusLabel.BackgroundTransparency = 1.000
- StatusLabel.BorderSizePixel = 0
- StatusLabel.Size = UDim2.new(0, 0, 0, 14)
- StatusLabel.AutomaticSize = Enum.AutomaticSize.X
- StatusLabel.Font = Enum.Font.GothamSemibold
- StatusLabel.Text = tostring(config.Status)
- StatusLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- StatusLabel.TextSize = 12.000
- StatusLabel.ZIndex = 10
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = StatusLabel,
- Property = 'TextColor3'
- });
- end;
- if not SectionText.Text:byte() then
- Header.Visible = false;
- else
- Header.Visible = true;
- end;
- ContentHolder.Name = MarcoUI:_RandomString()
- ContentHolder.Parent = Section
- ContentHolder.BackgroundTransparency = 1.000
- ContentHolder.BorderSizePixel = 0
- ContentHolder.LayoutOrder = 0
- ContentHolder.Size = UDim2.new(1, -10, 0, 0)
- ContentHolder.AutomaticSize = Enum.AutomaticSize.Y
- ContentHolder.ZIndex = 9
- ContentHolder.ClipsDescendants = true;
- ContentLayout.Parent = ContentHolder
- ContentLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
- ContentLayout.SortOrder = Enum.SortOrder.LayoutOrder
- ContentLayout.Padding = UDim.new(0, 8) -- Increased padding for better spacing
- TabOpenSignal:Connect(function(bool)
- if bool then
- MarcoUI:_Animation(Section,TweenInfo.new(0.21),{
- BackgroundTransparency = 0
- })
- MarcoUI:_Animation(SectionText,TweenInfo.new(0.21),{
- TextTransparency = 0.500
- })
- MarcoUI:_Animation(SectionClose,TweenInfo.new(0.21),{
- ImageTransparency = 0.500
- })
- else
- MarcoUI:_Animation(Section,TweenInfo.new(0.21),{
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(SectionText,TweenInfo.new(0.21),{
- TextTransparency = 1
- })
- MarcoUI:_Animation(SectionClose,TweenInfo.new(0.21),{
- ImageTransparency = 1
- })
- end;
- end);
- local function toggleSection(state)
- IsOpen = state;
- if IsOpen then
- ContentHolder.AutomaticSize = Enum.AutomaticSize.Y;
- ContentHolder.Visible = true;
- MarcoUI:_Animation(SectionClose,TweenInfo.new(0.35),{
- Rotation = 0
- });
- else
- ContentHolder.AutomaticSize = Enum.AutomaticSize.None;
- ContentHolder.Size = UDim2.new(1, -10, 0, 0);
- ContentHolder.Visible = false;
- MarcoUI:_Animation(SectionClose,TweenInfo.new(0.35),{
- Rotation = -180
- });
- end;
- end;
- MarcoUI:_Input(Header,function()
- toggleSection(not IsOpen);
- end);
- toggleSection(IsOpen);
- Header.MouseEnter:Connect(function()
- MarcoUI:_Animation(SectionText,TweenInfo.new(0.2),{
- TextTransparency = 0.25
- })
- end)
- Header.MouseLeave:Connect(function()
- MarcoUI:_Animation(SectionText,TweenInfo.new(0.2),{
- TextTransparency = 0.500
- })
- end)
- return MarcoUI:_LoadElement(ContentHolder , true , TabOpenSignal)
- end;
- return TabArgs;
- end;
- do
- local CloseWindow = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local ImageLabel = Instance.new("ImageLabel")
- CloseWindow.Name = MarcoUI:_RandomString()
- CloseWindow.Parent = WindowGui
- CloseWindow.AnchorPoint = Vector2.new(1, 0)
- CloseWindow.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = CloseWindow,
- Property = 'BackgroundColor3'
- });
- CloseWindow.BackgroundTransparency = 1
- CloseWindow.BorderColor3 = Color3.fromRGB(0, 0, 0)
- CloseWindow.BorderSizePixel = 0
- CloseWindow.Position = UDim2.new(1, -10, 0, 10)
- CloseWindow.Size = UDim2.new(0, 0, 0, 23)
- CloseWindow.ZIndex = 150
- CloseWindow.ClipsDescendants = true;
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = CloseWindow
- ImageLabel.Parent = CloseWindow
- ImageLabel.AnchorPoint = Vector2.new(0.5, 0.5)
- ImageLabel.BackgroundTransparency = 1.000
- ImageLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- ImageLabel.BorderSizePixel = 0
- ImageLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
- ImageLabel.Size = UDim2.new(0.800000012, 0, 0.800000012, 0)
- ImageLabel.SizeConstraint = Enum.SizeConstraint.RelativeYY
- ImageLabel.ZIndex = 151
- ImageLabel.Image = Config.Logo
- ImageLabel.ImageTransparency = 1
- ImageLabel.ClipsDescendants = false;
- local ToggleCloseUI = function(v)
- ImageLabel.Image = Config.Logo;
- if v then
- ImageLabel.ClipsDescendants = true;
- MarcoUI:_Animation(CloseWindow,TweenInfo.new(0.2),{
- Size = UDim2.new(0, 45, 0, 23),
- BackgroundTransparency = 0.025
- })
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = (ImageLabel:GetAttribute('Hover') and 0.1) or 0.35
- })
- else
- ImageLabel.ClipsDescendants = false;
- MarcoUI:_Animation(CloseWindow,TweenInfo.new(0.2),{
- Size = UDim2.new(0, 0, 0, 23),
- BackgroundTransparency = 1
- })
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = 1
- })
- end;
- end;
- function WindowArgs:Watermark()
- local Signal = MarcoUI.__SIGNAL(true);
- local Watermark = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local Logo = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local Frame = Instance.new("Frame")
- local CompLogo = Instance.new("ImageLabel")
- local WaternarkList = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- Watermark.Name = MarcoUI:_RandomString()
- Watermark.Parent = WindowGui
- Watermark.AnchorPoint = Vector2.new(1, 0)
- Watermark.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- MarcoUI:Drag(Watermark , Watermark, 0.1);
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = Watermark,
- Property = 'BackgroundColor3'
- });
- Watermark.BackgroundTransparency = 0.025
- Watermark.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Watermark.BorderSizePixel = 0
- Watermark.Position = UDim2.new(1, -10, 0, 10)
- Watermark.Size = UDim2.new(0, 45, 0, 23)
- Watermark.ZIndex = 150
- UICorner.CornerRadius = UDim.new(0, 3)
- UICorner.Parent = Watermark
- Logo.Name = MarcoUI:_RandomString()
- Logo.Parent = Watermark
- Logo.AnchorPoint = Vector2.new(1, 0.5)
- Logo.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- table.insert(MarcoUI.Elements.BGDBColor,{
- Element = Logo,
- Property = 'BackgroundColor3'
- });
- Logo.BackgroundTransparency = 0.300
- Logo.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Logo.BorderSizePixel = 0
- Logo.Position = UDim2.new(0, 5, 0.5, 0)
- Logo.Size = UDim2.new(1, 10, 1, 0)
- Logo.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Logo.ZIndex = 149
- UICorner_2.CornerRadius = UDim.new(0, 3)
- UICorner_2.Parent = Logo
- Frame.Parent = Logo
- Frame.AnchorPoint = Vector2.new(0, 0.5)
- Frame.BackgroundColor3 = MarcoUI.Colors.Highlight
- Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Frame.BorderSizePixel = 0
- Frame.Position = UDim2.new(1, -5, 0.5, 0)
- Frame.Size = UDim2.new(0, 2, 1, 0)
- Frame.ZIndex = 151
- table.insert(MarcoUI.Elements.Highlight,{
- Element = Frame,
- Property = "BackgroundColor3"
- });
- CompLogo.Name = MarcoUI:_RandomString()
- CompLogo.Parent = Logo
- CompLogo.AnchorPoint = Vector2.new(0.5, 0.5)
- CompLogo.BackgroundTransparency = 1.000
- CompLogo.BorderColor3 = Color3.fromRGB(0, 0, 0)
- CompLogo.BorderSizePixel = 0
- CompLogo.Position = UDim2.new(0.5, -2, 0.5, 0)
- CompLogo.Size = UDim2.new(0.800000012, 0, 0.800000012, 0)
- CompLogo.SizeConstraint = Enum.SizeConstraint.RelativeYY
- CompLogo.ZIndex = 159
- CompLogo.Image = Config.Logo
- if MarcoUI.CustomHighlightMode then
- CompLogo.ImageColor3 = MarcoUI.Colors.Highlight;
- table.insert(MarcoUI.Elements.Highlight , {
- Element = CompLogo,
- Property = 'ImageColor3'
- });
- end;
- WaternarkList.Name = MarcoUI:_RandomString()
- WaternarkList.Parent = Watermark
- WaternarkList.AnchorPoint = Vector2.new(0.5, 0)
- WaternarkList.BackgroundTransparency = 1.000
- WaternarkList.BorderColor3 = Color3.fromRGB(0, 0, 0)
- WaternarkList.BorderSizePixel = 0
- WaternarkList.Position = UDim2.new(0.5, 0, 0, 0)
- WaternarkList.Size = UDim2.new(1, -10, 1, 0)
- WaternarkList.ZIndex = 155
- WaternarkList.ClipsDescendants = true
- UIListLayout.Parent = WaternarkList
- UIListLayout.FillDirection = Enum.FillDirection.Horizontal
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
- UIListLayout.Padding = UDim.new(0, 3)
- local BackFrame = Instance.new("Frame")
- BackFrame.Name = MarcoUI:_RandomString()
- BackFrame.Parent = Watermark
- BackFrame.AnchorPoint = Vector2.new(1, 0.5)
- BackFrame.BackgroundTransparency = 1.000
- BackFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BackFrame.BorderSizePixel = 0
- BackFrame.Position = UDim2.new(1, 0, 0.5, 0)
- BackFrame.Size = UDim2.new(1, 30, 1, 0)
- MarcoUI:_Blur(BackFrame,Signal);
- UIListLayout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
- MarcoUI:_Animation(Watermark,TweenInfo.new(0.4),{
- Size = UDim2.new(0, UIListLayout.AbsoluteContentSize.X + 8, 0, 23)
- });
- end)
- local Args = {};
- function Args:AddText(Watermark : Watermark)
- Watermark = MarcoUI.__CONFIG(Watermark, {
- Text = "Watermark",
- Icon = "info"
- });
- local Icon = Instance.new("ImageLabel")
- local TextLabel = Instance.new("TextLabel")
- Icon.Name = MarcoUI:_RandomString()
- Icon.Parent = WaternarkList
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Size = UDim2.fromOffset(15,15)
- Icon.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Icon.ZIndex = 156
- Icon.Image = MarcoUI:_GetIcon(Watermark.Icon);
- TextLabel.Parent = WaternarkList
- TextLabel.BackgroundTransparency = 1.000
- TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TextLabel.BorderSizePixel = 0
- TextLabel.Size = UDim2.new(0, 50, 0.699999988, 0)
- TextLabel.ZIndex = 156
- TextLabel.Font = Enum.Font.GothamMedium
- TextLabel.Text = Watermark.Text
- TextLabel.TextColor3 = MarcoUI.Colors.SwitchColor
- TextLabel.TextSize = 10.000
- TextLabel.TextXAlignment = Enum.TextXAlignment.Left
- table.insert(MarcoUI.Elements.SwitchColor , {
- Element = TextLabel,
- Property = 'TextColor3'
- });
- local Update = function()
- local scale = TextService:GetTextSize(TextLabel.Text,TextLabel.TextSize,TextLabel.Font,Vector2.new(math.huge,math.huge));
- TextLabel.Size = UDim2.new(0, scale.X + 2, 0.7, 0)
- end;
- Update()
- local Arg = {};
- function Arg:SetText(text)
- TextLabel.Text = text;
- Update();
- end;
- function Arg:Visible(v)
- Icon.Visible = v;
- TextLabel.Visible = v;
- if MarcoUI.PerformanceMode then
- if v then
- MarcoUI:_SetNilP(Icon , WaternarkList);
- MarcoUI:_SetNilP(TextLabel , WaternarkList);
- else
- MarcoUI:_SetNilP(Icon , nil);
- MarcoUI:_SetNilP(TextLabel , nil);
- end;
- else
- MarcoUI:_SetNilP(Icon , WaternarkList);
- MarcoUI:_SetNilP(TextLabel , WaternarkList);
- end;
- end;
- return Arg;
- end;
- return Args;
- end;
- function WindowArgs:Toggle(Value: boolean)
- if WindowArgs.PerformanceMode then
- MainFrame.Visible = Value;
- end;
- WindowOpen:Fire(Value);
- if Value then
- for i,v in next , WindowArgs.Tabs do
- if v.Root == WindowArgs.SelectedTab then
- v.Remote:Fire(true);
- end;
- end;
- else
- for i,v in next , WindowArgs.Tabs do
- v.Remote:Fire(false);
- end;
- end;
- end;
- function WindowArgs:_ToggleUI()
- if WindowArgs.IsMinimized then
- WindowArgs:_MinimizeUI(); -- Unminimize first
- end;
- WindowArgs.IsOpen = not WindowArgs.IsOpen;
- WindowArgs:Toggle(WindowArgs.IsOpen)
- end;
- function WindowArgs:_MinimizeUI()
- WindowArgs.IsMinimized = not WindowArgs.IsMinimized;
- if WindowArgs.IsMinimized then
- -- Minimize to corner
- MarcoUI:_Animation(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {
- Size = UDim2.new(0, 60, 0, 60),
- Position = UDim2.new(1, -70, 1, -70)
- });
- MainFrame.ClipsDescendants = true;
- else
- -- Restore
- MarcoUI:_Animation(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {
- Size = Config.Scale,
- Position = UDim2.fromScale(0.5, 0.5)
- });
- task.wait(0.4);
- MainFrame.ClipsDescendants = false;
- end;
- end;
- local Button = MarcoUI:_Input(CloseWindow,function()
- WindowArgs:_ToggleUI()
- end)
- if not MarcoUI:_IsMobile() then
- MarcoUI:_Hover(Button,function()
- ImageLabel:SetAttribute("Hover",true);
- end , function()
- ImageLabel:SetAttribute("Hover",false);
- end);
- end;
- table.insert(WindowArgs.THREADS,task.spawn(function()
- while true do task.wait(0.15)
- if MarcoUI:_IsMobile() then
- ToggleCloseUI(true);
- if WindowArgs.IsOpen then
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = 0.35
- });
- ImageLabel:GetAttribute("Hover",false);
- else
- ImageLabel:GetAttribute("Hover",true);
- MarcoUI:_Animation(ImageLabel,TweenInfo.new(0.2),{
- ImageTransparency = 0.1
- });
- end;
- else
- if not WindowArgs.IsOpen then
- ToggleCloseUI(true);
- else
- ToggleCloseUI(false);
- end
- end;
- end
- end));
- UserInputService.InputBegan:Connect(function(Input,Typing)
- if not Typing then
- if Input.KeyCode == Config.Keybind or Input.KeyCode.Name == Config.Keybind then
- WindowArgs:_ToggleUI()
- elseif Input.KeyCode == Config.MinimizeKeybind or Input.KeyCode.Name == tostring(Config.MinimizeKeybind) then
- WindowArgs:_MinimizeUI()
- end;
- end;
- end);
- end;
- function WindowArgs:SetMenuKey(new: string | Enum.KeyCode)
- Config.Keybind = new;
- end;
- function WindowArgs:Update(config: WindowUpdate)
- config = config or {};
- config.Logo = config.Logo or Config.Logo;
- config.Username = config.Username or (LocalPlayer and LocalPlayer.DisplayName) or "Player";
- config.ExpireDate = config.ExpireDate or "NEVER";
- config.WindowName = config.WindowName or Config.Name;
- config.UserProfile = config.UserProfile or WindowArgs.Profile or (LocalPlayer and string.format("rbxthumb://type=AvatarHeadShot&id=%s&w=150&h=150",tostring(LocalPlayer.UserId))) or "";
- if MarcoUI.SecureMode and string.find(config.UserProfile, "rbxassetid://",1,true) then
- config.UserProfile = MarcoUI:_GetIcon("user");
- end;
- UserText.Text = config.Username;
- CompLogo.Image = config.Logo;
- ExpireText.Text = config.ExpireDate;
- WindowLabel.Text = config.WindowName;
- UserProfile.Image = config.UserProfile;
- WindowArgs.Username = config.Username;
- Config.Logo = config.Logo or Config.Logo;
- WindowArgs.Username = config.Username or WindowArgs.Username;
- WindowArgs.ExipreDate = config.ExpireDate or WindowArgs.ExipreDate;
- Config.Name = config.WindowName or Config.Name;
- WindowArgs.Profile = config.UserProfile or WindowArgs.Profile;
- end;
- WindowArgs.LOOP_THREAD = task.spawn(function()
- local TimeTic = tick();
- local BlurElement = Instance.new("Frame")
- BlurElement.Name = MarcoUI:_RandomString()
- BlurElement.Parent = MainFrame
- BlurElement.AnchorPoint = Vector2.new(1, 0.5)
- BlurElement.BackgroundTransparency = 1.000
- BlurElement.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlurElement.BorderSizePixel = 0
- BlurElement.Position = UDim2.new(1, -5, 0.5, 0)
- BlurElement.Size = UDim2.new(1, 0, 1, 0)
- BlurElement.ZIndex = -100
- BlurElement.Active = true
- MarcoUI:_Blur(BlurElement , WindowOpen);
- local MovementFrame = Instance.new("Frame")
- MovementFrame.Name = MarcoUI:_RandomString()
- MovementFrame.Parent = MainFrame
- MovementFrame.AnchorPoint = Vector2.new(1, 0.5)
- MovementFrame.BackgroundTransparency = 1.000
- MovementFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- MovementFrame.BorderSizePixel = 0
- MovementFrame.Position = UDim2.new(1, 0, 0.5, 0)
- MovementFrame.Size = UDim2.new(1, 0, 1, 0)
- MovementFrame.ZIndex = 9
- MarcoUI:Drag(MovementFrame,MainFrame,0.1)
- SelectionFrame.Position = UDim2.new(1, 5, 0, 28)
- SelectionFrame.Size = UDim2.new(0, 8, 0, 22)
- table.insert(MarcoUI.Elements.Highlight,{
- Element = SelectionFrame,
- Property = "BackgroundColor3"
- });
- while true do task.wait(0.01);
- BlurElement.Size = UDim2.new(1, TabFrame.AbsoluteSize.X - 35, 1, 0);
- MovementFrame.Size = UDim2.new(1, TabFrame.AbsoluteSize.X - 35, 1, 0);
- SelectionFrame.BackgroundColor3 = MarcoUI.Colors.Highlight;
- if WindowArgs.SelectedTab and WindowArgs.IsOpen then
- local vili = -(TabButtons.AbsolutePosition.Y - WindowArgs.SelectedTab.AbsolutePosition.Y) + 4;
- local distance = (SelectionFrame.Position.Y.Offset - vili);
- if vili < 0 or vili > TabButtons.AbsoluteSize.Y then
- MarcoUI:_Animation(SelectionFrame , TweenInfo.new(0.1) , {
- BackgroundTransparency = 1
- });
- else
- if math.abs(distance) <= 10 then
- MarcoUI:_Animation(SelectionFrame , TweenInfo.new(0.1) , {
- BackgroundTransparency = 0
- });
- SelectionFrame.Position = UDim2.new(1,5,0,math.ceil(vili));
- else
- MarcoUI:_Animation(SelectionFrame , TweenInfo.new(0.15) , {
- BackgroundTransparency = 0,
- Position = UDim2.new(1,5,0,math.ceil(vili))
- });
- end;
- end;
- else
- MarcoUI:_Animation(SelectionFrame , TweenInfo.new(0.15) , {
- BackgroundTransparency = 1
- });
- end;
- if WindowArgs.AlwayShowTab then
- TabHover:Fire(true);
- end;
- end;
- end);
- WindowArgs:Update();
- local OldDelayThread;
- local DurationTime = tick();
- MarcoUI:_Hover(TabFrame , function()
- if OldDelayThread then
- task.cancel(OldDelayThread);
- OldDelayThread = nil;
- end;
- if WindowArgs.AlwayShowTab then
- return;
- end;
- DurationTime = tick();
- TabHover:Fire(true);
- end , function()
- if OldDelayThread then
- task.cancel(OldDelayThread);
- OldDelayThread = nil;
- end;
- if WindowArgs.AlwayShowTab then
- return;
- end;
- OldDelayThread = task.delay(math.clamp((tick() - DurationTime) , 0.01,5),function()
- if TabHover:GetValue() then
- TabHover:Fire(false);
- end
- end);
- end);
- -- Unload function: Plays goodbye animation then destroys
- function WindowArgs:Unload()
- -- Goodbye animation: Scale down and fade out
- MarcoUI:_Animation(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Exponential, Enum.EasingDirection.In), {
- Size = UDim2.new(0, 0, 0, 0),
- BackgroundTransparency = 1
- });
- -- Wait for animation then destroy
- task.wait(0.5);
- if WindowGui and WindowGui.Parent then
- WindowGui:Destroy();
- end;
- end;
- -- Destroy function: Immediately destroys without animation
- function WindowArgs:Destroy()
- if WindowGui and WindowGui.Parent then
- WindowGui:Destroy();
- end;
- end;
- return WindowArgs;
- end;
- function MarcoUI:GetDate(Time)
- Time = Time or tick();
- local val = os.date('*t',Time);
- return string.format("%s/%s/%s",val.day,val.month,val.year);
- end;
- function MarcoUI:GetTimeNow(Time)
- Time = Time or tick();
- local val = os.date('*t',Time);
- return string.format("%s:%s:%s",val.hour,val.min,val.sec);
- end;
- function MarcoUI:GetConfig(Type: string)
- local ConfigFlags = {};
- for i,v in next , MarcoUI.Flags do
- local Value = v:GetValue();
- local Suf = {};
- if typeof(Value) == "table" and Value.ColorPicker and typeof(Value.ColorPicker) == 'table' then
- Suf.Color3 = {
- R = Value.ColorPicker.Color.R,
- G = Value.ColorPicker.Color.G,
- B = Value.ColorPicker.Color.B
- };
- Suf.Transparency = Value.ColorPicker.Transparency;
- Suf.Type = "ColorPicker";
- else
- Suf.Value = Value;
- Suf.Type = "NormalElement";
- end;
- if Type == "KV" then
- ConfigFlags[v.Flag] = {
- Flag = v.Flag,
- Value = Suf,
- Functions = v,
- AutoKeybind = (v.AutoKeybind and v.AutoKeybind:GetSettings());
- }
- elseif Type == "MK" then
- ConfigFlags[v.Flag] = {
- Flag = v.Flag,
- Value = Suf,
- AutoKeybind = (v.AutoKeybind and v.AutoKeybind:GetSettings());
- }
- else
- table.insert(ConfigFlags , {
- Flag = v.Flag,
- Value = Suf,
- AutoKeybind = (v.AutoKeybind and v.AutoKeybind:GetSettings());
- })
- end;
- end;
- return ConfigFlags;
- end;
- function MarcoUI:_Path(...)
- local args = {...};
- return table.concat(args, "/");
- end;
- function MarcoUI:ConfigManager(ConfigManager: ConfigManager) : ConfigFunctions
- ConfigManager = MarcoUI.__CONFIG(ConfigManager , {
- Directory = "MarcoUI",
- Config = "Software"
- });
- if not isfolder(ConfigManager.Directory) then
- makefolder(ConfigManager.Directory);
- end;
- if not isfolder(MarcoUI:_Path(ConfigManager.Directory , ConfigManager.Config)) then
- makefolder(MarcoUI:_Path(ConfigManager.Directory , ConfigManager.Config));
- end;
- local Args = {
- Directory = MarcoUI:_Path(ConfigManager.Directory , ConfigManager.Config);
- EnableNotify = false,
- };
- local notify = MarcoUI.newNotify();
- function Args:WriteConfig(Config: WriteConfig)
- Config = MarcoUI.__CONFIG(Config , {
- Name = MarcoUI:_RandomString(),
- Author = (LocalPlayer and LocalPlayer.Name) or "Player",
- });
- local Flags = MarcoUI:GetConfig("MK");
- Flags["__INFORMATION"] = {
- Type = "Information",
- Author = Config.Author,
- Name = Config.Name,
- CreatedDate = MarcoUI:GetDate()
- };
- if Args.EnableNotify then
- notify.new({
- Title = "Configs",
- Icon = MarcoUI:_GetIcon('settings'),
- Content = "Create config \""..Config.Name.."\""
- })
- end
- writefile(MarcoUI:_Path(Args.Directory , Config.Name) , HttpService:JSONEncode(Flags));
- end;
- function Args:LoadConfigFromString(str: string)
- local decoded = HttpService:JSONDecode(str);
- local Flags = MarcoUI:GetConfig("KV");
- for i,v in next , decoded do
- if v and v.Flag then
- local Value = Flags[v.Flag];
- if Value then
- if v.Value.Type == "NormalElement" then
- Value.Functions:SetValue(v.Value.Value);
- elseif v.Value.Type == "ColorPicker" then
- local Color = Color3.new(v.Value.Color3.R,v.Value.Color3.G,v.Value.Color3.B);
- local Transparency = v.Value.Transparency;
- Value.Functions:SetValue(Color , Transparency);
- end;
- end;
- end
- end;
- end;
- function Args:GetCurrentConfig()
- return MarcoUI:GetConfig("MK")
- end;
- function Args:ReadInfo(ConfigName: string)
- local _path = MarcoUI:_Path(Args.Directory , ConfigName);
- if isfile(_path) then
- local info = readfile(_path);
- local decoded = HttpService:JSONDecode(info);
- return decoded.__INFORMATION;
- end;
- return false;
- end;
- function Args:GetConfigs()
- local names = {};
- for i,v in next , listfiles(Args.Directory) do
- local Name = string.sub(v , #Args.Directory + 2);
- table.insert(names , Name);
- end;
- return names;
- end;
- function Args:GetFullConfigs()
- local names = {};
- for i,v in next , listfiles(Args.Directory) do
- local Name = string.sub(v , #Args.Directory + 2);
- local Info = Args:ReadInfo(Name);
- table.insert(names , {
- Name = Name,
- Info = Info,
- });
- end;
- return names;
- end;
- function Args:DeleteConfig(ConfigName)
- local _path = MarcoUI:_Path(Args.Directory,ConfigName);
- if Args.EnableNotify then
- notify.new({
- Title = "Configs",
- Icon = MarcoUI:_GetIcon('settings'),
- Content = "Delete config \""..ConfigName.."\""
- })
- end
- if isfile(_path) then
- delfile(_path);
- end;
- end;
- function Args:GetConfigCount()
- return #listfiles(Args.Directory);
- end;
- function Args:LoadConfig(ConfigName: string)
- local _path = MarcoUI:_Path(Args.Directory,ConfigName);
- if isfile(_path) then
- local info = readfile(_path);
- local decoded = HttpService:JSONDecode(info);
- local Flags = MarcoUI:GetConfig("KV");
- if Args.EnableNotify then
- notify.new({
- Title = "Configs",
- Icon = MarcoUI:_GetIcon('settings'),
- Content = "Load config \""..ConfigName.."\""
- })
- end
- for i,v in next , decoded do
- if v and v.Flag then
- local Value = Flags[v.Flag];
- if Value then
- if v.Value.Type == "NormalElement" then
- Value.Functions:SetValue(v.Value.Value);
- elseif v.Value.Type == "ColorPicker" then
- local Color = Color3.new(v.Value.Color3.R,v.Value.Color3.G,v.Value.Color3.B);
- local Transparency = v.Value.Transparency;
- Value.Functions:SetValue(Color , Transparency);
- end;
- if Value.Functions.AutoKeybind then
- if v.AutoKeybind then
- Value.Functions.AutoKeybind:LoadSettings(v.AutoKeybind)
- end;
- end;
- end;
- end
- end;
- end;
- end;
- return Args;
- end;
- function MarcoUI:Loader(IconId,Duration)
- local LoaderGui = Instance.new("ScreenGui")
- LoaderGui.Name = self:_RandomString()
- LoaderGui.Parent = CoreGui
- LoaderGui.Enabled = true
- LoaderGui.ResetOnSpawn = false
- LoaderGui.IgnoreGuiInset = true
- LoaderGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
- local Loader = Instance.new("Frame")
- local Icon = Instance.new("ImageLabel")
- local Vignette = Instance.new("ImageLabel")
- Loader.Name = self:_RandomString()
- Loader.Parent = LoaderGui
- Loader.AnchorPoint = Vector2.new(0.5, 0.5)
- Loader.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Loader.BackgroundTransparency = 1
- Loader.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Loader.BorderSizePixel = 0
- Loader.Position = UDim2.new(0.5, 0, 0.5, 0)
- Loader.Size = UDim2.new(1, 0, 1, 0)
- Icon.Name = self:_RandomString()
- Icon.Parent = Loader
- Icon.AnchorPoint = Vector2.new(0.5, 0.5)
- Icon.BackgroundTransparency = 1.000
- Icon.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Icon.BorderSizePixel = 0
- Icon.Position = UDim2.new(0.5, 0, 0.5, 0)
- Icon.Size = UDim2.new(0, 750, 0, 750)
- Icon.ZIndex = 100
- Icon.Image = IconId or self.Logo;
- Icon.ImageTransparency = 1
- Vignette.Name = self:_RandomString()
- Vignette.Parent = Loader
- Vignette.BackgroundTransparency = 1.000
- Vignette.BorderColor3 = Color3.fromRGB(27, 42, 53)
- Vignette.BorderSizePixel = 0
- Vignette.Size = UDim2.new(1, 0, 1, 0)
- Vignette.Image = self:CacheImage("rbxassetid://18720640102")
- Vignette.ImageColor3 = self.Colors.Highlight
- Vignette.ImageTransparency = 1
- Vignette.AnchorPoint = Vector2.new(0.5,0.5)
- Vignette.Position = UDim2.fromScale(0.5,0.5)
- self:_Animation(Loader,TweenInfo.new(0.55,Enum.EasingStyle.Quint),{
- BackgroundTransparency = 0.5
- });
- local Event = Instance.new('BindableEvent');
- task.delay(0.5,function()
- self:_Animation(Icon,TweenInfo.new(0.75,Enum.EasingStyle.Quint),{
- ImageTransparency = 0.01,
- Size = UDim2.new(0, 200, 0, 200)
- });
- task.delay(0.25,function()
- self:_Animation(Vignette,TweenInfo.new(5),{
- ImageTransparency = 0.2
- });
- task.wait(Duration or 4.5)
- self:_Animation(Vignette,TweenInfo.new(3,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut),{
- Size = UDim2.new(2, 0, 2, 0)
- });
- self:_Animation(Icon,TweenInfo.new(0.75,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut),{
- ImageTransparency = 1,
- });
- self:_Animation(Loader,TweenInfo.new(1.5,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut),{
- BackgroundTransparency = 1
- });
- task.delay(0.1,function()
- self:_Animation(Vignette,TweenInfo.new(1,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut),{
- ImageTransparency = 1
- });
- task.wait(0.2)
- task.delay(3,function()
- LoaderGui:Destroy();
- end)
- end)
- task.delay(0.6,function()
- Event:Fire();
- end)
- end)
- end);
- return {
- yield = function()
- return Event.Event:Wait();
- end
- };
- end;
- function MarcoUI.newNotify()
- if MarcoUI.NOTIFY_CACHE then
- return MarcoUI.NOTIFY_CACHE;
- end;
- local Notification = Instance.new("ScreenGui")
- local NotifyContainer = Instance.new("Frame")
- local UIListLayout = Instance.new("UIListLayout")
- Notification.Name = MarcoUI:_RandomString()
- Notification.Parent = CoreGui;
- Notification.ResetOnSpawn = false
- Notification.ZIndexBehavior = Enum.ZIndexBehavior.Global
- NotifyContainer.Name = MarcoUI:_RandomString()
- NotifyContainer.Parent = Notification
- NotifyContainer.AnchorPoint = Vector2.new(1, 0)
- NotifyContainer.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- NotifyContainer.BackgroundTransparency = 1.000
- NotifyContainer.BorderColor3 = Color3.fromRGB(0, 0, 0)
- NotifyContainer.BorderSizePixel = 0
- NotifyContainer.Position = UDim2.new(1, -10, 0, 1)
- NotifyContainer.Size = UDim2.new(0, 100, 0, 100)
- UIListLayout.Parent = NotifyContainer
- UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0, 3)
- local LayoutREF = 0;
- MarcoUI.NOTIFY_CACHE = {
- new = function(Notify: Notify) : NotifyPayback
- Notify = MarcoUI.__CONFIG(Notify, {
- Icon = MarcoUI.Logo,
- Title = "Notification",
- Content = "Content",
- Duration = 3,
- });
- LayoutREF -= 5;
- local BlockFrame = Instance.new("Frame")
- local NotifyFrame = Instance.new("Frame")
- local UICorner = Instance.new("UICorner")
- local CompLogo = Instance.new("ImageLabel")
- local Header = Instance.new("TextLabel")
- local Body = Instance.new("TextLabel")
- local TimeLeftFrame = Instance.new("Frame")
- local UICorner_2 = Instance.new("UICorner")
- local TimeLeft = Instance.new("Frame")
- local UICorner_3 = Instance.new("UICorner")
- BlockFrame.Name = MarcoUI:_RandomString()
- BlockFrame.Parent = NotifyContainer
- BlockFrame.AnchorPoint = Vector2.new(1, 0)
- BlockFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- BlockFrame.BackgroundTransparency = 1.000
- BlockFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- BlockFrame.BorderSizePixel = 0
- BlockFrame.ClipsDescendants = false
- BlockFrame.Size = UDim2.new(0, 200, 0, 0)
- BlockFrame.LayoutOrder = LayoutREF;
- NotifyFrame.Name = MarcoUI:_RandomString()
- NotifyFrame.Parent = BlockFrame
- NotifyFrame.BackgroundColor3 = MarcoUI.Colors.BGDBColor
- NotifyFrame.BackgroundTransparency = 0.100
- NotifyFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- NotifyFrame.BorderSizePixel = 0
- NotifyFrame.ClipsDescendants = false
- NotifyFrame.Size = UDim2.new(1, 0, 1, -5)
- NotifyFrame.ZIndex = 2
- NotifyFrame.Position = UDim2.new(1,200,0,0)
- UICorner.CornerRadius = UDim.new(0, 4)
- UICorner.Parent = NotifyFrame
- CompLogo.Name = MarcoUI:_RandomString()
- CompLogo.Parent = NotifyFrame
- CompLogo.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- CompLogo.BackgroundTransparency = 1.000
- CompLogo.BorderColor3 = Color3.fromRGB(0, 0, 0)
- CompLogo.BorderSizePixel = 0
- CompLogo.Position = UDim2.new(0, 6, 0, 6)
- CompLogo.Size = UDim2.new(0, 25, 0, 25)
- CompLogo.ZIndex = 4
- if string.find(Notify.Icon,'cache-ck-',1,true) then
- CompLogo.Image = Notify.Icon;
- else
- CompLogo.Image = MarcoUI:_GetIcon(Notify.Icon);
- end;
- if MarcoUI.CustomHighlightMode then
- CompLogo.ImageColor3 = MarcoUI.Colors.Highlight;
- end;
- Header.Name = MarcoUI:_RandomString()
- Header.Parent = NotifyFrame
- Header.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Header.BackgroundTransparency = 1.000
- Header.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Header.BorderSizePixel = 0
- Header.Position = UDim2.new(0, 40, 0, 10)
- Header.Size = UDim2.new(1, -50, 0, 15)
- Header.ZIndex = 3
- Header.Font = Enum.Font.GothamBold
- Header.Text = Notify.Title
- Header.TextColor3 = MarcoUI.Colors.SwitchColor
- Header.TextSize = 14.000
- Header.TextXAlignment = Enum.TextXAlignment.Left
- Body.Name = MarcoUI:_RandomString()
- Body.Parent = NotifyFrame
- Body.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Body.BackgroundTransparency = 1.000
- Body.BorderColor3 = Color3.fromRGB(0, 0, 0)
- Body.BorderSizePixel = 0
- Body.Position = UDim2.new(0, 10, 0, 33)
- Body.Size = UDim2.new(1, -15, 0, 30)
- Body.ZIndex = 3
- Body.Font = Enum.Font.GothamMedium
- Body.Text = Notify.Content
- Body.TextColor3 = MarcoUI.Colors.SwitchColor
- Body.TextSize = 12.000
- Body.TextTransparency = 0.500
- Body.TextXAlignment = Enum.TextXAlignment.Left
- Body.TextYAlignment = Enum.TextYAlignment.Top
- TimeLeftFrame.Name = MarcoUI:_RandomString()
- TimeLeftFrame.Parent = NotifyFrame
- TimeLeftFrame.AnchorPoint = Vector2.new(0, 1)
- TimeLeftFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- TimeLeftFrame.BackgroundTransparency = 1.000
- TimeLeftFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TimeLeftFrame.BorderSizePixel = 0
- TimeLeftFrame.Position = UDim2.new(0, 0, 1, 1)
- TimeLeftFrame.Size = UDim2.new(1, 0, 0, 5)
- TimeLeftFrame.ZIndex = 5
- UICorner_2.CornerRadius = UDim.new(0, 4)
- UICorner_2.Parent = TimeLeftFrame
- TimeLeft.Name = MarcoUI:_RandomString()
- TimeLeft.Parent = TimeLeftFrame
- TimeLeft.BackgroundColor3 = MarcoUI.Colors.Highlight
- TimeLeft.BorderColor3 = Color3.fromRGB(0, 0, 0)
- TimeLeft.BorderSizePixel = 0
- TimeLeft.Size = UDim2.new(0, 0, 1, 0)
- TimeLeft.ZIndex = 5
- UICorner_3.CornerRadius = UDim.new(0, 1)
- UICorner_3.Parent = TimeLeft
- local UpdateText = function()
- local TitleScale = TextService:GetTextSize(Header.Text,Header.TextSize,Header.Font,Vector2.new(math.huge,math.huge));
- local BodyScale = TextService:GetTextSize(Body.Text,Body.TextSize,Body.Font,Vector2.new(math.huge,math.huge));
- local MainX = (TitleScale.X >= BodyScale.X and TitleScale.X) or BodyScale.X;
- local MainY = TitleScale.Y + ((Body.Text:byte() and BodyScale.Y) or 1);
- if BlockFrame:GetAttribute('Already') then
- MarcoUI:_Animation(BlockFrame,TweenInfo.new(0.3),{
- Size = UDim2.new(0,MainX + 55,0,MainY + 35)
- });
- else
- BlockFrame:SetAttribute('Already',true)
- BlockFrame.Size = UDim2.new(0, MainX + 45, 0, 0);
- MarcoUI:_Animation(BlockFrame,TweenInfo.new(0.3),{
- Size = UDim2.new(0,MainX + 55,0,MainY + 35)
- });
- end;
- end;
- UpdateText();
- local Close = function()
- MarcoUI:_Animation(NotifyFrame,TweenInfo.new(0.65,Enum.EasingStyle.Quint),{
- Position = UDim2.new(1,200,0,0)
- });
- task.wait(0.3);
- MarcoUI:_Animation(BlockFrame,TweenInfo.new(0.3),{
- Size = UDim2.new(1,0,0,0)
- });
- task.wait(0.35)
- BlockFrame:Destroy();
- end;
- local Show = function()
- MarcoUI:_Animation(NotifyFrame,TweenInfo.new(0.5,Enum.EasingStyle.Quint),{
- Position = UDim2.new(0,0,0,0)
- });
- end;
- if typeof(Notify.Duration) == 'number' and Notify.Duration ~= math.huge then
- MarcoUI:_Animation(TimeLeft,TweenInfo.new(Notify.Duration + 0.2,Enum.EasingStyle.Linear),{
- Size = UDim2.new(1, 0, 1, 0)
- });
- return task.delay(0.25,function()
- Show();
- task.delay(Notify.Duration + 0.2,Close)
- end);
- end;
- Show();
- return {
- Title = function(self , new)
- Header.Text = new;
- UpdateText();
- end,
- Content = function(self , new)
- Body.Text = new;
- UpdateText();
- end,
- SetProgress = function(self , new , Time)
- if Time and Time <= 0 then
- TimeLeft.Size = UDim2.new(new, 0, 1, 0);
- UpdateText();
- return;
- end;
- if new > 1 then
- new = (new / 100);
- end;
- MarcoUI:_Animation(TimeLeft,TweenInfo.new(Time or 0.85,(Time and Enum.EasingStyle.Linear) or Enum.EasingStyle.Quint),{
- Size = UDim2.new(new, 0, 1, 0)
- });
- UpdateText();
- end,
- Close = Close,
- }
- end,
- };
- return MarcoUI.NOTIFY_CACHE;
- end;
- -- Ensure NilFolder exists before setting name
- if MarcoUI.NilFolder then
- pcall(function()
- MarcoUI.NilFolder.Name = "Nil-Instances";
- end);
- end;
- return MarcoUI;
Add Comment
Please, Sign In to add comment