Skip to content

Commit bf2773e

Browse files
committed
Greatly improve README.md
1 parent c6fab12 commit bf2773e

File tree

5 files changed

+95
-36
lines changed

5 files changed

+95
-36
lines changed

.devcontainer/devcontainer.json

-9
This file was deleted.

README.md

+95-10
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,112 @@ TMT is a tool that tracks/watches/observes a Counter-Strike 2 match.
1010
It will keep track of matches and can interact with 3rd party applications like tournament systems,
1111
websites or others via a REST API and webhooks to send real time notifications.
1212

13-
This project is a complete rewrite of the former [TMT](https://github.com/JensForstmann/CSGO-PHP-TournamentMatchTracker).
13+
**FEATURES**
14+
15+
- Fully configure the tournament match beforhand (and edit it after it's created)
16+
- Play how many maps you want in a series (BO1, BO2, BO3, BO*...)
17+
- Configure how to ban and pick maps & sides, even knife-for-side is supported
18+
- Automatic map changes & side switches
19+
- Ingame chat commands for the players (see section [Ingame Chat Commands](#ingame-chat-commands))
20+
- Integrated support for round backups and rollbacks
21+
- REST API to fully control TMT from another system
22+
- Webhooks to receive real time updates
23+
- Loop Mode (TMT starts over after the match ends, useful for public servers)
24+
- Web frontend
25+
- create new matches
26+
- create presets for common match configurations
27+
- list all matches
28+
- show logs
29+
- read and use ingame chat
30+
- see players & teams
31+
- rcon console
32+
- manage pool of game servers (can be used for new matches)
33+
- **No server side plugin or mod needed**
34+
35+
_Example screenshot: Banning a map from the map pool:_
36+
![Ban a map (screenshot)](docs/screenshot-ban-map.png)
37+
38+
39+
40+
---
41+
42+
43+
44+
Table of Contents:
1445

1546
- [TMT2 - Tournament Match Tracker 2](#tmt2---tournament-match-tracker-2)
16-
- [Run with Docker](#run-with-docker)
47+
- [Getting Started](#getting-started)
48+
- [Create you first Match](#create-you-first-match)
49+
- [Ingame Chat Commands](#ingame-chat-commands)
1750
- [Configuration](#configuration)
1851
- [API](#api)
1952
- [Security / Authentication](#security--authentication)
2053
- [global access tokens](#global-access-tokens)
2154
- [match specific access tokens](#match-specific-access-tokens)
2255
- [Development](#development)
2356
- [Docker](#docker)
24-
- [Directly with NodeJs](#directly-with-nodejs)
57+
- [NodeJS](#nodejs)
2558

26-
## Run with Docker
59+
## Getting Started
2760

2861
TMT2 is available on docker hub: https://hub.docker.com/r/jensforstmann/tmt2
2962

3063
Run it with:
3164

32-
docker run -p 8080:8080 jensforstmann/tmt2
65+
```sh
66+
docker run --name tmt2 -d -p 8080:8080 jensforstmann/tmt2
67+
```
3368

34-
Data will be written to `/app/backend/storage` (can be configured). To keep the files with different containers you can either specify a docker volume or a path on the local system:
69+
Data will be written within the container to `/app/backend/storage`. To keep the files with different containers you can either specify a docker volume or a path on the local system:
3570

36-
docker run -v dockerVolumeName:/app/storage -p 8080:8080 jensforstmann/tmt2
71+
```sh
72+
# docker volume
73+
docker run --name tmt2 -d -p 8080:8080 -v dockerVolumeName:/app/storage jensforstmann/tmt2
3774

38-
docker run -v /home/tmt2/storage:/app/storage -p 8080:8080 jensforstmann/tmt2
75+
# local host directory
76+
docker run --name tmt2 -d -p 8080:8080 -v /home/tmt2/storage:/app/storage jensforstmann/tmt2
77+
```
3978

4079
The matches which are neither finished nor stopped will be loaded on application start.
4180

81+
### Create you first Match
82+
83+
After running the container you can open the web frontend: http://localhost:8080 (or at whatever ip/server your docker container runs on.)
84+
85+
86+
87+
_Example screenshot: Create a new match from the web frontend (both dark and light mode available):_
88+
![Create a new match (screenshot)](docs/screenshot-create-match.png)
89+
90+
91+
92+
Even without an admin token you can create and manage matches (but only your own ones). If you want to know your admin token (a random one is generated at startup) either take a look at the `access_tokens.json` file or take a look at the first lines of the log outpout (`docker logs tmt2`).
93+
94+
95+
### Ingame Chat Commands
96+
97+
While TMT watches a match the player ingame can use chat commands to communicate with TMT:
98+
99+
- `.team a` or `.team b` - you need to choose a team before you can execute any other commands, check the response in the chat to be sure you've joined the right one, also check the scoreboard (team names are visible there) if you're on the right side (CT/T)
100+
- during the map election process:
101+
- `.ban` - ban a map from the map pool
102+
- `.pick` - pick a map to be played
103+
- `.agree` - agree on a map together with the opponent (alias `.map`)
104+
- `.ct`/`.t` - select CT/T as your starting side
105+
- `.restart` - restart the eleciton process
106+
- during and after the knife round (if one takes place)
107+
- `.restart` - restart the knife round
108+
- `.ct`/`.t` - select CT/T as your starting side
109+
- `.stay` - stay on your side
110+
- `.switch` - switch the sides (alias `.swap`)
111+
- during the warmup
112+
- `.ready` - set your team as ready (alias `.rdy`)
113+
- `.unready` - set your team as not ready (alias `.unrdy`)
114+
- during the match
115+
- `.pause` - pause the match at the next freezetime
116+
- `.unpause` - set your team as ready (alias `.ready` & `.rdy`)
117+
118+
42119

43120
## Configuration
44121

@@ -64,7 +141,7 @@ TMT_SAY_PREFIX="[TMT] "
64141

65142
See [`backend/swagger.json`](backend/swagger.json). You might want to copy its content and paste it into https://editor.swagger.io/.
66143

67-
See also the [`examples`](examples) folder.
144+
See also the [`examples`](examples) folder.
68145

69146
## Security / Authentication
70147

@@ -124,6 +201,8 @@ After starting the dev processes you can reach the backend & frontend at:
124201

125202
## Docker
126203

204+
Docker is recommended as it's easy to use and doesn't require any other software to be installed (if docker is already set up).
205+
127206
> Note for windows user: It's recommended to have docker installed **directly within** WSL (not using Windows Docker from WSL) or to run a Linux VM.
128207
129208
Init the dev environment:
@@ -136,7 +215,9 @@ Start a docker container with port forwarding and hot reloading:
136215

137216

138217

139-
## Directly with NodeJs
218+
## NodeJS
219+
220+
If you don't want to use docker or want to use NodeJS directly, you can do the following to setup a dev environment:
140221

141222
Install dependencies:
142223

@@ -157,3 +238,7 @@ Run frontend with hot realoding:
157238
npm run dev
158239

159240

241+
242+
---
243+
244+
> This project is a complete rewrite of the former [TMT](https://github.com/JensForstmann/CSGO-PHP-TournamentMatchTracker).

docker-compose.yml

-17
This file was deleted.

docs/screenshot-ban-map.png

283 KB
Loading

docs/screenshot-create-match.png

32.1 KB
Loading

0 commit comments

Comments
 (0)