
Key RequiredUniversal

local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local THEMES = {
Dark = {
Background = Color3.fromRGB(20, 20, 20),
Sidebar = Color3.fromRGB(28, 28, 28),
Text = Color3.fromRGB(255, 255, 255),
TextSec = Color3.fromRGB(160, 160, 160),
Accent = Color3.fromRGB(0, 170, 255),
Line = Color3.fromRGB(40, 40, 40)
},
Light = {
Background = Color3.fromRGB(255, 255, 255),
Sidebar = Color3.fromRGB(240, 240, 240),
Text = Color3.fromRGB(30, 30, 30),
TextSec = Color3.fromRGB(80, 80, 80),
Accent = Color3.fromRGB(0, 120, 215),
Line = Color3.fromRGB(220, 220, 220)
}
}
local LANGS = {
{Name = "English", Home = "Home", Settings = "Settings", Mode = "Mode: ", Lang = "Language: English", Welcome = "Welcome back, " .. player.DisplayName .. " (@" .. player.Name .. ")!"},
{Name = "VietNamese", Home = "Trang chủ", Settings = "Cài đặt", Mode = "Chế độ: ", Lang = "Ngôn ngữ: Tiếng Việt", Welcome = "Chào mừng trở lại, " .. player.DisplayName .. " (@" .. player.Name .. ")!"},
{Name = "French", Home = "Accueil", Settings = "Paramètres", Mode = "Mode: ", Lang = "Langue: Français", Welcome = "Bon retour, " .. player.DisplayName .. "!"},
{Name = "Japanese", Home = "ホーム", Settings = "設定", Mode = "モード: ", Lang = "言語: 日本語", Welcome = "おかえりなさい, " .. player.DisplayName .. "!"},
{Name = "Korean", Home = "홈", Settings = "설정", Mode = "모드: ", Lang = "언어: 한국어", Welcome = "환영합니다, " .. player.DisplayName .. "!"},
{Name = "Chinese", Home = "首页", Settings = "设置", Mode = "模式: ", Lang = "语言: 中文", Welcome = "欢迎回来, " .. player.DisplayName .. "!"},
{Name = "German", Home = "Startseite", Settings = "Einstellungen", Mode = "Modus: ", Lang = "Sprache: Deutsch", Welcome = "Willkommen zurück!"},
{Name = "Russian", Home = "Главная", Settings = "Настройки", Mode = "Режим: ", Lang = "Язык: Русский", Welcome = "С возвращением!"},
{Name = "Spanish", Home = "Inicio", Settings = "Ajustes", Mode = "Modo: ", Lang = "Idioma: Español", Welcome = "¡Bienvenido!"},
{Name = "Portuguese", Home = "Início", Settings = "Ajustes", Mode = "Modo: ", Lang = "Idioma: Português", Welcome = "Bem-vindo!"},
{Name = "Thai", Home = "หน้าหลัก", Settings = "การตั้งค่า", Mode = "โหมด: ", Lang = "ภาษา: ไทย", Welcome = "ยินดีต้อนรับกลับ!"},
{Name = "Italian", Home = "Home", Settings = "Impostazioni", Mode = "Modalità: ", Lang = "Lingua: Italiano", Welcome = "Bentornato!"}
}
local currentTheme = "Dark"
local langIdx = 1
local tabBtns = {}
local notifyGui = Instance.new("ScreenGui", playerGui)
local notifyHolder = Instance.new("Frame", notifyGui)
notifyHolder.Size = UDim2.new(0, 300, 1, 0)
notifyHolder.Position = UDim2.new(1, -310, 0, 0)
notifyHolder.BackgroundTransparency = 1
Instance.new("UIListLayout", notifyHolder).VerticalAlignment = Enum.VerticalAlignment.Bottom
local function ShowNotify(title, text)
local theme = THEMES[currentTheme]
local f = Instance.new("Frame", notifyHolder)
f.Size = UDim2.new(1, 0, 0, 70)
f.BackgroundColor3 = theme.Sidebar
Instance.new("UICorner", f)
local s = Instance.new("UIStroke", f)
s.Color = theme.Accent
s.Thickness = 2
local t = Instance.new("TextLabel", f)
t.Text = title
t.Size = UDim2.new(1, -10, 0, 25)
t.Position = UDim2.new(0, 5, 0, 5)
t.TextColor3 = theme.Accent
t.BackgroundTransparency = 1
t.Font = Enum.Font.GothamBold
t.TextXAlignment = Enum.TextXAlignment.Left
local d = Instance.new("TextLabel", f)
d.Text = text
d.Size = UDim2.new(1, -10, 0, 35)
d.Position = UDim2.new(0, 5, 0, 30)
d.TextColor3 = theme.Text
d.BackgroundTransparency = 1
d.Font = Enum.Font.Gotham
d.TextWrapped = true
d.TextXAlignment = Enum.TextXAlignment.Left
task.delay(6, function() f:Destroy() end)
end
local screenGui = Instance.new("ScreenGui", playerGui)
screenGui.Name = "LoffyOpenSource_V3_2"
screenGui.ResetOnSpawn = false
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 600, 0, 350)
mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
mainFrame.BackgroundColor3 = THEMES[currentTheme].Background
mainFrame.ClipsDescendants = true
mainFrame.Parent = screenGui
local uiCorner = Instance.new("UICorner", mainFrame)
uiCorner.CornerRadius = UDim.new(0, 12)
local uiStroke = Instance.new("UIStroke", mainFrame)
uiStroke.Thickness = 1.5
uiStroke.Color = THEMES[currentTheme].Line
local sidebar = Instance.new("Frame", mainFrame)
sidebar.Size = UDim2.new(0, 160, 1, 0)
sidebar.BackgroundColor3 = THEMES[currentTheme].Sidebar
sidebar.BorderSizePixel = 0
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 12)
local logo = Instance.new("TextLabel", sidebar)
logo.Text = "LOFFY | OPENSOURCE ( TYPE YOUR NAME HUB )"
logo.Size = UDim2.new(1, 0, 0, 60)
logo.Font = Enum.Font.GothamBold
logo.TextSize = 15
logo.BackgroundTransparency = 1
RunService.RenderStepped:Connect(function()
logo.TextColor3 = Color3.fromHSV(tick() % 5 / 5, 0.7, 1)
end)
local navList = Instance.new("Frame", sidebar)
navList.Size = UDim2.new(1, 0, 1, -100)
navList.Position = UDim2.new(0, 0, 0, 70)
navList.BackgroundTransparency = 1
Instance.new("UIListLayout", navList).HorizontalAlignment = Enum.HorizontalAlignment.Center
local closeBtn = Instance.new("TextButton", mainFrame)
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -35, 0, 10)
closeBtn.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
closeBtn.Text = "×"
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 20
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 6)
local function closeUI()
local closeTweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In)
local tween = TweenService:Create(mainFrame, closeTweenInfo, {
Size = UDim2.new(0, 0, 0, 0),
BackgroundTransparency = 1
})
TweenService:Create(uiStroke, TweenInfo.new(0.2), {Transparency = 1}):Play()
TweenService:Create(sidebar, TweenInfo.new(0.2), {BackgroundTransparency = 1}):Play()
tween:Play()
tween.Completed:Connect(function()
screenGui:Destroy()
end)
end
closeBtn.MouseButton1Click:Connect(closeUI)
local resizeHandle = Instance.new("ImageButton", mainFrame)
resizeHandle.Size = UDim2.new(0, 25, 0, 25)
resizeHandle.Position = UDim2.new(1, -25, 1, -25)
resizeHandle.BackgroundTransparency = 1
resizeHandle.Image = "rbxassetid://6031945395"
resizeHandle.ImageColor3 = THEMES[currentTheme].Accent
resizeHandle.ZIndex = 20
local dragging, resizing = false, false
local dragStart, startPos, startSize
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and not resizing then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end
end)
resizeHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
resizing = true
dragStart = input.Position
startSize = mainFrame.Size
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
if dragging then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
elseif resizing then
local delta = input.Position - dragStart
mainFrame.Size = UDim2.new(0, math.max(150, startSize.X.Offset + delta.X), 0, math.max(150, startSize.Y.Offset + delta.Y))
end
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
resizing = false
end
end)
local contentArea = Instance.new("Frame", mainFrame)
contentArea.Size = UDim2.new(1, -175, 1, -60)
contentArea.Position = UDim2.new(0, 170, 0, 50)
contentArea.BackgroundTransparency = 1
local pages = {}
local function createPage(name)
local p = Instance.new("ScrollingFrame", contentArea)
p.Size = UDim2.new(1, 0, 1, 0)
p.BackgroundTransparency = 1
p.Visible = false
p.ScrollBarThickness = 0
pages[name] = p
return p
end
local homePage = createPage("Home")
local settingPage = createPage("Settings")
homePage.Visible = true
local themeBtn = Instance.new("TextButton", settingPage)
themeBtn.Size = UDim2.new(0, 200, 0, 45)
themeBtn.BackgroundColor3 = THEMES[currentTheme].Sidebar
themeBtn.Text = "Mode: Dark Mode"
themeBtn.TextColor3 = THEMES[currentTheme].Text
themeBtn.Font = Enum.Font.GothamMedium
Instance.new("UICorner", themeBtn)
local langBtn = Instance.new("TextButton", settingPage)
langBtn.Size = UDim2.new(0, 200, 0, 45)
langBtn.Position = UDim2.new(0, 0, 0, 55)
langBtn.BackgroundColor3 = THEMES[currentTheme].Sidebar
langBtn.Text = "Language: English"
langBtn.TextColor3 = THEMES[currentTheme].Text
langBtn.Font = Enum.Font.GothamMedium
Instance.new("UICorner", langBtn)
local function updateLanguage()
local l = LANGS[langIdx]
local t = (currentTheme == "Dark" and "Dark Mode" or "Light Mode")
if l.Name == "VietNamese" then t = (currentTheme == "Dark" and "Tối" or "Sáng") end
themeBtn.Text = l.Mode .. t
langBtn.Text = l.Lang
tabBtns["Home"].Text = l.Home
tabBtns["Settings"].Text = l.Settings
end
themeBtn.MouseButton1Click:Connect(function()
currentTheme = (currentTheme == "Dark" and "Light" or "Dark")
local t = THEMES[currentTheme]
local ti = TweenInfo.new(0.3)
TweenService:Create(mainFrame, ti, {BackgroundColor3 = t.Background}):Play()
TweenService:Create(sidebar, ti, {BackgroundColor3 = t.Sidebar}):Play()
TweenService:Create(uiStroke, ti, {Color = t.Line}):Play()
TweenService:Create(themeBtn, ti, {BackgroundColor3 = t.Sidebar, TextColor3 = t.Text}):Play()
TweenService:Create(langBtn, ti, {BackgroundColor3 = t.Sidebar, TextColor3 = t.Text}):Play()
resizeHandle.ImageColor3 = t.Accent
updateLanguage()
end)
langBtn.MouseButton1Click:Connect(function()
langIdx = langIdx + 1
if langIdx > #LANGS then langIdx = 1 end
updateLanguage()
ShowNotify(LANGS[langIdx].Name, "Language Updated!")
end)
local function addTab(name)
local btn = Instance.new("TextButton", navList)
btn.Size = UDim2.new(0.9, 0, 0, 40)
btn.BackgroundTransparency = 1
btn.Text = name
btn.Font = Enum.Font.GothamMedium
btn.TextColor3 = THEMES[currentTheme].TextSec
btn.TextSize = 14
tabBtns[name] = btn
btn.MouseButton1Click:Connect(function()
for _, pg in pairs(pages) do pg.Visible = false end
pages[name].Visible = true
end)
end
addTab("Home")
addTab("Settings")
ShowNotify(LANGS[langIdx].Name, LANGS[langIdx].Welcome)No comments yet for this script.



