Resonance channels

The resonance signal is how NeroNotes carries music around a base: emitters broadcast note and transport events (note_on, and play / stop / seek) on a channel, and nearby listeners hear them rendered client-side from the mod's registered sounds (all of which alias vanilla sound events in this release — no custom audio ships yet). Music is data, not audio — the server never streams sound. Note lengths are carried in every score, but this release voices notes as note_on one-shots; sustained note_off pairs are a later release.

The channel system (this page) is the server-side foundation. The in-world blocks that use it — Resonant Blocks and Resonators — play through it with synchronised playback.

Channel identity — owner-scoped, never global

A channel is identified by dimension + owner + name and displayed by its name. Names are only unique per owner: your workshop channel and a neighbour's workshop channel are different channels. There is no global channel namespace, so nobody can squat or hijack a name you use.

Channel names are validated server-side: at most 32 characters, no control characters, no § formatting codes.

Listening vs. controlling

  • Anyone in range may listen. Resonance events reach subscribed players within the configured emit range (signal.emit_range_blocks, default 64 blocks, capped at 128) in the channel's dimension.
  • Only the owner, trusted players, or an operator may control a channel: emitting notes, transport (play / stop / seek), and renaming all require it. Every check runs on the server — the client never decides what it may control, and proximity never grants permission.

The trust list

Each channel carries a trust list — players its owner has granted control. Trusted players can emit and drive the transport; only the owner or an operator can edit the trust list itself, rename in their stead, or delete the channel. The owner is implicitly trusted and never appears on the list.

An honest limitation of this release: the trust list, renaming and deletion are enforced server-side and cleared correctly by data erasure, but 0.1.0 ships no command or GUI to edit them — so in practice a channel answers to its owner and operators, and the "trusted" role is not yet reachable in normal play. A channel-management surface is a later release.

The audio-spam cap

To keep shared areas pleasant, the server caps how many channels can be playing at once within a chunk radius (signal.max_playing_channels_per_chunk_radius, default 3). A play request over the cap is quietly refused — no chat spam, no log spam. Stopping a channel frees its slot.

Persistence and your data

Channel definitions (dimension, owner, name, trust list) are stored in the world save, guarded by Neroland Core's saved-data recovery so a corrupted file cannot crash-loop the server. Channel ownership and trust entries are part of a player's personal data: when a player's data is erased through Core's erasure tooling, their channels and every trust-list entry naming them are removed, while other players' channels are untouched. See PRIVACY.md.

Configuration

KeyDefaultMeaning
signal.emit_range_blocks64 (16–128)Broadcast range for resonance events
signal.max_playing_channels_per_chunk_radius3 (1–16)Concurrently playing channels allowed per chunk radius

Both keys are server-authoritative: in multiplayer the server's values win.

Search across every Nero mod wiki.