Dark Messiah of Might & Magic Tweak Guide
[Page 8] Advanced Tweaking (Pt.2)
Command Variables
This section lists out all of the major command variables for Dark Messiah grouped by general function, and provides descriptions for each of them. The list does not even remotely cover every possible command variable as there are over 2,800 of them. I have refined the list to only include those which I believe are the most relevant and useful to the average player. Many command variables are designed primarily for use by the developers in debugging the game for example, or appear to have no impact on the game at all, and so have been omitted. If you want a complete up-to-date list of every command variable in Dark Messiah of Might & Magic, use the cvarlist command below. To save you time, I provide the entire list of 2,800+ cvars in a convenient form for you to download: DMOMM_Cvarlist.zip (45KB).
Some important things to note about this list:
Common Commands
cl_showfps [0,1,2] - Draws a Frames Per Second (FPS) counter at the top of the screen. 0=off, 1=FPS, 2=Smoothed FPS. In general the smoothed fps counter is best for viewing framerates
cvarlist [string] - If entered by itself this command generates a list of all the command variables (cvars) in DMOMM. If one or more characters are also entered, cvarlist will list all commands starting with those letter(s).
help [cvar] - Provides any available help text for the specified cvar.
find [string] - Finds cvars with the specified string in their name or help text.
revert [cvar] - Reverts a cvar back to its default value.
differences - Shows all the cvars which are not at their default values, listing those which have been changed either through the in-game menus or via advanced tweaking.
exec [configfilename] - Executes all valid commands within the specified configuration file. The file must be a plain text file with the name [filename].cfg and reside in the same directory as config.cfg.
clear - Clears all text from the console.
autosave - Saves the current game to the autosave slot. Will not work if autosave is completely disabled as per the instructions in the Conclusion section.
save [savename] - Saves the current game under the savename specified.
load [savename] - Loads a game from the specified savename file.
reload - Reloads the most recent saved game.
restart - Restarts the game on the same level.
kill - Kills your character.
flush - Flushes the cache memory. Can resolve graphical anomalies such as texture glitches while playing.
map_background [mapname] - Runs a map as the background to the main menu. To use no map, use the mapname none (or any other non-existent map name).
jpeg [filename, quality] - Takes a screenshot as a .jpg with the specified filename using the quality % specified (e.g. jpeg snapshot 51 saves a screenshot as snapshot.jpg with 51% quality). If no quality is specified the default as set by jpeg_quality will be used (see below). Screenshots are saved to the \Program Files\Ubisoft\Dark Messiah of Might and Magic\mm\screenshot\ directory.
jpeg_quality [percentage] - Specifies the default quality percentage for screenshots taken with the jpeg command (see above). The normal default is 90%
version - Shows the current version of the game's main executable. The version number of the Dark Messiah executable is effectively the version number for the entire game. To see the exact build number and Source Engine build, simply open the console and it's always displayed at the top.
quit, exit - Using any of these commands exits the game and returns to the Desktop. Note the misspelled version of quit (quti) works as well.
Binding Commands
bind [key, command] - Binds the stated command to the specified key (e.g. bind Z console binds the Z key to opening the command console).
bindtoggle [key, command] - Same as the bind command, except the assigned key can be used to both turn the command on and off (e.g. bindtoggle F cl_showfps 2 means the F key will toggle the FPS counter on or off).
unbind [key] - Removes any bindings from the specified key.
unbindall - Removes bindings from all keys.
alias [aliasname, command] - Gives a command a short name (e.g. alias taunt echo I am your new King! changes 'taunt' into a command which spits out "I am your new King" when used). Use alias as a shortcut for long or complex command strings.
key_findbinding [command] - Find the key bound to the specified command.
key_listboundkeys - Lists all the keys which currently have a binding.
Performance Commands
[Stuttering-Related Settings]
The settings below will help reduce stuttering in conjunction with the in-game settings, but to understand why stuttering occurs in Dark Messiah please read the Troubleshooting Tips section first.
mat_forcemanagedtextureintohardware [0,1] - If set to 1, attempts to force texture information into your Video RAM at the start of a level, alleviating any stuttering in the game. This setting was introduced a while ago by Valve to fix stuttering in the Source engine, however it can also reduce performance without necessarily reducing stuttering/hitching on some systems. I generally recommend that this be left set at 1, however you can try setting this to 0 to improve performance and see if it noticeably adds to stuttering on your system - if so then set it back to its default of 1.
Update: As of the 1.02 Patch onwards the system attempts to automatically determine the 'best' setting for this option. However it is still worth checking and altering it to suit your needs.
cl_forcepreload [0,1] - If set to 1 forces all information to preload, reducing loading pauses and stuttering by not loading information on the fly, but can increase level loading times. I recommend this be set to 1 to reduce in-game stuttering.
sv_forcepreload [0,1] - If set to 1, forces server-side preloading, once again reducing loading pauses. I recommend this be set to 1 to reduce stuttering.
datacachesize [0 - 128] - Determines the amount in MB to allocate to the game's general data cache. The default is 32MB, and the maximum is 128MB. I recommend setting this to at least 64MB for 1GB of RAM or 128MB for 2GB of RAM as it should help in reducing stuttering, though it will add to initial load times.
Update: This command can apparently cause strange white textures to appear in the game on some systems, so if you experience this please undo this tweak.
mat_compressedtextures [0,1] - This should always be set to 1 to ensure that compressed textures are used, reducing video memory usage and thus reducing hitches and stutter. If you have a graphics card with 512MB of VRAM or more, you can set to 0 to improve texture appearance at the cost of performance, potential instability and added stuttering/hitching.
mod_forcedata [0,1] - If set to 1, forces all model data into cache while loading. This should not be set to 0 unless troubleshooting, as preloading models greatly helps reduce stuttering.
r_fastzreject [-1,0,1] - If set to 1 activates a fast z-setting algorithm which takes advantage of hardware fast z reject for improved performance. If set to -1 detects your default hardware setting for this option. Initially I recommend setting this to 1, and if you see any problems then set to -1.
cl_smooth [0,1] - If set to 1 attempts to smooth the view after prediction errors, however this can increase stuttering and so I recommend that it be set to 0.
cl_smoothtime [seconds] - Time over which to smooth the view after prediction errors. If cl_smooth is enabled, experiment with values to see which gives the best results. If cl_smooth is disabled (as recommended) has no impact.
sv_footsteps [0,1] - If set to 1, player footsteps can be heard, if set to 0 no footsteps are emitted from the player. Should normally be left enabled for realism, however set to 0 to disable this if you want to try to boost performance slightly and reduce stutter even further.
snd_mixahead [value] - Set between 0.0 and 1.0, the higher the value the less stuttering and more synchronized sound will be, but performance may be reduced. A value of 0.5 to 0.7 will help reduce stuttering in the game at the cost of some FPS the closer this value gets to 1.0. Note that altering this value can cause a quest bug in Chapter 5, so reset it to its default of 0.1 for the duration of that chapter.
snd_async_fullyasync [0,1] - If set to 1, sound may go slightly out of synch with actions at times but you will experience reduced loading pauses and stuttering.
mem_force_flush [0,1] - If set to 1 forces the cache to be flushed on every allocation, which is not necessarily optimal but can reduce memory-related errors and crashes. Set this to 1 if troubleshooting such problems, otherwise set to 0.
[General Graphics Settings]
mm_fxquality_level [0-2] - This command controls the in-game GFX Quality setting (See In-Game Settings), with a value of 0 being Low, 1 = Medium, 2 = High. However if this command doesn't stick at High in the in-game settings, you can try forcing it to = 2 by inserting it into your autoexec.cfg.
r_aspectratio [0,1,2] - Determines the aspect ratio of the screen display (See In-Game Settings). A value of 0 is 4:3, 1 is 16:9, and 2 is 16:10.
mat_dxlevel [dxversion] - Determines the shader version for special effects applied to materials. Options include 70, 80, 81, 90 and 95 (e.g. mat_dxlevel 81). This is similar to the -dxlevel switch in the Advanced Tweaking section on page 7. Using shader versions lower than the highest level supported by your card will improve performance at the cost of varying degrees of image quality loss (depending on the shader version used). In general DX 7.0 shaders in Dark Messiah will have a lot of visual anomalies and color glitches; DX 8.1 seems to be a good compromise between image quality and performance for those with older cards, but may be unstable.
fps_max [Framerate] - Sets a maximum framerate cap, preventing your FPS from going any higher. Note this setting is not the same as VSync, nor does it dynamically alter image quality to attempt to keep your FPS near the FPS cap. The default is 300 which is fine, however lowering this to match your refresh rate, or an even lower value, may help reduce wild FPS fluctuations which in turn will improve the appearance of smoother framerates.
mat_bumpmap [0,1] - When set to1 enables bump mapping which makes flat 2D textures appear three dimensional. If disabled, textures will be loaded without bumpmapping and will appear far less realistic, however performance will be improved.
mat_specular [0,1] - If set to 1, uses specular lighting which adds shinyness to the surfaces of objects. If set to 0 materials will not have specular lighting applied to them for a performance boost but a slight drop in image quality.
mat_blur [0,1] - If set to 0 disables certain blur effects in the game, which can improve performance and/or reduce annoyance.
mat_bloomscale [0 - ?] - Determines the level of brightness of Bloom, even if HDR is enabled. At levels above 0 the bloom effect increases saturation and brightness. The default is 1 when Bloom/HDR are enabled, but reducing this to 0.5 for example can increase realism. Experiment to see what suits your tastes.
mat_disable_bloom [0,1] - If set to 0 disables the Bloom effect, even if HDR is enabled. This can reduce the saturation effect of HDR and may also boost FPS slightly.
r_drawdecals [0,1] - Decals are impact/scorch/blood marks on walls, surfaces and characters, made from weapons and spells. If set to 1, decals are drawn. If set to 0, all decals are removed improving performance but greatly reducing realism (cheat).
r_decals [number] - Specifies the maximum number of decals possible at any one time. The higher this number, the greater the potential for getting slowdowns during large combat scenes as large numbers of decals are generated. Reducing this setting can improve performance in such situations, without totally losing all decals.
r_drawmodeldecals [0,1] - If set to 1, decals can be drawn on models, which are pretty much everything excluding walls and floors. If set to 0 these decals will be disabled, improving performance during combat for example, but reducing realism.
r_drawparticles [0,1] - If disabled, particle effects - which includes smoke, dust, some spell effects and explosions - will not be drawn. This can greatly improve performance around such effects at the cost of realism.
mat_clipz [0,1] - If set to 1, uses an optimization technique to reduce what is drawn on screen for a performance improvement. Note that some Nvidia FX card owners may need to set mat_clipz 0 to fix rendering problems.
r_farz [-1,0,1] - Controls the far clippling plane, which determines what is not rendered when it is determined not to be visible to the character. A value of -1 is normal, higher values can result in normally visible objects suddenly disappearing from view (cheat).
r_drawRain [0,1] - If set to 1, rain effects will be rendered, however if set to 0 no rain will be drawn. This improves performance in levels where there is visible rain, however realism is reduced (cheat).
r_maxdlights [number] - Determines the maximum number of dynamic lights visible on the screen. The larger this maximum, the more chance of slowdowns during scenes with multiple dynamic light sources. Reducing this value can improve performance in scenes with multiple dynamic lights, such as in heavy combat.
fog_enable [0,1] - If set to 0, will disable fog in areas which normally have fog, which may improve performance at the cost of realism.
fog_enable_water_fog [0,1] - If set to 0, removes all underwater fogging which can cause water to become clearer, but may reduce performance and reduce realism as well.
r_WaterDrawReflection [0,1] - If set to 0, disables all reflections on top of water. This will boost performance quite noticeably in areas with water at the cost of some realism.
r_WaterDrawRefraction [0,1] - If set to 0, disables all refraction - that is images which appear distorted under the water. This will boost performance at the cost of realism, however you may experience some graphical anomalies on the water or even in the sky for some reason.
mat_drawwater [0,1] - If set to 1, all water is rendered. Setting this to 0 can remove water for a major performance boost in water areas at the cost of realism (cheat).
cl_detaildist [range] - Determines the range at which detail props are shown (e.g. grass). The higher the value, the lower your performance as more add-on details are shown. Reducing this setting can increase performance, and increasing this setting will improve image quality, but in Dark Messiah the difference is usually not noticeable.
lod_Enable [0,1] - If set to 1, allows the Level of Detail (LOD) of objects to be gradually reduced the further they are from the player. This should be set to 1 for maximum performance, or 0 for maximum image quality. The difference is usually not visible.
lod_TransitionDist [range] - The distance at which the lod is reduced on objects. The higher this range, the lower your performance but the better distant objects will appear.
r_lod [-8 to 8] - Determines the rate at which level of detail (lod) is stripped from objects as they recede away from the player. The lower the value, the more detail remains visible on objects as they progress into the distance, reducing performance but increasing image quality. In most cases the visual difference is not significantly noticeable.
mat_softwarelighting [0,1] - If set to 1, uses only software-supported lighting though certain areas will show glitching, however this may increase performance on systems with slow graphics cards and fast CPUs.
mat_filterlightmaps [0,1] - If set to 1, static lightmaps are rendered correctly. If set to 0, all areas of pre-rendered lighting will be blocky and unrealistic, but performance may be improved slightly at the cost of realism.
mat_filtertextures [0,1] - If set to 1, textures are rendered smoothly. If set to 0, textures will be blocky and unrealistic (similar to the original Doom) but performance will be improved.
mat_mipmaptextures [0,1] - If set to 0 disables mipmap textures, which harshens distant textures and also seems to reduce performance, therefore should be set to 1 at all times.
mat_showlowresimage [0,1] - If set to 1, loads extremely low resolution blocky textures in place of the normal ones for a significant performance boost at the cost of a great deal of realism.
npcarx_noblood [0,1] - If set to 1 disables most blood effects when fighting with monsters or humans. This may provide a slight performance improvement, however it reduces realism so it's mainly for those who prefer not to see blood. You can also use the arxnpc_decapitatebloodamount 2 command to remove all blood and gore instead.
violence_agibs [0,1] - If set to 0 disables most gore when monsters are hit. Importantly, disabling this also makes monster bodies vanish very quickly after death which can improve performance but reduce realism.
violence_hgibs [0,1] - If set to 0 disables most gore when human enemies are hit. Disabling this can improve performance but also makes human bodies and various world debris disappear quickly after being killed/damged.
[General Sound Settings]
dsp_off [0,1] - If set to 1, disables the audio DSP (Digital Signal Processing) in Dark Messiah. This may improve performance, especially if you're having audio-related issues, but will noticeably reduce the richness of audio effects.
dsp_enhance_stereo [0,1] - If set to 1 enhances the DSP stereo effect, making the environmental sound richer and more atmospheric for a slight performance hit.
snd_digital_surround [0,1] - If set to 1 enables digital surround sound, however this only works if supported by your hardware and speaker configuration, and will reduce performance slightly if enabled.
dsp_slow_cpu [0,1] - If set to 1, reduces the quality of dsp sound effects, improving performance on systems with slower CPUs.
The next section continues the command variable listing.