Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kevinpbuckley/VibeUE --skill metasoundsgit clone --depth 1 https://github.com/kevinpbuckley/VibeUEWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kevinpbuckley/vibeue/metasounds)<a href="https://agentmods.dev/skills/kevinpbuckley/vibeue/metasounds"><img src="https://agentmods.dev/badge/skills/kevinpbuckley/vibeue/metasounds/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kevinpbuckley/vibeue/metasounds"><img src="https://agentmods.dev/badge/skills/kevinpbuckley/vibeue/metasounds.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00063 | $0.05498 |
| Opus 5 | $0.00032 | $0.02749 |
| Sonnet 5 | $0.00013 | $0.01100 |
| Haiku 4.5 | $0.00006 | $0.00550 |
Grade A, and why
metasounds scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 481 lines — stays where its author put it; the contents beside it link to each section on GitHub.
🧠 Brains complement: IF an
unreal-engine-skills-managertool (external MCP) exists in this session, call it with{action: "load", skill: "audio-and-metasounds"}for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.
MetaSound Service Skill
Use this skill to create and edit MetaSound Source assets via Python.
import unreal
ms = unreal.MetaSoundService()
Key Concepts
- MetaSound Source — a procedural audio asset (
UMetaSoundSource) defined by a node graph. It replaces SoundCue for runtime-parameterisable sounds. - Node — a DSP processing block (Sine oscillator, Gain, Delay, etc.). Nodes have named input pins and output pins with associated DataTypes.
- NodeId — a GUID string returned by
add_node. Pass it to connect, remove, set_default, etc. - Graph I/O —
add_graph_input/add_graph_outputexpose values at the asset level (settable at runtime viaSet Float Parameter, etc.). - Standard interface — every Source created by this service comes pre-wired with:
On Play(Trigger output) — fires when the sound startsOn Finished(Trigger input) — call to stop the soundAudio:0(Audio input on the graph output node) — connect your audio signal here
Workflow
1 — Discover available nodes
# List all nodes whose class name or display name contains "Sine"
nodes = ms.list_available_nodes("Sine")
for n in nodes:
print(n.full_class_name, " inputs:", n.inputs, " outputs:", n.outputs)
2 — Create a MetaSound
r = ms.create_meta_sound("/Game/Audio", "MS_SineLoop", "Mono")
asset_path = r.asset_path # "/Game/Audio/MS_SineLoop"
3 — Find the built-in interface node IDs
all_nodes = ms.list_nodes(asset_path)
for n in all_nodes:
print(n.node_id, n.node_title, n.inputs, n.outputs)
# IMPORTANT: A MetaSound Source has MULTIPLE nodes with title "Output" —
# one per interface pin group (e.g. "On Finished" Trigger, "Out Mono" Audio).
# You MUST filter by the node whose inputs contain an Audio-type pin.
# Pin strings are "VertexName:TypeName" — the TypeName suffix after the last colon.
audio_out_node = next(
n for n in all_nodes
if n.node_title == "Output" and any(p.endswith(":Audio") for p in n.inputs)
)
audio_out_id = audio_out_node.node_id
# Drop the last :TypeName suffix to get the raw vertex name for connect_nodes
audio_in_pin = ":".join(audio_out_node.inputs[0].split(":")[:-1]) # "UE.OutputFormat.Mono.Audio:0"
# Input node — filter by class_name "Input.Trigger" to avoid matching graph input nodes
# (graph inputs also appear as "Input" nodes but with class "Input.Float", "Input.Bool", etc.)
input_node = next(n for n in all_nodes if n.class_name == "Input.Trigger")
input_node_id = input_node.node_id
on_play_pin = ":".join(input_node.outputs[0].split(":")[:-1]) # "UE.Source.OnPlay"
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 481 lines · 63 tokens per session scan A 72d9cded18e4
metasounds is a skill published in the GitHub repository kevinpbuckley/VibeUE (674 stars, last pushed 7d ago), licensed MIT. It adds 63 tokens to every session and 5,498 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
procedural-audio
CIEL's framework for procedural audio synthesis, spatial acoustics, and generative soundscapes from scene graphs. Zero static sample dependencies — pure DSP code emission.
voice-line
Use when generating TTS voice lines — NPC barks, narrator, dialogue. Covers where voice ids come from, a character-to-voice decision tree, stability/style/similarity guidance, and the multi-line dialogue case via texttodialogue. Trigger on "make a voice line", "narrator", "NPC says", "voice for the merchant", "TTS…
ambient-bed
Use when generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip. Non-melodic, low-energy, never draws attention. Wires as a looping AudioStreamPlayer on the Ambient bus with a marked seamless loop. Trigger on "ambient bed", "room tone", "background ambience"…
audio-direction
Use when defining the sonic identity — music style, instruments, SFX vocabulary, dynamic music plan. Outputs an audio bible at .summer/audio-bible.md. Trigger on "audio direction", "audio bible", "music style", "sound design", "what should it sound like", "dynamic music".
music-track
Use when generating a looped or cinematic music track. Loops are authored at >=30s with a marked loop point; cinematic tracks at >=60s linear. Trigger on "generate music", "make a calm track", "boss music", "title screen music", "main theme", "exploration loop", "combat track".
sound-effect
Use when generating short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts, environmental cues. Wires the resulting clip as an AudioStreamPlayer / 2D / 3D and auto-frees on finished. Trigger on "make a sword swing sound", "generate a UI click", "I need a footstep", "add a hit sound", "spawn an SFX".