Prefab

UI for game commands and cheats

Overview

Here is everything needed to use the Admin Flow Feature PrefabFeature Prefab - The drag-and-drop template for a specific Beamable product feature in the "Beamable SDK for Unity". Or watch this video.

The purpose of this feature is to offer the game maker an in-game UI for executing game commands and cheats.

With the power of built-in and custom console commands, game makers can expose any c# functionality to the Admin console. This helps during game development, game debugging, and customer support of live game titles.

Usage

The Admin Flow can be opened at runtime in multiple ways...

  • Within the Unity Editor, press the “~” key
  • Within a Mobile Build, use a "three-finger swipe-up gesture"

The User Interface

When setup properly, the player's user interface in the game project will be as follows.

The Beamable "Admin Flow" UI in the Unity Game WindowThe Beamable "Admin Flow" UI in the Unity Game Window

The Beamable "Admin Flow" UI in the Unity Game Window

Steps

Follow these steps to get started.

Step

Detail

  1. Open the "Toolbox" Window

• Unity → Window → Beamable → Open Beamable Toolbox

  1. Add the "Admin Flow" Prefab

• Drag this Prefab from the Beamable Toolbox Window to the Unity Hierarchy Window

Here is the "Beamable" menu as seen in Unity.

The “Beamable” MenuThe “Beamable” Menu

The “Beamable” Menu

Here is the feature Prefab as seen in the Beamable Toolbox.

The Beamable "Admin Flow" in the Beamable Toolbox WindowThe Beamable "Admin Flow" in the Beamable Toolbox Window

The Beamable "Admin Flow" in the Beamable Toolbox Window

📘

Related Guides

A common use case for the feature is covered in the guides.

Admin Commands

Once the Admin Flow is open, type an admin command into the input field and press return.

There are built-in Beamble admin commands and game makers can create custom admin commands for additional functionality.

Using Beamable Admin Commands

Command

Detail

help

Shows the list of all admin commands

TRACK_PAYMENT

Track a test payment audit

ECHO <message>

Repeat message to console.

WHERE <command>

Find where a specific console command was registered from, if it was registered with a DBeamConsoleCommand attribute

account_toggle

emit an account management toggle event

account_list

list user data

IDFA

print advertising identifier

RESET

Clear the access token and start with a fresh account

LOCALNOTE [<delay> [<title> [<body>]]]

Send a local notification. Default delay is 10 seconds.

TIMESCALE <value> | variable

Sets the current timescale

SUBSCRIBER_DETAILS

Query subscriber details

DBID

Show current player DBID

ENTITLEMENTS <symbol> <state>

Show current player entitlements

HEARTBEAT <dbid>

Get heartbeat of a user

LOGIN_ACCOUNT <email> <password>

Log in to the DBID designated by the given username and password

MAIL_GET <category>

Get mailbox messages

MAIL_UODATE <id> <state> <acceptAttachments>

Update a mail

REGISTER_ACCOUNT <email> <password>

Registers this DBID with the given username and password

EXPIRE_TOKEN

Expires the current access token to trigger the refresh flow

CORRUPT_TOKEN

Corrupts the current access token to trigger the refresh flow

TEST-ANALYTICS

Run 1000 events to test batching/load

IAP_BUY <listing> <sku>

Invokes the real money transaction flow to purchase the given item_symbol.

IAP_PENDING

Displays pending transactions

Creating Custom Admin Commands

Game makers can create custom admin commands for additional functionality.

Code

📘

Beamable SDK Examples

This and all examples are available for download at GitHub.com/Beamable_SDK_Examples

using Beamable.ConsoleCommands;
using UnityEngine;

namespace Beamable.Examples.Features.AdminFlow
{
    [BeamableConsoleCommandProvider]
    public class CustomConsoleCommandProvider 
    {
        [BeamableConsoleCommand ("Add", "A sample addition command", "Add <int> <int>")]
        public string Add(string[] args)
        {
            var a = int.Parse(args[0]);
            var b = int.Parse(args[1]);
            return "Result: " + (a + b);
        }
    }
    
    /// <summary>
    /// Demonstrates <see cref="AdminFlow"/>.
    /// </summary>
    public class AdminFlowCustomCommandExample : MonoBehaviour
    {
        //  Unity Methods  --------------------------------
        protected void Start()
        {
            Debug.Log($"Start() Instructions...\n" + 
                      " * Run The Scene\n" + 
                      " * Type '~' in Unity Game Window to open Admin Console\n" + 
                      " * Type 'Add 5 10'\n" + 
                      " * See 'Result: 15' in Unity Console Window\n");
        }
    }
}

Advanced

This section contains any advanced configuration options and workflows.

Force-Enabled

Within the Unity Editor, press the “~” key to open the in-game console. This always works, regardless of player privileges or "Admin Flow" settings.

On device, use a three-finger swipe gesture to open the in-game console. This only works if the player has sufficient privileges, or if the "Admin Flow" settings specify the console should always be available.

📘

Best Practice

These hints make efficent use of concepts and workflows.

  • For security reasons, it is not recommended to allow a players to access the in-game console. Beamable has precautions in place

The in-game console, on-device, will only appear if the force-enabled checkbox is true, or if the current player's account has tester, developer, or admin privileges.

The Portal allows game makers to grant player privileges. This privilege-requirement only applies to device, not the Unity Editor.


Did this page help you?