About this mod
Make your own song playlists without issues like hosts talking, songs cutting short, or silent parts...
Includes Diamond City Radio and Appalachia no ads
- Requirements
- Permissions and credits
- Changelogs
- Donations
Easy Terminal Hacking and Lockpicking Bar - Auto-unlock hackable terminals. Show sweetspot bar for lockpicking.
Radial Menu Loadout Manager - Slot custom loadouts to favorites wheel. Gamepad/controller compatible.
HUD Condition - Simple customizable widget that shows weapon and armor conditions on HUD.
Improved Pipboy Stats - Separate Perks Tab - Added PERKS tab and moved perks from effects tab, showing curve tables and current bonuses.
VendingHistory - VendorLog integration - Persistent sale history by integrating Vendor Log output to Vending History interface. Search functionality. Localization support.
Skip Scrap Confirm - Simple UI change to skip scrap confirmation menus (both optional). Extended Components view, no scrolling. Auto confirm Repair kit.
Improved Social Menu - Fixes friend selection switching when trying to join world. Removes teams popup and team creation delay. Adds friends count and Character name.
HUD Challenges and Events - Simple customizable widget to show challenges and currently active events/caravans on HUD
BuffsMeter - Active Effects on HUD - Simple customizable widget to show active effects / buffs on HUD
Server Player List - Simple customizable widget to show all players on current server
Improved Workbench, Crafting, Examine, Inspect Menu - Improved Quantity Menu Input. Set Default Quantity Value. Quick Repair Button in Workbench. Show Durability and Condition. Examine Menu Repair Kit.
Invent O Matic Stash (Unofficial) Update - Write inventory to file. Bulk scrap weapon/armor. Mass transfer. Filter area loot. Mass buy/sell to vendors. Auto assign to freezer/camp objects. Item Protection... AND MUCH MORE
Invent O Matic Pipboy (Unofficial) Update - Switch armor sets - Use your buffs - Drop your excess junk - all with a single key press. Drop item protection.
Instant Expedition Rewards - Displays all quests and rewards at once, not one by one
Instant Daily Op Rewards - Displays all rewards at once, not one by one
Additional Radio Stations:
New Vegas Radio - Black Mountain - Mojave Music Radio - Includes 30 songs from Fallout: New Vegas.
https://pastebin.com/ULPcxViE - All Songs Mix, 111 tracks from Appalachia radio, DiamondCityRadio.ba2 and NewVegasRadio.ba2
CONTENTS
General Info and Limitations
Installation
Installation of Custom Radio Stations
Compatibility
Customization:
Widget Settings
Radio Settings
Making your own Radio Stations
Diamond City Radio
Appalachia No Intermissions
General Info and Limitations
First off, problems this mod tries to fix are those found in radio replacement mods - limited number of radios, limited number of tracks for each radio, durations of songs have to match exactly to existing tracks otherwise server will just cut off in the middle of song if it's too long, or it will just play silence until next track queues.
This mod is in no way connected to Pipboy radio but is just calling PlayMenuSound call on engine, using references made through config file. See section below how to make your own playlists. Issue with these calls is that I have no control over playing sounds, so songs can't be paused on demand, once it's started you have to wait until the end of it, to switch radio for example.
This means played songs are "Effect" type of sound if you want to change their levels in audio settings.
To be able to track radio data the whole time, (when to play next song and so on) HUD menu was one of the few viable options as it is always shown on screen (for example pipboy isn't always loaded, so data would be lost when pipboy closes).
This means you can (Optionally) also set up widget to show currently playing radio and track, as well as elapsed time.
However this brings up another issue, HUD menu doesn't support keyboard or mouse input as it just passes through to game for character controls. So only way to start/stop radio is to change "Play" flag in config file - config file is read every 10 seconds and can change radios without leaving world/game.
With current setup it will start playing your selected radio when you join server or when it's changed in config.
Planned changes
[Overlay layer] Add UI: keyboard hotkeys / buttons for mouse interaction
Installation
Via mod manager: NOT SUPPORTED, IF YOUR MOD IS NOT LOADING THIS IS MOST LIKELY THE CAUSE, DON'T ASK FOR ASSISTANCE IF YOU INSTALLED WITH MOD MANAGER
Known issues with mod managers:
Mods not working at all (even with no other mods loaded) - repacked (or bundled) with wrong settings
Mods not applying config changes - old config file cached
If you still insist on installing with mod manager, this step is also required:
Follow one of the Options in step 3 of manual installation
or
Manually:
- Download and extract ba2 and config (.json and .ini) files to Fallout 76 Data folder (e.g. "\SteamLibrary\steamapps\common\Fallout76\Data\")
- Add CustomRadios.ba2 to your load order (sResourceIndexFileList) in Project76Custom.ini or Fallout76Custom.ini ("C:\Users\%username%\Documents\My Games\Fallout 76\"):
[Archive]
sResourceIndexFileList=other mods here, CustomRadios.ba2 - [Optional] If using TextChat mod:
- Make sure CustomRadios.ba2 is loaded before ChatMod.ba2 in sResourceIndexFileList (ChatMod last):
sResourceIndexFileList=CustomRadios.ba2, ChatMod.ba2 - Add CustomRadios to hudModList in Data\configuration\chatmod.ini (NOT IN hudmodlist.json, THAT FILE IS OBSOLETE):
[hudModListSettings] hudModList=PLMHudMenu, ImprovedHealthBars, CustomCrosshair, CompatibleShowHealthRedux, HUDEditor, VendorLog, StatsMeter, BuffsMeter, HUDPlayerList, HUDChallenges, CustomRadios
- Make sure CustomRadios.ba2 is loaded before ChatMod.ba2 in sResourceIndexFileList (ChatMod last):
Installation of Custom Radio Stations
- Download and extract Radio station ba2 (example: DiamondCityRadio.ba2) to Fallout 76 Data folder (e.g. "\SteamLibrary\steamapps\common\Fallout76\Data\")
- Add Radio station name to your load order in Project76Custom.ini or Fallout76Custom.ini ("C:\Users\%username%\Documents\My Games\Fallout 76\"):
sResourceArchive2List=other mods here, DiamondCityRadio.ba2
- Add Radio configuration with playlist references in CustomRadios.json in "Radios" field, comma separated, no comma after last element.
Compatibility
Compatible with TextChat and should be compatible with any other HUD mod - see Instalation.
Tested working with: Text Chat, HUD Challenges and Events, BuffsMeter, Server Player List, Perk Loadout Manager, Stats Meter, Vendor Log, HudEditor, Improved Health Bars
Should be compatible with all other non-HUD mods
May cause issues with pipboy radio if custom radio uses replaced sound tracks - silences if too short or songs cutting off if too long audio tracks
Customization
Config file is CustomRadios.json in Fallout76\Data directory.
For editing config I recommend using Notepad++ which has implemented validation: select Language > JSON5
Otherwise any text editor will work, to check validity of config file after change, you can use websites like https://codebeautify.org/json5-validator
Comments are supported only in json5 so use specifically JSON5 validation, otherwise it will show as errors found in file.
Config file will be read every 10 seconds, if any changes are made to it they will be applied - no need to restart the game.
Listed below are all options for customization; Widget Settings (Same for all my HUD mods) and Radio Settings.
Widget Settings
x - horizontal position of widget (default: 0 = left side of screen, 1920 is right side of the screen)
y - vertical position of widget (default: 0 = top of screen, 1080 is bottom of the screen)
anchor : top/bottom - widget alignment in regards to y value; if anchor is "bottom" y will be the bottom coordinate of widget (default: top)
ySpacing - vertical spacing between data rows; negative value means more compact (default: 0)
width - width of widget (default: 250)
textSize - font size (default: 18)
textFont - text font, there's a list of working fonts in config file (default: "$MAIN_Font")
textAlign : left/center/right - text alignment (default: "left")
textColor - text color, either numerical value or hex value in quotation marks (default: "0xffffff")
textColorError - text color for displaying errors and status messages, either numerical value or hex value in quotation marks (default: "0xff0000")
textShadow : true/false - show text shadow, easier to see text if background is disabled (default: true)
background : true/false - show background (default: true)
backgroundColor - either numerical value or hex value in quotation marks (default: "0x222222")
alpha - transparency of whole widget (text and background); 0.0 < value < 1.0 = semi-transparent, 1.0 = opaque (default: 1.0)
backgroundAlpha - background transparency; 0 = load default, 0.0 < value < 1.0 = semi-transparent, 1.0 = opaque (default: 0.5)
NOTE: HUD Opacity in settings can be changed so value of "alpha" can go over 1.0 (does not apply for "backgroundAlpha")
blendMode - background blend mode (default: "normal")
textBlendMode - text blend mode (default: "normal")
Blend modes: https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BlendMode.html
debug : true/false - show debug data, like mod version, hud mode and render time (default: false)
disableRealTimeEdit : true/false - disable automatic changes from config file that are done every 10 seconds (default: false)
refresh - time in milliseconds between data reloads/redraws (default: 1000)
HUDModesState - "hidden" or "shown" - hide or show widget in HUDModes listed below, (default: hidden)
HUDModes - list of HUD Modes for HUDModesState
Options: "ActivateTypeMode", "All", "AutoVanity", "CampPlacement", "ContainerMode", "CrosshairAndActivateOnly",
"DeathRespawnMode", "DefaultScopeMenu", "DialogueMode", "EndOfMatch", "FurnitureEnterExit", "InsideMemory",
"InspectMode", "IronSights", "LegendaryPerksMode", "LockpickingMode", "MapMenu", "MessageMode", "MovementDisabled",
"NoHud", "PauseMode", "PerksMode", "Pipboy", "PowerArmor", "RadialMenu", "ScopeMenu", "SelfieMode", "SitWaitMode",
"SpectatorMode", "TerminalMode", "VATS", "VATSPlayback", "VertibirdMode", "WorkshopMode" */
"All" is default HUD mode (non-power armor), not all of them
NOTE: To hide widget completely and have only radio playing in background set the values below:
"HUDModesState": "shown",
"HUDModes": [],
Radio Settings
Format - custom format for radio display, accepts {radioName}, {trackId}, {numberOfTracks}, {trackName}, {elapsedDuration}, {trackDuration}
FormatRadioOff - text to show when radio is off
FormatRadioTurningOff - text to show when radio is turning off, radio will turn off when song ends
FormatRadioSwitching - text to show when switching radio station, it will be switched when song ends
FormatRadioNoPlaylist - error text to show when radio is missing playlist
FormatRadioNotExist - error text to show when selected RadioId doesn't exist
Play : true/false - Property that will determine if radio is on or off, true makes radio auto-play when server is joined (default: false)
PlayRadioId - Id of Radio Station you want to play, 0-indexed = first radio in list is Id 0 (default: 0)
StartTrackId - Id of Track in selected Radio you want to start playing when radio turns on, accepts 0-indexed track number or "RANDOM" (default: 0)
Radios - List of radios you can choose from to play, when you install mod there will be 2 radios which you can use as templates for adding your own radios
Each radio can have these properties:
name - Name of radio, can be displayed on HUD
order - Order in which to play tracks, "RANDOM" or "ORDERED" (default: "ORDERED")
playlist - List of tracks for this radio, each track can have these properties:
name - Name of track, can be displayed on HUD
id - ID of track that will be called to play, must be referenced by esm, see SoundReferences.txt if you're making your own playlist
duration - Duration of track, will call next song to be played after this time, can cause silent parts or overlapping songs if set improperly
Making your own Radio Stations
1) Find and select songs you want to add to playlist.
2) Convert them to xwm format: to do so you can use MultiXwm - GUI tool that supports wav, mp3, flac, wma, m4a and ogg audio formats.
3) Replacing existing sound files with your selected tracks:
I have attached SoundReferences.txt in zip file to make this step easier, but you can also search existing references in esm with FO76Edit
That txt file consist of pairs of lines for each sound file, most of those are from existing radio stations.
First line is reference used in game - editor id which you can use in "id" field in radio's playlist.
Second line is sound file directory which that reference plays when called - your playlist tracks will have to be renamed and placed in these directories (case-insensitive)
Example of pair:
MUSRadioPirateSong_33
data\Sound\FX\MUS\Radio\76\Pirate\Music\MUS_Radio_Your_Favorite_Song.wav
NOTE: Even though files say they are .wav in esm you can just convert your songs to .xwm for less storage required, it should load them without issues.3.1) For example if you have "TOP - Oldies Station.xwm" you have to rename it to "MUS_Radio_Your_Favorite_Song.xwm"
3.2) Make directory sound and subdirectories inside to match 2nd line in pair above ("data" is not needed, it's where mods are installed):
sound/fx/mus/radio/76/pirate/music/
3.3) Copy your "MUS_Radio_Your_Favorite_Song.xwm" file to newly created sound/fx/mus/radio/76/pirate/music/ directory
NOTE: I recommend doing steps 3 and 4 in parallel, as you might forget which track you renamed to which name.
4) Add sound References to CustomRadios.json config
4.1) Here's a template of new Radio you can paste in your config (add comma before it if it's not first element in "Radios" list):
{
"name": "Radio name",
"order": "RANDOM", // Options: ORDERED, RANDOM
"playlist": [
{
"name": "Track 0 name",
"id": "",
"duration": 0
},
{
"name": "Track 0 name",
"id": "",
"duration": 0
}
// More songs here: [ {}, {}, ..., {} ]
// comma between tracks, no comma after last track
]
}
4.2) Fill in Track and Radio details, pay attention to "id" and "duration" parameters for each track, for example:
{
"name": "TOP Radio",
"order": "RANDOM", // Options: ORDERED, RANDOM
"playlist": [
{
"name": "TOP - Oldies Station", // Any name you want, can be shown on HUD
"id": "MUSRadioPirateSong_33", // Id of sound file you replaced
"duration": 232 // duration in seconds, 3:52 is 232 seconds
}
// More songs here: [ {}, {}, ..., {} ]
// comma between tracks, no comma after last track
]
}
5) Repeat steps 3 and 4 for all your songs or as many times as you want...
6) Packing your replaced files to ba2 archive
6.1) In attached zip file there is Archive2.exe - tool for making ba2 archives.
Instructions will be for Archive2 but you can use any other tool if you want, for example: Baka File Tool
Open Archive2.exe and select "File", and then "New..."
6.2) Format field should be "General" and change Compression to "None", press OK.
6.3) Navigate to directory where you made "sound" folder and all those subdirectories.
6.4) Drag and drop whole "sound" folder inside opened Archive2 window
If done correctly File Entry Name should match 2nd line in that pair value, not including data, but including sound:

6.5) Select "File", then "Save As...", select directory and your radio name, for example: TOPRadio (it will append .ba2 extension)
7) Adding radio to game load order (same as Installation of Custom Radio Stations section above)
7.1) Copy your radio ba2 file to game folder: Fallout76/Data
7.2) Add ba2 file name to your load order in Project76Custom.ini or Fallout76Custom.ini ("C:\Users\%username%\Documents\My Games\Fallout 76\"):
[Archive]
sResourceArchive2List=other mods here, TOPRadio.ba2
8) Set "PlayRadioId" in config to play your radio, it's 0-indexed, so if it's 3rd radio in "Radios" field set it like so:
"Play": true,
"PlayRadioId": 2,
9) Run game, and it should automatically tune in to your radio.
Diamond City Radio
Total 42 tracks:
Uses references from MUSRadioPirateSong_01 to MUSRadioPirateSong_31 (27 songs)
Adds cut Magnolia songs (Lynda Carter) (5 songs)
References remaining overlapping fo76 songs from Appalachia radio (10 songs)
Appalachia No Intermissions
Total 49 tracks: Only music, no intermissions