TramRadio
AI-generated code. Positional MP3 tram radio with distance fade, silence in indoor loot areas, automatic bench placement and F4 repositioning. Tested in-game by jasonSTTH.
By STTHteam
| Last updated | 24 minutes ago |
| Total downloads | 2 |
| Total rating | 0 |
| Categories | Audio |
| Dependency string | STTHteam-TramRadio-1.0.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
LavaGang-MelonLoader
The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono
Preferred version: 0.7.3README
TramRadio 1.0.0 — jasonSTTH
AI-generated code: this mod was developed with ChatGPT/Codex and tested in-game by jasonSTTH.
Код мода создан с помощью ИИ (ChatGPT/Codex). Проверка в игре: jasonSTTH.
Код мода створено за допомогою ШІ (ChatGPT/Codex). Перевірка в грі: jasonSTTH.
Custom MP3 radio on the MIMESIS tram. Positional music in the tram and outdoors, fading with distance; silent in indoor loot/enemy areas.
English
Installation and songs
Requires Windows, MIMESIS Unity Mono and MelonLoader 0.7.3. Install with the mod manager from Thunderstore, or use Settings → Import local mod with jasonSTTH-TramRadio-1.0.0.zip. For local imports, install MelonLoader in the profile yourself if missing. Launch with Start modded. Remove older DLL copies installed manually.
Add MP3s beside TramRadio.dll inside a private copy of the ZIP before importing it, or beside the installed DLL / in its Music subfolder, then press F9. No game-root Music folder is required. Close the game before reimporting. Back up songs before package updates. Every player needs version 1.0.0 and identical file contents. Music is not sent over the network; rename is allowed but edited tags/re-encoding change the hash. Profile export codes do not carry local imports. Public package contains no songs.
Manual installation: copy TramRadio.dll and the bundled UserLibs folder together into Mods/jasonSTTH-TramRadio/. The NLayer decoder is required; no BepInEx or MimicAPI is needed.
Sound and placement
The emitter stays on the radio. MP3 is downmixed to mono for positional Unity audio. Full gain within 6 game units, quadratic fade to silence at 100 by default. Entering the game's indoor loot area mutes only your audio, using your VPlayer.IsIndoor state. The host's playlist continues for outdoor listeners. Leaving the building restores audio smoothly. Missing player-state information temporarily mutes audio. This is not an HRTF plugin; a spectator uses their local player's indoor state.
Automatic placement searches nearby bench/seat/cushion renderers and supporting surfaces near the tram console. The radio appears without pressing F4. Mesh names and layouts vary; if no suitable seat is found, a logged console-offset fallback is used. F4 remains a manual placement tool and saves that pose, disabling automatic bench selection until AutoBench=True is restored.
| Key | Action |
|---|---|
| F6 | Play/pause |
| F7 / F8 | Next / previous track |
| F9 | Rescan songs |
| F10 | HUD on/off |
| Minus / Equals | Personal volume |
| F4 | Place radio in front of camera |
Playback/placement controls require the lobby owner near the console. F4 does not snap to a surface. Sync is approximate (1.5-second drift correction), not sample-accurate. Host migration resets playback. Unmodded players cannot hear the music.
Configuration
Edit the loader's UserData/TramRadio/config.ini with the game closed.
| Setting | Default | Meaning |
|---|---|---|
| Volume | 0.8 | Personal volume, 0–1 |
| NearDistance | 6 | Full-volume radius |
| MaxDistance | 100 | Silence beyond this distance |
| AutoBench | True | Try automatic seat placement |
| ControlDistance | 5 | Distance to console for controls |
| ShowHud | True | Show HUD |
| MaxFileMB | 128 | Encoded file limit |
| X/Y/Z/Yaw | 0.65/0.3/0.1/0 | Fallback/manual pose |
Old FarLevel, Falloff, WallAudio, IndoorVolume and WallCutoff settings are ignored. MP3 paths support Cyrillic/spaces/special characters through NLayer; WAV/OGG optionally use Unity's decoder. MP3 limit: 30 minutes or 256 MiB mono PCM, with higher peak memory during decoding. Damaged tracks skip. Missing matching file: install the identical host file and F9. Troubleshooting: provide the active MelonLoader/Latest.log, game version, and whether you were inside or outside.
Build and 25 behavioral tests pass. In-game operation was confirmed by the author before this first public release; automated tests do not cover every map or game update. Code: jasonSTTH & Codex, MIT. NLayer 1.16.0: Mark Heath, Andrew Ward & contributors, MIT (THIRD_PARTY_NOTICES.txt).
Русский
Установка
Нужны Windows, MIMESIS Unity Mono и MelonLoader 0.7.3. В модменеджере установи мод через Online после публикации либо Settings → Import local mod → jasonSTTH-TramRadio-1.0.0.zip. Если при локальном импорте MelonLoader отсутствует — установи его в профиль. Запуск через Start modded. Старую DLL, установленную вручную, удали.
Положи MP3 прямо в свою копию ZIP рядом с TramRadio.dll и импортируй одинаковый архив у всех друзей. Можно добавить песни рядом со встроенной DLL или в её подпапку Music и нажать F9. Отдельная папка в игре не нужна. При повторном импорте закрывай игру, перед обновлением сохраняй копию песен. Музыка не передаётся по сети; у всех должны быть версия 1.0.0 и одинаковые файлы. В публичном архиве песен нет. Для ручной установки перенеси DLL вместе с UserLibs в Mods/jasonSTTH-TramRadio/.
Поведение
В трамвае и снаружи звук идёт от магнитолы. До 6 игровых единиц — полная громкость, затем плавное затухание до тишины на 100. Внутри здания с лутом и мобами звук отключается по игровому признаку IsIndoor. У оставшихся снаружи музыка продолжает играть. При выходе звук возвращается плавно. Если состояние игрока пока недоступно, звук временно выключен. У наблюдателя учитывается состояние его собственного игрока.
Мод автоматически ищет лавочку/сиденье рядом с консолью и ставит магнитолу на её поверхность. F4 остаётся: ставит её перед камерой и сохраняет положение. После F4 автоматический выбор отключается; вернуть можно через AutoBench=True. Если подходящая модель сиденья не найдена, применяется запасное положение у консоли с записью в журнале.
F6 — пуск/пауза; F7/F8 — треки; F9 — сканирование; F10 — панель; минус/равно — личная громкость; F4 — размещение. Треками и размещением управляет хозяин возле консоли. Синхронизация приблизительная.
Настройки
При закрытой игре редактируй UserData/TramRadio/config.ini загрузчика: Volume=0.8, NearDistance=6, MaxDistance=100, AutoBench=True. ControlDistance=5 задаёт дистанцию управления. Старые параметры звука из стены и постоянной слышимости вдали игнорируются.
MP3 с кириллицей поддерживаются напрямую, лимит — 30 минут или 256 МиБ моно. WAV/OGG работают через Unity. Если нет нужной песни — скопируй файл хоста и нажми F9. При проблемах пришли MelonLoader/Latest.log и версию игры. Сборка и 25 проверок пройдены; работа в игре подтверждена автором перед первым публичным релизом.
Українська
Встановлення
Потрібні Windows, MIMESIS Unity Mono та MelonLoader 0.7.3. У менеджері встанови мод через Online після публікації або Settings → Import local mod → jasonSTTH-TramRadio-1.0.0.zip. Для локального імпорту за потреби встанови MelonLoader у профіль. Запускай через Start modded. Стару DLL, встановлену вручну, видали.
Додай MP3 до своєї копії ZIP поруч із TramRadio.dll та імпортуй однаковий архів у всіх друзів. Також можна додати пісні поруч зі встановленою DLL чи до її підпапки Music й натиснути F9. Окрема папка в грі не потрібна. Перед повторним імпортом закривай гру, перед оновленням зберігай копію пісень. Музика не передається мережею: усім потрібні версія 1.0.0 та однакові файли. Публічний пакет не містить пісень. Для ручного встановлення скопіюй DLL разом із UserLibs до Mods/jasonSTTH-TramRadio/.
Звук і керування
У трамваї та надворі звук іде від магнітоли. До 6 ігрових одиниць — повна гучність, далі плавне затихання до тиші на відстані 100. У будівлі з лутом і ворогами музика вимикається за ігровим прапорцем IsIndoor. Для тих, хто залишився надворі, відтворення триває. Після виходу звук плавно повертається. Поки стан гравця недоступний, звук тимчасово вимкнений. Для спостерігача враховується стан його власного гравця.
Мод автоматично шукає лавку/сидіння біля консолі й ставить на нього магнітолу. F4 залишається: розміщує її перед камерою та зберігає положення. Після F4 автоматичний пошук вимикається; повернути його можна через AutoBench=True. Якщо сидіння не знайдено, використовується запасне положення біля консолі із записом у журналі.
F6 — запуск/пауза; F7/F8 — треки; F9 — сканування; F10 — панель; мінус/дорівнює — особиста гучність; F4 — розміщення. Треками та розміщенням керує власник лобі біля консолі. Синхронізація приблизна.
Налаштування
При закритій грі редагуй UserData/TramRadio/config.ini: Volume=0.8, NearDistance=6, MaxDistance=100, AutoBench=True. ControlDistance=5 — відстань керування. Старі параметри звуку зі стін і постійної чутності вдалині ігноруються.
Кириличні назви MP3 підтримуються напряму. Межа — 30 хвилин або 256 МіБ моно; WAV/OGG використовують декодер Unity. Якщо бракує пісні, скопіюй файл власника лобі й натисни F9. Для помилок потрібні MelonLoader/Latest.log і версія гри. Збірка й 25 перевірок пройдені; роботу в грі підтверджено автором перед першим публічним релізом.