Adding Game/Mod Support

Note that the list of supported mods is now provided separately; see Supported Mods.

If you want to have support for your game/mod added, you'll need to send me (wd@metamod.org) the following information:

Basic Info

For instance, Counter-Strike would be: Many of these can be found in the liblist.gam file in the mod.

List of game entities

The major information that I'll need is the names of any non-standard entities the game uses, for instance TFC uses things like:


   building_sentrygun

   detpack

   func_nobuild

   ghost

   info_player_teamspawn

   info_tfgoal

   item_artifact_envirosuit

   i_p_t

   item_tfgoal

   i_t_t

   teledeath

   tf_ammo_rpgclip

   tf_gl_grenade

You can see the complete lists of entities for supported mods in the files in the "ents" directory.

The reason these are needed is that the macro LINK_ENTITY_TO_CLASS in the HL SDK actually declares/defines a function with the name of the entity, which the engine will dlsym and call in the gameDLL. Since Metamod is sitting between the engine and the gameDLL, it needs to pass on the call to the function - but can't do this unless it knows ahead of time (at compile) to declare/define a function for that entity name. Thus, metamod needs a list of any entities that have functions declared/defined for them in the gameDLL via LINK_ENTITY_TO_CLASS.

Now, the simplest way to generate the list is to grep the source files for LINK_ENTITY_TO_CLASS. If you're not familiar with grep, it's a tool under linux for searching contents of files. For instance:


   grep LINK_ENTITY_TO_CLASS *.cpp *.c *.h

If you don't have linux available, then you may have to use some other tool under win32 to find a similar list. Or find a copy of grep for win32. :)

Note this all assumes you have access to the sourcecode for the mod. If you don't have access to the code, you'll need to find someone who does and ask them to grep the source for the entities.