Synergy Documentation
SDK and Editing : Map Config Files

1. Introduction
1. Home
2. About
3. F.A.Q.
2. Gameplay
1. Game Types
2. Starting a Game
3. Maintaining a Server
4. Playing the Game
5. Steam Mounts
3. SDK and Editing
1. Setting Up
2. Custom Sounds
3. Player Models
4. Custom NPCs
5. Custom NPC Sounds
6. Custom Weapons
7. Map Config Files
8. Class System
9. Life System
10. New Entities
Map Config Files have many different uses now: console settings, entity modification and defining the class data (overriding default behavior).

These Map Config Files (MCFs) can be found within the "maps/mcf/" directory. These files must be named the same as your level; that is, if your map is named "myTestMap" you will need to name your MCF "myTestMap.mcf".

Here is a sample MCF file:

"myTestMap"
{
    "classdata"    "myClassDataFileName"

    "console"
    {
        // sample:
        // "variableName"    "variableValue"

    }

    "entities"
    {
        // sample:
        // "create"
        //{
        //    "classname" "entityClassname"
        //    "origin" "0.0 0.0 0.0"
        //} */

    }
}
Typically, you can simply name your class data file the same as your level (for example, naming your class data file as "myTestMap.mcd"). Otherwise if you wish to use a shared class data file, use the "classdata" key, which will be used to reference the name of a class data file (without file extension).

The "console" key group can contain any specific variable settings your level may require, like maximum lives or timelimit, etc.

With the "entities" key group, you can create and delete entities:

    "entities"
    {
        "create"
        {
            "targetname" "entityTargetname"
            "classname" "entityClassname"
            "origin" "0 0 0"

            "values"
            {
                // any keys needed here (max of 32), example:
                // "angles" "0 0 0"
            }
        }

        "edit"
        {
            "targetname" "entityTargetname"
            "classname" "entityClassname"
            "origin" "0 0 0"

            "values"
            {
                // any keys needed here (max of 32), example:
                // "angles" "0 0 0"
            }
        }

        "delete"
        {
            "targetname" "entityTargetname"
            "classname" "entityClassname"
            "origin" "0 0 0"
        }
    }
You may select an entity by either using it's classname or targetname, with or without specifying an origin key.
It would be wise to only use just the classname or just the targetname to select an entity.
Use the origin key to select a specific entity; without the origin key, all entities with the specified classname or targetname will be used the modification.

It is possible to duplicate and remove brush model entities, such as trigger_multiple, trigger_push, trigger_once and so on.
To duplicate a brush model, you simply need to give an entity the "model" key with a value that of an existing brush model index (like this: "*1").
Removing a brush model works the same way as removing a standard point entity, however there is an issue with the origin key and brush models (read on for more information).

Brush model entities have an origin of "0 0 0" because they are part of the world. Therefore the origin key acts as an offset from it's initial position in space.
Example: Giving a brush model entity an origin of "0 128 0" will offset the brush model entity in question 128 units on the Y-axis.

Below is a list of console commands and variables that can help you determine entity properties, origins and other useful information for manipulating entity data:
Variable Name Default Value Description
sv_cheats 0 This variable enables cheats so some of the developer commands can work properly
developer 0 Set this to 1 for viewing some important information, set to 2 to include AI and entity IO messages
picker This command helps you pick entities in the game while looking directly at them
find_ent Find an entity by finding a matching string in an entity
getpos Outputs current player origin (and adds 64 units to the Z-axis) and player angles to console
setpos Set player origin to origin specified (setpos X Y Z)
mcf_dumpentinfo 0 Dump entity data for the loading levels (creates text files in 'maps/mcf/')
mcf_entinfo Display important information about the current entity we face
mcf_crosshairtarget Show information about the current space we are looking at
mcf_debug 0 More of a developer debugging command that will output MCF debug messages to console

Content Copyright © Synergy Development Team
2005 - 2007