// ************************************************
//
// Mani Admin Plugin 2010
//
// Last Update V1.2V
// 15.04.2011
//
// This file contains definitions that allow
// the plugin to handle different mods a bit
// more elegantly. Under most circumstances 
// they will not need to be changed unless
// the source mod author releases an update
// that requires changes to some of the offsets.
//
// We have also taken the hard coded sigs out of
// the binaries and placed them in this file.  This
// will allow simple updates of this file to fix
// issues with updates breaking the binaries.
//
// www.mani-admin-plugin.com
//
//*************************************************


"gametypes.txt"
{
	"version"	"3"

	//
	// Options for HL2 Deathmatch 
	//
	// This one is a bit weird. When the server starts it reports that
	// the game is called "Half-Life 2 Deathmatch". When the mp_teamplay cvar
	// is setup in server.cfg the game name changes to either "Deathmatch" or
	// "Team Deathmatch" which is why there are 3 mod definitions setup for it :/
	//
	// When running either it is recommended that you add the command
	// ma_forcegametype to the end of your server.cfg file or anywhere after the 
	// mp_teamplay cvar has been set. ma_forcegametype will prompt the plugin to 
	// reload this file and re-configure itself then reload the skins.
	//

	//
	// Options for HL2 Deathmatch 
	//
	// This one is a bit weird. When the server starts it reports that
	// the game is called "Half-Life 2 Deathmatch". When the mp_teamplay cvar
	// is setup in server.cfg the game name changes to either "Deathmatch" or
	// "Team Deathmatch" which is why there are 3 mod definitions setup for it :/
	//
	// When running either it is recommended that you add the command
	// ma_forcegametype to the end of your server.cfg file or anywhere after the 
	// mp_teamplay cvar has been set. ma_forcegametype will prompt the plugin to 
	// reload this file and re-configure itself then reload the skins.
	//

	"Half-Life 2 Deathmatch"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		"hl1_menu_compatible"	"0"
		"team_play"		"0"
		"max_messages"		"34"
		"cteam_match"		"fo_player_deathmatch"

		// Team manager entities pattern string
		"team_manager" 		"team_manager"

		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}
		
		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBasePlayer.m_MoveType"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"428"
			"get_primary_ammo_type"		"320"
			"get_secondary_ammo_type"		"321"
			"weapon_get_name"		"313"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
				
		"teams"
		{
			// As this is only a single team mod (until mp_teamplay 1) we only need one team

			"Player"
			{
				// Single team mods use 0 as their team index
				"index"		"0"
				"translation_index"		"908"
				"short_translation_index"	"909"
				"group"				"#R"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_deathmatch"

				// Log name that is used in your logs for say
				// events
				"log_name"			"REBEL"

				// Only one set of skins name admin.txt, reserved.txt and public.txt 
				// with directories /admin /reserved and /public

				"admin_skin"	"admin"
				"reserved_skin"	"reserved"
				"public_skin"	"public"
			}				
		}
	}

	// For HL2 Deathmatch when mp_teamplay is set to 0 or not set at all the
	// game type turns to single team deathmatch mode. In which case we have
	// the same as above for settings
	//

	"Deathmatch"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		"hl1_menu_compatible"	"0"
		"team_play"		"0"
		"max_messages"		"34"
		"cteam_match"		"fo_player_deathmatch"

		// Team manager entities pattern string
		"team_manager" 		"team_manager"

		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}
		
		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBasePlayer.m_MoveType"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"428"
			"get_primary_ammo_type"		"320"
			"get_secondary_ammo_type"		"321"
			"weapon_get_name"		"313"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
				
		"teams"
		{

			"Player"
			{
				"index"		"0"
				"translation_index"		"908"
				"short_translation_index"	"909"
				"group"				"#R"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_deathmatch"

				// Log name that is used in your logs for say
				// events
				"log_name"			"REBEL"

				"admin_skin"	"admin"
				"reserved_skin"	"reserved"
				"public_skin"	"public"
			}				
		}
	}

	// For HL2 TEAM Deathmatch when mp_teamplay is set to 1 or not set at all the
	// game type turns to multi team deathmatch mode. In which case we have
	// to setup multiple team definitions for Combines and Rebels.
	//

	"Team Deathmatch"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		"hl1_menu_compatible"	"0"
		"team_play"		"1"
		"max_messages"		"34"
		"cteam_match"		"fo_player_deathmatch"

		// Team manager entities pattern string
		"team_manager" 		"team_manager"

		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}
		
		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBasePlayer.m_MoveType"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"428"
			"get_primary_ammo_type"		"320"
			"get_secondary_ammo_type"		"321"
			"weapon_get_name"		"313"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
				
		"teams"
		{

			"combine"
			{
				"index"		"2"
				"translation_index"		"906"
				"short_translation_index"	"907"
				"group"				"#C"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_combine"

				// Log name that is used in your logs for say
				// events
				"log_name"			"COMBINE"

				"admin_skin"	"admin_c"
				"reserved_skin"	"reserved_c"
				"public_skin"	"public_c"
			}

			"rebel"
			{
				"index"		"3"
				"translation_index"		"908"
				"short_translation_index"	"909"
				"group"				"#R"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_rebel"

				// Log name that is used in your logs for say
				// events
				"log_name"			"REBEL"

				"admin_skin"	"admin_r"
				"reserved_skin"	"reserved_r"
				"public_skin"	"public_r"
			}				
		}
	}


	//
	// Half-Life 2 Capture the Flag Source mod options. Again this is a multi-team mod.
	//

	"Half-Life 2 CTF"
	{
		"spectator_allowed"	"1"
		"spectator_index"	"1"
		"spectator_group"	"#SPEC"
		"hl1_menu_compatible"	"1"
		"team_play"		"1"
		"max_messages"		"22"

		// Team manager entities pattern string
		"team_manager" 		"team_manager"

		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		"advanced_effects"
		{
			"enable_linux"	"1"
			"enable_win"	"1"
			"vfunc_Offset"	"12"
			"code_Offset"	"107"
		}
		
		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBasePlayer.m_MoveType"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

        "vfuncs"
        {
            "eye_angles"    "107"
            "set_model_index"       "9"
            "teleport"      "91"
            "eye_position"  "106"
            "give_item"     "295"
            "my_combat_character"   "61"
            "get_velocity"  "115"
            "ignite"        "171"
			"user_cmds"		"310"
			"map_desc"		"14"
 		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiPKcS3_S3_iS3_i"
				"sigscan"		"56 68 ? ? ? ? 8B F1 E8 ? ? ? ? 8B 06 83 C4 04 8B CE"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhi"
				"sigscan"		"A1 ? ? ? ? 83 EC ? 83 78 ? ? 55 8B 6C ? ? 56 57 8B 7C"
				"win_type"		"Direct"		
			}
		}
				
		"teams"
		{

			"combine"
			{
				"index"		"2"
				"translation_index"		"906"
				"short_translation_index"	"907"
				"group"				"#C"

                                // Spawn points classname
                                "spawnpoint_class_name"         "info_player_combine"


				// Log name that is used in your logs for say
				// events
				"log_name"			"Combine"

				"admin_skin"	"admin_c"
				"reserved_skin"	"reserved_c"
				"public_skin"	"public_c"
			}

			"rebel"
			{
				"index"		"3"
				"translation_index"		"908"
				"short_translation_index"	"909"
				"group"				"#R"

                                // Spawn points classname
                                "spawnpoint_class_name"         "info_player_rebel"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Rebels"

				"admin_skin"	"admin_r"
				"reserved_skin"	"reserved_r"
				"public_skin"	"public_r"
			}				
		}
	}

	//
	// Options for Counter Strike : Source mod
	//
	// This should match the description given by the 
	// server console command ma_game
	//

	"Counter-Strike: Source"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		// Set to 1 if amx style menus actually work on the mod
		"hl1_menu_compatible"	"1"

		// Set to 1 if team play is allowed, 0 if not
		"team_play"		"1"

		// Number of user messages to scan for. Too high a number will
		// cause the server to crash. 22 okay for all mods at the moment
		"max_messages"		"41"

		// Team manager entities pattern string
		"team_manager" 		"cs_team_"

		// Offsets for voice control, do not change
		// If your mod has no voice server remove the
		// voice_control section or comment it out
		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		// Advanced visual effects offsets, linux should work most of the
		// time depending on how the server binary has been compiled.
		// The windows version will probably not work on non-valve mods.
		// The command ma_offset and ma_offsetscan is not applicable here
		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}

		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"armor"		"CCSPlayer.m_ArmorValue"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"account"	"CCSPlayer.m_iAccount"
			"move_type"	"CBaseEntity.movetype"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
			"move_type"	"CBaseEntity.movetype"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"391"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"408"
			"set_observer_target"		"365"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"431"
			"get_primary_ammo_type"		"327"
			"get_secondary_ammo_type"		"328"
			"weapon_get_name"		"320"
		}

		"vfuncs_windows"
		{
			"get_primary_ammo_type"		"323"
			"get_secondary_ammo_type"		"324"
			"weapon_get_name"		"316"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
			
			"CCSPlayer_RoundRespawn"
			{
				"linux_symbol"	"_ZN9CCSPlayer12RoundRespawnEv"
				"sigscan"		"55 8B ? 51 89 4D ? 8B 45 ? 8B 10 8B 4D ? 8B 82 ? ? ? ? FF D0 6A 00 8B 4D ? E8"
				"win_type"		"Direct"		
			}
			
			"UTIL_Remove"
			{
				"linux_symbol"	"_Z11UTIL_RemoveP11CBaseEntity"
				"sigscan"		"8B 44 24 04 85 C0 74 ? 83 C0 0C 89 44 24 04 E9 7C FF FF FF"
				"win_type"		"Direct"
			}
			
			"CEntList_gEntList"
			{
				"linux_symbol"	"g_pEntityList"
				"sigscan"		"53 68 ? ? ? ? 6A 00 B9 ? ? ? ? 32 DB"
				"win_type"		"Indirect"
				"linux_type"	"Direct"
				"win_index"		"9"		
			}
			
			"CGameRules_gGameRules"
			{
				"linux_symbol"	"_ZN20CBaseCombatCharacter22SwitchToNextBestWeaponEP17CBaseCombatWeapon"
				"sigscan"		"83 EC 38 53 56 8B F1 57 8D 4C"
				"win_type"		"Indirect"
				"linux_type"	"Indirect"
				"win_index"		"109"
				"linux_index"	"6"		
			}
			
			"CGlobalEntityList_FindEntityByClassname"
			{
				"linux_symbol"	"_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
				"sigscan"		"53 55 56 8B F1 8B 4C 24 ? 85 C9 57 74 ? 8B 01 8B 50 08 FF D2"
				"win_type"		"Direct"		
			}
			
			"CCSPlayer_SwitchTeam"
			{
				"linux_symbol"	"_ZN9CCSPlayer10SwitchTeamEi"
				"sigscan"		"55 8B EC 83 EC ? 89 4D ? 8B 45 ? 50 E8 ? ? ? ? 83 C4 04 85 ? 74 ? 83"
				"win_type"		"Direct"		
			}
			
			"CCSPlayer_SetModelFromClass"
			{
				"linux_symbol"	"_ZN9CCSPlayer17SetModelFromClassEv"
				"sigscan"		"55 8B EC 83 EC 24 ? 4D ? 8B 4D ? E8 ? ? ? ? 83 F8"
				"win_type"		"Direct"		
			}
			
			"GetFileWeaponInfoFromHandle"
			{
				"linux_symbol"	"_Z27GetFileWeaponInfoFromHandlet"
				"sigscan"		"66 8B 44 24 04 66 3B 05 ? ? ? ? 73 ? 66 3D FF FF"
				"win_type"		"Direct"		
			}
			
			"CBaseCombatCharacter_Weapon_OwnsThisType"
			{
				"linux_symbol"	"_ZNK20CBaseCombatCharacter19Weapon_OwnsThisTypeEPKci"
				"sigscan"		"53 8B 5C 24 08 55 56 8B E9 57 33 FF 8D B5 ? ? ? ? 8B 0E 83 F9 FF 74"
				"win_type"		"Direct"		
			}
		}
		
		// Setup team structure for mod		
		"teams"
		{
			// Handle terrorist team
			"terrorist"
			{
				// Terrorist team index (use ma_teamindex to find what team index you are on)
				"index"		"2"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_terrorist"

				// Log name that is used in your logs for say
				// events
				"log_name"			"TERRORIST"

				// Translation number found in english.cfg 
				"translation_index"		"900"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"901"

				// Group ID used when running a ma_ command that affect players
				"group"				"#T"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_t"
				"reserved_skin"	"reserved_t"
				"public_skin"	"public_t"
			}

			// Handle terrorist team
			"counter-terrorist"
			{
				// CT team index (use ma_teamindex to find what team index you are on)
				"index"		"3"

				// Spawn points classname
				"spawnpoint_class_name"         "info_player_counterterrorist"

				// Log name that is used in your logs for say
				// events
				"log_name"			"CT"

				// Translation number found in english.cfg 
				"translation_index"		"902"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"903"

				// Group ID used when running a ma_ command that affect players
				"group"				"#CT"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_ct"
				"reserved_skin"	"reserved_ct"
				"public_skin"	"public_ct"
			}				
		}
	}

	//
	// Options for Day of Defeat : Source
	//
	// This should match the description given by the 
	// server console command ma_game
	//

	"Day of Defeat: Source"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		// Set to 1 if amx style menus actually work on the mod
		"hl1_menu_compatible"	"1"

		// Set to 1 if team play is allowed, 0 if not
		"team_play"		"1"

		// Dod specific restrictions on certain effects, do not change these
		// or you will get crashes

		"advert_decal_allowed"	"0"
		"death_beam_allowed"	"0"

		// Number of user messages to scan for. Too high a number will
		// cause the server to crash. 22 okay for all mods at the moment
		"max_messages"		"22"

		// Team manager entities pattern string
		"team_manager" 		"dod_team_"

		// Offsets for voice control, do not change
		// If your mod has no voice server remove the
		// voice_control section or comment it out
		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		// Advanced visual effects offsets, linux should work most of the
		// time depending on how the server binary has been compiled.
		// The windows version will probably not work on non-valve mods.
		// The command ma_offset and ma_offsetscan is not applicable here

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}

		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBaseEntity.movetype"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"428"
			"get_primary_ammo_type"		"320"
			"get_secondary_ammo_type"		"321"
			"weapon_get_name"		"313"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
		
		// Setup team structure for mod		
		"teams"
		{
			// Handle Allies team
			"allies"
			{
				// Terrorist team index (use ma_teamindex to find what team index you are on)
				"index"		"2"

				// Spawn points classname
				"spawnpoint_class_name"		"info_player_allies"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Allies"

				// Translation number found in english.cfg 
				"translation_index"		"918"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"919"

				// Group ID used when running a ma_ command that affect players
				"group"				"#A"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_a"
				"reserved_skin"	"reserved_a"
				"public_skin"	"public_a"
			}

			// Handle Axis team
			"axis"
			{
				// X team index (use ma_teamindex to find what team index you are on)
				"index"		"3"

				// Spawn points classname
				"spawnpoint_class_name"		"info_player_axis"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Axis"

				// Translation number found in english.cfg 
				"translation_index"		"920"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"921"

				// Group ID used when running a ma_ command that affect players
				"group"				"#X"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_x"
				"reserved_skin"	"reserved_x"
				"public_skin"	"public_x"
			}				
		}
	}

	"Day of Defeat"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		// Set to 1 if amx style menus actually work on the mod
		"hl1_menu_compatible"	"1"

		// Set to 1 if team play is allowed, 0 if not
		"team_play"		"1"

		// Dod specific restrictions on certain effects, do not change these
		// or you will get crashes

		"advert_decal_allowed"	"0"
		"death_beam_allowed"	"0"

		// Number of user messages to scan for. Too high a number will
		// cause the server to crash. 22 okay for all mods at the moment
		"max_messages"		"22"

		// Team manager entities pattern string
		"team_manager" 		"dod_team_"

		// Offsets for voice control, do not change
		// If your mod has no voice server remove the
		// voice_control section or comment it out
		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}

		// Advanced visual effects offsets, linux should work most of the
		// time depending on how the server binary has been compiled.
		// The windows version will probably not work on non-valve mods.
		// The command ma_offset and ma_offsetscan is not applicable here

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}

		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBaseEntity.movetype"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"428"
			"get_primary_ammo_type"		"320"
			"get_secondary_ammo_type"		"321"
			"weapon_get_name"		"313"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
		
		// Setup team structure for mod		
		"teams"
		{
			// Handle Allies team
			"allies"
			{
				// Terrorist team index (use ma_teamindex to find what team index you are on)
				"index"		"2"

				// Spawn points classname
				"spawnpoint_class_name"		"info_player_allies"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Allies"

				// Translation number found in english.cfg 
				"translation_index"		"918"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"919"

				// Group ID used when running a ma_ command that affect players
				"group"				"#A"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_a"
				"reserved_skin"	"reserved_a"
				"public_skin"	"public_a"
			}

			// Handle Axis team
			"axis"
			{
				// X team index (use ma_teamindex to find what team index you are on)
				"index"		"3"

				// Spawn points classname
				"spawnpoint_class_name"		"info_player_axis"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Axis"

				// Translation number found in english.cfg 
				"translation_index"		"920"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"921"

				// Group ID used when running a ma_ command that affect players
				"group"				"#X"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_x"
				"reserved_skin"	"reserved_x"
				"public_skin"	"public_x"
			}				
		}
	}

	"Team Fortress"
	{
		// Set to 1 if spectator is allowed for this mod
		"spectator_allowed"	"1"

		// The internal team index for spectators
		// You can identify this by running ma_teamindex as a spectator
		"spectator_index"	"1"

		// The group name to identify spectators when running a ma_ command
		"spectator_group"	"#SPEC"

		// Set to 1 if amx style menus actually work on the mod
		"hl1_menu_compatible"	"1"

		// Set to 1 if team play is allowed, 0 if not
		"team_play"		"1"

		// Number of user messages to scan for. Too high a number will
		// cause the server to crash. 22 okay for all mods at the moment
		"max_messages"		"23"

		// Team manager entities pattern string
		"team_manager" 		"tf_team"

		// Offsets for voice control, do not change
		// If your mod has no voice server remove the
		// voice_control section or comment it out
		//"voice_control"
		//{
		//	"linux_offset"	"3"
		//	"win_offset"	"2"
		//}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}


		// Advanced visual effects offsets, linux should work most of the
		// time depending on how the server binary has been compiled.
		// The windows version will probably not work on non-valve mods.
		// The command ma_offset and ma_offsetscan is not applicable here

		"advanced_effects"
		{
			"enable_linux"	"1"	// Allow linux advanced effects
			"enable_win"	"1"	// Allow windows advanced effects
			"vfunc_Offset"	"12"	// Windows virtual function offset (Lance VOrgin)
			"code_Offset"	"111"	// Windows code index offset (Lance VOrgin)
		}

		"props"
		{
			"health"	"CBasePlayer.m_iHealth"
			"render_mode"	"CBaseEntity.m_nRenderMode"
			"render_fx"	"CBaseEntity.m_nRenderFX"
			"colour"	"CBaseEntity.m_clrRender"
			"move_type"	"CBaseEntity.movetype"
			"model_index"	"CBaseEntity.m_nModelIndex"
			"vec_origin"	"CBaseEntity.m_vecOrigin"
			"ang_rotation"	"CBaseEntity.m_angRotation"
			"move_type"	"CBaseEntity.movetype"
		}

		"vfuncs"
		{
			"eye_angles"		"130"
			"set_model_index"		"9"
			"teleport"		"107"
			"eye_position"		"129"
			"give_item"		"390"
			"my_combat_character"		"71"
			"get_velocity"		"139"
			"map_desc"		"12"
			"ignite"		"205"
			"weapon_drop"		"256"
			"user_cmds"		"407"
			"set_observer_target"		"364"
			"weapon_canuse"		"253"
			"weapon_switch"		"257"
			"remove_player_item"		"263"
			"get_weapon_slot"		"261"
			"give_ammo"		"247"
			"commit_suicide"		"431"
			"get_primary_ammo_type"		"327"
			"get_secondary_ammo_type"		"328"
			"weapon_get_name"		"320"
		}

		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}		
		
		// Setup team structure for mod		
		"teams"
		{
			// Handle Blue team
			"blue"
			{
				// Blue team index (use ma_teamindex to find what team index you are on)
				"index"		"3"

				// Spawn points classname (These don't work on SourecForts)
				// "spawnpoint_class_name"		"info_player_teamspawn"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Blue"

				// Translation number found in english.cfg 
				"translation_index"		"926"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"927"

				// Group ID used when running a ma_ command that affect players
				"group"				"#B"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_b"
				"reserved_skin"	"reserved_b"
				"public_skin"	"public_b"
			}

			// Handle Red team
			"red"
			{
				// Red team index (use ma_teamindex to find what team index you are on)
				"index"		"2"

				// Spawn points classname (These don't work on SourecForts)
				// "spawnpoint_class_name"		"info_player_teamspawn"

				// Log name that is used in your logs for say
				// events
				"log_name"			"Red"

				// Translation number found in english.cfg 
				"translation_index"		"928"

				// Abbrevated translation number found in english.cfg
				"short_translation_index"	"929"

				// Group ID used when running a ma_ command that affect players
				"group"				"#R"

				// Setup skin config file names and directories to search under /skins/
				"admin_skin"	"admin_r"
				"reserved_skin"	"reserved_r"
				"public_skin"	"public_r"
			}				
		}
	}

	//
	// If the mani admin plugin cannot find a template above to match 
	// the source mod that is running it will try and use this one as a default.
	//
	// Core default single team mod.
	//

	"Unknown Mod"
	{
		"spectator_allowed"	"1"
		"spectator_index"	"1"
		"spectator_group"	"#SPEC"
		"hl1_menu_compatible"	"0"
		"team_play"		"0"
		"max_messages"		"22"

		"voice_control"
		{
			"linux_offset"	"3"
			"win_offset"	"2"
		}

		// Offsets for spray hook control, do not change
		"spray_hook_control"
		{
			"linux_offset"	"29"
			"win_offset"	"28"
		}

		// Offsets for extra spawn points hook
		"spawn_point_control"
		{
			"linux_offset"	"2"
			"win_offset"	"2"
		}


		"advanced_effects"
		{
			"enable_linux"	"1"
			"enable_win"	"0"
			"vfunc_Offset"	"12"
			"code_Offset"	"110"
		}
		
		"sigs"
		{
			"CBaseServer_ConnectClient"
			{
				"linux_symbol"	"_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i"
				"sigscan"		"81 EC ? ? ? ? 56 68 ? ? ? ? 8B F1 FF 15 ? ? ? ? 8B 06 8B 50"
				"win_type"		"Direct"		
			}
			
			"NET_SendPacket"
			{
				"linux_symbol"	"_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb"
				"sigscan"		"B8 ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? 83 78 ? ? 53 55 8B"
				"win_type"		"Direct"		
			}
		}
		
		"teams"
		{

			"Player"
			{
				"index"		"0"
				"translation_index"		"908"
				"short_translation_index"	"909"
				"group"				"#R"
				"admin_skin"	"admin"
				"reserved_skin"	"reserved"
				"public_skin"	"public"
			}				
		}
	}
}
