0% found this document useful (0 votes)
30 views11 pages

Message (18) Asddddd

The document outlines a Lua script for creating a user interface library with various UI components such as tabs, sections, buttons, toggles, sliders, and dropdowns. It includes functionality for customizing themes, saving and loading configurations, and handling user interactions through callbacks. The script is designed for use in a game environment, specifically for Roblox, and allows for extensive customization of the UI elements.

Uploaded by

cirdecllido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views11 pages

Message (18) Asddddd

The document outlines a Lua script for creating a user interface library with various UI components such as tabs, sections, buttons, toggles, sliders, and dropdowns. It includes functionality for customizing themes, saving and loading configurations, and handling user interactions through callbacks. The script is designed for use in a game environment, specifically for Roblox, and allows for extensive customization of the UI elements.

Uploaded by

cirdecllido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

local library = loadstring(game:HttpGet("https://raw.githubusercontent.

com/vozoid/
ui-libraries/main/drawing/void/source.lua"))()

local watermark = library:Watermark("watermark | 60 fps | v4.20 | dev")


-- watermark:Set("Watermark Set")
-- watermark:Hide() -- toggles watermark

local main = library:Load{


Name = "vozoid hax or something",
SizeX = 600,
SizeY = 650,
Theme = "Midnight",
Extension = "json", -- config file extension
Folder = "vozoid ui or something" -- config folder name
}

-- library.Extension = "txt" (config file extension)


-- library.Folder = "config folder name"

local tab = main:Tab("Tab")

local section = tab:Section{


Name = "Section",
Side = "Left"
}

local label = section:Label("Label")

--label:Set("Label Set")

section:Button{
Name = "Button",
Callback = function()
print("Button clicked")
end
}

local seperator = section:Separator("Separator")


--separator:Set("Separator Set")

local toggle = section:Toggle{


Name = "Toggle",
Flag = "Toggle 1",
--Default = true,
Callback = function(bool)
print("Toggle 1 is now " .. (bool and "enabled" or "disabled"))
end
}

local togglepicker1 = toggle:ColorPicker{


Default = Color3.fromRGB(255, 0, 0),
Flag = "Toggle 1 Picker 1",
Callback = function(color)
print("Toggle 1 Picker 1 is now " .. string.format("%s, %s, %s, %s",
math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255),
math.floor(color.A * 100) / 100))
end
}
--togglepicker1:Set(Color3.fromRGB(255, 255, 255))

local togglepicker2 = toggle:ColorPicker{


Default = Color3.fromRGB(0, 255, 0),
Flag = "Toggle 1 Picker 2",
Callback = function(color)
print("Toggle 1 Picker 2 is now " .. string.format("%s, %s, %s, %s",
math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255),
math.floor(color.A * 100) / 100))
end
}

--togglepicker2:Set(Color3.fromRGB(255, 255, 255))

--toggle:Toggle(true)

local toggle2 = section:Toggle{


Name = "Toggle 2",
Flag = "Toggle 2",
--Default = true,
Callback = function(bool)
print("Toggle 2 is now " .. (bool and "enabled" or "disabled"))
end
}

toggle2:Keybind{
--Default = Enum.KeyCode.A,
Blacklist = {Enum.UserInputType.MouseButton1},
Flag = "Toggle 2 Keybind 1",
Mode = "Toggle", -- mode to nil if u dont want it to toggle the toggle
Callback = function(key, fromsetting)
if fromsetting then
print("Toggle 2 Keybind 1 is now " .. tostring(key))
else
print("Toggle 2 Keybind 1 was pressed")
end
end
}

local toggle3 = section:Toggle{


Name = "Toggle 3",
Flag = "Toggle 3",
--Default = true,
Callback = function(bool)
print("Toggle 3 is now " .. (bool and "enabled" or "disabled"))
end
}

toggle3:Slider{
Text = "[value]/5",
--Default = 5,
Min = 0,
Max = 5,
Float = 0.5,
Flag = "Slider 1",
Callback = function(value)
print("Toggle 3 Slider 1 is now " .. value)
end
}
local toggle4 = section:Toggle{
Name = "Toggle 4",
Flag = "Toggle 4",
--Default = true,
Callback = function(bool)
print("Toggle 4 is now " .. (bool and "enabled" or "disabled"))
end
}

toggle4:Dropdown{
--Default = "Option 1",
Content = {
"Option 1",
"Option 2",
"Option 3"
},
--Max = 5, -- turns into multidropdown
--Scrollable = true, -- makes it scrollable
--ScrollingMax = 5, -- caps the amount it contains before scrolling
Flag = "Dropdown 1",
Callback = function(option)
print("Dropdown 1 is now " .. tostring(option))
end
}

local box = section:Box{


Name = "Box",
--Default = "hi",
Placeholder = "Box Placeholder",
Flag = "Box 1",
Callback = function(text)
print("Box 1 is now " .. text)
end
}

--box:Set("New box text")

local slider = section:Slider{


Name = "Slider",
Text = "[value]/1",
--Default = 0.1,
Min = 0,
Max = 1,
Float = 0.1,
Flag = "Slider 1",
Callback = function(value)
print("Slider 1 is now " .. value)
end
}

--slider:Set(1)

local dropdown = section:Dropdown{


Name = "Dropdown",
--Default = "Option 1",
Content = {
"Option 1",
"Option 2",
"Option 3"
},
Flag = "Dropdown 1",
Callback = function(option)
print("Dropdown 1 is now " .. tostring(option))
end
}

dropdown:Set() -- using this without any args or with wrong args will unset the
dropdown
--dropdown:Set("option 6") wont work and will unset

dropdown:Refresh{
"Refreshed option 1",
"Refreshed option 2",
"Refreshed option 3"
}

dropdown:Set("Refreshed option 1")

dropdown:Add("Option 4")

dropdown:Remove("Option 4")

local multidropdown = section:Dropdown{


Name = "Multi dropdown",
--Default = {"Option 1"},
Max = 3, -- makes it multi
Content = {
"Option 1",
"Option 2",
"Option 3"
},
Flag = "Multi dropdown 1",
Callback = function(option)
print("Multi dropdown 1 is now " .. table.concat(option, ", "))
end
}

multidropdown:Set() -- using this without any args or with wrong args will unset
the dropdown
multidropdown:Set{} -- using this without any args or with wrong args will unset
the dropdown
--multidropdown:Set{"option 12321313"} wont work and will unset
--multidropdown:Set("hello") wont work and will unset

multidropdown:Refresh{
"Refreshed option 1",
"Refreshed option 2",
"Refreshed option 3",
"Refreshed option 4"
}

multidropdown:Set{
"Refreshed option 1",
"Refreshed option 2"
}
multidropdown:Add("Option 5")

multidropdown:Remove("Option 5")

local dropdown = section:Dropdown{


Name = "Scrolling Dropdown",
--Default = "Option 1",
Scrollable = true,
ScrollingMax = 5,
Content = {
"Option 1",
"Option 2",
"Option 3",
"Option 4",
"Option 5",
"Option 6",
"Option 7"
},
Flag = "Scrolling Dropdown 1",
Callback = function(option)
print("Scrolling Dropdown 1 is now " .. tostring(option))
end
}

local colorpicker = section:ColorPicker{


Name = "Color picker",
Default = Color3.fromRGB(0, 255, 0),
Flag = "Color picker 1",
Callback = function(color)
print("Color picker 1 is now: " .. string.format("%s, %s, %s, %s",
math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255),
math.floor(color.A * 100) / 100))
end
}

--colorpicker:Set(Color3.fromRGB(255, 255, 255))

local colorpickerpicker1 = colorpicker:ColorPicker{


Default = Color3.fromRGB(0, 255, 255),
DefaultAlpha = 0.5,
Flag = "Color picker picker 1",
Callback = function(color)
print("Color picker 1 picker 1 is now: " .. string.format("%s, %s, %s, %s",
math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255),
math.floor(color.A * 100) / 100))
end
}

--colorpickerpicker1:Set(Color3.fromRGB(255, 255, 255))

local colorpickerpicker2 = colorpicker:ColorPicker{


Default = Color3.fromRGB(255, 255, 255),
Flag = "Color picker picker 2",
Callback = function(color)
print("Color picker 1 picker 2 is now " .. string.format("%s, %s, %s, %s",
math.round(color.R * 255), math.round(color.G * 255), math.round(color.B * 255),
math.floor(color.A * 100) / 100))
end
}

--colorpickerpicker2:Set(Color3.fromRGB(255, 255, 255))

local keybind = section:Keybind{


Name = "Keybind",
--Default = Enum.KeyCode.A,
--Blacklist = {Enum.UserInputType.MouseButton1,
Enum.UserInputType.MouseButton2},
Flag = "Keybind 1",
Callback = function(key, fromsetting)
if fromsetting then
print("Keybind 1 is now " .. tostring(key))
else
print("Keybind 1 was pressed")
end
end
}

--library:SaveConfig("config", true) -- universal config


--library:SaveConfig("config") -- game specific config
--library:DeleteConfig("config", true) -- universal config
--library:DeleteConfig("config") -- game specific config
--library:GetConfigs(true) -- return universal and game specific configs (table)
--library:GetConfigs() -- return game specific configs (table)
--library:LoadConfig("config", true) -- load universal config
--library:LoadConfig("config") -- load game specific config

local configs = main:Tab("Configuration")

local themes = configs:Section{Name = "Theme", Side = "Left"}

local themepickers = {}

local themelist = themes:Dropdown{


Name = "Theme",
Default = library.currenttheme,
Content = library:GetThemes(),
Flag = "Theme Dropdown",
Callback = function(option)
if option then
library:SetTheme(option)

for option, picker in next, themepickers do


picker:Set(library.theme[option])
end
end
end
}

library:ConfigIgnore("Theme Dropdown")

local namebox = themes:Box{


Name = "Custom Theme Name",
Placeholder = "Custom Theme",
Flag = "Custom Theme"
}
library:ConfigIgnore("Custom Theme")

themes:Button{
Name = "Save Custom Theme",
Callback = function()
if library:SaveCustomTheme(library.flags["Custom Theme"]) then
themelist:Refresh(library:GetThemes())
themelist:Set(library.flags["Custom Theme"])
namebox:Set("")
end
end
}

local customtheme = configs:Section{Name = "Custom Theme", Side = "Right"}

themepickers["Accent"] = customtheme:ColorPicker{
Name = "Accent",
Default = library.theme["Accent"],
Flag = "Accent",
Callback = function(color)
library:ChangeThemeOption("Accent", color)
end
}

library:ConfigIgnore("Accent")

themepickers["Window Background"] = customtheme:ColorPicker{


Name = "Window Background",
Default = library.theme["Window Background"],
Flag = "Window Background",
Callback = function(color)
library:ChangeThemeOption("Window Background", color)
end
}

library:ConfigIgnore("Window Background")

themepickers["Window Border"] = customtheme:ColorPicker{


Name = "Window Border",
Default = library.theme["Window Border"],
Flag = "Window Border",
Callback = function(color)
library:ChangeThemeOption("Window Border", color)
end
}

library:ConfigIgnore("Window Border")

themepickers["Tab Background"] = customtheme:ColorPicker{


Name = "Tab Background",
Default = library.theme["Tab Background"],
Flag = "Tab Background",
Callback = function(color)
library:ChangeThemeOption("Tab Background", color)
end
}

library:ConfigIgnore("Tab Background")
themepickers["Tab Border"] = customtheme:ColorPicker{
Name = "Tab Border",
Default = library.theme["Tab Border"],
Flag = "Tab Border",
Callback = function(color)
library:ChangeThemeOption("Tab Border", color)
end
}

library:ConfigIgnore("Tab Border")

themepickers["Tab Toggle Background"] = customtheme:ColorPicker{


Name = "Tab Toggle Background",
Default = library.theme["Tab Toggle Background"],
Flag = "Tab Toggle Background",
Callback = function(color)
library:ChangeThemeOption("Tab Toggle Background", color)
end
}

library:ConfigIgnore("Tab Toggle Background")

themepickers["Section Background"] = customtheme:ColorPicker{


Name = "Section Background",
Default = library.theme["Section Background"],
Flag = "Section Background",
Callback = function(color)
library:ChangeThemeOption("Section Background", color)
end
}

library:ConfigIgnore("Section Background")

themepickers["Section Border"] = customtheme:ColorPicker{


Name = "Section Border",
Default = library.theme["Section Border"],
Flag = "Section Border",
Callback = function(color)
library:ChangeThemeOption("Section Border", color)
end
}

library:ConfigIgnore("Section Border")

themepickers["Text"] = customtheme:ColorPicker{
Name = "Text",
Default = library.theme["Text"],
Flag = "Text",
Callback = function(color)
library:ChangeThemeOption("Text", color)
end
}

library:ConfigIgnore("Text")

themepickers["Disabled Text"] = customtheme:ColorPicker{


Name = "Disabled Text",
Default = library.theme["Disabled Text"],
Flag = "Disabled Text",
Callback = function(color)
library:ChangeThemeOption("Disabled Text", color)
end
}

library:ConfigIgnore("Disabled Text")

themepickers["Object Background"] = customtheme:ColorPicker{


Name = "Object Background",
Default = library.theme["Object Background"],
Flag = "Object Background",
Callback = function(color)
library:ChangeThemeOption("Object Background", color)
end
}

library:ConfigIgnore("Object Background")

themepickers["Object Border"] = customtheme:ColorPicker{


Name = "Object Border",
Default = library.theme["Object Border"],
Flag = "Object Border",
Callback = function(color)
library:ChangeThemeOption("Object Border", color)
end
}

library:ConfigIgnore("Object Border")

themepickers["Dropdown Option Background"] = customtheme:ColorPicker{


Name = "Dropdown Option Background",
Default = library.theme["Dropdown Option Background"],
Flag = "Dropdown Option Background",
Callback = function(color)
library:ChangeThemeOption("Dropdown Option Background", color)
end
}

library:ConfigIgnore("Dropdown Option Background")

local configsection = configs:Section{Name = "Configs", Side = "Left"}

local configlist = configsection:Dropdown{


Name = "Configs",
Content = library:GetConfigs(), -- GetConfigs(true) if you want universal
configs
Flag = "Config Dropdown"
}

library:ConfigIgnore("Config Dropdown")

local loadconfig = configsection:Button{


Name = "Load Config",
Callback = function()
library:LoadConfig(library.flags["Config Dropdown"]) --
LoadConfig(library.flags["Config Dropdown"], true) if you want universal configs
end
}
local delconfig = configsection:Button{
Name = "Delete Config",
Callback = function()
library:DeleteConfig(library.flags["Config Dropdown"]) --
DeleteConfig(library.flags["Config Dropdown"], true) if you want universal configs
configlist:Refresh(library:GetConfigs())
end
}

local configbox = configsection:Box{


Name = "Config Name",
Placeholder = "Config Name",
Flag = "Config Name"
}

library:ConfigIgnore("Config Name")

local save = configsection:Button{


Name = "Save Config",
Callback = function()
library:SaveConfig(library.flags["Config Dropdown"] or
library.flags["Config Name"]) -- SaveConfig(library.flags["Config Name"], true) if
you want universal configs
configlist:Refresh(library:GetConfigs())
end
}

local keybindsection = configs:Section{Name = "UI Toggle Keybind", Side = "Left"}

keybindsection:Keybind{
Name = "UI Toggle",
Flag = "UI Toggle",
Default = Enum.KeyCode.RightShift,
Blacklist = {Enum.UserInputType.MouseButton1, Enum.UserInputType.MouseButton2,
Enum.UserInputType.MouseButton3},
Callback = function(_, fromsetting)
if not fromsetting then
library:Close()
end
end
}

local scrolling = main:Tab("Scrolling Columns")

for i = 1, 20 do
local sec = scrolling:Section{
Name = tostring(math.random(2000, 20000000)),
Side = math.random(1, 2) == 1 and "Left" or "Right"
}

for i = 1, math.random(3, 10) do


if math.random(1, 2) == 1 then
sec:Label(tostring(math.random(2000, 20000000)))
else
sec:Button{Name = tostring(math.random(2000, 20000000))}
end
end
end

--library:Close()
--library:Unload()

You might also like