As many of you have noticed, MatchMod has quite a few configuration files. It can be quite daunting to get through, so in the following novel (yeah, you may want to grab a snack while you read) I will cover all the various configuration files and what the file is intended for.
Firstly, the mentality I am approaching this from, is at the high level seperate the match configs from the mod configuration it self. So we are going to begin by looking at the Mod configuration files.
Mod Configuration
When MatchMod first loads on your server, it created a configuration file.
cfg/sourcemod/plugin.matchmod.cfg
What this file is for is the very static values that should never really change once the server is operational and are NOT dependent of the various league settings. So in this file you will only see a subset of the CVARs that fit into this group.
- Hostnames
- Admin Flag
- Default League rules
- Default team names
- Idle config <—That one is very important
As you can see, I tried to keep these variables things you should only hit once and never see it again. I current have no plans to add anything to this file in the short term so it hasn’t needed to be re-configured for quite some time.
The Idle CVAR is the configuration file that is ran immediately after a match is completed. Many times this should be your typical server.cfg that is executed at every map change, but one of the main issues is if you have some other function besides matches, this file NEEDs to turn off all the match settings. I included an example of this in cfg/matchmod/idle.cfg. This is basically the server.cfg I use on my server. So after a match it disabled tournament mode and we are back to SOAP.
Many of the issues I hear are related to that particular file not having the correct settings or their server.cfg not having the commands to turn off the tournament mode and so forth. This could be it’s own lengthy topic but to close this aspect out I will just say look at the idle.cfg for all the CVARs you may need to hit.
League Configuration
The second major aspect of the configuration files are the league specific side. These are actually divided into two subsets. The League configuration and the shortcut files.
Now, when I initially designed this mod, I wanted to support being able to run multiple configurations and not rely on a huge list of CVARs for the various things. So I wanted to have a way to allow it to run the league configurations directly from the leagues, without having to modify them. So I chose to split the league specific aspects into two sets.
Shortcut Files
These are stored in cfg/matchmod/* and have a naming convention of
The game mode can be push, stopwatch, koth, and ctf, and simply defines what the game mode is going to be. This is what the mod has internally programmed to when using it’s map type auto-detection feature.
These files store all the matchmod specific CVARs to make the leagues configuration function. For example, if a match has Overtime, does it have 2 halves, what are the configuration files names and locations, if ready up should be used, how many players per team, max score and so forth. Generally these should be pretty static unless a league dramatically changes the format for one of its game modes.
The league prefixes are assigned arbitrarily and are designed to keep it easy for players to switch between configurations. This is the exact text you can use in the matchmod_league CVAR to define what league your server will normally use, or for use in the !match <league> command to fire a match on any given league.
Right now I we have
- cevo – CEVO
- twl – TWL season
- twl-bo3 – TWL playoffs
- etf2l – ETF2L seasons
- ugc6v6 – UGC League seasons
- pug – Pick-up/scrim configurations (based off of the old #tf2.gather.us configs)
- xpl – XPL season (don’t expect this to get use anymore honestly)
So the shortcut files, simply put, were there to allow me to swap the league configs without having to edit them.
League Configs
Now, shortly after pulling the league configurations, I found out that I really should modify things to make them a bit more straight forward and easier to use with the mod, since I ended up maintaining these largely on my own, I decided to shift them around to make it easier for me to maintain. But these are effectively league configurations that can be run without matchmod at all to run your match. Generally most will not need to modify these settings, but any settings the league allows players to change are included in the cfg/<league>/custom.cfg.
To execute the configurations without matchmod, you can just type
Wrapping it up
Generally, there are a LOT of configurations, but after the initial setup, everything should be drag and drop. Let me know if you have any questions and I an go into more detail.