# FZN Station Announcements Resource Pack

Purpose: custom proximity announcement sounds for a Minecraft Java server train station.

## What to put where

Drop your real audio file here:

assets/fzn/sounds/station/btp_1.ogg

Keep the file name lowercase. Minecraft resource pack paths are case-sensitive and should use lowercase names.

## Sound event name

Use this sound event in commands:

fzn:station.btp

## Basic command block command

Put this in an Impulse Command Block set to Needs Redstone:

playsound fzn:station.btp voice @a[x=100,y=64,z=-200,distance=..35] 100 66 -200 2 1 0

Change:
- x=100,y=64,z=-200 to your station centre
- distance=..35 to the proximity radius
- 100 66 -200 to the speaker location
- 2 to adjust volume/range

## Random multiple announcements

By default this pack expects one file:

btp_1.ogg

For three random files:

1. Add:
   - assets/fzn/sounds/station/btp_1.ogg
   - assets/fzn/sounds/station/btp_2.ogg
   - assets/fzn/sounds/station/btp_3.ogg

2. Replace:
   assets/fzn/sounds.json

   with:
   assets/fzn/sounds_random_3_example.json

3. Rename sounds_random_3_example.json to sounds.json.

Minecraft will then randomly select one of the three files when you run:

playsound fzn:station.btp voice @a[x=100,y=64,z=-200,distance=..35] 100 66 -200 2 1 0

## Audio requirements

Use .ogg format. Recommended export settings:
- OGG Vorbis
- Mono or stereo
- 44.1 kHz or 48 kHz
- Keep the file reasonably small for server pack download speed

## Server setup

Upload the zip somewhere reachable by direct HTTPS download, then add it to server.properties:

resource-pack=https://yourdomain.example/FZN_Station_Resource_Pack.zip
require-resource-pack=true

If you use resource-pack-sha1, generate the SHA1 hash of the final zip after adding the audio.

## Minecraft version

The included pack.mcmeta is set for modern Java 1.21-style versions and includes a supported_formats range. If your client says the pack is for the wrong version, replace pack.mcmeta with the matching template from version_templates.

Added sound event:
- fzn:station.depart
- fzn:station.traindepart

Closest-player command example:
execute positioned 100 64 -200 as @a[distance=..35,sort=nearest,limit=1] at @s run playsound fzn:station.depart voice @s ~ ~ ~ 1 1 1

Station broadcast/proximity command example:
playsound fzn:station.depart voice @a[x=100,y=64,z=-200,distance=..35] 100 66 -200 2 1 0
