Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish docs #800

Merged
merged 1 commit into from
Jul 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 3 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,9 @@ get5

**Status: Supported, actively developed.**

Get5 is a standalone [SourceMod](http://www.sourcemod.net/) plugin for CS:GO servers for running matches. It is originally based on [pugsetup](https://github.com/splewis/csgo-pug-setup) and is inspired by [eBot](https://github.com/deStrO/eBot-CSGO).
Get5 is a standalone SourceMod plugin for CS:GO servers for running matches.

The core idea behind its use is all match details being fully defined in a single config file. Check out [this example config](configs/get5/example_match.cfg). Its main target use-case is tournaments and leagues (online or LAN). All that is required of the server-admins is to load match config file to the server and the match should run without any more manual actions from the admins. This plugin is not invasive - most of its functionality is built to work within how the CS:GO server normally operates, not replacing its functionality. **No, it is not recommended for your new matchmaking service. It is intended for competitive play, not pickup games.**

It is meant to be relatively easy to use for tournament admins.

Features of this include:
- Locking players to the correct team by their [Steam ID](https://github.com/splewis/get5/wiki/Authentication-and-Steam-IDs)
- In-game [map veto](https://github.com/splewis/get5/wiki/Map-Vetoes) support from the match's maplist
- Support for multi-map series (Bo1, Bo2, Bo3, Bo5, etc.)
- Warmup and !ready system for each team
- Automatic GOTV demo recording
- [Advanced backup system](https://github.com/splewis/get5/wiki/Match-backups) built on top of valve's backup system
- Knifing for sides
- [Pausing support](https://github.com/splewis/get5/wiki/Pausing)
- Coaching support
- Automatically executing match config files
- Automatically setting team names/logos/match text values for spectator/GOTV clients
- [Stats collection](https://github.com/splewis/get5/wiki/Stats-system) and optional MySQL result/stats upload
- Allows lightweight usage for [scrims](https://github.com/splewis/get5/wiki/Using-get5-for-scrims)
- Has its own [event logging](https://github.com/splewis/get5/wiki/Event-logs) system you can interface with

Get5 also aims to make it easy to build automation for it. Commands are added so that a remote server can manage get5, collect stats, etc. The [get5 web panel](https://github.com/splewis/get5-web) is an (functional) proof-of-concept for this.

## Download and Installation
To see how to download and use Get5 on your game server, please visit the [documentation website](https://splewis.github.io/get5).

## Other things
Please visit https://splewis.github.io/get5 for documentation.

### Discord Chat

Expand All @@ -46,7 +21,7 @@ Please make a [github issue](https://github.com/splewis/get5/issues) and fill ou

### Contributions

Pull requests are welcome. Please follow the general coding formatting style as much as possible. If you're concerned about a pull request not being merged, please feel free to make an [issue](https://github.com/splewis/get5/issues) and inquire if the feature is worth adding.
Pull requests are welcome. Please follow the general coding formatting style as much as possible.

### Building

Expand Down
3 changes: 0 additions & 3 deletions configs/get5/scrim_template.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
"coaches_per_team" "2"
"num_maps" "1"
"skip_veto" "1"

"team1"
{
"name" "myteam"
Expand All @@ -25,7 +24,6 @@
"STEAM_1:1:....." ""
}
}

"cvars"
{
"get5_live_countdown_time" "5"
Expand All @@ -39,5 +37,4 @@
"get5_kick_when_no_match_loaded" "0"
"get5_print_damage" "1" // Enabling will print damage on round-end.
}

}
44 changes: 44 additions & 0 deletions documentation/docs/backup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# :material-backup-restore: Backup System

Get5 ships with a backup system built on top of
CS:GO's [built-in round restore system](https://totalcsgo.com/command/mpbackuprestoreloadfile), which can be used to
either replay a round using the [`!stop`](../commands/#stop) command, or to simply restore an entire match's state on
any server using the [`get5_loadbackup`](../commands/#get5_loadbackup) command.

As Get5's backup system sits on top of CS:GO's, it contains everything a normal CS:GO round backup would, but also
the entire [match configuration](../match_schema) and the match series score for already-played maps.

The backup system must be [enabled](../configuration/#get5_backup_system_enabled) for this to work.

## How does it work?

Every time a round starts, CS:GO automatically writes a round backup file into the root of the `csgo` directory based on
the value of `mp_backup_round_file`. The default value for this is `backup`. Get5 reads this file and copies it into its
own file called `get5_backup_match%s_map%d_round%d.cfg`, where the arguments are `matchid`, `mapnumber` and `roundnumber`,
respectively. A special backup called `get5_backup_match%s_map%d_prelive.cfg` is created for the knife round.

## Example

When in a match, you can call [`get5_listbackups`](../commands/#get5_listbackups) to view all backups for the current
match. Note that all rounds and map numbers start at 0.

They print in the format `filename date team1 team2 map team1_score team2_score`.

```
> get5_listbackups
get5_backup_match1844_map0_prelive.cfg 2022-07-26 18:51:25 "Team A" "Team B"
get5_backup_match1844_map0_round30.cfg 2022-07-26 19:13:41 "Team A" "Team B" de_dust2 2 28
get5_backup_match1844_map0_round4.cfg 2022-07-26 18:55:01 "Team A" "Team B" de_dust2 2 2
get5_backup_match1844_map0_round10.cfg 2022-07-26 18:59:25 "Team A" "Team B" de_dust2 2 8
get5_backup_match1844_map0_round23.cfg 2022-07-26 19:08:13 "Team A" "Team B" de_dust2 2 21
get5_backup_match1844_map0_round12.cfg 2022-07-26 19:00:26 "Team A" "Team B" de_dust2 2 10
get5_backup_match1844_map0_round17.cfg 2022-07-26 19:03:39 "Team A" "Team B" de_dust2 2 15
...
```

To load at the beginning of round 13 of the first map of match ID 1844, all players should be connected to the server,
and you can type:

`get5_loadbackup get5_backup_match1844_map0_round12.cfg`.

The game should restore in a paused state and both teams must [`!unpause`](../commands/#unpause) to continue.
30 changes: 19 additions & 11 deletions documentation/docs/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ the [get5_stop_command_enabled](../configuration/#get5_stop_command_enabled) is

: Adds/removes a ringer to/from the home scrim team.

####`!scrim`

: Shortcut for [`get5_scrim`](#get5_scrim).

####`!get5`

: Opens a menu that wraps some common commands. It's mostly intended for people using scrim settings, and has
Expand All @@ -67,34 +71,38 @@ Please note that these are meant to be used by *admins* in console.

####`get5_loadmatch <filename>` {: #get5_loadmatch }

: Loads a match config file (JSON or KeyValue) relative from the `csgo` directory.
: Loads a [match configuration](../match_schema) file (JSON or KeyValue) relative from the `csgo` directory.

####`get5_loadbackup <filename>` {: #get5_loadbackup }
: Loads a match config file (JSON or KeyValue) relative from the `csgo`
: Loads a match backup file (JSON or KeyValue) relative from the `csgo`
directory. Only works if the [backup system is enabled](../configuration/#get5_backup_system_enabled).

####`get5_last_backup_file`
: Prints the name of the last match backup file Get5 wrote in the current series, this is automatically updated each
time a backup file is written. **`Default: ""`**
time a backup file is written. Empty string if no backup was written.

####`get5_loadteam <team1|team2|spec> <filename>` {: #get5_loadteam }
: Loads a team section from a file into a team relative from the `csgo`
directory.
: Loads a [team section of a match configuration](../match_schema) from a file into a team relative from the `csgo`
directory. The file must contain a `Get5MatchTeam` object.

####`get5_loadmatch_url <url>` {: #get5_loadmatch_url }
: Loads a remote (JSON-formatted) match config by sending an HTTP(S) GET to the given URL. This requires the
[SteamWorks](../installation/#steamworks) extension. When specifying a URL with http:// or
https:// in front, you have to put it in quotation (`""`) marks.
: Loads a remote (JSON-formatted) [match configuration](../match_schema) by sending an HTTP(S) `GET` to the given URL.
You should put the `url` argument inside quotation marks (`""`).

!!! warning "SteamWorks required"

Loading remote matches requires the [SteamWorks](../installation/#steamworks) extension.

####`get5_endmatch`
: Force ends the current match. No winner is set (draw).

####`get5_creatematch`
: Creates a BO1 match with the current players on the server on the current map.

####`get5_scrim`
: Creates a BO1 match with the using settings from `addons/sourcemod/configs/get5/scrim_template.cfg`. You should
edit this file to contain your team's names in team 1.
####`get5_scrim [opposing team name] [map name] [matchid]` {: #get5_scrim }
: Creates a [scrim](../getting_started/#scrims) on the current map. For example, if you're
playing *fnatic* on `de_dust2` you might run `get5_scrim fnatic de_dust2`. The other team name defaults to "away"
and the map defaults to the current map. `matchid` defaults to an empty string.

####`get5_addplayer <auth> <team1|team2|spec> [name]` {: #get5_addplayer }
: Adds a Steam ID to a team (can be any format for the Steam ID). The name parameter optionally locks the player's
Expand Down
24 changes: 24 additions & 0 deletions documentation/docs/community.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# :material-help-network-outline: Community & Support

## :fontawesome-brands-discord: Discord {: #discord}

A Discord server is available for general support for Get5 (and other [splewis plugins](https://github.com/splewis)).
If you have suggestions or feedback you are welcome to join.

[:material-connection: Join Discord](https://discord.gg/zmqEa4keCk){ .md-button .md-button--primary }

!!! info "No such thing as a free lunch"

The Discord server is **not** a place to ask for general support with regards to setting up a CS:GO server or
getting help with other plugins that we have nothing to do with.

## :material-github: GitHub {: #github }

If you can code, you can help us over at [GitHub](https://github.com/splewis/get5). We're always looking for people to
fix issues or help test new features. We provide nightly releases of Get5 before official releases.

## :material-translate: Localization {: #localization }

If you speak a language that Get5 has not been translated into, or if you want to fix poor grammar or inconsistencies in
current translations, you can join the Discord and let us know what's supposed to be changed. If you want to contribute
yourself, take a look at the [translations](../translations) section.
Loading