The Music app
Music comes installed on Wolfden Phone and Wolfden Phone Pro. Players can:
- Listen to radio stations you configure.
- Add songs by link: a direct
httpsaudio link, such as an mp3 or a stream, or a YouTube link when you allow them. - Build a library and playlists.
- Control playback from Now Playing, with shuffle and repeat, and from the lock screen, Control Center and the Live Island.
- Share a song or playlist in Messages, or with someone nearby over NovaDrop. Stations can be shared in Messages.
- Use a song as their ringtone, with Set as Ringtone on a song or Settings → Sounds → Ringtone → Custom Link.
No music ships with Wolfden Phone. Music starts with no radio stations and empty libraries until you add streams and songs you have the rights to use; see Add stations and songs.
Playback continues with the phone closed and pauses for calls. Music left paused for 10 minutes stops by itself. The library belongs to the phone's Nova Account, or to the phone without one.
Who hears the music
| Output | Who hears it | How it sounds |
|---|---|---|
| The phone speaker | The player and everyone within 8 metres | Quiet, loud only up close, barely through walls, and thin |
| Paired NovaBuds | Only the wearer | Full and unchanged |
| Bluetooth speakers | Everyone around the speaker, instead of the phone | Louder and fuller; see Bluetooth speakers |
Everyone nearby hears the same point in the song, as loud as that output sounds where they stand. Walls muffle the phone speaker and Bluetooth speakers. Players wearing NovaBuds with Noise Cancellation hear other players' music only faintly.
A phone is a small speaker on purpose: to fill a room or a party, players use a Bluetooth speaker.
A phone set down keeps playing. Music follows the phone, not the player. A phone dropped on the ground plays out loud from where it lies, even if its owner wears NovaBuds, and the owner hears it from there too. If the phone is gone, for example in another player's pockets or a stash, the music stops within a few seconds.
Streaming uses mobile data (about 1 MB per minute), or nothing on Wi-Fi. Music stops when the data runs out.
Configure Music
Edit config/music.lua:
| Setting | Default | What it does |
|---|---|---|
stations | {} (none) | The radio stations. Use https stream links |
links | true | Whether players can add songs by link |
linkHosts | nil (any host) | Limit song links to hosts you trust |
youtube | false | Allow YouTube links |
phoneSpeaker | 8 m, 35% | How the phone's own speaker sounds; see below |
tones | true | Shape each output's sound (thin phone, bass-heavy Boom); false plays everything unshaped |
pauseTimeout | 600 | Seconds before paused music stops; 0 never stops it |
defaultSongs / defaultPlaylist | {} / nil | The songs every library starts with, and the name of a playlist of them |
maxTracks / maxPlaylists | 200 / 30 | Library limits |
The phone speaker's sound profile:
phoneSpeaker = { radius = 8.0, volume = 0.35, falloff = 2.0, walls = 0.15, tone = 'phone' },| Field | What it does |
|---|---|
radius | How far players hear it, in metres |
volume | Its loudest, from 0 to 1. A Nova Boom at full volume is 1.0 |
falloff | How it fades with distance: 1 fades evenly, higher is loud only up close, lower stays loud until near the edge |
walls | How much is left with no line of sight, from 0 to 1 |
tone | How it sounds: phone, mini, boom or flat |
Tones. The phone speaker sounds thin, a Nova Mini a little fuller, a Nova Boom has extra bass, and NovaBuds play flat. Only songs by direct link whose host allows cross-origin requests (CORS) can be shaped. Other links and YouTube still play, unshaped.
Song links and privacy. When a song plays out loud, every player nearby loads the same link, so the host behind it sees their IP addresses. Use linkHosts to allow only hosts you trust. If you set it, also allow the host of your stations and default songs.
YouTube. With youtube = true, players can add YouTube links (videos, Shorts, youtu.be and YouTube Music), which play in a hidden YouTube player for them and for players nearby, with the video's thumbnail as the cover. Some videos refuse to play outside YouTube, and turning this on is subject to YouTube's terms. YouTube songs cannot be used as ringtones.
Add stations and songs
Add only streams and songs you have the rights to use, such as your own station, a licensed service, or music whose licence allows it. Then set them in config/music.lua:
stations = {
{ id = 'city', label = 'City Radio', genre = 'Pop', url = 'https://radio.example.com/stream.mp3', cover = nil },
},
defaultPlaylist = 'City Hits',
defaultSongs = {
{ title = 'Song', artist = 'Artist', url = 'https://cdn.example.com/song.mp3', cover = 'https://cdn.example.com/song.jpg' },
},- Each station needs a unique
id, alabeland anhttpsstreamurl.genreis shown under its name, andcoveris an optionalhttpsimage. - Every library gets
defaultSongsonce, with a playlist of them nameddefaultPlaylist. Songs a player removes stay removed. - To keep your own lists safe from updates, put them in a file in
config/local/instead, such asconfig/local/music.lua. Files there load after the shipped settings:
if not Config or not Config.Music then return end
Config.Music.stations = {
{ id = 'city', label = 'City Radio', genre = 'Pop', url = 'https://radio.example.com/stream.mp3' },
}Files in config/local/ are sent to players, so never put keys or passwords in them.
Bluetooth speakers
Two speakers play a phone's Music out loud. They never play calls, ringtones or notification sounds. Add their items from Installation; phone stores in the city sell them.
| Speaker | Item | How it plays | Heard within | How it sounds |
|---|---|---|---|---|
| Nova Mini | nova_speaker_mini | From the hip of whoever carries it, or set down | 25 m | Fuller than a phone, and partly through walls |
| Nova Boom | nova_speaker_boom | Only once it is set down | 50 m | Loud across its whole range, carries through walls, extra bass, and a light that pulses while it plays |
- Set it down by using the item: scroll rotates, E places, Backspace cancels. Placed speakers stay after a restart, and the player who placed it picks it up again with ox_target, or an [E] prompt without it. Each player can place two.
- Pair it in Settings → Bluetooth → Speakers. The first pairing on a phone signed in to a Nova Account makes the speaker that account's, names it after the account ("Sam's Nova Boom") and lists it in Locate.
- Play on it with the output button in Now Playing or Control Center.
- Party mode. A phone can play on up to four speakers at once, each with its own volume.
- Volume. While the music plays on speakers, the phone's side volume buttons and the Control Center slider turn every connected speaker up or down together, even on a locked phone; the slider and the volume indicator show the loudest one with a speaker icon. During a call they go back to the phone's own volume.
- Letting others connect. The owner can let any phone in range play on the speaker. The last to connect takes over, then nobody else can take it for 30 seconds. The phone it is paired to always gets it back at once.
- Range and battery. The playing phone must stay within 30 metres of the speaker. The range is measured from the phone, not the player, so a phone set down near a speaker keeps playing on it when its owner walks off. Out of range, out of battery or picked up, the speaker drops and the music returns to the phone, playing where the phone is. Speakers drain while playing and charge like NovaBuds; see Batteries & accessories.
- Removal. On-duty police can seize any placed speaker, which goes into their inventory as evidence. Admins can delete one in game or from the console (see Admin tools):
phoneadmin speakers
phoneadmin removespeaker <speakerId>Wolfden Phone Secure cannot connect to speakers. Change ranges, battery use, the number of speakers per player and the jobs allowed to seize them in config/speakers.lua.
Speaker sound
Each speaker model in Config.Speakers.models (config/speakers.lua) has its own sound profile, with the same fields as the phone speaker. The speaker's own volume in the output picker scales it.
| Field | Nova Mini | Nova Boom |
|---|---|---|
radius | 25.0 | 50.0 |
volume | 0.85 | 1.0 |
falloff | 1.2 | 0.6 |
walls | 0.45 | 0.75 |
tone | 'mini' | 'boom' |
light | None | Purple, pulses while it plays set down |
A model's light takes a color ({ r, g, b }), a range in metres, an intensity and a height above the prop. A light only shows on a speaker that is set down. Remove light to turn it off, or add one to the Nova Mini.
Props for speakers
The Nova Mini's and Nova Boom's own models ship with Wolfden Phone, and a speaker set on a charging pad shows as its own model. To use your own models, stream them like any other prop and name them in each model's prop in config/speakers.lua. If a model is missing, its fallback prop shows instead.