Обновление CS2 (19 мая 2026 г.)
Обновление добавляет контроль неточности при больших бустах, расширяет API `cs_script` и примеры в zoo, уточняет GC‑сообщения и обновляет шейдеры окружения вместе с небольшим повышением версии.
Кратко
- Новый конвар `weapon_accuracy_stack_boost_limit` влияет на разброс оружия при больших стаках бустов.
- API `cs_script` расширено новыми хелперами для раунда, экономики, оружия и ввода, а также `RegisterCheatCommand`.
- Примеры в `editor/zoo` заменяют чат‑триггеры на чит‑команды и централизуют включение `sv_cheats` в `setup.js`.
- GC‑сообщения расширены новым `steammessages_gc.proto`, в то время как старые сообщения репликации конваров удалены.
- Шейдеры окружения (`csgo_environment.slang` и `csgo_environment_blend.slang`) переработаны для PC и Vulkan, манифесты шейдеров обновлены.
- Версии клиента и сервера повышены до `2000827`, `PatchVersion` — до `1.41.6.2`.
Небольшое обновление CS2 приносит новые скриптовые инструменты для авторов, уточняет взаимодействие усилений (boost) с точностью оружия и обновляет ряд задних систем и шейдеров — всё это сопровождается небольшим повышением версии.
Геймплей и ConVar'ы
- Контроль неточности при больших бустах: Добавлен новый реплицируемый конвар
weapon_accuracy_stack_boost_limit. В описании указано, что «ladder‑style inaccuracy» применяется к игрокам, которые получают буст от стака размеромweapon_accuracy_stack_boost_limitили больше. Это означает, что при больших многопользовательских бустах может появляться дополнительный разброс, что особенно важно для команд, строящих наборы на коллективных поднятиях. - Команда для тестирования ботов: Зарегистрирована серверная команда
bot_hurtвместе с другими командами, помеченными как читы. Подробности не раскрыты, но похоже, команда предназначена для офлайн‑тестов или режима с включёнными читами, чтобы быстро наносить урон или убивать ботов во время практики или отладки.
Скрипты и API Workshop
API cs_script/point_script, используемое в кастомных скриптах и картах Workshop, получило заметное расширение и небольшой рефакторинг экспериментальных пометок.
Общие правки документации API
- Контакт для отзывов: В определение скриптинга добавлена отдельная строка с указанием
[email protected]и темой письма "cs_script Feedback" для обратной связи от создателей контента. - Сняты пометки
@experimental: Несколько методов, ранее помеченных как экспериментальные (например,SetSaveData,GetSaveData,OnModifyPlayerDamageи разные вспомогательные методы ввода), больше не имеют предупреждений, что указывает на повышенную уверенность Valve в их стабильности.
Новые хуки жизненного цикла и раунд‑флоу
- Новый экспериментальный колбэк: Добавлен
OnBeginRoundRestart(callback: () => void): void;, который вызывается в начале очистки при рестарте раунда. Это позволит авторам сбрасывать собственное состояние перед началом нового раунда и повысить надёжность сложных раундовых скриптов.
Помощники для игроков и раундов
- Получение контроллеров:
GetAllPlayerControllers(): CSPlayerController[]возвращает все контроллеры игроков, включая отключенные, что облегчает итерацию по всем слотам в пользовательских режимах. - Управление оставшимся временем раунда:
GetRoundRemainingTime(): numberдополняется новымSetRoundRemainingTime(time: number): void;, позволяя скриптам напрямую изменять таймер раунда — полезно для тренировок, мини‑игр или специальных режимов.
Пользовательские консольные команды для скриптов
- Регистрация чит‑команд:
RegisterCheatCommand(name: string, callback: (args: string) => void): void;регистрирует консольную команду, вызывающую скриптовый колбэк и доступную только приsv_cheats == true. Это даёт создателям контролируемый способ предоставлять отладочные или инструментальные команды без использования чата.
Доступ к состоянию оружия и игрока
- Оружие:
CSWeaponBaseполучает методIsSilencerOn(): boolean;для проверки включён ли глушитель. - Игрок/Pawn:
CSPlayerPawnрасширен вспомогательными методами:HasHelmet()иSetHasHelmet(hasHelmet: boolean)для чтения и изменения наличия шлема;IsScoped()для проверки, прицелен ли игрок.
- Деньги в контроллере:
CSPlayerControllerполучает методы для работы с экономикой:AddMoneySpendableNow(amount: number)/GetMoneySpendableNow()— изменение средств, доступных в текущем раунде;AddMoneyEarnedForNextRound(amount: number)/GetMoneyEarnedForNextRound()— влияние на деньги, приходящиеся на следующий раунд (аналогично бонусу при поражении).
Эти добавления упрощают создание пользовательских экономик, тренажёров и режимов с контролируемым снаряжением.
Ввод считается стабильным
- Стабильные хелперы ввода: Методы
IsInputPressed,WasInputJustPressedиWasInputJustReleasedнаCSPlayerPawnбольше не помечаются как экспериментальные — это делает состояние ввода частью стабильного скриптингового интерфейса, что полезно для туториалов по движению или кастомных способностей.
Правки примеров в Editor Zoo
Встроенные скрипты карты editor/zoo, используемые как примеры и тестовый контент, обновлены в соответствии с новыми возможностями скриптинга и потоком через чит‑команды.
-
Чат‑команды заменены на чит‑команды:
- Старые чат‑триггеры трассировок (например,
!traceline,!tracesphere,!tracebox,!tracebullet) заменены консольной чит‑командойscript_zoo_trace <type>, гдеtypeможет бытьline,sphere,boxилиbullet. - Скрипт использует
Instance.GetAllPlayerControllers()[0].GetPlayerPawn()для выбора pawn'а, откуда делать трассировку, и выводит подсказку по использованию при неверном аргументе. - Команда
!showinputтакже заменена на чит‑консольную командуscript_zoo_showinput, которая переключает отображение ввода для первого контроллера.
Эти изменения демонстрируют практическое применение
RegisterCheatCommandи удерживают инструменты разработки заsv_cheatsвместо обычного чата. - Старые чат‑триггеры трассировок (например,
-
Централизация включения читов в setup:
- Раньше
sv_cheats 1задавался прямо внутриgrenadetraining.js; теперь это выполняется один раз изsetup.jsчерезInstance.ServerCommand("sv_cheats 1");вместе с уже существующими командами warmup. - Это показывает склонность к централизованной конфигурации окружения: один общий скрипт настройки (cheats, warmup) и отдельные скрипты для инструментов и демо.
- Раньше
-
Обновлены упакованные ресурсы:
- Скомпилированные версии скриптов (
*.vjs_c) в основном контенте были обновлены, так что игроки, загружающие штатную картуeditor/zoo, получат новое поведение без ручных правок.
- Скомпилированные версии скриптов (
Авторы, изучающие zoo для обучения скриптингу, увидят более современный и «чит‑осведомлённый» подход к консольным инструментам.
Сервисы наблюдателя и камеры
- Пост‑обработка для наблюдателя: Схема сервисов наблюдательной камеры теперь отслеживает
m_hPrevPostProcessingVolume— хендл на предыдущий пост‑процессинговый объём. Хотя точное поведение не раскрыто, это, вероятно, позволяет более плавно переходить визуальные настройки (например, градация цвета или экспозиция) при движении наблюдателя между зонами с разными эффектами.
Сеть, GC и бэкенд‑инструменты
Добавлен объёмный новый файл steammessages_gc.proto, и несколько игровых бинарников получили соответствующие строковые ссылки.
-
Новые определения сообщений GC/Steam:
- Новый proto содержит множество сообщений для:
- Web API ключей и HTTP‑запросов/ответов (
CMsgWebAPIKey,CMsgHttpRequest,CMsgWebAPIRequest,CMsgHttpResponse); - Запросов аккаунтов и лицензий (
CMsgAMFindAccounts,CMsgAMGetLicenses,CMsgAMGetUserGameStatsи т. п.); - Кэширующих операций типа memcached (
CGCMsgMemCachedGet,CGCMsgMemCachedSet,CGCMsgMemCachedDeleteи статистики); - Системной статистики, SQL‑статистики, геолокации по IP, доверия к покупкам и смены VAC‑статуса;
- Маршрутизации клиентских и Web API сообщений (
CMsgGCRoutingInfo,CMsgGCMsgMasterSetWebAPIRouting,CMsgGCMsgMasterSetClientMsgRouting); - Шаблонов писем, гостевых пропусков, уведомлений о подозрительной активности и партнёрских микротранзакций.
- Web API ключей и HTTP‑запросов/ответов (
Эти определения выглядят как инфраструктурные сообщения для Game Coordinator, матчмейкинга, бэкенда предметов и инструментов разработчиков, а не как внутриигровые функции.
- Новый proto содержит множество сообщений для:
-
Обновление строковых файлов:
- Файлы
server_strings,client_strings,matchmaking_stringsиcs2_item_editor_stringsтеперь ссылаются на многие новые GC‑сообщения и структуры маршрутизации. - Одновременно были удалены ссылки на
CMsgConVarValueиCMsgReplicateConVars, и их определения удалены изbase_gcmessages.proto.
- Файлы
-
Удаление GC‑сообщений о репликации ConVar'ов:
- Сообщения
CMsgConVarValueиCMsgReplicateConVarsбыли удалены из общих GC‑прото. Это указывает на то, что конвари, вероятно, больше не передаются через этот GC‑канал. - Обычное поведение in‑engine для конваров (через сетевой слой сервера/клиента и существующие инструменты) не нарушено, но сторонние интеграции, полагающиеся на GC‑репликацию конваров, могут потребовать доработки.
- Сообщения
Рендеринг и шейдеры
Обновлены два больших файла окружения шейдеров и соответствующие манифесты для Vulkan и PC.
-
Переработка шейдеров окружения и blend:
- Файлы
csgo_environment.slangиcsgo_environment_blend.slangбыли существенно рефакторены: изменены способы выборки карт высот, цветовых текстур и комбинирования нескольких слоёв. - Добавлены новые пути вычисления весов слоёв (например, вычисления типа
_6616из_19651 / vec2(_19651.x + _19651.y)) и более явная обработка координат для каждого слоя. - Обработка высоты/шероховатости/тона стала явнее (
fwidthдля значений карты высот, clamp/saturate для шероховатости и тона), что может повлиять на внешний вид смешанных поверхностей (например, террейн) при косых углах обзора или при смене LOD.
- Файлы
-
Манифесты шейдеров — перестановка без новых путей:
- В
shaders_vulkan_dir.txtиshaders_pc_dir.txtнаблюдаются удаления и повторные добавления тех же путей для окруженческих и статических overlay‑шейдеров для PC и Vulkan. - Поскольку добавленные и удалённые пути совпадают, это скорее перерасчёт/пересборка шейдеров, чем добавление новых записей.
- В
Игроки могут заметить тонкие изменения в отрисовке земли и смешанных поверхностей в определённых условиях освещения и углов обзора, особенно на Vulkan, но изменение не представлено как явный переключатель визуального эффекта.
Сборка и повышение версии
-
Новые версии клиента и сервера:
ClientVersionиServerVersionобновлены до2000827, аPatchVersion— до1.41.6.2.- Внутренние номера сборки и исходных ревизий также продвинулись, что делает это явным обновлением для совместимости матчмейкинга.
-
Обновление манифеста контента:
- Основной манифест
pak01_dir.txtбыл переработан: заново перечислены локализованныеresource/csgo_*.txt, бинарники скриптовeditor/zooи различные скриншоты иконок карт (включаяde_cache). - То, что пути удаляются и затем добавляются идентично, указывает на обновление упаковки или порядка, а не на новые ассеты.
- Основной манифест
Игрокам следует убедиться, что версии клиента и сервера совпадают с этим релизом, чтобы избежать ошибок несоответствия при подключении к сообществам серверов.
Общие выводы
- У соревновательных игроков могут появиться изменения в поведении при экстремальных многопользовательских бустах из‑за
weapon_accuracy_stack_boost_limit. - Создатели и авторы Workshop получают более богатые хуки для управления раундом, экономикой, состоянием оружия и брони, а также удобные чит‑команды для отладки; примеры в
editor/zooобновлены в духе использования чит‑консоли. - Наблюдатели могут получить более плавные визуальные переходы благодаря отслеживанию предыдущего пост‑процессингового объёма.
- Бэкенд‑обновления GC и изменения в репликации конваров делают инфраструктуру более согласованной, но интеграциям, опиравшимся на старые GC‑сообщения о конварах, возможно, потребуется адаптация.
- Тонкие правки шейдеров окружения могут слегка изменить внешний вид террейна и смешанных поверхностей, особенно на Vulkan.
