Skip to content

RPC Calls

The methods the rpc action can invoke. Every call is an object with an id you generate, type: "call", the method, and an args list:

json
{
  "id": "b2d3fd23-380a-4aa6-9284-ae61a40eed9e",
  "type": "call",
  "method": "string",
  "args": []
}

The method and corresponding args are defined below.

effectResponse call

Reports the outcome of a requested effect. request must be the requestID of the originating effect-request.

Each entry in args is shaped like this:

One of 17 shapes:

essentially Success + MenuUnavailable rolled into one often used for effects that can only happen a limited number of times (granting items that can only be acquired once, increasing max health when decreasing it isn't an option, etc)

same as success but the viewer should not be notified until timeRemaining has passed

"treat the same as DelayEstimated tbh"

"like DelayEstimated but without any information on how long it might be"

"like DelayUnknown but assumed to be a very very long time"

like TimedEnd but the streamer explicitly canceled it - it probably ended early - consider refunding?

like TimedCanceled but ending the effect failed - effect might be stuck on or the game may be in some degraded state

refund & hide effect

alias for FailPermanent

For challenge effects, when a viewer's effect was successfully applied and the streamer failed the challenge

effectReport call

Reports availability or visibility changes for effects so viewers see which effects can be redeemed.

Each entry in args is shaped like this:

idstring
idsstring[]
stampnumber
status'menuAvailable' | 'menuUnavailable' | 'menuVisible' | 'menuHidden'
effectType?GamePackEffectType
idType?'effect' | 'category' | 'group'deprecated

native client backwards compat; see identifierType

identifierType?'effect' | 'category' | 'group'
message?string

A human-readable reason for the reported status (e.g. why an effect is unavailable)

messageID?string

An error ID denoting the reason for the reported status.

packMetadataChanged call

Reports live metadata from the game such as character names, selected level, etc.

args takes 2 entries, shaped like this:

genericEvent call

Emits one of various one-off events about the state of the game or actions invoked by the streamer.

args takes exactly one entry, shaped like this:

One of 3 shapes:

addEffects call

Adds custom effects to the game session menu.

args takes exactly one entry, shaped like this:

internal?boolean

removeEffect call

Removes custom effects from the game session menu.

args takes exactly one entry, shaped like this:

internal?boolean