Launcher Login Plugin


Object Preview
Launcher Login Plugin Preview
Launcher Login System
Handles login, verification, session restore, access checks, and product downloads
Developer Edition Object
Requires Launcher Login Plugin
Non-Visual System Object

The Launcher Login object is a non-visual system object for your Custom Launcher that handles user authentication, account verification, session persistence, entitlement refreshes, access checks, and product download retrieval.

Unlike buttons, labels, and other interface elements, this object does not appear as an interactive control to the end user. Instead, it acts as the secure logic bridge between your launcher flow and your configured web login system. In practical terms, it is the object you use when you want players to sign in, restore a saved session, check if they own a product, verify whether they can access premium content, or pull down download information for entitled files.

Pro Tip

The Launcher Login object is ideal for building account-driven launchers, premium content gateways, customer portals, and member-only download experiences inside a Custom Game Launcher.

Launcher Login Overview

The Launcher Login object is designed to centralize user identity and entitlement logic in one place. Rather than scattering login checks across multiple pages, you can configure one object and then let the rest of your launcher react to its events and mapped variables.

What it is used for

  • Signing users into your launcher account system
  • Verifying email codes after registration
  • Saving a session so users can auto-login next time
  • Checking if a user has a role or owns a product
  • Refreshing roles, products, and download data after login
  • Powering gated pages and download areas in a Custom Game Launcher

How it fits into your launcher

A common setup is to place the Launcher Login object on your first page, add input objects for email and password, add buttons for login and registration, then let this object handle the account flow behind the scenes. Other objects then react to its state. For example:

  • A Button can trigger a login action.
  • A Text Label can display the logged-in username from a mapped variable.
  • A List Box can be populated with entitled downloads after a successful account refresh.
  • A Page change can send the user to a members area once access is confirmed.

Important Notice

This object is non-visual. Its placeholder image in the editor helps you identify and configure it, but it is not intended to function as a visible control in the final launcher interface.

Default Settings

When added to your launcher, the Launcher Login object starts with a practical default configuration that is ready to be pointed at your login system.

Property Default Value
Name LauncherLogin_1
Base URL Blank by default
API Key Blank by default
Login Endpoint /api/v1/auth?action=login
Verify Endpoint /api/v1/auth?action=verify
Register Endpoint /api/v1/auth?action=register
Resend Verification Endpoint /api/v1/auth?action=resend_verification
Logout Endpoint /api/v1/auth?action=logout
Entitlements Endpoint /api/v1/me
Downloads Endpoint /api/v1/me
Access Check Endpoint /api/v1/access/check
Forgot Password Endpoint /api/v1/auth?action=forgot_password
Reset Password Endpoint /api/v1/auth?action=reset_password
HMAC Enabled Disabled
Allowed Clock Skew 300 seconds

Properties

The Launcher Login object is configured through a set of focused property groups. For beginners, the most important fields are the Base URL, API Key, and your variable mappings.

Connection

  • Base URL: The root address of your Launcher Login web script. This should not have a trailing slash.
  • API Key: The key generated by your Launcher Login web script. This is normally required and should match your server-side setup.

Endpoints

  • Login: Sends sign-in requests.
  • Verify: Submits an email verification code.
  • Register: Creates a new user account.
  • Resend Verification: Requests another verification code.
  • Logout: Ends the current user session.
  • Entitlements: Retrieves the current user profile, roles, products, and related account data.
  • Access Check: Checks if the current user is allowed to access a specific feature or resource.
  • Downloads: Retrieves download data, typically from the same user data endpoint.
  • Forgot Password: Starts a reset request for an email address.
  • Reset Password: Submits a new password using a reset token.

Most users will keep the default endpoint paths unless their login system has been customized.

HMAC Optional Security

  • Enable HMAC Signing: Turns signed request mode on if your web script expects it.
  • Public Key: Your public key for signed requests.
  • Secret Key: Your secret key for signed requests.
  • Allowed Clock Skew: A timing tolerance in seconds, normally left at 300.

Pro Tip

Only enable HMAC if your login setup specifically requires it. For most beginners, the standard Base URL and API Key setup is the place to start.

Variable Mapping

This is where the object becomes truly useful. When a login or refresh succeeds, the object stores returned values into your chosen launcher variables.

Mapped Variable Purpose Default
Login Success Stores 1 on success and 0 on failure login_ok
Username Stores the current username user_name
Email Stores the current email address user_email
Roles JSON Stores user roles in JSON format user_roles
Products JSON Stores owned products in JSON format user_products
Downloads JSON Stores entitled downloads in JSON format product_downloads
Token Stores the session token user_token
Verified Stores 1 if the account is verified user_verified
User ID Stores the user identifier user_id

All Possible Events

The Launcher Login object exposes a broad event set so your launcher can react at every major point in the account flow.

Event What it means
onLoginStart Fires before a login request is sent. Perfect for showing a loading state or disabling your sign-in button.
onLoginSuccess Login succeeded and mapped variables have been updated.
onLoginFailed Login failed. Use this to show an error message or return the user to the login form.
onLoginSkipped Auto-login was attempted but no saved session was found.
onLogout Logout completed and any local session state has been cleared.
onRegisterSuccess Account registration succeeded.
onRegisterFailed Account registration failed.
onVerificationRequired The account must be verified before login can continue.
onVerified Email verification succeeded.
onResendSuccess A new verification code was sent successfully.
onForgotSuccess A password reset request was sent successfully.
onResetSuccess The password was successfully changed.
onEntitlementsReady Roles, products, and downloads have been refreshed and are ready to use.
onAccessAllowed An access check returned allowed.
onAccessDenied An access check returned denied.
onDownloadsReady Downloads data is ready after a query or filter operation.
onNoDownloads No downloads were available for the requested filter.
onRateLimited The server responded with a rate limit condition.
onEndpointFailed A secondary request failed, such as entitlements refresh or password reset submission.

All Possible Actions

The Launcher Login object supports a strong set of built-in actions for authentication, account setup, entitlement checks, saved sessions, and password recovery.

Action What it does
Launcher: Query Login Sends the login request using a username or email and password, then stores returned values into the object’s mapped variables.
Launcher: Query Verify Submits an email address and verification code to confirm a newly created account.
Launcher: Query Downloads Retrieves entitled download data. You can optionally filter to one product SKU.
Launcher: Register Registers a new account using email, password, first name, and last name.
Launcher: Resend Verification Requests another verification code for the specified email address.
Launcher: Logout Logs out the current user.
Launcher: Refresh Entitlements Refreshes the current user’s roles, products, and downloads from the server.
Launcher: Check Role Checks whether the current user has a specific role slug.
Launcher: Check Product Checks whether the current user owns a specific product SKU.
Launcher: Save Session Stores a session token locally so the launcher can restore the session later.
Launcher: Try Auto Login Attempts to restore a saved session and sign the user in automatically.
Launcher: Clear Saved Session Removes any saved session so automatic sign-in no longer occurs.
Launcher: Session Exists? Checks if a saved session is present and stores the result into a variable as 1 or 0.
Launcher: Forgot Password Starts a password reset flow for an email address.
Launcher: Reset Password Submits a reset token and new password to complete the password reset.
Launcher: If Has Role Checks if the user has a role and can optionally halt the rest of the action sequence if they do not.
Launcher: If Has Product Checks if the user owns a product and can optionally halt the rest of the action sequence if they do not.
Launcher: If Access Allowed Checks if the current user is allowed to access a given reference, can optionally halt the sequence if denied, and can store the result into a variable.

Building Logic with Events and Actions

The Launcher Login object becomes most powerful when it is treated as the account brain of your launcher. One action kicks off a request, one event confirms the result, and other objects respond from there.

Common logic patterns

  • Login flow: Button click → Launcher: Query Login → onLoginSuccess → change page and refresh user-facing labels.
  • Verification flow: Register → onVerificationRequired → show verification page → Launcher: Query Verify → onVerified.
  • Premium gating: Launcher: If Has Product or Launcher: If Access Allowed → show premium page or display locked message.
  • Silent restore: On Launcher Start → Launcher: Try Auto Login → onLoginSuccess or onLoginSkipped.
  • Download center: onEntitlementsReady → Launcher: Query Downloads → onDownloadsReady → populate UI from stored data.

Because the object writes back to variables, you can build a Custom Launcher where text labels, buttons, page changes, and conditional actions all respond to the signed-in user state without repeating the same setup everywhere.

Example 1: Basic Login Page for Beginners

Create a straightforward sign-in flow for your Custom Game Launcher.

  1. Add a Launcher Login object to the page.
  2. Enter your Base URL and API Key in the object properties.
  3. Add two Input Box objects: one for email and one for password.
  4. Add a Button object labelled Login.
  5. On that button click, run Launcher: Query Login and feed in the values from your input objects.
  6. Under onLoginStart, show a loading panel or disable the login button.
  7. Under onLoginSuccess, change to your members page and update a Text Label using the mapped username variable.
  8. Under onLoginFailed, show an error message label such as “Login failed, please check your details.”

Example 2: Locked Premium Downloads Area

Only allow entitled users to access a premium download page.

  1. After login, run Launcher: Refresh Entitlements.
  2. When onEntitlementsReady fires, run Launcher: If Has Product using your premium SKU.
  3. If the user owns the product, continue the action sequence and change to your premium downloads page.
  4. If they do not own the product, halt the sequence and display a page or label explaining that access is restricted.
  5. Once on the premium page, run Launcher: Query Downloads for that SKU.
  6. Use onDownloadsReady to populate your interface with downloadable items.
  7. Use onNoDownloads to display a friendly fallback state if no files are currently assigned.

Session and Auto Login Flow

One of the nicest user experience upgrades you can build is a saved session. After a successful login, you can store the token locally so the user does not need to type their credentials every time.

Recommended setup

  • After onLoginSuccess, run Launcher: Save Session using your mapped token variable.
  • On launcher start, run Launcher: Try Auto Login.
  • If a session exists and is accepted, your launcher can skip the manual login page entirely.
  • If no session exists, onLoginSkipped lets you gracefully show the normal login page.
  • When the user clicks a logout button, use Launcher: Logout followed by Launcher: Clear Saved Session.

This is a great pattern for launchers that open frequently and need to feel polished rather than constantly nagging the user for credentials like an overexcited nightclub bouncer.

Registration, Verification, and Password Recovery

The Launcher Login object also supports a full account onboarding loop. This means you can let a new user create an account, verify their email, resend verification codes, and reset their password, all without leaving the launcher experience.

Suggested page structure

  • Login Page: Email input, password input, login button, forgot password button.
  • Register Page: Email, password, first name, last name, register button.
  • Verification Page: Email input, verification code input, verify button, resend code button.
  • Reset Page: Email input or token flow, new password input, reset button.

That structure works very well for a clean Custom Launcher account area and keeps each task easy for new users to understand.

Custom CSS

The Launcher Login object itself is a non-visual plugin object, so it does not expose a visual surface for Custom CSS styling in the same way that a button, list box, or image object does.

Important Notice

Custom CSS is not applicable to the Launcher Login object itself because there is no visible rendered control to style. If you want to style your login experience, apply Custom CSS to the visual objects around it, such as Input Boxes, Buttons, Labels, panels, and other interface elements used to build the account pages.

Interactive visual styling example for a login button

Below is a live example of the kind of visual polish you can apply to the Button object that triggers your Launcher Login actions. This keeps the account flow looking premium while the Launcher Login object handles the logic behind the scenes.

Pro Tip

This example is intentionally applied to a visual object in the login interface rather than the Launcher Login plugin itself. That is the correct approach for non-visual plugin objects.

css

 /* Developer Edition Custom CSS Example for a login button */
 /* Apply this to the Button object that triggers Launcher: Query Login */
 /* Visual polish only. Avoid geometry overrides. */
 background: linear-gradient(180deg, rgba(30,41,59,0.94), rgba(15,23,42,0.96)) !important;
 border: 1px solid rgba(96,165,250,0.30) !important;
 border-radius: 12px !important;
 box-shadow: 0 12px 24px rgba(0,0,0,0.22), inset 0 0 18px rgba(59,130,246,0.06) !important;
 color: #eaf2ff !important;
 transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease !important;
 :hover {
 border-color: rgba(96,165,250,0.58) !important;
 box-shadow: 0 18px 34px rgba(0,0,0,0.28), 0 0 20px rgba(59,130,246,0.14) !important;
 }
 :active {
 box-shadow: 0 8px 18px rgba(0,0,0,0.24), 0 0 12px rgba(59,130,246,0.10) !important;
 }
 ::before {
 content: "" !important;
 position: absolute !important;
 inset: 0 !important;
 background: linear-gradient(135deg, rgba(59,130,246,0.18), rgba(125,211,252,0.05)) !important;
 pointer-events: none !important;
 }
 ::after {
 content: "" !important;
 position: absolute !important;
 inset: 1px !important;
 border-radius: 11px !important;
 box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), inset 0 0 18px rgba(59,130,246,0.05) !important;
 pointer-events: none !important;
 }
 

Tips for New Users

  • Start with one Launcher Login object per launcher unless you have a very specific advanced setup.
  • Configure the Base URL and API Key first before wiring any buttons or pages.
  • Use clear variable names so labels and conditions stay easy to understand later.
  • Build your login page first, then add registration, verification, premium checks, and downloads once the core sign-in flow works.
  • Use the event system to react to outcomes instead of trying to cram everything into one giant action chain. Giant action chains are how sane men end up staring at the wall at 2 AM.

Summary

The Launcher Login object is the account control center for a Custom Game Launcher. It is purpose-built for sign-in flows, verification, session restore, entitlement syncing, access control, and download delivery. When combined with your page logic, buttons, labels, and other objects, it lets you create a launcher that feels like a connected account platform rather than a static front end.

For most projects, the best path is simple: configure the object, map your variables, hook up your login button, respond to onLoginSuccess, and then expand from there into premium access, auto-login, and downloads.