local Gui = {
config = {
maxWindowWidth = 900,
maxWindowHeight = 600,
tabWidth = 140,
tabHeight = 40,
buttonWidth = 180,
buttonHeight = 40,
buttonSpacing = 15,
buttonVerticalPadding = 10,
tabTextPadding = 12,
buttonTextPadding = 20,
toggleButtonY = 100,
scrollPadding = 6,
titleBarHeight = 40,
closeButtonSize = 28,
maxButtonWidth = 220,
scrollHeightFactor = 1.0,
glowIntensity = 0.2,
bounceScale = 1.1,
gradientDuration = 3000
},
themes = {
Neon = {
primary = {0.15, 0.15, 0.25, 1},
accent = {0.3, 0.5, 0.5, 1},
highlight = {0.6, 0.6, 0.7, 1},
titleGradientColors = {{0.2, 0.4, 0.4, 1}, {0.4, 0.6, 0.6, 1}, {0.6,
0.8, 0.8, 1}},
buttonNormal = {0.2, 0.2, 0.3, 1},
buttonHover = {0.35, 0.55, 0.55, 1}
},
Dark = {
primary = {0.12, 0.12, 0.12, 1},
accent = {0.25, 0.35, 0.45, 1},
highlight = {0.5, 0.55, 0.6, 1},
titleGradientColors = {{0.1, 0.15, 0.15, 1}, {0.2, 0.25, 0.25, 1},
{0.3, 0.35, 0.35, 1}},
buttonNormal = {0.18, 0.18, 0.22, 1},
buttonHover = {0.3, 0.4, 0.5, 1}
},
Pastel = {
primary = {0.85, 0.85, 0.88, 1},
accent = {0.65, 0.75, 0.7, 1},
highlight = {0.8, 0.75, 0.85, 1},
titleGradientColors = {{0.7, 0.7, 0.8, 1}, {0.8, 0.8, 0.85, 1}, {0.9,
0.85, 0.9, 1}},
buttonNormal = {0.78, 0.78, 0.82, 1},
buttonHover = {0.7, 0.8, 0.75, 1}
}
},
currentTheme = "Neon",
colors = {
white = {1, 1, 1, 1},
black = {0, 0, 0, 1},
red = {1, 0, 0, 1},
green = {0, 1, 0, 1},
blue = {0, 0, 1, 1},
yellow = {1, 1, 0, 1},
cyan = {0, 1, 1, 1},
magenta = {1, 0, 1, 1},
pink = {1, 0.5, 0.5, 1},
purple = {0.5, 0, 0.5, 1},
orange = {1, 0.5, 0, 1},
lime = {0.75, 1, 0, 1},
turquoise = {0, 0.75, 0.75, 1},
lavender = {0.75, 0.5, 1, 1},
gold = {1, 0.84, 0, 1},
silver = {0.75, 0.75, 0.75, 1},
indigo = {0.3, 0, 0.5, 1},
crimson = {0.86, 0.08, 0.24, 1},
teal = {0, 0.5, 0.5, 1},
bronze = {0.8, 0.5, 0.2, 1},
ivory = {0.96, 0.94, 0.88, 1},
navyblue = {0.05, 0.05, 0.25, 1},
coral = {1, 0.5, 0.31, 1},
emerald = {0, 0.5, 0.31, 1},
sapphire = {0.07, 0.13, 0.58, 1},
amber = {1, 0.75, 0, 1},
violet = {0.58, 0, 0.83, 1},
mint = {0.6, 1, 0.6, 1},
olive = {0.5, 0.5, 0, 1},
ruby = {0.86, 0.08, 0.24, 1},
charcoal = {0.21, 0.27, 0.31, 1},
peach = {1, 0.8, 0.64, 1},
amethyst = {0.6, 0.4, 0.8, 1},
cerulean = {0.0, 0.48, 0.65, 1},
rosewood = {0.4, 0.0, 0.04, 1},
periwinkle = {0.8, 0.8, 1.0, 1},
tangerine = {1.0, 0.58, 0.0, 1},
jade = {0.0, 0.66, 0.42, 1},
bubblegum = {1.0, 0.69, 0.85, 1},
slate = {0.44, 0.5, 0.56, 1},
marigold = {0.93, 0.67, 0.13, 1},
aquamarine = {0.5, 1.0, 0.83, 1}
},
initialized = false,
tabs = {},
tabButtons = {},
tabCount = 0,
btnCount = 0,
mainWindow = nil,
toggleButton = nil,
tabsScrollable = nil,
buttonsScrollable = nil,
selectedTab = nil,
closeButton = nil,
titleBar = nil,
lastScrollOffset = 0,
lastButtonCount = 0,
gradientTimer = nil,
gradientPhase = 0
}
local function AddChild(parent, child)
parent:AddChildWindow(child)
end
local function resetVisuals(element, isTab, isSelected)
local theme = Gui.themes[Gui.currentTheme]
element:SetBackgroundColor(isTab and (isSelected and theme.accent or
theme.primary) or theme.buttonNormal)
element:SetAlpha(1)
element:SetScale(VectorUtil.newVector3(1, 1, 1))
end
function Gui:switchTheme(themeName)
if not self.themes[themeName] then return end
self.currentTheme = themeName
local theme = self.themes[themeName]
self.mainWindow:SetBackgroundColor(theme.primary)
self.tabsScrollable:SetBackgroundColor(theme.primary)
self.buttonsScrollable:SetBackgroundColor(theme.primary)
for tab, buttons in pairs(self.tabButtons) do
resetVisuals(tab, true, tab == self.selectedTab)
tab:SetTextBoader(theme.highlight)
for _, button in ipairs(buttons) do
resetVisuals(button, false, false)
button:SetTextBoader(theme.highlight)
end
end
if self.titleBar then
self.titleBar:SetBackgroundColor(theme.primary)
self.titleBar:SetTextBoader(theme.accent)
local colors = theme.titleGradientColors
local gradientText = string.format("&$[%.2f%.2f%.2f-%.2f%.2f%.2f]$Shadie
Menu$&",
colors[1][1], colors[1][2], colors[1][3],
colors[1][1] * 0.8, colors[1][2] * 0.8, colors[1][3] * 0.8)
self.titleBar:SetText(gradientText)
end
if self.closeButton then
self.closeButton:SetBackgroundColor(theme.accent)
self.closeButton:SetTextBoader(theme.highlight)
end
if self.themeButton then
self.themeButton:SetBackgroundColor(theme.accent)
self.themeButton:SetTextBoader(theme.highlight)
end
if self.gradientTimer then
LuaTimer:cancel(self.gradientTimer)
end
end
function Gui:initialize()
-- made by Shadiegc of course.
if self.initialized then return end
self.initialized = true
local screenWidth = GUISystem.Instance():GetScreenWidth() or 1920
local screenHeight = GUISystem.Instance():GetScreenHeight() or 1080
local windowWidth = math.min(self.config.maxWindowWidth, screenWidth - 40)
local windowHeight = math.min(self.config.maxWindowHeight, screenHeight - 40)
self.mainWindow = GUIManager:createGUIWindow(GUIType.Layout, "Layout-Shadie")--
never edit.
self.mainWindow:SetBackgroundColor(self.themes[self.currentTheme].primary)
self.mainWindow:SetWidth({0, windowWidth})
self.mainWindow:SetHeight({0, windowHeight})
self.mainWindow:SetHorizontalAlignment(HorizontalAlignment.Center)
self.mainWindow:SetVerticalAlignment(VerticalAlignment.Center)
self.mainWindow:SetAlpha(0)
self.mainWindow:SetLevel(45)
self.mainWindow:SetTouchable(true)
self.mainWindow:SetProperty("ClipChild", "true")
self.toggleButton = GUIManager:createGUIWindow(GUIType.Button, "Button-Open")
self.toggleButton:SetWidth({0, 50})
self.toggleButton:SetHeight({0, 50})
self.toggleButton:SetNormalImage("set:gui_inventory_icon.json
image:icon_brick")
self.toggleButton:SetPushedImage("set:gui_inventory_icon.json
image:icon_brick")
self.toggleButton:SetLevel(46)
self.toggleButton:SetXPosition({0, 20})
self.toggleButton:SetYPosition({0, self.config.toggleButtonY})
self.toggleButton:SetAlpha(1)
self.toggleButton:SetVisible(true)
AddChild(GUISystem.Instance():GetRootWindow(), self.toggleButton)
self.tabsScrollable = GUIManager:createGUIWindow(GUIType.ScrollablePane, "Tabs-
Scrollable")
self.tabsScrollable:SetProperty("ClipChild", "true")
self.tabsScrollable:SetTouchable(true)
self.tabsScrollable:SetWidth({0, self.config.tabWidth +
self.config.scrollPadding * 2})
self.tabsScrollable:SetHeight({0, windowHeight - self.config.titleBarHeight})
self.tabsScrollable:SetXPosition({0, 0})
self.tabsScrollable:SetYPosition({0, self.config.titleBarHeight})
self.tabsScrollable:SetVertScrollEnable(true)
self.tabsScrollable:SetHoriScrollEnable(false)
self.tabsScrollable:InitializeContainer()
self.tabsScrollable:SetVertScrollOffset(0)
self.tabsScrollable:SetBackgroundColor(self.themes[self.currentTheme].primary)
AddChild(self.mainWindow, self.tabsScrollable)
self.buttonsScrollable = GUIManager:createGUIWindow(GUIType.ScrollablePane,
"Buttons-Scrollable")
self.buttonsScrollable:SetProperty("ClipChild", "true")
self.buttonsScrollable:SetTouchable(true)
self.buttonsScrollable:SetWidth({0, windowWidth - (self.config.tabWidth +
self.config.scrollPadding * 2)})
self.buttonsScrollable:SetHeight({0, windowHeight -
self.config.titleBarHeight})
self.buttonsScrollable:SetXPosition({0, self.config.tabWidth +
self.config.scrollPadding * 2})
self.buttonsScrollable:SetYPosition({0, self.config.titleBarHeight})
self.buttonsScrollable:SetVertScrollEnable(true)
self.buttonsScrollable:SetHoriScrollEnable(false)
self.buttonsScrollable:InitializeContainer()
self.buttonsScrollable:SetVertScrollOffset(0)
self.buttonsScrollable:SetBackgroundColor(self.themes[self.currentTheme].primary)
AddChild(self.mainWindow, self.buttonsScrollable)
self.titleBar = GUIManager:createGUIWindow(GUIType.StaticText, "TitlebBar")
self.titleBar:SetWidth({0, windowWidth})
self.titleBar:SetHeight({0, self.config.titleBarHeight})
self.titleBar:SetBackgroundColor(self.themes[self.currentTheme].primary)
self.titleBar:SetTextHorzAlign(HorizontalAlignment.Center)
self.titleBar:SetTextVertAlign(VerticalAlignment.Center)
self.titleBar:SetProperty("TextScale", "1.2")
self.titleBar:SetTextBoader(self.themes[self.currentTheme].accent)
local theme = self.themes[self.currentTheme]
local colors = theme.titleGradientColors
local gradientText = string.format("&$[%.2f%.2f%.2f-%.2f%.2f%.2f]$Shadie
Menu$&",
colors[1][1], colors[1][2], colors[1][3],
colors[1][1] * 0.8, colors[1][2] * 0.8, colors[1][3] * 0.8)
self.titleBar:SetText(gradientText)
AddChild(self.mainWindow, self.titleBar)
self.closeButton = GUIManager:createGUIWindow(GUIType.StaticText,
"ShaCloseButton")
self.closeButton:SetText("X")
self.closeButton:SetWidth({0, self.config.closeButtonSize})
self.closeButton:SetHeight({0, self.config.closeButtonSize})
self.closeButton:SetXPosition({0, windowWidth - self.config.closeButtonSize -
8})
self.closeButton:SetYPosition({0, 8})
self.closeButton:SetBackgroundColor(self.themes[self.currentTheme].accent)
self.closeButton:SetTextColor(self.colors.ivory)
self.closeButton:SetTextHorzAlign(HorizontalAlignment.Center)
self.closeButton:SetTextVertAlign(VerticalAlignment.Center)
self.closeButton:SetProperty("TextScale", "1.0")
self.closeButton:SetTextBoader(self.themes[self.currentTheme].highlight)
self.closeButton:SetTouchable(true)
AddChild(self.titleBar, self.closeButton)
function self:setWindowVisible(visible)
if visible == self.mainWindow:IsVisible() then return end
local endAlpha = visible and 1 or 0
self.mainWindow:SetVisible(true)
self.toggleButton:SetNormalImage(visible and "set:tip_dialog.json
image:btn_close" or "set:gui_inventory_icon.json image:icon_brick")
self.toggleButton:SetPushedImage(visible and "set:tip_dialog.json
image:btn_close" or "set:gui_inventory_icon.json image:icon_brick")
if not visible then
self.lastScrollOffset = 0
self.buttonsScrollable:SetVertScrollOffset(0)
self.mainWindow:SetVisible(false)
end
end
self.toggleButton:registerEvent(GUIEvent.ButtonClick, function()
self:setWindowVisible(not self.mainWindow:IsVisible())
end)
self.closeButton:registerEvent(GUIEvent.Click, function()
self:setWindowVisible(false)
end)
local currentY = self.config.scrollPadding
local tabHeight = self.config.tabHeight
local buttonHeight = self.config.buttonHeight
local buttonWidth = self.config.buttonWidth
local paneWidth = windowWidth - (self.config.tabWidth + 2 *
self.config.scrollPadding)
local maxButtonsPerRow = math.floor((paneWidth - self.config.scrollPadding) /
(buttonWidth + self.config.buttonSpacing))
local function updateScrollableHeights()
local tabCount = 0
for _ in pairs(self.tabs) do tabCount = tabCount + 1 end
local requiredTabHeight = tabCount * tabHeight + 2 *
self.config.scrollPadding
self.tabsScrollable:SetHeight({0, math.max(requiredTabHeight, windowHeight
- self.config.titleBarHeight)})
local container = self.tabsScrollable:GetContainer()
if container then container:SetHeight({0, requiredTabHeight}) end
local visibleCount = 0
if self.selectedTab then
visibleCount = #self.tabButtons[self.selectedTab]
end
if visibleCount == self.lastButtonCount then return end
self.lastButtonCount = visibleCount
local rowsNeeded = math.ceil(visibleCount / maxButtonsPerRow)
local requiredButtonHeight = self.config.scrollPadding * 2 + rowsNeeded *
(buttonHeight + self.config.buttonVerticalPadding)
self.buttonsScrollable:SetHeight({0, math.max(requiredButtonHeight *
self.config.scrollHeightFactor, windowHeight - self.config.titleBarHeight)})
local btnContainer = self.buttonsScrollable:GetContainer()
if btnContainer then btnContainer:SetHeight({0, requiredButtonHeight}) end
end
local function autoScrollToTab(tab)
if not tab or not self.tabButtons[tab] or not self.tabButtons[tab][1] then
return end
local yPos = self.tabButtons[tab][1]:GetYPosition()[2]
if yPos >= 0 then
self.lastScrollOffset = yPos
self.buttonsScrollable:SetVertScrollOffset(yPos)
end
end
local function selectTab(selectedTab)
if not selectedTab then
for _, tab in pairs(self.tabs) do
selectedTab = tab
break
end
end
if not selectedTab then
self.selectedTab = nil
for tab, buttons in pairs(self.tabButtons) do
for _, button in ipairs(buttons) do
button:SetVisible(false)
end
end
return
end
for tab, buttons in pairs(self.tabButtons) do
local isSelected = tab == selectedTab
resetVisuals(tab, true, isSelected)
tab:SetTextBoader(self.themes[self.currentTheme].highlight)
for _, button in ipairs(buttons) do
button:SetVisible(isSelected)
button:SetTextBoader(self.themes[self.currentTheme].highlight)
end
end
self.selectedTab = selectedTab
updateScrollableHeights()
autoScrollToTab(selectedTab)
end
function addTab(name, color)
if not name then return end
self.tabCount = self.tabCount + 1
local tab = GUIManager:createGUIWindow(GUIType.StaticText, "ShaTab-" ..
self.tabCount)
tab:SetText(name)
tab:SetAutoSize(false)
tab:SetWidth({0, self.config.tabWidth})
tab:SetHeight({0, tabHeight})
tab:SetBackgroundColor(self.themes[self.currentTheme].primary)
tab:SetXPosition({0, self.config.scrollPadding})
tab:SetYPosition({0, currentY})
tab:SetTextHorzAlign(HorizontalAlignment.Center)
tab:SetTextVertAlign(VerticalAlignment.Center)
tab:SetTextColor(self.colors[color] or self.colors.ivory)
tab:SetProperty("TextScale", "1.0")
tab:SetTextBoader(self.themes[self.currentTheme].highlight)
tab:SetTouchable(true)
tab:SetProperty("ClipChild", "true")
tab:registerEvent(GUIEvent.TouchDown, function()
tab:SetBackgroundColor(self.themes[self.currentTheme].accent)
tab:SetAlpha(0.95)
tab:SetScale(VectorUtil.newVector3(self.config.bounceScale,
self.config.bounceScale, 1))
end)
tab:registerEvent(GUIEvent.TouchUp, function()
resetVisuals(tab, true, true)
tab:SetTextBoader(self.themes[self.currentTheme].highlight)
selectTab(tab)
end)
tab:registerEvent(GUIEvent.Release, function()
resetVisuals(tab, true, tab == self.selectedTab)
tab:SetTextBoader(self.themes[self.currentTheme].highlight)
end)
self.tabsScrollable:AddItem(tab)
self.tabs[name] = tab
self.tabButtons[tab] = {}
currentY = currentY + tabHeight
updateScrollableHeights()
if not self.selectedTab then selectTab(tab) end
return tab
end
function addItem(tabName, name, func, color)
if not tabName or not name then return end
local tab = self.tabs[tabName] or addTab(tabName, color or "ivory")
self.btnCount = self.btnCount + 1
local button = GUIManager:createGUIWindow(GUIType.StaticText, "ShaBtn-" ..
self.btnCount)
button:SetText(name)
button:SetAutoSize(false)
button:SetWidth({0, self.config.buttonWidth})
button:SetHeight({0, self.config.buttonHeight})
button:SetBackgroundColor(self.themes[self.currentTheme].buttonNormal)
button:SetTextColor(self.colors[color] or self.colors.ivory)
button:SetProperty("TextScale", "0.9")
button:SetTextHorzAlign(HorizontalAlignment.Center)
button:SetTextVertAlign(VerticalAlignment.Center)
button:SetTextBoader(self.themes[self.currentTheme].highlight)
button:SetTouchable(true)
button:SetProperty("ClipChild", "true")
button:registerEvent(GUIEvent.TouchDown, function()
button:SetBackgroundColor(self.themes[self.currentTheme].buttonHover)
button:SetAlpha(0.95)
button:SetScale(VectorUtil.newVector3(self.config.bounceScale,
self.config.bounceScale, 1))
end)
button:registerEvent(GUIEvent.TouchUp, function()
resetVisuals(button, false, false)
button:SetTextBoader(self.themes[self.currentTheme].highlight)
if func and _G[func] then
local success, err = pcall(_G[func])
if not success then print("Error in " .. func .. ": " ..
tostring(err)) end
end
end)
button:registerEvent(GUIEvent.Release, function()
resetVisuals(button, false, false)
button:SetTextBoader(self.themes[self.currentTheme].highlight)
end)
local index = #self.tabButtons[tab] + 1
local row = math.floor((index - 1) / maxButtonsPerRow)
local column = (index - 1) % maxButtonsPerRow
local xOffset = self.config.scrollPadding + column *
(self.config.buttonWidth + self.config.buttonSpacing)
button:SetXPosition({0, xOffset})
button:SetYPosition({0, self.config.scrollPadding + row * (buttonHeight +
self.config.buttonVerticalPadding)})
button:SetVisible(tab == self.selectedTab)
self.buttonsScrollable:AddItem(button)
table.insert(self.tabButtons[tab], button)
updateScrollableHeights()
self.buttonsScrollable:SetVertScrollOffset(self.lastScrollOffset)
end
self.themeButton = GUIManager:createGUIWindow(GUIType.StaticText,
"ThemeButton")
self.themeButton:SetText("T")
self.themeButton:SetWidth({0, self.config.closeButtonSize})
self.themeButton:SetHeight({0, self.config.closeButtonSize})
self.themeButton:SetXPosition({0, windowWidth - self.config.closeButtonSize * 2
- 16})
self.themeButton:SetYPosition({0, 8})
self.themeButton:SetBackgroundColor(self.themes[self.currentTheme].accent)
self.themeButton:SetTextColor(self.colors.ivory)
self.themeButton:SetTextHorzAlign(HorizontalAlignment.Center)
self.themeButton:SetTextVertAlign(VerticalAlignment.Center)
self.themeButton:SetProperty("TextScale", "1.0")
self.themeButton:SetTextBoader(self.themes[self.currentTheme].highlight)
self.themeButton:SetTouchable(true)
self.themeButton:registerEvent(GUIEvent.Click, function()
local themes = {"Neon", "Dark", "Pastel"}
local currentIndex = 1
for i, theme in ipairs(themes) do
if theme == self.currentTheme then
currentIndex = i
break
end
end
local nextIndex = currentIndex % #themes + 1
self:switchTheme(themes[nextIndex])
end)
AddChild(self.titleBar, self.themeButton)
addItem("Main", "CrossHair", "CrossHair", "cyan")
addItem("Main", "Reach", "Reach", "magenta")
addItem("Main", "Hurt Camera", "HurtCam", "yellow")
addItem("Main", "Free Cam", "FreeWay", "turquoise")
addItem("Main", "Player Tp", "PlayerTp", "purple")
addItem("Main", "Item Tp", "ItemTp", "orange")
addItem("Main", "Visual Effects", "visuals", "bubblegum")
addItem("Main", "No Masks", "NoMasks", "silver")
addItem("Main", "Fast Throw", "FastThrow", "gold")
addItem("Main", "Chat Box", "ChatBox", "jade")
addItem("Main", "Rose", "Rose", "rosewood")
addItem("Main", "Invisible", "invisible", "periwinkle")
addItem("Main", "Rebirth", "Rebirth", "tangerine")
addItem("Main", "No Delay", "noDelay", "teal")
addItem("Main", "Speed", "speed", "aquamarine")
addItem("Main", "DoubleJump", "DoubleJump", "marigold")
addItem("Main", "Skin", "Skin", "peach")
addItem("Main", "FullBright", "FullBright", "ivory")
addItem("Main", "TpMobs", "TpMobs", "olive")
addItem("Main", "Fly", "Fly", "cerulean")
addItem("Main", "NoClip", "noclip", "violet")
addItem("Main", "Safe Pos", "blinkTeleport")
addItem("Main", "instantReload", "instantReload")
addItem("Player", "Self Damage", "DoHurt")
addItem("Player", "Self Burn", "burnSelf")
addItem("Player", "ClearPotions", "ClearPotions")
addTab("Packet")
addItem("Packet", "FakeFriends", "FakeFriends")
addTab("SkyBlock", "bubblegum")
addItem("SkyBlock", "Like Count", "FakeLikeCount")
addItem("SkyBlock", "CropAura", "CropAura")
addItem("SkyBlock", "BreakCropAura", "BreakCropAura")
addItem("SkyBlock", "doubleDamage", "doubleDamage")
addItem("SkyBlock", "vomitingClothes", "vomitingClothes")
addItem("SkyBlock", "Trap All", "trapPpl")
addItem("SkyBlock", "addHouse", "addHouse")
addTab("Debug", "purple")
addItem("Debug", "Gun Flame", "GunFlameCord", "purple")
addItem("Debug", "Debug Tog", "DebugTog", "lime")
addItem("Debug", "Item List", "WriteItems", "yellow")
addTab("BedWar", "magenta")
addItem("BedWar", "RuneChest", "RuneChest")
addItem("BedWar", "DirectAttack", "DirectAttack")
addTab("TntTag", "orange")
addItem("TntTag", "Auto Sneak", "Sneak", "orange")
addItem("TntTag", "New", "TntTagMap", "coral")
addTab("WWE", "yellow")
addItem("WWE", "Inf Shield", "TryAddInfShieldWWESim", "yellow")
addItem("WWE", "Auto Sell", "AutoSellWWESim", "gold")
addItem("WWE", "Auto Heal", "AutoHeal", "emerald")
addItem("WWE", "Auto Workout", "AutoWorkout", "jade")
addItem("WWE", "Sun", "EquipSun", "amber")
addTab("Lucky", "cyan")
addItem("Lucky", "Job Modifier", "JobModifier", "cyan")
addItem("Lucky", "FreeFly", "FreeFly", "turquoise")
addItem("Lucky", "GetFreeJob", "GetFreeJob", "teal")
addTab("Clan Wars", "emerald")
addItem("Clan Wars", "Auto Heal", "ClanWarsHeal", "emerald")
addTab("Realm", "red")
addItem("Realm", "Race All", "RealmCityRace", "red")
addTab("SkyRoyale", "green")
addItem("SkyRoyale", "2nd Map", "SecondMap", "green")
addTab("Rooms")
addItem("Rooms", "RoomsUI", "RoomsUI")
AddChild(GUISystem.Instance():GetRootWindow(), self.mainWindow)
end
Gui:initialize()