An open API service indexing awesome lists of open source software.

https://github.com/sivert-io/matchzy-overtime-manager

Matchzy Overtime Manager (MOM) is an extension for the MatchZy CS2 plugin. It runs as an Express server in TypeScript, listens for get5 events, and enforces custom overtime rules to prevent excessive overtimes in tournaments. ๐Ÿš€
https://github.com/sivert-io/matchzy-overtime-manager

cs2 get5 matchzy

Last synced: 8 months ago
JSON representation

Matchzy Overtime Manager (MOM) is an extension for the MatchZy CS2 plugin. It runs as an Express server in TypeScript, listens for get5 events, and enforces custom overtime rules to prevent excessive overtimes in tournaments. ๐Ÿš€

Awesome Lists containing this project

README

          

# Matchzy Overtime Manager (MOM) โšก

MOM is an extension for the MatchZy CS2 plugin. It runs as an Express server in TypeScript, listens for get5 events, and enforces custom overtime rules to prevent excessive overtimes in tournaments. ๐ŸŽฎ๐Ÿ†

> [!CAUTION]
> This plugin cannot be run simultaneously with any get5 panel, as it takes over the endpoint used by the panel. MOM uses the same logic to receive events from the server as a get5 panel would. If you need to use both at the same time, you will have to create a middle-man service to forward events to both, or modify either the get5-panel or this plugin to handle event forwarding.


Your browser does not support the video tag.

## Table of Contents ๐Ÿ“–
- [Features โœจ](#features-)
- [Quick Start ๐Ÿš€](#quick-start-)
- [CS2 Server Configuration โš™๏ธ](#cs2-server-configuration-๏ธ)
- [Development ๐Ÿ—๏ธ](#development-๏ธ)
- [Contributing ๐Ÿค](#contributing-)
- [Thanks ๐Ÿ™Œ](#thanks-)

## Features โœจ
- ๐ŸŽง Listens for CS2 match events via get5
- โš™๏ธ Automatically handles overtime scenarios
- ๐Ÿ“ Written in TypeScript for type safety
- ๐Ÿš€ Simple and lightweight Express server

## Quick Start ๐Ÿš€

To quickly get started with MOM:

1. **Create a .env file** based on the example:

```sh
cp .env.example .env
```

Open .env and modify the values to match your server configuration, for example:

```ini
# Use server-id as prefix. e.g. server1_
server1_rcon_host="127.0.0.1"
server1_rcon_port="27016"
server1_rcon_password="your_rcon_password"

# Maximum number of rounds allowed before calculating the winner
max_rounds=30
```

2. **Run the project with Docker Compose**:

```sh
docker-compose up -d
```

This will automatically build and start the server with the configuration in your .env file.

## CS2 Server Configuration โš™๏ธ

To make get5 send match events to MOM, [update your CS2 serverโ€™s matchzy_remote_log_url parameter](https://shobhit-pathak.github.io/MatchZy/configuration/#matchzy_remote_log_url):

Add this line to your /game/csgo/cfg/MatchZy/live.cfg file at the top:

```bash
matchzy_remote_log_url "http://127.0.0.1:3000/events"
matchzy_remote_log_header_key "server-id"
matchzy_remote_log_header_value "server1"
```

Replace 127.0.0.1 with the actual IP address of your MOM server (if running on a different host).

Update field matchzy_remote_log_header_value with a unique ID for your server.

## Development ๐Ÿ—๏ธ

To add new features or modify existing functionality:

1. Start the TypeScript compiler in watch mode:
```sh
npm run dev
```
2. Modify the source code in the src/ directory.
3. Ensure changes work by running:
```sh
npm run build && npm start
```

## Contributing ๐Ÿค

We welcome contributions! Feel free to open issues or submit pull requests. ๐ŸŽ‰

## Thanks ๐Ÿ™Œ

A special thanks to:
- ๐ŸŽฏ [get5 developers](https://github.com/splewis/get5) for the original tournament framework.
- ๐Ÿ”ฅ The CS2 and LAN tournament community for testing and feedback.