Skip to content

Radio Tiers

A tier is a YAML file in plugins/<edition>/radios/. It defines the item, access rules, playback controls, sound behavior, hologram, particles, protection, and recipe for one radio type.

Bundled tiers

  • default-radio.yml — normal owner/trusted-player radio with a 32-block default range.
  • admin-radio.yml — administrator-controlled radio with a 48-block default range.

Free loads only these two exact tiers. Pro can create and load additional tier files.

Creating a Pro tier

/radio tier create event-stage

This creates radios/event-stage.yml from the default template. Edit it, then run:

/radio reload

Tier IDs may contain lowercase letters, digits, hyphens, and underscores, up to 64 characters.

Identity and texture

id: default-radio
display-name: "<gradient:#66ff9e:#d6ff7a>Default Radio</gradient>"

head:
  texture-type: BASE64
  texture: ""

texture-type accepts BASE64 or URL. A URL must point directly to textures.minecraft.net. An empty texture uses the embedded radio appearance.

Access

access:
  place-permission: "proximityradio.use"
  control-permission: "proximityradio.use"
  control: TRUSTED_PLAYERS
  break-owner-only: true
  allow-connect: true

control accepts ADMIN_ONLY, TRUSTED_PLAYERS, or ALL. Administrative break permission always bypasses owner-only breaking.

allow-connect is a Pro-only setting. It lets an owner merge this tier's radios with /radio connect. Both radios must have the same tier and be owned by that player. proximityradio.admin.connect bypasses ownership and this setting, but never the same-tier requirement. Existing Pro tier files without this key default to false. See Connected Radios.

Playback

playback:
  enabled-on-place: false
  disable-on-server-restart: true
  allow-loop: true
  allow-shuffle: true
  allow-skip: true
  allow-previous: true
  allow-pause: true
  allow-seek-with-client-mod: true
  pause-when-empty: false
  empty-check-radius: 32.0
  allowed-tracks: ["*"]
  vanilla-join-behavior: WAIT_FOR_SYNC
  desynchronization-alert: true
  synchronization-alert: true

desynchronization-alert controls chat messages sent to vanilla listeners when their playback no longer matches the radio timeline. synchronization-alert independently controls chat messages sent when their playback synchronizes again. Both default to true, including for existing tier files where the keys are absent. Player preferences can further suppress either category; see Controls and Synchronization.

These settings affect chat alerts only. They do not hide synchronization information in the radio menu or action bar.

Use explicit track IDs instead of "*" to create a restricted station:

allowed-tracks: [lobby_theme, town_news, night_ambience]

Sound

sound:
  proximity: true
  directional-audio: true
  max-distance: 32.0
  allow-distance-change: true
  minimum-distance: 4.0
  falloff: LINEAR
  default-volume: 60
  minimum-volume: 0
  maximum-volume: 100
  allow-global-volume-change: true
  allow-private-volume-change: true
  default-private-volume: 40
  minimum-private-volume: 0
  maximum-private-volume: 100

Shared volume belongs to the placed radio. Private volume belongs to a listener globally. Radio range is saved per placed radio and stays separate from both volume values.

Hologram and action bar

hologram:
  enabled: true
  height: 1.05
  view-distance: 40.0
  update-interval-ticks: 20
  scale: 0.75
  line-width: 360
  background-color: "#900B0C18"
  shadow: true
  see-through: false
  lines:
    - "<gradient:#66ff9e:#d6ff7a><bold>{radio_name}</bold></gradient>"
    - "<green><bold>{track}</bold></green> <white>{elapsed}/{duration}</white>"
    - "<gray>Next:</gray> <yellow>{next_track}</yellow>"

action-bar:
  enabled: true

Hologram placeholders include:

{radio_name} {tier} {state} {track} {artist}
{elapsed} {duration} {remaining} {next_track}
{volume} {listeners} {next_sync} {desynchronized}
{loop} {shuffle}

Particles and protection

grief-prevention:
  protect-from-pistons: true
  protect-from-explosions: true
  protect-from-entity-block-changes: true

particles:
  enabled: true
  interval-ticks: 10
  view-distance: 32.0
  ambient-area:
    enabled: false
    interval-ticks: 40
    radius: 6.0
    particles-per-burst: 3

Protection also covers the block supporting a floor or wall radio.

Crafting recipe

crafting:
  enabled: true
  ingredients:
    1: "minecraft:iron_ingot"
    2: "minecraft:copper_ingot"
    3: ""
    4: "minecraft:note_block"
    5: "itemsadder:myitems:radio_core"
    6: "minecraft:amethyst_shard"
    7: ""
    8: "minecraft:redstone"
    9: ""

Slots match a 3×3 crafting table:

1 2 3
4 5 6
7 8 9

Supported prefixes are minecraft: and itemsadder:/ia:. Custom ingredients use exact item matching.