{"id":24491908,"url":"https://github.com/theokyr/cs2remoteconsole","last_synced_at":"2025-05-08T20:54:27.491Z","repository":{"id":246779964,"uuid":"819734975","full_name":"theokyr/CS2RemoteConsole","owner":"theokyr","description":"A CS2-centric VConsole implementation in C++ with remote control support. Might support other Source 2 games as well.","archived":false,"fork":false,"pushed_at":"2024-07-14T21:08:59.000Z","size":1063,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T18:07:35.920Z","etag":null,"topics":["counter-strike-2","cpp","pdcursesmod","source2","source2-engine","vconsole"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theokyr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-25T05:27:17.000Z","updated_at":"2025-03-15T22:57:28.000Z","dependencies_parsed_at":"2025-01-21T18:30:12.434Z","dependency_job_id":null,"html_url":"https://github.com/theokyr/CS2RemoteConsole","commit_stats":null,"previous_names":["theokyr/cs2remoteconsole"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theokyr%2FCS2RemoteConsole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theokyr%2FCS2RemoteConsole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theokyr%2FCS2RemoteConsole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theokyr%2FCS2RemoteConsole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theokyr","download_url":"https://codeload.github.com/theokyr/CS2RemoteConsole/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253149380,"owners_count":21861717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["counter-strike-2","cpp","pdcursesmod","source2","source2-engine","vconsole"],"created_at":"2025-01-21T18:19:57.141Z","updated_at":"2025-05-08T20:54:27.465Z","avatar_url":"https://github.com/theokyr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# CS2RemoteConsole\n\nCS2RemoteConsole is a C++ utility for remotely interacting with Counter-Strike 2's console, featuring a TUI and support for a centralized remote server.\n\n![Image of the CS2RemoteConsole Server and Client applications running together](https://github.com/theokyr/CS2RemoteConsole/blob/master/docs/image.png?raw=true)\n\n## Features\n\n- Connect, read, and write messages to CS2 through the VConsole socket\n- Connect and receive commands from a remote control server\n- Display console output with channel-based coloring\n- Configurable settings via INI file\n- Cross-platform remote server (Windows and Linux)\n- Text-based User Interface for easy interaction\n\n## Disclaimer\n\nUse responsibly and in accordance with the [Counter-Strike Fair Play Guidelines](https://blog.counter-strike.net/index.php/fair-play-guidelines/). This tool is\nfor educational and development purposes only and should only be used in `-tools` mode.\n\n## Requirements\n\n### Client\n\n- Windows OS\n- Counter-Strike 2 running in `-tools` mode\n- C++ compiler with C++17 support\n- Winsock2 library\n- [PDCursesMod](https://github.com/Bill-Gray/PDCursesMod) library\n- [spdlog](https://github.com/gabime/spdlog) library\n\n### Server\n\n- Windows or Linux OS\n- C++ compiler with C++11 support\n- Winsock2 library (Windows only)\n\n## Building\n\n### Client (Windows Only)\n\n1. Open the project in Visual Studio\n2. Ensure all required libraries are properly linked\n3. Build the solution\n\n### Server\n\n#### Windows\n\n1. Open the server project in Visual Studio\n2. Build the solution\n\n#### Linux\n\n1. Navigate to the server directory\n2. Run the following command:\n   ```\n   g++ -std=c++11 -pthread main.cpp -o server\n   ```\n\n#### Docker\n\n1. Ensure Docker and Docker Compose are installed\n2. Navigate to the `docker` directory\n3. Build and run:\n   ```\n   docker-compose up --build\n   ```\n\n## Configuration\n\nEdit `config.ini` to customize:\n\n- `cs2_console_ip`: IP address of the CS2 console (default: 127.0.0.1)\n- `cs2_console_port`: Port number of the CS2 console (default: 29000)\n- `cs2_console_reconnect_delay`: Reconnection delay in milliseconds (default: 5000)\n- `remote_server_ip`: IP address of the remote control server (default: 127.0.0.1)\n- `remote_server_port`: Port number of the remote control server (default: 42069)\n- `remote_server_reconnect_delay`: Remote server reconnection delay in milliseconds (default: 5000)\n- `debug_sanity_enabled`: Enable or disable debug sanity checks (default: 0)\n- `debug_sanity_interval`: Interval for debug sanity checks in milliseconds (default: 5000)\n\n## Usage\n\n### Client\n\n1. Ensure `config.ini` is in the same directory as the executable or in the current working directory\n2. Run the program\n3. Use the TUI to interact with the CS2 console:\n    - Type commands and press Enter to send them to CS2\n    - Use Page Up/Down or mouse wheel to scroll through console output\n\n### Server\n\n1. Run the server program\n2. Enter commands to be broadcasted to all connected clients\n3. Type 'quit' to exit the server\n\n## Architecture\n\nCS2RemoteConsole consists of three main components:\n\n1. **Client**: Connects to both CS2 console and the remote server. It features a TUI for user interaction and displays console output.\n2. **Server**: Acts as a central hub for multiple clients, allowing command broadcasting.\n3. **libvconsole**: A static library implementing the VConsole2 Protocol used by Source 2 games.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\n\n- [Penguinwizzard/VConsoleLib](https://github.com/Penguinwizzard/VConsoleLib)\n- [uilton-oliveira/VConsoleLib.python](https://github.com/uilton-oliveira/VConsoleLib.python)\n\nWe express our gratitude to the original authors of these libraries, which served as a foundation for our VConsole protocol implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheokyr%2Fcs2remoteconsole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheokyr%2Fcs2remoteconsole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheokyr%2Fcs2remoteconsole/lists"}