Решили: облачная выкладка обязана давать тот же билд, что локальная. Для этого: банки FMOD (FMOD Project/Build/) уезжают В РЕПОЗИТОРИЙ вопреки правилу [Bb]uild/, а steam-deploy.yml дописывает дефайн GM_DEVTOOLS в ProjectSettings перед сборкой — но только на запуск КНОПКОЙ, не по тегу.

Почему: две дороги выкладки заведены как страховка друг другу (локальная быстрая, облачная — из чистого клона), и вся их ценность держится на том, что они собирают одно и то же. На прогоне вдвоём 08.08.2026 оказалось, что не собирают: облачный билд уехал в Steam без звука вообще и без дев-консоли.

Дефайн ставит наш PlayerBuilder, которого облачная дорога не зовёт — она идёт через game-ci/unity-builder штатным методом. По тегу дефайна нет намеренно: тег значит релиз, и консоль в нём по-прежнему не открывается ничем.

Грабли:

Звук. Цепочка из четырёх звеньев, где ни одно не выглядит виноватым. Корневой .gitignore ловит FMOD Project/Build/ правилом [Bb]uild/ — той же граблей, из-за которой папка EditorTools/Player называется не Build. В чистом клоне источника банков нет, кэш событий плагина пуст, а дальше FMOD сам выносит в корзину закоммиченные банки из StreamingAssets: он считает их устаревшими, опознавая свои по метке FMOD в .meta (EventManager.cs, «Clean out any stale .bank files»). Локально папка на диске есть, поэтому звук был, и разницы никто не видел.

Мораль шире одной папки: закоммиченный артефакт не спасает, если инструмент считает себя его владельцем. Банки лежали в git и всё равно не доехали.

Дефайн. Замена по ключу Standalone: в ProjectSettings.asset не годится: он встречается трижды, и первым идёт bundle id приложения. Правка адресная — только внутри блока scriptingDefineSymbols.

Сказано: «Очень неожиданно (мб другая сессия сломала?) но у меня не работают F1, F2, F3 и тд» и «Звука в игре НЕ БЫЛО ВООБЩЕ. Хм…» (08.08.2026, сессия eab27015). Оба симптома читались как поломка проекта — первый прямо назван чужой сессией; ни один не читался как «билд собран другой дорогой».

Не проверено: починка обоих пунктов подтверждается только следующей облачной сборкой — ни тест, ни компиляция про содержимое плеера не знают.

Владелец правды: .gitignore (исключение с объяснением), .github/workflows/steam-deploy.yml (шаг «Dev tools define»), PlayerBuilder.DevToolsDefine.