Counter-Strike 2

Counter-Strike 2

Not enough ratings
Radial Menu | Радиальное Меню
By Hitman
[🇺🇸] Guide about making fully custom Radial Menu, with your own commands and your own naming
[🇷🇺] Гайд про полностью кастомное Круговое Меню, с собственными командами и собственным неймингом
   
Award
Favorite
Favorited
Unfavorite
Introductory
Brief introduction to the matter
There is «Radial Menu of Radio Commands» in-game
English language in game
English language in game
English language in game
Russian language in game
Russian language in game
Russian language in game
In this menu, every section has bound command to it, which is essentially the in-game localization code:
cl_radial_radio_tab_0_text_1 "#Chatwheel_midplan" cl_radial_radio_tab_1_text_1 "#Chatwheel_smoke" cl_radial_radio_tab_2_text_1 "#Chatwheel_gogogo"

This "code", depending on what language your game is running in, it displays the corresponding text:
📄 ...\game\csgo\resource\csgo_english.txt
📄 ...\game\csgo\resource\csgo_russian.txt
"Chatwheel_midplan" "Ping Middle"
"Chatwheel_smoke" "Need Smokes"
"Chatwheel_gogogo" "Go go go!"
"Chatwheel_midplan" "Метка на центр"
"Chatwheel_smoke" "Нужны дымовые гранаты"
"Chatwheel_gogogo" "Пошли, пошли!"

But despite the fact that only text is attached to the menu sections, which is simply displayed in different languages ​​in its own way - When you use any section of this menu, you pronounce a voice radio command, and also duplicate it in the chat.

This happens because in the game code hardcoded next thing:
  1. If, radial menu use this #Chatwheel_gogogo value in section

  2. Need to display *an icon*

  3. And use this command:
    playerchatwheel CW.GoGoGo "#Chatwheel_gogogo"

My Steam Guide about radio & radial commands
https://steamproxy.com/sharedfiles/filedetails/?id=3078337270
╠ Displayed text
We can manually set any localization code in any section of radial menu.
English language in game
Russian language in game

What localization code was used
cl_radial_radio_tab_1_text_1 "#SFUI_vote_passed_restart_game" cl_radial_radio_tab_1_text_2 "#Chatwheel_friendlyfire" cl_radial_radio_tab_1_text_3 "#Skirmish_DM_FFA_name" cl_radial_radio_tab_1_text_4 "#SFUI_vote_passed_swap_teams" cl_radial_radio_tab_1_text_5 "#practicesettings_infwarmup_button" cl_radial_radio_tab_1_text_6 "#SFUI_vote_passed_scramble_teams" cl_radial_radio_tab_1_text_7 "#Skirmish_DM_HS_name" cl_radial_radio_tab_1_text_8 "#Valve_Force_Respawn"

Localization codes
📄 ...\game\csgo\resource\csgo_english.txt
📄 ...\game\csgo\resource\csgo_russian.txt
"SFUI_vote_passed_restart_game" "Restarting the match..."
"Chatwheel_friendlyfire" "Friendly fire"
"Skirmish_DM_FFA_name" "Free For All"
"SFUI_vote_passed_swap_teams" "Teams will be swapped."
"practicesettings_infwarmup_button" "Infinite Warmup"
"SFUI_vote_passed_scramble_teams" "Teams will be scrambled."
"Skirmish_DM_HS_name" "Boom! Headshot!"
"SFUI_vote_passed_restart_game" "Перезапуск матча..."
"Chatwheel_friendlyfire" "Огонь по своим"
"Skirmish_DM_FFA_name" "Все против всех"
"SFUI_vote_passed_swap_teams" "Команды будут сменены."
"practicesettings_infwarmup_button" "Вечная разминка"
"SFUI_vote_passed_scramble_teams" "Команды будут перемешаны."
"Skirmish_DM_HS_name" "Бах! Прямо в голову!"
📄 ...\game\core\resource\valve_english.txt
📄 ...\game\core\resource\valve_russian.txt
"Valve_Force_Respawn" "Force Respawn"
"Valve_Force_Respawn" "Автоматическое появление"

Result
When you open the radial menu, you will see text corresponding to the localization code.
But, when you select a section, nothing will happen, and a message will appear in the console that there are no commands associated with the specified localization codes to execute any command (and no associated icons too).
╠ Executing console commands
If try to appoint any consol command in the section, the labeling is disapear, and nothin from the commands wount be work.


What is was appointing in this example
cl_radial_radio_tab_1_text_1 "mp_restartgame 1" cl_radial_radio_tab_1_text_2 "bot_kick" cl_radial_radio_tab_1_text_3 "changelevel de_dust2" cl_radial_radio_tab_1_text_4 "exec autoexec" cl_radial_radio_tab_1_text_5 "say gg wp" cl_radial_radio_tab_1_text_6 "disconnect" cl_radial_radio_tab_1_text_7 "toggle sv_cheats" cl_radial_radio_tab_1_text_8 "noclip"

In order for a section to execute any command appointing into it, you need to use a special input type:
cl_radial_radio_tab_1_text_1 cmd";mp_restartgame 1;
    • Command must start from any sign/letter, or they combination.
      (can not use « " » like beginning sign)
    • After beginning sign, must be this sign « " ».
    • After, must go this opener sign « ; ».
    • After that, type need to you command.
    • After command, must go this dividing/ending sign « ; ».
    Example:
    !";mp_restartgame 1; @";mp_restartgame 1; #";mp_restartgame 1; %";mp_restartgame 1; .";mp_restartgame 1; asd";mp_restartgame 1; cmd";mp_restartgame 1; Custom";mp_restartgame 1;

  • You also can use multiple command at once, by dividing them with this « ; » sign.
    Example:
    cmd";command1;command2;command3;

  • The line can contain up to ~37 commands in a row, inclusive. If there are more than ~37 commands, or the commands themselves are very long (one line of inputs will exceed ±460 characters)all commands of this section would be ignored.

  • Each individual command may contain quotes.
    Example:
    cmd";say "Hi y'all";cl_mute_enemy_team "0";voice_modenable "1";
╚ Combining the two previous methods
And so, we have two mutually exclusive things on our hands:
  • Displaying the text we need
    cl_radial_radio_tab_1_text_1 "#SFUI_vote_passed_restart_game"

  • Executing the console command we need
    cl_radial_radio_tab_1_text_1 cmd";mp_restartgame 1;

And I'll tell you right away, there is no easy way to combine them. But there is a way 😎

If we open the radial menu via « +radialradio2 » command, and after that type one by one command that appoint different command on the same sector:
cl_radial_radio_tab_1_text_1 "#Chatwheel_affirmative" cl_radial_radio_tab_1_text_1 "#Chatwheel_negative"

We will see that is sector can be re-appointing after radial menu was opened.
And that's can be used, with an input-alias.

What is input-alias?
We create two alias, with the prefix « + » and « - ».
In other words, we create of two state to one alias:
  1. Pressed — Executing.
  2. Unpressed — Not/Stop executing.

That's how it looks like:
alias "+radial" "exec radial_txt.cfg;+radialradio2" alias "-radial" "bind C +radial_loop" alias "+radial_loop" "exec radial_cmd.cfg" alias "-radial_loop" "-radialradio2;bind C +radial" bind "C" "+radial"
  • By pressing on key once, we:
    1. Executing config, which appointing the localization codes on all sectors,
      in all three page of radial menu.

    2. Open the radial menu.

  • By pressing the same key at the second time, we:
    1. Executing another config, which appointing the console commands on all sectors,
      in all three page of radial menu.

    2. Closing the radial menu. And execute the command from sector, if we hover mouse on it before.
✅Ready solution
Download from my Google.Drive these files
📂radialmenu ├📂ingame_cvars │ ├📄command.cfg │ └📄text.cfg ├📂server_cvars │ ├📄command.cfg │ └📄text.cfg └📄aliases.cfg 📄Autoexec.cfg
» Download «
[drive.google.com]


ATTENTION!!!
If you already have your own «📄Autoexec.cfg», copy all commands from my which you was download, in your own. Otherwise, your «📄Autoexec.cfg» will be lost, and will be replaced on my!

Downloaded file place in this path:
📂Steam └📂steamapps └📂common └📂Counter-Strike Global Offensive └📂game └📂csgo └📂cfg

Settings
Change binds in «📄Autoexec.cfg» on which you need
☑️Ready solution + Own naming for menus
Download from my Google.Drive these files
📂cfg ├📂radialmenu │ ├📂ingame_cvars │ │ ├📄command.cfg │ │ └📄text.cfg │ │ ├📂server_cvars │ │ ├📄command.cfg │ │ └📄text.cfg │ └📄aliases.cfg └📄Autoexec.cfg 📂resource ├📄platform_english.txt └📄platform_russian.txt
» Download «
[drive.google.com]

ATTENTION!!!
If you already have your own «📄Autoexec.cfg», copy all commands from my which you was download, in your own. Otherwise, your «📄Autoexec.cfg» will be lost, and will be replaced on my!

Downloaded file place in this path:
📂Steam └📂steamapps └📂common └📂Counter-Strike Global Offensive └📂game └📂csgo

Settings
Change binds in «📄Autoexec.cfg» on which you need


If you need to change printing ingame text, edit files
«📄platform_english.txt» and/or «📄platform_russian.txt» (depends on your game language)
How to Use
  1. If CS2 was launched on background, then after installing configs you need to load
    «📄Autoexec.cfg» manually. To do this, use this console command in game:
    exec autoexec

  2. If CS2 was closed (or you close it by yourself, after installation) — just launch CS2 and that's it. You don't need to launch «📄Autoexec.cfg» manually, it's already launching automatically when game starting.

  3. After that, as you load on any map (you need to be the host), custom radial menu opens on Z and C keys (if you don't change the binds)
    • C — Gameplay settings: make restart, On/Off some function, bots settings, and commands that allow only with sv_cheats 1.
    • Z — Server settings: change current map on server, setup server from list of game modes.

  4. First key press, opens the radial menu.
    Second key press, close the radial menu, if your mouse was hovering something — it will be executed. If you don't hover anything, it's just close the radial menu.
Вводная
Краткий ввод в курс дела
В игре существует «Радиальное (круговое) Меню Радиокоманд»
Английский язык игры
Английский язык игры
Английский язык игры
Русский язык игры
Русский язык игры
Русский язык игры

В самом меню, на каждую секцию назначена команда, которая по сути является внутри игровым кодом локализации:
cl_radial_radio_tab_0_text_1 "#Chatwheel_midplan" cl_radial_radio_tab_1_text_1 "#Chatwheel_smoke" cl_radial_radio_tab_2_text_1 "#Chatwheel_gogogo"

Данный код, в зависимости от того, на каком языке запущена ваша игра — выдаёт соответствующий текст:
📄 ...\game\csgo\resource\csgo_english.txt
📄 ...\game\csgo\resource\csgo_russian.txt
"Chatwheel_midplan" "Ping Middle"
"Chatwheel_smoke" "Need Smokes"
"Chatwheel_gogogo" "Go go go!"
"Chatwheel_midplan" "Метка на центр"
"Chatwheel_smoke" "Нужны дымовые гранаты"
"Chatwheel_gogogo" "Пошли, пошли!"

Но несмотря на то, что к секциям меню, привязан лишь текст, который просто отображается на разных языках по своему — Когда вы используете какую либо секцию этого меню, вы произносите голосовую радио команду, и так же дублируете её в чат.

Такое происходит, потому что в коде игры, прописано:
  1. Если в радиальном меню, используется #Chatwheel_gogogo

  2. Нужно отобразить в её секции *такую-то иконку*

  3. При выборе этой секции (#Chatwheel_gogogo), нужно выполнить команду:
    playerchatwheel CW.GoGoGo "#Chatwheel_gogogo"

Моё руководство по всем доступным радио/радиальным командам
https://steamproxy.com/sharedfiles/filedetails/?id=3078337270
╠ Отображаемый текст
Мы можем назначить на любую секцию какой угодно код локализации.
Английский язык игры
Русский язык игры

Что назначено в примере
cl_radial_radio_tab_1_text_1 "#SFUI_vote_passed_restart_game" cl_radial_radio_tab_1_text_2 "#Chatwheel_friendlyfire" cl_radial_radio_tab_1_text_3 "#Skirmish_DM_FFA_name" cl_radial_radio_tab_1_text_4 "#SFUI_vote_passed_swap_teams" cl_radial_radio_tab_1_text_5 "#practicesettings_infwarmup_button" cl_radial_radio_tab_1_text_6 "#SFUI_vote_passed_scramble_teams" cl_radial_radio_tab_1_text_7 "#Skirmish_DM_HS_name" cl_radial_radio_tab_1_text_8 "#Valve_Force_Respawn"

Коды локализации
📄 ...\game\csgo\resource\csgo_english.txt
📄 ...\game\csgo\resource\csgo_russian.txt
"SFUI_vote_passed_restart_game" "Restarting the match..."
"Chatwheel_friendlyfire" "Friendly fire"
"Skirmish_DM_FFA_name" "Free For All"
"SFUI_vote_passed_swap_teams" "Teams will be swapped."
"practicesettings_infwarmup_button" "Infinite Warmup"
"SFUI_vote_passed_scramble_teams" "Teams will be scrambled."
"Skirmish_DM_HS_name" "Boom! Headshot!"
"SFUI_vote_passed_restart_game" "Перезапуск матча..."
"Chatwheel_friendlyfire" "Огонь по своим"
"Skirmish_DM_FFA_name" "Все против всех"
"SFUI_vote_passed_swap_teams" "Команды будут сменены."
"practicesettings_infwarmup_button" "Вечная разминка"
"SFUI_vote_passed_scramble_teams" "Команды будут перемешаны."
"Skirmish_DM_HS_name" "Бах! Прямо в голову!"
📄 ...\game\core\resource\valve_english.txt
📄 ...\game\core\resource\valve_russian.txt
"Valve_Force_Respawn" "Force Respawn"
"Valve_Force_Respawn" "Автоматическое появление"

Результат
Когда вы откроете радиальное меню — вы увидите текст, соответствующий коду локализации. Однако выбрав секцию, ничего не произойдёт, а в консоли появится сообщение, что к указанным кодам локализации, нет привязанных команд для выполнения (и привязанных иконок тоже).
╠ Выполнение консольных команд
Если в секцию попытаться назначить обычную консольную команду — секция визуально станет пустой. А так же, ничего из прописанного в неё, работать не будет.


Что назначено в примере
cl_radial_radio_tab_1_text_1 "mp_restartgame 1" cl_radial_radio_tab_1_text_2 "bot_kick" cl_radial_radio_tab_1_text_3 "changelevel de_dust2" cl_radial_radio_tab_1_text_4 "exec autoexec" cl_radial_radio_tab_1_text_5 "say gg wp" cl_radial_radio_tab_1_text_6 "disconnect" cl_radial_radio_tab_1_text_7 "toggle sv_cheats" cl_radial_radio_tab_1_text_8 "noclip"

Для того чтобы секция выполнила любую прописанную в неё команду, нужно использовать особый тип ввода:
cl_radial_radio_tab_1_text_1 cmd";mp_restartgame 1;
    • Команда должна начинаться с любого знака/буквы, или их сочетания.
      (нельзя использовать « " » как начальный знак)
    • После начального знака, должен следовать знак « " ».
    • После должен следовать открывающий знак « ; ».
    • После указывается нужная вам команда.
    • После команды, должен следовать разделяющий/закрывающий знак « ; ».
    Примеры:
    !";mp_restartgame 1; @";mp_restartgame 1; #";mp_restartgame 1; %";mp_restartgame 1; .";mp_restartgame 1; asd";mp_restartgame 1; cmd";mp_restartgame 1; Custom";mp_restartgame 1;

  • Можно указать сразу несколько команд, разделяя их знаком « ; ».
    Пример:
    cmd";command1;command2;command3;

  • Строка может содержать до ~37 команд включительно. Если команд будет больше ~37, или команды будут сами по себе очень длинными (одна строка инпутов будет превышать ±460 знаков)все команды этой секции будут игнорироваться.

  • Каждая отдельная команда, может содержать кавычки.
    Пример:
    cmd";say "Hi y'all";cl_mute_enemy_team "0";voice_modenable "1";
╚ Объединение двух прошлых вариантов
И так, у нас на руках есть две взаимоисключающие друг друга вещи:
  • Отображение нужного нам текста
    cl_radial_radio_tab_1_text_1 "#SFUI_vote_passed_restart_game"

  • Выполнение нужной нам консольной команды
    cl_radial_radio_tab_1_text_1 cmd";mp_restartgame 1;

И скажу сразу, нет простого способа объединить их между собой. Но способ есть 😎

Если вызвать радиальное меню консольной командой « +radialradio2 », и после поочерёдно ввести две команды, которые перезаписывают один и тот же сектор, разными значениями:
cl_radial_radio_tab_1_text_1 "#Chatwheel_affirmative" cl_radial_radio_tab_1_text_1 "#Chatwheel_negative"

Мы увидим, что сектора можно переназначить, уже после открытия меню.
Этот нюанс можно использовать в сочетании с инпут-альясом.

Что такое инпуть-альяс?
Мы создаём два альяса, с префиксом « + » и « - ».
То есть, мы создаём два состояния для нашего альяса:
  1. Удерживается — Выполняется.
  2. Отпущен — Не выполняется.

И вот как это будет выглядеть:
alias "+radial" "exec radial_txt.cfg;+radialradio2" alias "-radial" "bind C +radial_loop" alias "+radial_loop" "exec radial_cmd.cfg" alias "-radial_loop" "-radialradio2;bind C +radial" bind "C" "+radial"
  • Нажав на кнопку 1й раз, мы:
    1. Применяем конфиг, в котором на все три
      круговых меню прописаны коды локализации.

    2. Открываем круговое меню.

  • Нажав на кнопку 2й раз, мы:
    1. Применяем другой конфиг, в котором на все три круговых меню прописываются нужные нам консольные команды.

    2. Закрываем круговое меню, и применяем консольную команду,
      если навились курсором на нужный нам сектор.
✅Готовый вариант
Скачайте с моего Google.Диск'а вот эти файлы
📂radialmenu ├📂ingame_cvars │ ├📄command.cfg │ └📄text.cfg ├📂server_cvars │ ├📄command.cfg │ └📄text.cfg └📄aliases.cfg 📄Autoexec.cfg
» Скачать «
[drive.google.com]


ВНИМАНИЕ!!!
Если у вас уже есть свой собственный файл «📄Autoexec.cfg», скопируйте всё содержимое из скачанного, в свой. В противном случаи, ваш «📄Autoexec.cfg» перезапишется моим, и вы потеряете свой конфиг!

Скачанные файлы, закиньте по этому пути:
📂Steam └📂steamapps └📂common └📂Counter-Strike Global Offensive └📂game └📂csgo └📂cfg

Настройка
Измените бинды в «📄Autoexec.cfg» на нужные вам
☑️Готовый вариант + Собственный нейминг пунктов меню
Скачайте с моего Google.Диск'а вот эти файлы
📂cfg ├📂radialmenu │ ├📂ingame_cvars │ │ ├📄command.cfg │ │ └📄text.cfg │ │ ├📂server_cvars │ │ ├📄command.cfg │ │ └📄text.cfg │ └📄aliases.cfg └📄Autoexec.cfg 📂resource ├📄platform_english.txt └📄platform_russian.txt
» Скачать «
[drive.google.com]

ВНИМАНИЕ!!!
Если у вас уже есть свой собственный файл «📄Autoexec.cfg», скопируйте всё содержимое из скачанного, в свой. В противном случаи, ваш «📄Autoexec.cfg» перезапишется моим, и вы потеряете свой конфиг!

Скачанные файлы, закиньте по этому пути:
📂Steam └📂steamapps └📂common └📂Counter-Strike Global Offensive └📂game └📂csgo

Настройка
Измените бинды в «📄Autoexec.cfg» на нужные вам


Если вам нужно отредактировать отображаемый текст в самой игре, отредактируйте файлы
«📄platform_english.txt» и/или «📄platform_russian.txt» (в зависимости от языка игры)
Как использовать
  1. Если CS2 была запущена на фоне, то по завершению всего выше описанного,
    необходимо вручную загрузить «📄Autoexec.cfg», командой:
    exec autoexec

  2. Если игры выключена (или вы из неё вышли) — просто запускайте CS2.
    Делать больше ничего не нужно. «📄Autoexec.cfg» загружается автоматически при запуске игры.

  3. Загрузившись на локальную карту (где вы хост), кастомные радиальные меню вызываются кнопками Z и C (если вы не переназначали их)
    • C — Настройки игры: сделать рестарт, включение/отключение ряда функций, настройки ботов, и команды доступные только в sv_cheats 1.
    • Z — Настройки сервера: смена карты, включение одного из игровых режимов.

  4. 1е нажатие, вызывает радиальное меню.
    2е нажатие на эту же кнопку, выполняет команду сектора, на который вы навели мышку.
    (или просто закрывает радиальное меню, если курсор не выбрал ни один из секторов)
7 Comments
Hitman  [author] 6 Feb @ 10:24pm 
I find a way to use custom text in radial menu, AGAIN!!!
I update the guide, and update my Google.Drive files.
So, check it out! :lunar2019piginablanket:

— — — — — — — — — — — — — — — — — — —

Я нашел способ как использовать кастомный текст в радиальном меню, СНОВА!!!
Я обновил руководство, и обновил файлы на своём Гугл.Диске.
Так что, заценивайте! :lunar2020ratinablanket:
Frosty 25 Dec, 2024 @ 12:45pm 
good work!
HASATAN 10 Dec, 2024 @ 3:14am 
ку а как сделать круговое меню только для гранат? а то в кс2 при нажатии всё оружие показывает
Hitman  [author] 30 Mar, 2024 @ 2:11pm 
@DIKTOR~ : Окей спасибо, я пока снёс кс. Но как скачаю, попробую этот способ. Надеюсь его к этому времени не пофиксят :lunar2019piginablanket:
Больше не братик 30 Mar, 2024 @ 12:23pm 
Халоу, сейчас кастомную локализаю можно сделать так: в папке "Counter-Strike Global Offensive\game\csgo\resource" создается папка subtitles ("Counter-Strike Global Offensive\game\csgo\resource\subtitles"), в ней файл "closecaption_english.txt", где прописывается локализация. В параметрах запуска нужно прописать "-language english".
Hitman  [author] 7 Dec, 2023 @ 3:33am 
Есть такое))
neverlose 7 Dec, 2023 @ 1:26am 
ебааааааааааааааааааааааааааааааааааать ты заморочился мужик:steamthumbsup: