A cinematic Fluent-style UI library. One script, one loadstring: a GTA-style loader, 12 live themes, optimization modes and a free AI assistant.
-- 1. Load VenturaUI local Library = loadstring(game:HttpGet("https://codeberg.org/VenomVent/Ventura-UI/raw/branch/main/VenturaLibrary.lua"))() -- 2. Create the window local GUI = Library:new({ name = "My Hub", theme = "Vice City", performance = "High", aiEnabled = true, -- free assistant, no key }) -- 3. Add tabs and components local Tab = GUI:CreateTab({ name = "Main", icon = Library.Icons.home }) Tab:Toggle({ name = "Speed", flag = "speed", callback = function(v) game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = v and 100 or 16 end }) GUI.notify("Loaded", "It works! 🎉", 3, "success")
A complete UI system that looks like a finished product the moment it loads.
Sunset sky, striped sun, palms, a scrolling synthwave grid and letterbox bars. The loader fades in from the game and the window reveals with a light sweep.
No key, no signup. Or bring your own OpenAI-compatible or Anthropic key. Typing animation, quick prompts and a built-in knowledge of the API.
Vice City, Midnight, Crimson, Emerald, Ocean, Amethyst, Sakura, Sunset, Neon, Aurora, Mono and Light. Plus an accent override and rainbow mode.
Auto, Ultra, High, Balanced, Performance and Potato. Auto steps down by itself when your FPS tanks.
Give any element a flag and it is saved and restored. Export or import the whole setup as JSON.
Spinning gradient border, drop shadow, optional blur, opacity, UI scale, free resize, collapsible sidebar and a corner-roundness slider.
Button, Toggle, Slider with step, multi Dropdown, HSV ColorPicker with hex, Keybind, Chip, ControlHint, ButtonGrid, banners and more.
Typed toasts with a draining progress bar, click-to-dismiss and four screen corners.
Optional full-screen key prompt with 3 attempts, shake feedback and a "Get Key" button.
Touch input on every component, a scaled window and a floating toggle button.
A draggable watermark pill with FPS, ping and clock, plus a stats readout in the title bar.
GUI:Destroy() disconnects everything, removes blur and tweens closed. No leaks.
Try the preview. The toggles and tabs respond, and the whole window follows the theme you pick below.
Hover states, ripples, gradient fills and an animated border come standard, and every one of them can be turned off in the Settings tab.
Click a theme to recolor this whole page. In Roblox, the same switch cross-fades every element of your UI.
A sunset sky with a striped sun, skyline, palm silhouettes, a scrolling synthwave grid, letterbox bars, stamped title letters and a flash-and-zoom exit. It fades in from the game and hands off to the window with a light sweep. On low-end modes it switches to a minimal loader automatically.
Six optimization modes, switchable live. Blur, border, shadow and gradients can also be toggled on their own.
| Mode | Animations | Gradients | Border | Shadow | Blur | Ripples | Loader |
|---|---|---|---|---|---|---|---|
| Ultra | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Cinematic + stars |
| High | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Cinematic |
| Balanced | ✔ 1.25× | ✔ | ✘ | ✔ | ✘ | ✘ | Cinematic |
| Performance | ✔ 2× | ✘ | ✘ | ✘ | ✘ | ✘ | Minimal |
| Potato | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | Minimal |
| Auto | Starts at High and steps down a tier when FPS stays under 32 for four seconds. | ||||||
One option adds a chat tab that already knows the VenturaUI API. No key, no signup, no config.
Bring-your-own-key providers are billed by your provider. Keys stay in memory and are never written to the config file.
-- free Library:new({ name = "My Hub", aiEnabled = true }) -- your own key Library:new({ aiEnabled = true, aiProvider = "Anthropic (key)", aiKey = "sk-ant-...", aiModel = "claude-sonnet-5-5", })
Tab:Slider and set the humanoid in the callback:Tab:Slider({ name="Speed", min=16, max=250, default=16, flag="speed", callback=function(v) Humanoid.WalkSpeed=v end })Every option, method and component, with copy-ready examples.
Creates the window and returns a GUI object.
| Option | Type | Default | Description |
|---|---|---|---|
name | string | "Ventura UI" | Title, loader text and config filename |
tagline | string | "NEXT-GEN INTERFACE" | Small text under the loader title |
subtitle | string | string[] | cycling | Loader status messages |
theme | string | "Vice City" | Starting theme |
performance | string | "High" | Auto, Ultra, High, Balanced, Performance, Potato |
accent | Color3 | theme | Accent override |
loadingTime | number | 4.2 | Loader length in seconds |
loadingStyle | string | "Auto" | Auto, Cinematic, Minimal, None |
intro | boolean | true | Fade and sweep transition in |
toggleKey / minimizeKey | KeyCode | Insert / K | Show-hide and collapse |
watermark | string | nil | Draggable FPS / ping HUD text |
welcome | boolean | true | Welcome notification |
destroyOnRespawn | boolean | false | Destroy GUI when you die |
onClose | function | nil | Fired when × is clicked |
keyEnabled / key / keyLink | bool / string[] / string | false | Key gate, valid keys and Get Key link |
onKeySuccess / onKeyFail | function | nil | Key gate callbacks |
aiEnabled | boolean | false | Adds the AI assistant tab |
aiProvider | string | free | Free · Pollinations, Free · Mistral, OpenAI-compatible (key), Anthropic (key) |
aiKey / aiModel / aiEndpoint | string | nil | Bring-your-own-key settings |
aiSystem / aiCooldown | string / number | built-in / 5 | Custom system prompt and seconds between messages |
GUI:Destroy() -- tween closed, clean up everything GUI:Toggle() / GUI:SetOpen(bool) GUI:SetTitle("New Title") GUI:SelectTab("Tab Name") GUI:NavSection("LABEL") -- collapsible sidebar header, call before its tabs GUI:SetTheme("Neon") GUI:SetAccent(Color3.fromRGB(255, 120, 0)) GUI:SetPerformance("Potato") GUI.notify("Title", "Body", 3, "success") -- success | warning | error | info GUI:SaveConfig() / GUI:LoadConfig() GUI:ExportConfig() -- JSON string GUI:ImportConfig(json) GUI.Flags -- every flagged value
local Tab = GUI:CreateTab({ name = "Combat", icon = Library.Icons.sword, -- emoji, rbxassetid or bare decal id badge = "NEW", badgeColor = Color3.fromRGB(255, 80, 80), }) Tab:Activate(); Tab:Disable(); Tab:Enable()
Tab:Button({ name = "Go", description = "Sub text", badge = "HOT", tooltip = "Hover", callback = function() end })
local t = Tab:Toggle({ name = "Speed", default = false, flag = "speed", callback = function(v) end }) t:Set(true) -- fires callback t:Set(false, true) -- silent
local s = Tab:Slider({ name = "Zoom", min = 0, max = 10, step = 0.5, default = 5, suffix = "x", flag = "zoom", callback = function(v) end }) s:Set(7)
local d = Tab:Dropdown({ name = "Team", items = {"Red","Blue"}, default = "Red", multi = false, callback = function(v) end }) d:Set("Blue") d:SetItems({"X","Y","Z"})
Tab:TextInput({ name = "Name", placeholder = "...", numeric = false, callback = function(text, enterPressed) end })
local cp = Tab:ColorPicker({ name = "Color", default = Color3.fromRGB(255,100,100), callback = function(c) end }) cp:Set(Color3.fromRGB(0,255,0))
Tab:Keybind({ name = "Fly", default = Enum.KeyCode.V, pressed = function() end, -- fires when the key is pressed callback = function(key) end }) -- fires when rebound
Tab:Section({ name = "Movement" }) Tab:ProgressBar({ name = "XP", default = 0 }) -- :Set(v) Tab:Paragraph({ title = "About", text = "Wraps and auto-sizes." }) Tab:Label({ text = "Small text" }) Tab:Info({ text = "..." }); Tab:Warning({ text = "..." }); Tab:Success({ text = "..." }); Tab:Error({ text = "..." }) Tab:Badge({ text = "NEW" }); Tab:Chip({ text = "BETA", icon = "⚡" }) Tab:ControlHint({ name = "Toggle UI", key = "Insert" }) Tab:ButtonGrid({ columns = 2, buttons = { { name = "Fly", icon = "✈️", callback = function() end } } }) Tab:Hyperlink({ text = "Codeberg", url = "https://codeberg.org/VenomVent/Ventura-UI" }) Tab:Divider({ text = "label" }); Tab:Separator(); Tab:Image({ url = "123456", height = 90 }) Tab:Custom(120) -- empty card for your own UI, returns .frame
Every component returns an object with .frame, :SetVisible(bool) and :Destroy(), plus :Set / :Get where it makes sense.
Add flag = "name" to a Toggle, Slider, Dropdown, TextInput, ColorPicker or Keybind. Its value is saved to VenturaUI/<name>.json and restored on the next run. Read values any time from GUI.Flags.name.
Library:new({ keyEnabled = true, key = { "key-a", "key-b" }, keyLink = "https://linkvertise.com/yourlink", onKeySuccess = function() end, onKeyFail = function() end, })
| Section | Controls |
|---|---|
| Appearance | Theme, accent override, reset accent, rainbow, gradient accents, corner roundness |
| Window | UI scale, opacity, animated border, shadow, background blur, lock position, reset window |
| Performance | Optimization mode, animation speed, FPS/ping readout, watermark HUD |
| Notifications | Position, duration, test buttons |
| Interaction | Tooltips, click sounds |
| Keybinds | Toggle UI, minimize UI |
| Config | Auto-save, save, load, reset, copy JSON, import JSON |
Full version history, most recent first.
intro option).aiProvider, aiKey, aiModel, aiEndpoint, aiSystem, aiCooldown.step, keybind pressed..frame.GUI:NavSection, sidebar toggle, keyLink, Chip, ControlHint, ButtonGrid, SetAccent, GetVersion.v3.2 Touch support on every component, Success, Divider, typed notifications, Image fix.
v3.1 Success and Divider components, typed notify, Image nil-image fix.
v3.0 Emoji icons, free resize, typewriter title, goodbye notification, window size saved.
v2.9 AI assistant, config save, GUI.notify, Image, watermark, destroyOnRespawn.
v2.8 Key system and decal-ID icons. v2.7 ProgressBar, Paragraph, Badge, Destroy, SelectTab, Disable/Enable.
v2.6 Insert as default key, rebuilt tab icons, brighter themes. v2.5 Smooth theme tweens, RGB sliders, more icons.
Hosted on Codeberg. Use the raw link directly in your loadstring, or download the files and host them yourself.
VenturaUI started as a personal tool and grew into something I'm proud of. If you've used it, shared it or sent feedback, thank you.