https://github.com/theokyr/cs2remoteconsole
A CS2-centric VConsole implementation in C++ with remote control support. Might support other Source 2 games as well.
https://github.com/theokyr/cs2remoteconsole
counter-strike-2 cpp pdcursesmod source2 source2-engine vconsole
Last synced: about 1 month ago
JSON representation
A CS2-centric VConsole implementation in C++ with remote control support. Might support other Source 2 games as well.
- Host: GitHub
- URL: https://github.com/theokyr/cs2remoteconsole
- Owner: theokyr
- License: mit
- Created: 2024-06-25T05:27:17.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2024-07-14T21:08:59.000Z (11 months ago)
- Last Synced: 2025-03-31T18:07:35.920Z (3 months ago)
- Topics: counter-strike-2, cpp, pdcursesmod, source2, source2-engine, vconsole
- Language: C++
- Homepage:
- Size: 1.01 MB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CS2RemoteConsole
CS2RemoteConsole is a C++ utility for remotely interacting with Counter-Strike 2's console, featuring a TUI and support for a centralized remote server.

## Features
- Connect, read, and write messages to CS2 through the VConsole socket
- Connect and receive commands from a remote control server
- Display console output with channel-based coloring
- Configurable settings via INI file
- Cross-platform remote server (Windows and Linux)
- Text-based User Interface for easy interaction## Disclaimer
Use responsibly and in accordance with the [Counter-Strike Fair Play Guidelines](https://blog.counter-strike.net/index.php/fair-play-guidelines/). This tool is
for educational and development purposes only and should only be used in `-tools` mode.## Requirements
### Client
- Windows OS
- Counter-Strike 2 running in `-tools` mode
- C++ compiler with C++17 support
- Winsock2 library
- [PDCursesMod](https://github.com/Bill-Gray/PDCursesMod) library
- [spdlog](https://github.com/gabime/spdlog) library### Server
- Windows or Linux OS
- C++ compiler with C++11 support
- Winsock2 library (Windows only)## Building
### Client (Windows Only)
1. Open the project in Visual Studio
2. Ensure all required libraries are properly linked
3. Build the solution### Server
#### Windows
1. Open the server project in Visual Studio
2. Build the solution#### Linux
1. Navigate to the server directory
2. Run the following command:
```
g++ -std=c++11 -pthread main.cpp -o server
```#### Docker
1. Ensure Docker and Docker Compose are installed
2. Navigate to the `docker` directory
3. Build and run:
```
docker-compose up --build
```## Configuration
Edit `config.ini` to customize:
- `cs2_console_ip`: IP address of the CS2 console (default: 127.0.0.1)
- `cs2_console_port`: Port number of the CS2 console (default: 29000)
- `cs2_console_reconnect_delay`: Reconnection delay in milliseconds (default: 5000)
- `remote_server_ip`: IP address of the remote control server (default: 127.0.0.1)
- `remote_server_port`: Port number of the remote control server (default: 42069)
- `remote_server_reconnect_delay`: Remote server reconnection delay in milliseconds (default: 5000)
- `debug_sanity_enabled`: Enable or disable debug sanity checks (default: 0)
- `debug_sanity_interval`: Interval for debug sanity checks in milliseconds (default: 5000)## Usage
### Client
1. Ensure `config.ini` is in the same directory as the executable or in the current working directory
2. Run the program
3. Use the TUI to interact with the CS2 console:
- Type commands and press Enter to send them to CS2
- Use Page Up/Down or mouse wheel to scroll through console output### Server
1. Run the server program
2. Enter commands to be broadcasted to all connected clients
3. Type 'quit' to exit the server## Architecture
CS2RemoteConsole consists of three main components:
1. **Client**: Connects to both CS2 console and the remote server. It features a TUI for user interaction and displays console output.
2. **Server**: Acts as a central hub for multiple clients, allowing command broadcasting.
3. **libvconsole**: A static library implementing the VConsole2 Protocol used by Source 2 games.## Contributing
Contributions 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.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Acknowledgements
- [Penguinwizzard/VConsoleLib](https://github.com/Penguinwizzard/VConsoleLib)
- [uilton-oliveira/VConsoleLib.python](https://github.com/uilton-oliveira/VConsoleLib.python)We express our gratitude to the original authors of these libraries, which served as a foundation for our VConsole protocol implementation.