Last updated September 25th, 2017, with the removal of the "About that snd_rebuildaudiocache thing" section since it's fixed in the modern downloads now. Also updated the addon section to "Why Addons are Banned" to reflect the new rules.
Welcome, person that might have followed the link here from the rules! Here we will explore in more depth what each rule means, why it was made, and what you need to do to make sure your run is squeaky clean for submission. Thanks to bill_play3 for suggesting this thread.
~ Timing Methods and Load Removal ~
You may be wondering why time is removed specifically for loads but not in other areas, such as cutscenes or events. Runs on this site are generally considered RTA (Real-Time Attack) where timing starts on gaining control and ends at the end of the category. This includes timing any scripted events in the game, including cutscenes. When a level ends the screen blurs for 2 seconds, then the scoreboard appears for 6.5 seconds, meaning that is actually a scripted sequence which lasts exactly 8.5 seconds before loading is triggered, and so only the amount of time the game is actually performing the load is removed. There is a significant difference in time between different machines in how long loading takes, even between runs on the same machine some months apart, so it is necessary to ensure the runs are timed fairly and accurately regardless of your hardware.
There are a few methods for removing your loading times. It is very highly recommended that you include in your recording either the available autosplitter running in Livesplit set to Game Time (which can be changed by right-clicking the splits, hovering over Compare Against, and clicking Game Time) or ensure your recording has the option set to capture your mouse cursor. The final method is by using the red loading icon in the upper-right. The mouse cursor is preferred as it always appears the moment loading initiates, while the loading icon in most versions has a chance to show up late by a single frame, and in the case of game version 184.108.40.206 (which is widely used) it can show up roughly a quarter of a second late! Since using that mark would mean you are including more actual loading time in your run, if you forget to capture your mouse cursor or do not want to use the autosplitter since it can be laggy on some systems, you do accept the time loss by having to use the loading icon as a backup.
~ Timing Co-op Runs ~
Removing loads for a co-op run is a tricky thing, and unfortunately we have no means at this time to force all players to load in together. The best way, then, is to require that the player who loads in first (always the host of the server) has their perspective recorded so that it can be timed by their map loads, resuming timing the moment the first player enters the next map. Without this, another player could be loading first and taking any number of actions or gaining ground in the map while the time is still paused for another player that is still loading in.
If any players that are not the host finish loading before he does, their game will actually wait for the host to complete his load while they wait to come in themselves. You can force players to load closer together in this way by using the "Local Server" option through the main menu with a player that has slower loading times than others in the group.
The current situation for co-op timing isn't entirely ideal, but it is the best that currently exists and is far more fair than not removing loads at all. We've tried methods to force all players to load in simultaneously but nothing has worked so far. Maybe some day...
~ Why Addons are Banned ~
All addons were disallowed because any particular one could potentially lead to an advantage for one player over another. An example of addons that would give an advantage would be changes to special infected skins (like bright white) so they are easier to see, changing the sounds they make so they are more noticeable and easier to react to, changing item skins or models so that it is easier to see where they spawn, and so on. Banning all addons outright keeps the rules much more simple and ensures that everybody is on equal footing, playing the game the way it was originally intended.
~ About Those Banned Console Commands ~
In addition to commands protected by sv_cheats, there are some more not protected by a cheat flag which still aren't allowed. Criteria for banning a command could be based on some simple questions, such as:
*Can it be used by the client, or only by the server?
Is it available as an option in the menu system, or only possible through the console?
Does it bypass an element of regular gameplay?*
"z_difficulty" was disallowed because it can only be executed by the server, not the client. This means it couldn't be used in official Valve servers, either. It also bypasses the cooldown timer in the voting system for newer versions of the game.
"changelevel" was disallowed also because it can only be executed by the server, and because it badly breaks the intro cinematic in a way not otherwise possible through regular gameplay if you use it to switch to the first map of a campaign.
"kick" was disallowed again because it can only be executed by the server and is not otherwise available to be used at any time you'd like. An exception was found later in the Dark Carnival finale that uses a developer oversight to force the bots to be kicked from the server, and this method was allowed since it occurs during regular gameplay. Click here for a thread with more details on how it works.
~ Using Milliseconds to Break Ties ~
Eventually times were lowered enough to where a whole-second tie was uncommon, but did start to happen. Milliseconds were enabled when submitting times so that they could be used to determine who was truly faster. It is not used when regularly submitting because it makes the leaderboards look very cluttered for an unnecessary bit of information when most runs are full seconds apart. Keeping the Millisecond field at 000 will cause it not to show on the leaderboards at all, so that is required unless your run ties another (for example, you both have 11m22s) in which case a moderator will time them both precisely to break the tie.