If you want to install metamod by hand, here's what you have to do:
half-life/cstrike/addons/metamod/dlls/metamod.dll
Note that it's only really necessary to change the line corresponding to your OS (win32 or linux); you can leave the other line unchanged, or you can change it - it doesn't matter.
Configuration
Metamod uses several config options and config files (listed in order of
priority), where "$gamedir" indicates the game directory, ie
"cstrike":
Config file: plugins.ini
Default location: $gamedir/addons/metamod/plugins.ini, ie
"cstrike/addons/metamod/plugins.ini".
Plugins are described in a file "plugins.ini" and each line describes a plugin to load:
Fields are whitespace delimited (tabs/spaces).
For instance, in "cstrike/addons/metamod/plugins.ini" these are all valid lines:
// linux dlls/mybot.so # win32 dlls/mybot-old.dll Mybot old win32 dlls/mybot.dll Mybot current linux dlls/mm_stub_i386.so win32 dlls/mm_stub_i386.dll linux dlls/mm_trace_i386.so win32 dlls/mm_trace_i386.dll linux dlls/admin_MM.so win32 dlls/admin_MM.dll
Note that order in the plugins.ini file is significant.
The file is re-read at changelevel, as well as on demand (via "meta refresh" console command; see below). When the file is re-read, it will:
The game dll is auto-detected, along the same lines AdminMod operated (looking at the "gamedir"); see "mm_gamedll" below if you want to use a "bot" DLL.
You can override the name of this file by specifying it via the +localinfo field "mm_pluginsfile".
For compatibility with previous versions, Metamod will also look for a file "metamod.ini" under the gamedir, ie "cstrike/metamod.ini".
Config file: exec.cfg
Default location: $gamedir/addons/metamod/exec.cfg, ie
"cstrike/addons/metamod/exec.cfg".
You can override the name of this file by specifying it via the +localinfo field "mm_execcfg".
For compatibility with previous versions, Metamod will also look for a file "metaexec.cfg" under the gamedir, ie "cstrike/metaexec.cfg".
NOTE! This file is no longer supported! -- use instead the
+localinfo field
"mm_gamedll".
Config file: metagame.ini
Config option: +localinfo
Several of metamod's configuration options can be specified by the
"+localinfo" facility on the hlds command line. This is similar to the
"setinfo" console command, where the syntax is:
This replaces using the metagame.ini file. With previous versions of AdminMod (2.10 and earlier), this same functionality was provided by the file "admin.ini".
./hlds_run -game cstrike +localinfo mm_pluginsfile mylist.ini ./hlds_run -game cstrike +localinfo mm_execcfg mysettings.cfg ./hlds_run -game cstrike +localinfo mm_gamedll dlls/pod_bot.so ./hlds_run -game cstrike +localinfo mm_debug 7
Note, paths should use unix-style forward slashes (/) and not backward slashes (\), even on windows platforms.
All console command functionality is provide by a single command "meta", with multiple sub-commands:
usage: meta <command> [<arguments>] valid commands are: version - display metamod version info list - list plugins currently loaded cmds - list console cmds registered by plugins cvars - list cvars registered by plugins refresh - load/unload any new/deleted/updated plugins load <name> - find and load a plugin with the given name unload <plugin> - unload a loaded plugin reload <plugin> - unload a plugin and load it again info <plugin> - show all information about a plugin pause <plugin> - pause a loaded, running plugin unpause <plugin> - unpause a previously paused plugin retry <plugin> - retry a plugin that previously failed its action clear <plugin> - clear a failed plugin from the list force_unload <plugin> - forcibly unload a loaded plugin
where <plugin> can be either the plugin index number, or a non-ambiguous prefix string matching description or file.
Also, a single cvar is available:
meta_debug - set debugging level
For instance with:
Currently loaded plugins: description stat pend file vers src load unlod [ 1] Trace HLSDK API RUN - mm_trace_i386.so v0.90 ini ANY Pause [ 2] adminmod RUN - admin_MM.so v2.11 ini Start Start [ 3] stub RUN - mm_stub_i386.so v0.90 ini ANY Pause 2 plugins, 2 running
You could then do any of the following to unload the API Trace plugin:
meta unload 1 meta unload trace meta unload mm_trace
Here's some other example output:
meta info admin name: adminmod desc: Adminmod status: running action: none filename: dlls/admin_MM.so file: admin_MM.so pathname: /home/willday/test/cstrike/dlls/admin_MM.so index: 3 source: ini file loadable: at server startup unloadable: at server startup version: 2.11 date: 2001/02/04 author: Alfred Reynolds <alfred@mazuma.net.au> url: http://www.adminmod.org/ logtag: ADMIN last loaded: Mon Feb 5 02:06:34 2001 DLLAPI functions: GameDLLInit DispatchThink ClientConnect ClientCommand ClientUserInfoChanged ServerActivate 6 functions (dllapi) No DLLAPI-Post functions. No NEWAPI functions. No NEWAPI-Post functions. No Engine functions. No Engine-Post functions. Registered commands: admin_command 1 commands Registered cvars: float value string value users_file 0.000000 users.ini maps_file 0.000000 mapvote.txt default_access 1.000000 1 ips_file 0.000000 0 reserve_slots 1.000000 1 reserve_slots_msg 0.000000 0 admin_debug 1.000000 1 password_field 0.000000 admin_password alarm_message 0.000000 0 alarm_time 0.000000 0 use_regex 1.000000 1 models_password_field 0.000000 0 models_file 0.000000 models.ini models_kick_msg 0.000000 Invalid model script_file 0.000000 cstrike/dlls/admin.amx help_file 0.000000 admin_help.txt vote_freq 360.000000 360 encrypt_password 1.000000 1 pretty_say 1.000000 1 admin_mod_version 2.110000 2.11 reserve_type 1.000000 1 map_ratio 60.000000 60 kick_ratio 75.000000 75 words_file 0.000000 0 password_timeout 1800.000000 1800 file_access_read 0.000000 0 file_access_write 0.000000 0 public_slots_free 20.000000 20.000000 allow_client_exec 0.000000 0 admin_balance_teams 0.000000 0 30 cvars meta cmds Registered plugin commands: plugin command [ 1] API trace trace_version [ 2] API trace trace [ 3] API trace untrace [ 4] API trace showtrace [ 5] Adminmod admin_command 5 commands, 5 available meta cvars Registered plugin cvars: plugin cvar float value string value [ 1] API trace trace_debug 3.000000 3.000000 [ 2] API trace trace_dllapi 8.000000 8 [ 3] API trace trace_newapi 0.000000 0 [ 4] API trace trace_engine 8.000000 8 [ 5] Adminmod users_file 0.000000 users.ini [ 6] Adminmod maps_file 0.000000 mapvote.txt [ 7] Adminmod default_access 1.000000 1 [ 8] Adminmod ips_file 0.000000 0 [ 9] Adminmod reserve_slots 1.000000 1 [ 10] Adminmod reserve_slots_msg 0.000000 0 [ 11] Adminmod admin_debug 1.000000 1 [ 12] Adminmod password_field 0.000000 admin_password [ 13] Adminmod alarm_message 0.000000 0 [ 14] Adminmod alarm_time 0.000000 0 [ 15] Adminmod use_regex 1.000000 1 [ 16] Adminmod models_password_fiel 0.000000 0 [ 17] Adminmod models_file 0.000000 models.ini [ 18] Adminmod models_kick_msg 0.000000 Invalid model [ 19] Adminmod script_file 0.000000 cstrike/dlls/admin.amx [ 20] Adminmod help_file 0.000000 admin_help.txt [ 21] Adminmod vote_freq 360.000000 360 [ 22] Adminmod encrypt_password 1.000000 1 [ 23] Adminmod pretty_say 1.000000 1 [ 24] Adminmod admin_mod_version 2.110000 2.11 [ 25] Adminmod reserve_type 1.000000 1 [ 26] Adminmod map_ratio 60.000000 60 [ 27] Adminmod kick_ratio 75.000000 75 [ 28] Adminmod words_file 0.000000 0 [ 29] Adminmod password_timeout 1800.000000 1800 [ 30] Adminmod file_access_read 0.000000 0 [ 31] Adminmod file_access_write 0.000000 0 [ 32] Adminmod public_slots_free 20.000000 20.000000 [ 33] Adminmod allow_client_exec 0.000000 0 [ 34] Adminmod admin_balance_teams 0.000000 0 34 cvars, 34 available meta unload stub Unloaded plugin 'Stub plugin' Currently loaded plugins: description stat pend file vers src load unlod [ 1] Trace HLSDK API RUN - mm_trace_i386.so v0.90 ini ANY Pause [ 2] adminmod RUN - admin_MM.so v2.11 ini Start Start 2 plugins, 2 running meta load stub Loaded plugin 'stub' successfully Currently loaded plugins: description stat pend file vers src load unlod [ 1] Trace HLSDK API RUN - mm_trace_i386.so v0.90 ini ANY Pause [ 2] adminmod RUN - admin_MM.so v2.11 ini Start Start [ 3] stub RUN - mm_stub_i386.so v0.90 cmd ANY Pause 3 plugins, 3 running