top of page

How to Create Actions in Muxy Gateway


Muxy Gateway allows you to create in-game actions that are usable by Twitch stream viewers. These actions allow viewers to directly impact a streamer’s gameplay. Muxy Gateway categorizes these viewer actions as three distinct types: help, hinder, or neutral. Building these actions into your game create riveting and clippable in-stream moments and encourage viewership and engagement.


Here’s how we define these actions:

Help Actions: Provide positive benefits to the streamer. This can come in many forms, but often will be free items or buffs.


Hinder Actions: Get in the streamers way or make the game more difficult (troll). They can be traps, debuffs, buffs to enemies, or even removal of player items.


Neutral Actions: Actions that are neither explicitly helpful or a hindrance (cosmetic). Examples could include changing the color of enemies or environments, or adding Viewer names to enemies.


Here’s the flow of the Actions UI. Once this is completed, the Action occurs in-game:

Each action has an associated Gameplay Impact Rating on a scale from zero to five. Zero has the lowest impact to the game; an example of a "Zero Impact" action would be a Neutral Action to Rename an Enemy with Your Twitch Username. A "Five Impact" action has a dramatic effect on the game; an example would be completely knocking an ally off the field of play or causing the level to reset. When setting up Actions, you will need to set up both the Action Type and Gameplay Impact.


Total Actions Available: Actions with extremely high gameplay impact, you’ll want to set a limit to the number of actions that can be taken per session. A session is, for example, a battle or a match in a card game. You’ll want to set Actions that deeply impact the game to a low count. Actions that barely impact the game (like enemy renaming) can be set to infinite which, as a value, is Action.InfiniteCount.

Each action will also have an associated icon. We’re currently using a limited Font Awesome library that you can search here http://icon-search.muxy.io/. We are looking to expand that offering in the future.


In total each action has these fields associated with it: action type, action name, action description, gameplay impact, icon, total actions available in a session.


Action Name: This is the name of your action that is surfaced to viewers on the Action Tab


Action Description: This is the description of your action that appears in the tooltip and when a viewer confirms their action.


Gameplay Impact: This appears to users as a Coins amount based on what the streamer has selected as their coins amount per impact. Higher Coin counts will indicate higher gameplay impact. It also appears when a viewer is Confirming that they are taking an Action.


Icon: This icon appears next to your Action Name on the Actions tab to help visually describe the action.


Total Actions Available: This isn’t presented to viewers directly, however, when actions run out, the Action will be disabled in the extension.


When creating your actions there are a couple of limitations that need to be heeded. Following these requirements helps keep your Actions look great in the Muxy Gateway extension.

  • Max number of actions

  • 30 actions

  • Character limit of action titles

  • 32 characters

  • Character limit of action descriptions

  • 128 characters

Here are some guides on creating interactivity that will help you create and think about in-game actions.

Here are the steps for creating actions: Full develop

  1. We must create an array of the actions we want and their associated fields (action type, action name, action description, gameplay impact, icon, total actions available in a session)

  2. Then we must make a callback for when an action is used. Remember we called SDK.OnActionUsed(ActionCB) in the authentication section, so that is where ActionCB is registered at.


C#
Action[] Actions = 
{
    new Action 
    {
        Name = "Spawn Healthpack",
        Description = "Spawn a healthpack near the player",
        Icon = "fa6-regular:heart", // base64 encoded image
        ID = "healthpack",
        Category = ActionCategory.Help,
        State = ActionState.Available,
        Impact = 2,
        Count = Action.InfiniteCount
    },


    new Action 
    {
        Name = "Kill Player",
        Description = "Kill the player and make them restart the level!",
        Icon = "fa6-regular:skull-crossbones", // base64 encoded image
        ID = "killplayer",
        Category = ActionCategory.Hinder,
        State = ActionState.Available,
        Impact = 5,
        Count = 1
    }
}


private SDK.OnActionUsedDelegate ActionCB;


void SetupCallbacks()
{
    // ...


    ActionCB = (Used) =>
    { 
        if (Used.ActionID == "killplayer")
        {
            KillPlayer();
            ShowMessage(Used.Username + " had you killed!");
        }
    };
}


void Start()
{
    // ...
    SetupCallbacks();
    // ...
    SDK.SetActions(Actions);
}

And that’s all you need to set up Muxy Gateway Actions for your game. If you haven't yet, sign up for Muxy Gateway here.

Check out our supporting guide to help you create in-game UI for your extension: https://www.muxy.io/post/creating-in-game-ui-for-streamers-to-engage-with-their-audiences


Check out our Docs for implementing all of Muxy Gateway here: https://docs.muxy.io/docs/unity-gateway-tutorial


0 views0 comments

Recent Posts

See All
bottom of page