Skip to main content
These features are optional. A basic menu can use Getting started directly.

Show menu construction progress

After loading UI, this block creates its own window:
Create builds from a table. Every declarative control needs a unique Id. Its loader reports control construction progress.

Drive a separate loader

Replace these demonstration steps with real tasks. Progress represents work reported by your code. Variants are Compact, Centered, Minimal. SetProgress accepts 0-1; Complete finishes and destroys the loader; Destroy cancels it.

Validate a key on a Roblox server

Validate(key) returns true, result to accept or false, message to reject. The library does not supply your authentication system. For Studio:
  1. Copy key_server.example.luau into a Script under ServerScriptService. Replace CHANGE_ME in that server script.
  2. Copy starter.luau into a LocalScript under StarterPlayerScripts, keeping ReplicatedStorage.GabibouUI installed.
The server creates GabibouValidateKey. Once configured, client wiring after loading UI can use:
Keep keys and authorization decisions on the server. The client displays a result; every protected server action must check authorization.

Existing providers

UI:KeyProvider(name, options) adapts an SDK you supply into a Validate callback. Providers: Luarmor, Vampauth, KeyAuth, Custom. It does not download SDKs. See provider examples. UI:Launch(spec) coordinates key validation, Steps, loading and declarative creation. Its session exposes Status, Window, Loader, Gate, Cancel() and Destroy().