Key system
Configure the new XLQP key gate, validators, providers, themes, get-key menu, saved keys, and success callbacks.
Key system
The current source bundles a new key-system window. Configure it inside Library:MakeWindow() or its CreateWindow alias. The main UI opens after a valid key is accepted. Closing the gate cancels startup and unloads the library.
local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/josediaz765/XLQP-UIS/main/xlqp%20gen1"))()
local Window = Library:MakeWindow({
Branding = {Name = "My Hub", Icon = "home"},
KeySystem = {
Enabled = true,
Title = "My Hub",
Description = "Enter your access key",
Key = {"XLQP-DEMO"},
CaseSensitive = true,
SaveKey = true,
Folder = "MyHub",
Theme = "Plant-Dark",
},
})Replace the demonstration key with your own. The supplied full example sets UseKeySystem = false; change that variable to true to enable its gate.
Validation behavior
The gate trims whitespace around the entered key. Raw keys are case-insensitive by default; set CaseSensitive = true or KeyCaseSensitive = true for exact case matching. Prefer Key; Keys, CustomKey, CustomKeys, CorrectKey, and KeySettingsKey remain compatibility names.
Key accepts a string, number, list, map of accepted keys to true, function, or callable table. A function receives the trimmed key and returns true on success or false, reason on failure. An additional Validate, Validator, or Check callback receives (key, settings).
KeySystem = {
Enabled = true,
Key = function(key)
if key == "XLQP-DEMO" then
return true
end
return false, "This key is not valid"
end,
SaveKey = false,
}Hashes may be configured through Hashes, KeyHashes, HashedKeys, or KeyHash. They are still checked after a failed raw-key match; the old AllowKeyHashesWithRaw rule no longer applies. Hash checks use the original trimmed key, so do not assume raw-key case normalization also applies to hashes. The gate then tries configured API providers.
Always configure a key or a provider. If neither is configured, the bundled gate falls back to the demonstration key key.
Key providers
API accepts one entry or a list. Providers, Services, Auths, and Auth are also collected. Each entry chooses a provider using Type.
| Type | Configuration |
|---|---|
platoboost / plato | Platoboost entry passed to its bundled adapter. |
panda / pandaauth / pandaauthentication | Panda adapter; accepts provider settings such as ServiceId. |
jnkie / junkie | Jnkie adapter; accepts settings such as Service, Identifier, and Provider. |
custom / auths | Required CheckKey(key, context); optional GetKeyLink(context). |
Custom-provider context contains the entry's fields and Request, the runtime's HTTP request function when available. Return true for acceptance, or false, reason for rejection. Provider errors are caught and reported; they do not automatically accept a key. Provider credentials and service identifiers must come from your configured service.
Fields
| Field | Behavior |
|---|---|
Enabled | Enables the gate; use an explicit boolean. |
Title, Description / Subtitle, Logo | Gate branding and heading. |
Key, CaseSensitive, Hashes, Validate | Local validation settings described above. |
API, Providers, Services, Auths, Auth | Provider configuration. |
SaveKey / Save | Saves accepted keys when runtime file APIs are available. |
Folder | Saved-key and gate-data folder. |
URL / Link | Default get-key destination. |
GetKey.Enabled, getkey | Controls whether the get-key action is available. |
GetKey.Title, GetKey.Icon, GetKey.Methods | Action label, icon, and menu methods. |
Methods, GetKeyMethods | Alternative method lists. |
Theme, Themes, CustomThemes | Built-in selection and custom theme tables. |
Discord, Website | Boolean flags or tables with Enabled and Link / URL. |
Informations / Information | Shows the information card. |
Intro, startintro_size, squareintro_time, squarecontorn | Intro presentation and timing. |
ChangeTheme, Changelogocolor, Changeiconscolor | Theme selection, logo color, and icon-color switches. Names are case-sensitive. |
NotifStyle | "1" Stripe, "2" Pill, "3" Island, "4" Ring, "5" Solid. |
UIFont, TitleFont | Font configuration. |
Draggable, ShowDragGrip | Drag behavior and grip visibility. |
ImplementationNotice, ImplementationNoticeTitle, ImplementationNoticeText, ImplementationNoticeDuration | Gate implementation notice. |
SupportedGames | Supported-game information supplied to the gate. |
Callback / OnSuccess | Called after acceptance. The current adapter reports (key, "Original", nil). |
Note, FileName, and Skip appear in older configurations. The new gate does not use Note as expiry enforcement or FileName to choose its key file. Skip is a saving compatibility flag, not permission to bypass validation.
Themes and helpers
Built-in themes: Carmim, Plant, Plant-Dark, Dark, Light, Violet, Midnight, Amber, Indigo, and Amethyst.
| Library method | Result |
|---|---|
SetGetkeyTitle(value), SetGetkeyIcon(value) | Sets defaults and updates the active key UI. |
SetNotifStyle(style) / NotifStyle(style) | Selects one of the five notification styles. |
SetUIFont(font), SetTitleFont(font) | Sets gate font preferences. |
SetKeyTheme(name) | Stores the default key theme. |
GetKeySystemThemes() | Returns the theme-name list and theme tables. |
GetMethod(entry) | Appends a get-key menu entry and returns the method count. |
Saved keys and troubleshooting
The new window saves the accepted raw key to a deterministic filename derived from Folder and Title. It revalidates that key on the next launch. This differs from the previous signed key-set record and configurable FileName path.
If access fails, check Enabled, the trimmed key, CaseSensitive, custom validator return values, and provider connectivity. A phrase such as “Keys reset every 24 hours” is only a label; configure expiration in your provider or validator. If file APIs are unavailable, saving will not persist across launches.
See Window configuration, Full example, and AI agent.
Secure Mode
Understand XLQP Secure Mode, protected asset handling, Anti Logger blocking and whitelists, the client-side spoofers, compatibility requirements, and the limits of each.
AI agent
Create the new XLQP AI agent with planning, workspace tools, permission modes, model effort, callbacks, and task controls.