Roblox UI Library  ·  v2.9  ·  Free Forever

Build scripts
faster. /
Ship them clean.

VenturaUI is a Fluent-style Roblox UI library. One script, one loadstring — a fully animated window with tabs, themes, 15+ components, and a built-in settings panel, instantly.

Script.lua
-- 1. Load VenturaUI from Pastebin local Library = loadstring(game:HttpGet("https://pastebin.com/raw/izrsUzai"))() -- 2. Create your window (key gate is optional) local GUI = Library:new({ name = "My Script", accent = Color3.fromRGB(110, 160, 255), -- key gate: flip keyEnabled to true to lock your script keyEnabled = false, key = "MYKEY-1234", onKeySuccess = function() print("Unlocked!") end, onKeyFail = function() print("Wrong key.") end, }) -- 3. Add tabs and components local Tab = GUI:CreateTab({ name = "Main", icon = Library.Icons.home }) Tab:Toggle({ name = "Speed Hack", default = false, callback = function(v) game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = v and 100 or 16 end }) Tab:Button({ name = "Notify", callback = function() GUI.notify("VenturaUI", "It works! 🎉", 3) end })
15+
Components
4
Themes
v2.7
Version
1file
Zero Deps
MIT
License
Download

Get VenturaUI

Hosted on Pastebin. Use the raw link directly in your loadstring — or download the file to host yourself.

⚔  VenturaLibrary.lua  v2.9  ·  1,516 lines
Hosted on Pastebin. Use the raw URL directly in loadstring(game:HttpGet(...))() or download the file.
⬡  Open Raw Link 📋  Pastebin
discord: xyvenom  ·  MIT License  ·  📄 Example Script
Features

Everything included.
Nothing to configure.

A complete UI system that looks professional the moment you load it.

🎨
4 Built-in Themes
Dark, Crimson, Magenta, Teal — all live-switchable with smooth tweens from the built-in Settings tab.
Smooth Animations
Every hover, toggle, slide, and open uses TweenService. Nothing ever snaps.
🧩
15+ Components
Button, Toggle, Slider, Dropdown, ColorPicker, Keybind, TextInput, ProgressBar, Paragraph, Badge, and more.
🎛️
Built-in Settings Tab
Theme switcher, HSV + RGB accent picker, rebindable keybinds, UI scale — zero setup needed.
📱
Mobile Support
Auto-detects touch devices and adjusts layout. Drag works with both mouse and touch.
🔒
Tab Locking
Disable and re-enable entire tabs at runtime. Great for gating features or admin sections.
🔔
Notification Queue
Rapid notify() calls are queued and shown one by one — no overlapping, no dropped messages.
🖱️
Clamped Drag
Window can be dragged freely but never off-screen — always recoverable.
🧹
Clean Teardown
GUI:Destroy() disconnects every connection, tweens closed, and destroys the ScreenGui. No leaks.
Components

Every piece of UI
you'll ever need.

All components share the same theme, respond to accent changes live, and support tooltips.

BUTTON
Tab:Button()
TOGGLE
Tab:Toggle()
Speed Hack
Infinite Jump
Retriggers jump state
SLIDER
Tab:Slider()
Walk Speed160 ws
DROPDOWN
Tab:Dropdown()
Dark
TEXT INPUT
Tab:TextInput()
Player Name
Walk Speed (numeric)
PROGRESS BAR
Tab:ProgressBar()
XP Progress0%
Health87 HP
KEYBIND
Tab:Keybind()
Toggle UI
Insert
Minimize
K
Speed Hotkey
E
BADGE & WARNING
Tab:Badge() / Warning()
⚡ EXPERIMENTAL✔ SAFENEW v2.9
⚠  This may violate game rules.
ℹ  Press Insert to hide the window.
PARAGRAPH
Tab:Paragraph()
About Auto Farm
Multi-line text that wraps automatically. Height expands to fit any content via TextBounds. Supports an optional bold title line.
Documentation

Full API Reference

Every method, option, and return value — with copy-ready examples.

Library:new() Constructor
Creates a new VenturaUI window. Returns a GUI object.
OptionTypeDefaultDescription
namestring"Ventura UI"Window title
subtitlestring | string[]cyclingLoading screen text. Table = cycles every 0.55s
toggleKeyKeyCodeInsertShow / hide the window
minimizeKeyKeyCodeKCollapse to titlebar
loadingTimenumber1.5Loader duration in seconds
accentColor3BlueStarting accent colour
onClosefunctionnilFired when user clicks ×
keyEnabledbooleanfalseSet true to show key gate before loader
keystring | string[]nilValid key(s) the player must enter
onKeySuccessfunctionnilCalled after correct key is entered
onKeyFailfunctionnilCalled after all 3 attempts are exhausted
local GUI = Library:new({
    name        = "My Hub",
    subtitle    = {"Loading...", "Almost ready..."},
    accent      = Color3.fromRGB(220, 90, 90),
    onClose     = function() print("bye") end,

    -- optional key gate
    keyEnabled   = false,         -- flip to true to lock your script
    key          = "MYKEY-1234",  -- or {"KEY1","KEY2"} for multiple
    onKeySuccess = function() end,
    onKeyFail    = function() end,
})
GUI Methods Runtime
MethodReturnsDescription
GUI:Destroy()nilClean teardown — disconnect all, tween close, destroy ScreenGui
GUI:SetTitle(text)nilChange topbar title at runtime
GUI:SetSubtitle(text)nilUpdate loading subtitle mid-load
GUI:SelectTab(name)boolSwitch to a tab by name
GUI.notify(t,msg,dur)nilQueued notification — never overlaps
GUI:CreateTab() Tab
local Tab = GUI:CreateTab({
    name       = "Combat",
    icon       = Library.Icons.zap,
    badge      = "NEW",          -- optional pill on nav button
    badgeColor = Color3.fromRGB(255, 80, 80),
})
Tab:Disable()  -- grey out and lock
Tab:Enable()   -- restore
Tab:Button() Component
Tab:Button({ name="Go", description="Sub text", badge="HOT",
    tooltip="Hover text", callback=function() end })
Tab:Toggle() Component
local t = Tab:Toggle({ name="Speed", default=false, callback=function(v) end })
t:Set(true)         -- fires callback
t:Set(false, true)  -- silent, no callback
Tab:Slider() Component
local s = Tab:Slider({ name="Speed", min=16, max=300, default=16, suffix=" ws",
    callback=function(v) hum.WalkSpeed=v end })
s:Set(100)          -- fires callback
s:Set(16, true)    -- silent
Tab:Dropdown() Component
local d = Tab:Dropdown({ items={"A","B"}, default="A", multi=false,
    callback=function(v) end })
d:Set("B")
d:SetItems({"X","Y","Z"})  -- replace list at runtime
Tab:TextInput() Component
local ti = Tab:TextInput({ name="Name", placeholder="...", numeric=false,
    callback=function(text) end })
ti:Set("Roblox")
Tab:ColorPicker() Component
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() Component
local kb = Tab:Keybind({ name="Activate", default=Enum.KeyCode.E,
    callback=function(k) end })
kb:Set(Enum.KeyCode.F)
Tab:ProgressBar() New v2.7
local pb = Tab:ProgressBar({ name="XP", default=0, suffix="%",
    color=Color3.fromRGB(100,200,120) })
pb:Set(75)   -- tweens fill smoothly
Tab:Paragraph() New v2.7
Tab:Paragraph({ title="About", text="Wraps automatically. Height auto-sizes." })
Tab:Badge() New v2.7
Tab:Badge({ text="✔ UNDETECTED", color=Color3.fromRGB(40,160,70) })
Section / Separator / Label / Warning / Info
Tab:Section({ name="Movement" })
Tab:Separator()
Tab:Label({ text="v1.0" })
Tab:Warning({ text="Use with caution." })
Tab:Info({ text="Press Insert to hide." })
Changelog

What's new

Full version history — most recent first.

v2.9 Latest
2025
  • NEW Single-instance override — re-executing instantly destroys the old window and replaces it. Only affects VenturaUI; all other GUIs are left alone.
  • NEW Key system: keyLink — pass a URL and a "Get Key" button appears that copies the link to clipboard so players can grab their key.
  • NEW Key system: keyNote — pass a short string displayed as a hint under the input (e.g. "Key resets weekly — check Discord").
  • NEW Loading screen now shows first, key gate fades in after — correct UX order.
  • NEW Key gate panel scales in with a spring animation instead of appearing instantly.
  • NEW Tab:Hyperlink({ text, url }) — clickable row that copies a URL to clipboard with a "copied!" confirmation.
  • FIX Instance override is now bulletproof — checks both CoreGui and PlayerGui with full pcall guards.
v2.9
2025
  • NEW Key system — keyEnabled, key, onKeySuccess, onKeyFail options in Library:new()
  • NEW Key gate UI — styled full-screen prompt before loader, 3-attempt limit, auto-locks on failure
  • NEW key accepts a single string or a table of valid keys
  • NEW Tab icon bare Roblox decal ID support — pass "198281938219" directly
  • FIX Loader retries up to 3 times with HTML-response guard to prevent nil crashes
v2.7
2025
  • NEW Tab:ProgressBar — animated fill, Set(v) tweens smoothly
  • NEW Tab:Paragraph — multi-line auto-height text with optional title
  • NEW Tab:Badge — standalone coloured pill label
  • NEW GUI:Destroy(), SetTitle(), SetSubtitle(), SelectTab()
  • NEW Tab:Disable() / Enable() — lock/unlock tabs at runtime
  • NEW options.subtitle cycling + options.onClose callback
  • NEW Notification queue — rapid calls are sequenced
  • NEW Dropdown:SetItems() — replace items at runtime
  • FIX Slider:Set / Toggle:Set now fire callback by default (silent param added)
  • FIX Dropdown stale closure in hover handlers
  • FIX Drag clamped to viewport — window can't go off-screen
  • FIX Exit button tween race condition fixed
  • FIX ColorPicker HSV connections disconnected on remove
v2.6
2025
  • Toggle key changed to Insert (avoids typing conflicts)
  • Tab icons rebuilt — no more UIPadding overlap
  • Themes brighter and clearly distinct from each other
  • Accent sync fixed — HSV picker and R/G/B sliders always in sync
  • Slider UIS connections disconnected on AncestryChanged
v2.5
2025
  • Theme dropdown tweens all chrome elements smoothly
  • R / G / B accent sliders added
  • Minimize scale bug fixed
  • 25+ icon names added to Library.Icons
⚡ New Tool
Host scripts with
LuaPaste

LuaPaste is xyvenom's companion script hosting tool. No server, no backend, no account needed. Paste your script, get a shareable link and a one-click loadstring — all stored in your browser.

No workers, no API keys — fully browser-based with localStorage
Shareable paste links anyone can view in their browser
One-click loadstring copy — script embedded, no HTTP request needed
Raw view page, search, sort, edit, download — full history management
Drag & drop .lua / .txt file upload, description, theme options
⬡  Open LuaPaste View Docs
executor.lua
-- 1. Go to luapaste.html, create a paste
-- 2. Click "Copy loadstring()" — no server needed

-- Script is embedded directly:
loadstring("-- your script...")()

-- Or load VenturaUI and use it directly:
local Library = loadstring(game:HttpGet(
  "https://pastebin.com/raw/izrsUzai"))()
❤ From the developer

Thank you for using
VenturaUI

VenturaUI started as a personal tool and grew into something I'm genuinely proud of. If you've used it, shared it, or given feedback — thank you. It means everything.

"VenturaUI is free, open-source, and will always stay that way.
No monetisation, no paywalls — just a tool made with care.
If it helped you ship something cool, that's enough."
— xyvenom