Unity 6.7 в Rust пока живёт в отдельной ветке разработки: 30 и 31 октября Facepunch сделала в main/unity_6.7.0 23 коммита, а последний из них уже чинит ошибки, всплывшие при переключении на CoreCLR. CoreCLR — новая среда выполнения C#, которая в Unity заменит старую Mono. Игрокам обновление 5 ноября этого, судя по всему, не принесёт, но владельцам серверов с плагинами полезно понять заранее, что за этим стоит.

Что Facepunch сделала в ветке Unity 6.7 за неделю
Анонса в девблоге нет: вся картина собрана по публичной ленте коммитов Rust. Первые упоминания Unity 6.7 появились 28 октября в ветке entity_id, где шла подготовка кода. Разработчик Felix прямо написал, что готовит скрипты к Unity 6.7, «не переключаясь на неё». Через два дня подготовку слили в новую ветку, и там движок обновили по-настоящему.
| Дата | Ветка | Что изменили |
|---|---|---|
| 4 июня | релиз | Rust официально перешёл на Unity 6, строка об этом есть в журнале изменений |
| 21 октября | main | Влито обновление до 6000.3.26f1; проверка: клиент подключился к серверу на процедурной карте |
| 28–29 октября | entity_id | Сторонние пакеты переведены на EntityId, атрибуты сериализации расставлены явно по всему коду |
| 30 октября | unity_6.7.0 | Замена устаревших API, новая загрузка сборок, 64-битные идентификаторы, 19,6 тысячи обновлённых meta-файлов текстур |
| 31 октября | unity_6.7.0 | Исправление ошибок сериализации, появившихся при переключении на CoreCLR |
На утро 2 ноября слияния unity_6.7.0 в main в ленте нет. Поэтому в патче 5 ноября движок, скорее всего, останется прежним: предыдущее, куда меньшее обновление до 6000.3.26f1 влили за две недели до патча. Прямого заявления Facepunch об этом нет. Что ещё ждёт игроков в этом обновлении, мы собирали в разборе ноябрьского обновления Rust.
Какие правки самые показательные
- Harmony. Коммит «Use newer LoadFromBytes API for Harmony» переводит загрузку Harmony на новый метод Unity. Из сообщения не ясно, идёт ли речь о серверном загрузчике модов или только о внутренних инструментах.
- Поиск сборок. Вызов
GetAssemblies()заменён новыми API Unity. В руководстве движка старый способ назван нежелательным: он может вернуть сборку, которая уже выгружается. - BinaryFormatter. Во внутреннем инструменте WhatUsesThis его заменили на BinaryReader и BinaryWriter.
- Hot Reload. Совместимость плагина быстрой перезагрузки кода пришлось добавлять вручную, и автор оставил об этом комментарии. Для ветки на такой стадии это нормально.
Что такое CoreCLR и чем эта среда отличается от Mono
Игровая логика Rust написана на C#, а такому коду нужна среда, которая его выполняет. Много лет эту роль в Unity играла Mono, наследница эпохи .NET Framework. CoreCLR — современная среда выполнения .NET с компилятором RyuJIT и поколенческим сборщиком мусора. По документации Unity 6.7 отличия такие:
| Параметр | Mono | CoreCLR |
|---|---|---|
| Происхождение | Эпоха .NET Framework | Современный .NET |
| JIT-компилятор | Старый, менее агрессивные оптимизации | RyuJIT с многоуровневой компиляцией |
| Сборщик мусора | Boehm | Поколенческий |
| Статус в Unity 6.7 | Основная среда | Эксперимент только для Windows, macOS и Linux, для релиза не годится |
| Статус в Unity 7.0 | Убрана полностью | Основа редактора и сборки для ПК |
Отсюда главная оговорка. Unity называет 6.7 LTS последним выпуском на Mono, а CoreCLR-сборку в ней считает техническим превью без поддержки. Поэтому коммит от 31 октября доказывает только то, что Facepunch проверяет код на новой среде. Выход Rust на CoreCLR из него не следует. По нашей оценке, ветка unity_6.7.0 служит и обновлением движка, и репетицией перед Unity 7.0, но сама студия этого не писала.
Когда Unity обещает CoreCLR: 6.8 и 7.0 — один и тот же этап
Материалы об этом переходе расходятся в номерах версий. В мартовском руководстве и старых пересказах конечной точкой названа Unity 6.8, а в июньском и октябрьском обновлениях Unity — уже 7.0. Мы опираемся на самый свежий официальный текст от 5 октября. В нём же признано, что .NET 10 и C# 14 пока не имеют публичной даты.
| Версия Unity | Статус на октябрь 2026 | Что это значит |
|---|---|---|
| 6.3 (6000.3.26f1) | Сейчас в main у Rust | Текущая база игры |
| 6.7 LTS | Готовится к поддерживаемому выпуску | Последняя на Mono; CoreCLR с C# 9 и .NET Standard 2.1 |
| 7.0 alpha | Первая альфа вышла 5 октября | Редактор на CoreCLR без Mono, пока тоже C# 9; для продакшена не рекомендована |
| 7.0 релиз | Без даты | Цель — паритет с 6.7 LTS по функциям и стабильности |
| Следующий LTS после 7.0 | Запланирован на 2027 год | Здесь начнётся работа над производительностью |
Будет ли больше FPS: Unity обещает паритет, а не ускорение
Сторонние авторы пишут, что современный .NET обгоняет Mono в Unity в 2–10 раз, и от таких цифр легко ждать чудес. Официальная позиция гораздо скромнее. Про экспериментальную сборку 6.7 Unity пишет, что заметной разницы с Mono не ожидает. Про 7.0 сказано: что-то станет быстрее, что-то медленнее, а в среднем выйдет примерно столько же. Оптимизации отложены до следующего LTS.
Мы опираемся на оценку Unity: она описывает сам движок, а не сравнение сред в отрыве от него. Небольшой прирост Facepunch пока связывает с другой работой: новым рендером RRP, который вошёл в игру в октябрьском обновлении.
Что смена среды может сломать в плагинах Oxide и Carbon
Для обычного игрока CoreCLR незаметен, а вот серверные моды живут гораздо ближе к внутренностям игры. Oxide вшивает свои хуки прямо в Assembly-CSharp.dll из папки RustDedicated_DataManaged, и такие правки зависят от кода конкретных методов. Сам Rust позволяет грузить DLL-моды Harmony из папки HarmonyMods командами harmony.load и harmony.unload.
Следующая таблица составлена нами. Первая колонка взята из руководства Unity «Path to CoreCLR», а вывод для плагинов — наша оценка. Facepunch, Oxide и Carbon таких списков не публиковали, на живом сервере мы это не проверяли. Большая часть пунктов сработает только с переходом на .NET 10 в Unity 7.0, а экспериментальный режим 6.7 пока ограничен .NET Standard 2.1.
| Изменение в CoreCLR и .NET 10 | Как может проявиться в плагине | Что проверить |
|---|---|---|
| По умолчанию меньше кодировок текста | Чтение файла в Windows-1251 даст NotSupportedException | Плагины со старыми русскими конфигами и логами |
| Строже коды локалей | Короткий код «ru» может не сработать там, где нужен «ru-RU» | Плагины с форматированием дат и чисел по языку |
| String.GetHashCode меняется между запусками | Записи по хешу строки потеряются после рестарта | Плагины, которые сохраняют такие хеши в данные |
| BinaryFormatter устарел | Старые двоичные файлы данных придётся читать иначе | Форматы сохранения у давно не обновлявшихся плагинов |
| Часть вызовов Assembly.Load запрещена | Самодельная подгрузка DLL перестанет работать | Расширения и загрузчики модулей |
| Сборки не под .NET Standard 2.1 могут сломаться | Готовая DLL под другой фреймворк не запустится | Моды Harmony и сторонние библиотеки |
| Нет MonoPosixHelper.dll | Вызов даст DllNotFoundException только во время работы | Плагины с прямыми вызовами на Linux-серверах |
| Больше проверок переполнения | IntPtr.ToInt32() на 64 битах бросит OverflowException | Старый код, работающий с указателями |
| Другой порядок статических конструкторов | Инициализация может уйти в фоновый поток | Плагины, зависящие от порядка запуска |

Про доступ к закрытым членам через рефлексию руководство даёт хорошую новость: строгие правила доступности на него не распространяются. Значит, этот популярный у плагинов приём сам по себе не ломается.
Частые ошибки в ожидании перехода
- Считать коммит датой выхода. Ветка может жить месяцами, а вливание в main ещё не означает релиза.
- Путать Unity 6.7 с CoreCLR. Переход на 6.7 возможен и на Mono, это разные шаги.
- Заранее менять плагины. Чинить пока нечего: объявленного плана Oxide и Carbon под новую среду мы не нашли.
- Обещать игрокам прирост FPS. Сама Unity говорит о паритете.
- Путать EntityId из коммитов с идентификаторами сущностей Rust. Здесь речь об объектах движка Unity, а не об ID построек из консоли сервера.
Кому эта новость пока не важна
Если вы просто играете на официальных серверах, ничего делать не нужно: 5 ноября вы, скорее всего, вообще не заметите этой работы. Мало что меняется и для владельца ванильного сервера без модов. Новость полезна тем, кто держит свой сервер с плагинами, заказывает их у разработчиков или пишет сам.
Таким админам уже сейчас имеет смысл составить список плагинов, особенно заброшенных авторами, и сохранить их настройки. Заодно пригодится порядок в группах и разрешениях Oxide и Carbon: при будущей замене плагина их не придётся восстанавливать по памяти. Авторам плагинов стоит заранее отказаться от BinaryFormatter, хранения результатов GetHashCode и редких кодировок: эти правки безопасны и на текущей Mono.
Коротко
- Facepunch 30–31 октября сделала 23 коммита в ветке
unity_6.7.0и уже проверяет код на CoreCLR. - На 2 ноября ветка не влита в main, так что в патч 5 ноября она, скорее всего, не попадёт.
- Unity 6.7 LTS остаётся на Mono, а CoreCLR в ней экспериментальна. Полный переход придёт с Unity 7.0, у которой нет даты.
- Прироста FPS от самой смены среды Unity не обещает: работа над скоростью запланирована на следующий LTS.
- Главный риск лежит на плагинах: кодировки, хеши строк, BinaryFormatter, загрузка DLL. Это наша оценка по руководству Unity, а не заявление Facepunch или Oxide.
