No description
  • Rust 97.1%
  • Handlebars 2.9%
Find a file
2025-07-16 18:13:28 -05:00
client Move things around 2025-07-13 19:01:11 -05:00
common Finish /events 2025-07-16 18:13:28 -05:00
manager Finish /events 2025-07-16 18:13:28 -05:00
.gitignore Refactor auth and types 2025-07-13 18:55:03 -05:00
Cargo.lock Update handlebars to fix issue -_- 2025-07-15 23:13:41 -05:00
Cargo.toml Move things around 2025-07-13 19:01:11 -05:00
notes.txt Move things around 2025-07-13 19:01:11 -05:00
README.md Update README.md 2025-07-13 19:01:57 -05:00

Game Overlay

A in-game overlay for source engine games that allow for custom UI elements, such as text, graphics, admin tools, etc, driven by server side plugins. Servers with overlay plugin can send custom elements, such as an admin tool to quickly add notes to any players with a friendlier UI than in-game source engine menus.

Other examples are elements that show extra player information such as health, items, position, and any other information fed from custom plugins.

Warning

Project is still in heavy development and may be abandoned for a while any time.

In addition, as of currently, the three parts may work independently but not connected

Implementation

The manager and client are written in rust, using websockets to communicate to the manager. The server plugin is written in as a sourcemod plugin.

[Client] <== websocket ==> [Manager] <== websocket ==> [Server]

Manager (in manager)

The manager sits in between the servers and clients and facilates communication. It authenticates & verifies incoming requests and transmits them as events to the server/client. For example, when a player joins a game, the server plugin informs the manager, which checks, and then informs the players.

  • Requires a mysql connection
  • Requires steam API key

Client (in client)

The client, or the overlay, is what runs on a user's computer. When it detects the game is running, it will appear and wait for the manager telling it instructions as events.

  • Uses egui for UI

Server (in Jackzmc/sourcemod-plugins for now)

The server is managed as a base sourcemod plugin that controls communication with the manager and core aspects. It also incldues any additional addon plugins that hook into the main plugin and add their own custom elements or features.

  • Requires a fork of ripext with websocket support and fixes.

Building

For both manager and client

cd src-manager # or src-overlay
cargo build # or run