AWRadioFramework is an event-driven custom radio framework for Cyberpunk 2077. It allows Audioware-powered station packs to appear and behave inside the game's native Radioport and vehicle-radio interfaces.
Current framework version: v 1.4 (DEV)
- Custom Audioware stations inside the native Radioport and vehicle-radio station lists.
- Native station selection, play/pause, volume controls, selected-row state, and equalizer behaviour.
- Frequency-based station placement using the numeric prefix of the visible station name.
- Custom station names, track titles, internal indexes, gain values, and optional station icons.
- Shuffle-bag playback in which every registered track is used before the next shuffle cycle.
- Protection against immediately repeating the previous cycle's final track when a new shuffle begins.
- Native-style station and song notification whenever a custom track starts.
- Manual Skip Song and Repeat Song controls with in-game notifications.
- Shared volume between on-foot Radioport and vehicle radio.
- Seamless transfer between on-foot and mounted playback without duplicate audio.
- Native PocketRadio restriction handling for phone calls, dialogue, vendors, and other unavailable-radio states.
- Combat-music handoff while a custom track continues silently in the background.
- Optional gameplay-music ducking while a native or custom station is active.
- Safe music-volume restoration when loading, quitting to the main menu, or starting a new session.
- Restoration of the last playing custom station when the game's Save Current Station option is enabled.
- Support for multiple independently installed AWRadioFramework station packs.
- Isolation between native radio playback and custom Audioware playback.
- Duplicate station-index and TweakDB-record detection with a persistent main-menu warning.
Install versions compatible with your current Cyberpunk 2077 game build:
- RED4ext
- redscript
- Codeware
- TweakXL
- Audioware
- Mod Settings
- Input Loader
You also need at least one station pack made specifically for AWRadioFramework.
-
Install all required dependencies.
-
Extract the AWRadioFramework archive into the main Cyberpunk 2077 directory.
-
Confirm that the framework files are installed under:
Cyberpunk 2077\r6\scripts\AWRadioFramework\Core\ Cyberpunk 2077\r6\scripts\AWRadioFramework\Integration\ Cyberpunk 2077\r6\scripts\AWRadioFramework\Radios Cyberpunk 2077\r6\input\AWRadioFramework.xml -
Install one or more compatible AWRadioFramework station packs.
-
Fully restart the game.
AWRadioFramework follows the game's native radio controls. Common default keyboard controls include:
Z: play or pause the on-foot Radioport.- Hold
Z: open Radioport. R: play or pause the vehicle radio.AandD: adjust radio volume while the relevant radio interface is open.L: skip the current AWRadioFramework track.U: toggle Repeat Song for the current AWRadioFramework track.
Player bindings may differ when the game's controls have been changed.
The Skip Song and Repeat Song bindings can be changed under:
Settings > Mod Settings > AW Radio Framework > AW Radio Settings
Skip Song and Repeat Song apply only to AWRadioFramework stations. They do not alter native station playlists.
The recommended method is the separate AW Radio Station Builder v0.2.2.
The builder reads supported audio files, extracts available metadata and durations, creates the station-registration files, and packages the result into a ready-to-install ZIP.
A generated station uses this layout:
r6\audioware\YourStation\audios.yml
r6\audioware\YourStation\tracks\...
r6\scripts\AWRadioFramework\Radios\YourStation\YourStation.reds
r6\tweaks\AWRadioFramework\YourStation\YourStation.yaml
README_YourStation.txt
archive\pc\mod\YourStation.archive optional
The shared parent folders are intentional. Mod managers remove only the files and station-specific folders installed by a package; they should not remove another station or the framework runtime.
The builder does not generate a project JSON file.
For public station packs, use an index from:
1000-9999
Indexes 0-999 are reserved by project convention for framework, development, testing, or personal use. This is an AWRadioFramework allocation policy, not a claimed engine limit.
The builder generates an index in the public range, and station authors must still verify that it is not already used by another installed station.
The builder can include an existing station archive, but it does not create Ink atlases, Ink widgets, XBM textures, or custom icon resources.
Custom icon resources must be prepared separately, packaged in the optional archive, and referenced by the station's TweakXL record.
Every station pack should follow these rules:
- Use a unique TweakDB record ID.
- Use a unique station index.
- Use the same station index in Redscript and TweakXL.
- Use the same visible station name in Redscript and TweakXL.
- Use the public
1000-9999range for released station packs. - Begin the visible name with a numeric frequency when ordered placement is required.
- Use unique Audioware event names for every track.
- Provide a valid duration for every registered track.
- Keep station Redscript under
r6\scripts\AWRadioFramework\Radios\<Station>\. - Keep station files out of the framework's
CoreandIntegrationfolders. - Distribute only music, audio, artwork, and other assets you have permission to distribute.
Do not edit AWRadioFramework runtime files for an individual station pack. Station-specific definitions belong in the station pack's own Redscript, TweakXL, Audioware, and optional archive paths.
For the full registration format and manual examples, see STATION_CREATION_GUIDE.md.
AWRadioFramework is designed to coexist with:
- The game's native radio stations.
- Multiple AWRadioFramework station packs.
- Normal on-foot and mounted Radioport behaviour.
Station packs made for another custom-radio framework are not automatically compatible with AWRadioFramework.
- Confirm that a compatible AWRadioFramework station pack is installed.
- Confirm that the station Redscript is under
r6\scripts\AWRadioFramework\Radios\<Station>\. - Confirm that the TweakXL file is under
r6\tweaks\AWRadioFramework\<Station>\. - Confirm that the station's
.redsand.yamlfiles use the same record ID, visible name, and internal index. - Check whether the main menu shows a duplicate-station warning.
- Confirm that all required dependencies load successfully.
- Check the first Redscript compiler error.
- Perform a full game restart.
The second station may have been rejected because both packs use the same internal index or TweakDB record.
Read the persistent main-menu warning, update the conflicting station's Redscript and TweakXL definitions, and restart the game.
- Confirm that the archive containing the icon resources is installed.
- Confirm that the TweakXL icon reference points to an existing record or flat.
- Confirm that the Ink widget, atlas, texture part, and XBM paths match exactly.
- Check the TweakXL log for a non-existent record or flat warning.
- Confirm that Audioware loaded successfully.
- Confirm that
r6\audioware\<Station>\audios.ymlpoints to the correct files. - Confirm that the Audioware event names match the station's Redscript definitions exactly.
- Confirm that the audio files are in
r6\audioware\<Station>\tracks\or the paths declared by the manifest. - Confirm that the audio format is supported by Audioware.
- Confirm that the audio files are not DRM-protected.
- Confirm that the station gain is greater than
0.0.
The final output volume is the station gain multiplied by the shared Radioport or vehicle-radio volume.
Use 0.30 as a reasonable starting point, compare against several vanilla stations at the same volume, and adjust the station gain gradually.
The framework clamps gain between 0.0 and 2.0.
- Confirm that every track has a non-empty title in the station definition.
- Confirm that the registered duration is valid.
- Regenerate the station using the current builder.
- Check for another mod replacing the Radioport track UI or notification methods.
- Confirm that Input Loader is installed and loaded.
- Confirm that Mod Settings is installed.
- Check the configured bindings under AW Radio Settings.
- Test another key if the current binding is already used by the game or another mod.
- Skip is unavailable while playback is paused or suspended.
This may be intended while the native Radioport remains restricted or while combat handoff is active.
Wait until the native Radioport becomes available again. The framework follows the game's aggregate restriction state and normal unlock delay rather than restoring audio immediately after an individual restriction flag changes.
- Enable the game's Save Current Station option.
- Confirm that the station pack is still installed.
- Confirm that its internal station index has not changed.
- Confirm that the station was playing rather than manually paused before leaving the previous session.
- Allow the gameplay session a moment to finish initializing.
- Disable and re-enable Mute Ambient Music When Radio Is On to force a settings refresh.
- Fully quit and restart the game.
- Check for another mod changing the game's
MusicVolumesetting.
Read the first compiler error first. Later errors are often consequences of the first unresolved type, function, file, or syntax issue.
When reporting a framework issue, include:
- The exact AWRadioFramework version.
- The station pack used (no songs needed).
- Relevant Audioware and TweakXL log entries.
- The exact steps needed to reproduce the issue.
- Whether the issue also occurs with other radio-related mods removed.
Remove the framework runtime files:
Cyberpunk 2077\r6\scripts\AWRadioFramework\Core\
Cyberpunk 2077\r6\scripts\AWRadioFramework\Integration\
Cyberpunk 2077\r6\input\AWRadioFramework.xml
Remove each station pack's own files, commonly:
Cyberpunk 2077\r6\scripts\AWRadioFramework\Radios\<Station>\
Cyberpunk 2077\r6\tweaks\AWRadioFramework\<Station>\
Cyberpunk 2077\r6\audioware\<Station>\
Cyberpunk 2077\archive\pc\mod\<Station>.archive
Remove only the station-specific folders and files installed by that station pack. Do not delete the shared AWRadioFramework, Radios, tweaks\AWRadioFramework, or audioware parent folders when they still contain other installed content.
AWRadioFramework source code and project documentation are released under the MIT License. See LICENSE.
The MIT License applies only to original AWRadioFramework material distributed by the copyright holder.
Cyberpunk 2077, RED4ext, redscript, Codeware, TweakXL, Audioware, Mod Settings, Input Loader, third-party station packs, music, artwork, trademarks, and other third-party material remain subject to their respective owners' terms and licences.
AWRadioFramework is an unofficial community project and is not affiliated with, endorsed by, or sponsored by CD PROJEKT RED.
Cyberpunk 2077 and related names, characters, logos, and assets are the property of their respective owners.