Shows

Shows let you create time-coded, multithreaded sequences of cues (scheduled events). A show is a list of cues that run at precise times relative to when the show is started. Because shows run multithreaded, in-game lag (TPS drops) will not affect cue timing - audio and events stay in sync.

This document explains timecodes, supported trigger types, and the commands you use to create, manage, and edit shows.

Basic usage

Create a new show named demo:

Command Example
/openaudio show create demo
<>Required
[]Optional

Add cues to the show:

Command Example
/openaudio show add <data...>
<>Required
[]Optional

Get the show status:

Command Example
/openaudio show info demo
<>Required
[]Optional

Start or cancel a running show:

Command Example
/openaudio show start demo CMD:/openaudio show cancel demo
<>Required
[]Optional

Open the show editor GUI:

Command Example
/openaudio show gui demo
<>Required
[]Optional

Timecodes

A timecode is an offset from the moment a show is started. OpenAudioMc supports these formats:

  • m - minutes.
    Example: 1m = 1 minute, 1.5m = 1 minute 30 seconds.
  • s - seconds.
    Example: 1s = 1 second, 1.5s = 1.5 seconds (1 second 500 milliseconds).
  • ms - milliseconds.
    Example: 100ms = 100 milliseconds.
  • t - Minecraft ticks (1 tick = 50 milliseconds).
    Example: 20t = 1 second.
  • HH:mm:ss - hours:minutes:seconds.
    Example: 00:05:00 = 5 minutes.

Timecodes are relative to when you issue the start command for the show.

Supported trigger types

Triggers determine what happens when a cue fires. Common built-in trigger types:

  • command - Executes a console command. All following arguments are joined to form the command.
    Example:

    Command Example
    /openaudio show add demo 0s command say I fire at the start
    <>Required
    []Optional
  • chat - Sends a chat message to players matching a selector. The first argument is the selector; the rest is the message. Selectors follow standard Minecraft selector syntax (see selectors.md).
    Example:

    Command Example
    /openaudio show add demo 1s chat @a[region=spawn] &7Welcome to spawn!
    <>Required
    []Optional
  • actionbar - Like chat, but displays the message in the actionbar.
    Example:

    Command Example
    /openaudio show add demo 1s actionbar @a &eHeads up!
    <>Required
    []Optional
  • custom - Implement and register your own Java-based show triggers via the API (requires plugin development).

Notes:

  • For chat and actionbar, the first argument after the trigger type MUST be a player selector; everything after is treated as the message text.

Examples

Add three cues to demo - at start, after 1 second, and after 1 minute:

Command Example
/openaudio show add demo 0s command say I fire at the start CMD:/openaudio show add demo 1s command say I fire after one second CMD:/openaudio show add demo 1m command say I fire after one minute
<>Required
[]Optional

Full workflow example:

  1. Create the show:
    Command Example
    /openaudio show create demo
    <>Required
    []Optional
  2. Add cues:
    Command Example
    /openaudio show add demo 0s command say Welcome to the show! CMD:/openaudio show add demo 10s chat @a[region=spawn] &7Enjoy the music! CMD:/openaudio show add demo 00:01:00 actionbar @a &eOne minute in...
    <>Required
    []Optional
  3. Start the show:
    Command Example
    /openaudio show start demo
    <>Required
    []Optional
  4. Inspect the show:
    Command Example
    /openaudio show info demo
    <>Required
    []Optional
  5. Cancel the show (if needed):
    Command Example
    /openaudio show cancel demo
    <>Required
    []Optional

GUI editing

Use the GUI to visually inspect and edit a show:

Command Example
/openaudio show gui
<>Required
[]Optional

From the GUI you can:

  • View the show state and list of cues
  • Scroll through cues
  • Delete cues
  • Start/cancel the show

Tips & behavior

  • Shows are multithreaded: cue timing is not affected by server TPS drops.
  • Timecodes are measured from the moment you run /openaudio show start.
  • Use command cues for server-side actions, chat/actionbar for player-visible messages, or implement custom triggers for special behavior.
  • When composing messages for chat or actionbar, remember the first argument after the trigger type must be a Minecraft player selector.

If you'd like, I can also:

  • Convert the examples to short runnable demo files,
  • Or produce a ready-to-merge README update in your repository using this format.

Permissions

openaudiomc.commands.show

This permission is required to use the /oa show command

Default access level: op