Skip to main content
Glama

play_sound

Starts a sound assigned to an editor-world audio component, matched case-insensitively by name. Use an optional start offset to begin playback at a specific point.

Instructions

Starts the sound already assigned to an audio component of the editor world, matched by object name (case-insensitive) against the first audio component of each actor; components in a running PIE world are not reached. start_time is an offset in seconds into the sound. A component without a sound is an error: assign one with set_audio_sound. Transient: nothing is saved, marked dirty or undoable. was_playing and playing are read just before and just after the call. Stop with stop_sound; to play an asset at a location without a component use play_sound_at_location.

Returns: { audio_component_name: string, playing: bool, was_playing: bool, sound_name: string, start_time: number, success: bool }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
start_timeNoOptional offset in seconds to start playback at
audio_component_nameYesName of the audio component to play sound on

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (not read-only, not destructive, not idempotent). The description adds real behavioral context beyond that: case-insensitive name matching against the first audio component per actor, PIE-world components unreachable, transient with no save/dirty/undo, and that was_playing/playing are sampled just before and after the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded, and each following sentence carries distinct information (offset, error path, transience, timing, alternatives). It is dense and long, but not padded; a small trimming could still improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description enumerates the returned fields (audio_component_name, playing, was_playing, sound_name, start_time, success). Combined with the error and transience notes, an agent has everything needed to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented and the baseline is 3. The description goes beyond by clarifying that start_time is an offset in seconds into the sound and that audio_component_name is matched case-insensitively against each actor's first audio component.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (starts) and resource (the sound assigned to an audio component in the editor world), plus matching semantics. It explicitly distinguishes itself from play_sound_at_location and stop_sound, so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternatives and the conditions that select them: use stop_sound to stop, use play_sound_at_location to play an asset at a location without a component. Also states the precondition that a component lacking a sound is an error and must be fixed via set_audio_sound.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools