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.