Upcoming…

I do have the next release in the works, I will add the rest of the logging for the TF2logs site, this will include item pickups and who is being healed stats. Again your match logs will be quite a bit larger as a result of it.  Also looking at regression testing a lot of the old features to ensure they are still working as expected.

I have had little time to look at the STV upload features, It kinda works, but not really worked in properly with the rest of the mod. Also I wanted to modify some of the commands to better allow both 6v6 and 9v9 scrims easily, so there will likely be a couple new commands.

As always, send me feedback on the forums

Match Server Configs released

I updated the Match Server configs package. This is the generic package for any match server to use to get their servers configured and ready to roll in a couple of minutes.

Changes include

  • Moved sv_contact to the custom.cfg (not sure why I didn’t have it there in the first place)
  • Expanded the custom.cfg to include more common cvars (again, not sure why I forgot to put these in)
  • Added Voting options for in-between matches (Vote to immediately change level is allowed)
  • Add a item_blacklist.txt based of the #tf2.pug.na IRC configs

Generally, I think this is a bit more robust of a solution, for most match servers, upload and modify the cfg/match/custom.cfg to specify the settings you want and your good to go.

Looking for Volunteers

the 1.1.8 release is nearing completion, I decided to only look at the additional gamemode support since there is quite a bit of testing in these to ensure things are working.

That being said, I am looking for some brave souls to assist in testing the new modes, BBall, Arena and TC. If your interested in help[ing let me know, I will basically need details on what went wrong if anything and the STV of it so I can see the details.

Ultiduo configs released

Since I was curious I put together an Ultiduo config pack for MatchMod. For those that are unaware of what this is. Here is a quick rundown.

  • Game Mode: 2×2
  • Class Limits: 1 medic + 1 Soldier
  • Medic is allowed: MediGun, Blutsauger, Crusader’s Crossbow, Bonesaw, Ubersaw
  • Soldier is allowed: Rocket Launcher, Shotgun, Shovel, Equalizer, Frying Pan
  • Map: Koth_Ultiduo [link]

Config packs includes all the rules and white list to make sure everything is on the up and up. Have fun all.

Note to leagues

I was working on the league config sets and wanted to call out a few nuances of MatchMod that allow things to work a certain way.

Some of the CVARs will be set differently since with MatchMod you can always assume two halfs will happen, and some cvars are internally handled. But for general league configs that function without the plugin, these CVARs should be set a slightly different way. Let’s take a look at a couple specific examples.

sv_alltalk

This CVAR is almost universally OFF in all league configs and should be off for matches. However, for MatchMod it is recommended that this be ENABLED. The mod at the beginning of the match itself, will toggle it off. And turn it back on at half time. This is really to help out the players to communicate more quickly. “Hey, he had to reboot, he is coming back in now” or “Yo, I gotta hit restroom, BRB” and so forth.

mp_winlimit

This is another oddball. In the 6v6 world, most leagues have this set to 5 for a push game. However the league rules actually state half-time is mandatory at 4 or 30 minutes. For league specific things, 5 may work out the best to keep things consistant, but with MatchMod, you really should specify 4 (or 3 in ESEA’s case) to force the overtime at the proper time. MatchMod internally disables this CVAR at halftime and relies on it’s internal score tracking to determine the end of a match, a setting of 5 would actually make it fairly likely the match would progress outside of the actual rules.

Stopwatch

Stopwatch maps in general are an odd animal, especially now that Highlander games have varying rules within the gametype. (Multi-stage is one round, while single stage is best of 3 rounds.) But that being said, many leagues play with mp_winlimit and mp_roundlimit both set to zero. and the game cycles through rounds as necessary. However, with MatchMod, the rules can be enforced without a lot of hassle to the players, so typically we set the winlimit to zero and the round limit to 2, this will allow matchmod to perperly track the match and swap teams at the proper time.

In the next release, I am planning to add a CVAR that can be triggered that would switch stopwatch from two halves to a single half to help out the highlander teams to get things to end cleanly.

On a final note, if your looking to create new configs for your league, let me know. I have the PuG setup I use as a base reference in a excel workbook with all the possible CVARs I have ever seen get used. I did clean up a few that are simply not valid. I am also confirming things with Valve as to some CVARs relevance to TF2 in general. But it should help you out to get everything covered. Once I get feedback from Valve, I will formally release the excel workbook for all to see.

The key idea here, is many leagues configs typically do not exactly match the rules since there isn’t a really good option to enforce it  easily for players.  Those that want to use MatchMod should highly consider a specific set of the configs designed to configs to the letter since we are allowing it to occur with minimal intrusion to the players.

Competitive Map High-Speed Download

For a while I have had a website exclusively for downloading maps for the players on my game servers. I decided to make this a bit more public and allow all the server admins out there use it if they wish. I maintain it with the latest competitive maps (both .BSP and BZIP2) so you can quickly get them maps when needed.

http://hsdl.matchmod.net

To use it on your server, you need to set the proper CVAR.

sv_downloadurl = “http://hsdl.matchmod.net/tf/”

I use this mainly so for scrims and lobbies it’s easy for everyone to get the maps down to their machines.

A note on Configuration Files

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

  • <league>-<gamemode>

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

  • rcon exec cevo/push.cfg

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.