Rules

  • Players have to meet the following criteria to participate in the Defrag World Cup 2019.
  • The warmup round can be played on any engine, since its demos will not be validated and will not count towards the competition ranking.
  • Starting from round 1 onwards players should play only the official dfwc 2019 anticheat client.

1. Client

  • The only allowed DeFRaG version is DeFRaG 1.91.25
    There is a q3-config file (dfwc-rules.cfg) that you can download and use to setup the rules within the game engine.
  • The only allowed DeFRaG client is a special client program with embedded anti-cheating module. Read the FAQ section for download links and instructions.

2. General

  • In order to participate you have to be registered here.
  • It's not allowed to give your account's login data to other people
  • You are not allowed to play using another players account.

3. Demos

  • Only demos that are submitted before the round's deadline are accepted into the competition.
  • The filenames of the submitted demos have to match the following pattern:

    map[df.physics]time(nick.nationality).dm_68
  • Demos have to start with player's (re)spawn and end after defrag reports map completion in the console (see demo recording cvars below). Demos without start or end are not accepted.
  • It is a good practice to send more than one successful demo. This ensures that you are not eliminated if your fastest demo is rejected for some reason (e.g. forgot to switch on g_sync, recorded a broken demo, etc.).
  • Only offline demos on localhost servers are allowed. The players net ping has to be 0. Do not play on a dedicated server (no multiplayer demos).
  • It is not allowed to use external means to time player actions (jumping, shooting, view direction change).
    The player has to time actions himself. (no auto jumping, no replaying)

4. CVars

  • The following Cvars have to be set and cannot change during the run:
            "df_name" must be set to the player name
            "df_country" must be set to the country the player is from
            "timescale" must be set to "1"
            "sv_cheats" must be set to "0"
            "handicap" must be set to "100"
    
            "sv_fps" must be set to "125"
            "com_maxfps" must be set to "125"
            "g_speed" must be set to "320"
            "g_gravity" must be set to "800"
            "g_knockback" must be set to "1000"
    
            "df_autorecord" must be set to "1"
            "df_ar_stopdelay" must be set to a value between "1000" and "10000"
    
            "df_mp_interferenceoff" must be set to "3"
            "g_killWallbug" must be set to "1"
    This time there is a change in DFWC policy regarding g_synchronousClients.
    After extensive discussion in discord server and inviting CGG to shed some light on this issue, the decision was made to accept 2 variants of settings:
            a) "g_synchronousClients 1", and any values in "pmove_fixed", "pmove_msec".
            b) "g_synchronousClients 0", "pmove_fixed 1", "pmove_msec 8".
            
    Please note that if you set "g_synchronousClients" to "0", then your "pmove" CVars need to be set accordingly.
    g_synchronousClients 1 has been the standard for offline DeFRaG for many years.
    g_synchronousClients 0 has been the standard for online play.

    Many players play online today, and they say g_sync 0 is the setting they are used to, and it should be considered legit on par with g_sync 1.
    While there may be miniscule discrepancies between these 2 settings, none of them can be considered advantage over the other.
    Also, there is no single opinion on what of the two is the most correct setting. Besides, the overwhelming majority of players is unlikely to notice any difference.
    If you're used to either g_sync 0 or g_sync 1, you can play with any of them.

    Note: it is not allowed to change g_synchronousClients value in a run.
    It has to be set before respawn, and stay in the same value throughout the run. Otherwise the demo may be rejected by validators.

5. Cheating

  • It is not allowed to modify the memory used by defrag or its client with external programs during runtime of the game.
  • It is not allowed to use external means to time player actions (jumping, shooting, view direction change). The player has to time actions himself or with help of the allowed internal quake3/defrag features e.g. cg_drawTimer 1.
  • Mousewheel:It is not allowed to bind any actions that alter the movement of a player to your mouse wheel.
  • Bound Rocket-Jumps:It is not allowed to bind both +moveup and +attack on a single button and use it. It is not allowed to invoke by any means any sequence of commands including both +moveup and +attack in it. For example, if you have +moveup bound to one key, and +attack bound to another key, you can press them down at the same game frame, and release them at the same other frame - it IS allowed. If you use a multi-command bind, or a vstr sequence that contains both of these commands (perhaps, along with “wait”-s or other commands) - it is not allowed to use it.
  • It is not allowed to modify the pk3 files of any of the rounds - neither replace bsp files, nor textures, sounds or any other files. The demo must not contain bsp checksum mismatch warning ("Bsp crc: checksum failed").
  • It is not allowed to modify the demo by external software at any time.
  • Yawspeeding: It is not allowed to change your view angles (direction the player is facing) with other means than moving the mouse. This means the usage of commands +left, +right, +lookup, +lookdown, centerview is not allowed.
  • Botting / Replaying / Scripting: It is not allowed to record and reproduce player's input data using special software or hardware to record a valid demo. It is not allowed to execute sequence of commands (triggered by software or hardware) that affect physical player behavior using predefined timing and order. Basically any kind of automation is forbidden, all times have to be set by hand.
  • Timescaling: It is not allowed to manipulate the rate of time defrag works or perceives, using special software or hardware tweaks.

6. Map exploits

  • Map decompilation.
    Decompilation of bsp files is discouraged. We made the bsp files protected this time, so that only the official DFWC client can open them.
    After DFWC is over, regular versions of the maps (playable on any server and client) will be uploaded on ws.q3df.org.
    Besides, the official DFWC2019 anticheat client is unable to open other maps - that is normal.
    If you need to know where some triggers or player clips are located in a map, you can do it without decompilation this time.
    The anticheat client comes with an extra pk3 file and has 4 new CVars for that:
    	scr_clips_draw "1" - this will render player clips in-game
    	scr_clips_shader "tcRenderShader" - the recommended shader (comes in the special pk3 file)
    	scr_triggers_draw "1" - this will render triggers in-game
    	scr_triggers_shader "tcRenderShader" - the recommended shader (comes in the special pk3 file)
    		
    Usage: download the tcRender.pk3 from the FAQ age and put it in your baseq3 folder. Set a binding like the following:
    	bind <key> "toggle scr_clips_draw; toggle scr_triggers_draw;"
    		
    Note: the usage of this pk3 and these commands is not necessary. You may use them, if you like, or you may ignore them.
  • Walllingering / Wallbugs: It is not allowed to build up large amounts of speed without moving.
  • Killbugs: Players have to make sure they don't retain any game states of prior attempts to set a time into the current attempt. It is not allowed to exploit behaviour that only occurs when a player restarts the map or kills himself.

Keep in mind: Demo validators have the right to reject demos with engine/physics expoits not listed in these rules, if they violate the common sense of fair play. However, this is only a precautional measure and very unlikely to happen. In any case, the player as well as the community would be allowed to appeal to this before the final decision is made.