Modular Combat is a role-playing shooter based in the Half-Life universe. There are over 50 modules that can be upgraded at any level, in any combination. Modules give combatants amazing abilities such as flying, teleporting, spawning minions, and shooting flechettes or energy balls.
There are a significant amount of customisatable settings that can be used to make your Modular Combat server feel unique. This article descibes changes to module balance, scoring & levelling rewards, PVM customisation and more.
Posted by FTWinston on Jul 30th, 2009
Many different effects and behaviours in Modular Combat are controlled by ConVars, and the strength, health & spawn frequency of NPCs are controlled by script files. Server admins can adjust these values as they see fit, although changing any MC convars (but not regular hl2mp convars) will cause the server name to have [Modified] appended to it.
Module cooldown, energy cost, damage and more can all be adjusted through convars. To find the convars related to a module, the naming convension is mod__.
For values that change with level, there will be two convars: one ending in _base and the other ending in _scale. The formula used in handling these convars is: base value + (scale value * module level).
In addition to these, for legacy reasons, the 5 "base player stat" modules still use the following base values (their scale values are named according to the convention)
mc_player_health_base, mc_player_armor_base, mc_player_aux_base, mc_player_sprint_base
pvm_difficulty - scales all monster stats by this value - an easy way to make everything easier / harder
pvm_monsters_base - the base number of monsters spawned
pvm_monsters_per_player - the extra number of monsters spawned, per player
pvm_max_monsters - monsters will not spawn if there are this many (or more) present
pvm_max_monster_level_offset_below_player_average - if the average player level is 5 and this value is 1, then the lowest monster level will be 4, even if there are level 0 players.
pvm_wave_interval - pvm monsters will respawn at this frequency
pvm_max_antlionguards - the maximum number of antlion guards that can exist simultaneously
The stats for NPCs are controlled by keyvalues script files in the modularcombat/pvm directory. There is a different script file for each NPC type, and different values for each level, up to 20. Beyond level 20, stats are extrapolated based on the difference between levels 19 & 20 stats.
As of 1.75, there are also ExperienceScale and RandomSpawnFrequency values in these files. Setting RandomSpawnFrequency to zero will stop an NPC from ever being used as PVM monsters. While these can be edited by hand, the updated version of MonsterDifficultyConfig.exe that lies in this folder in 1.75 should make editing stat values across all levels much less tiresome. Its usage should be self-explanatory.
mc_player_startlevel - the level that new characters start at, with appropriate number of module points
mc_perlevel_modulepoints - how many module points are awarded per level. Including level zero!
mc_experience_scale - allows scaling up/down of all player experience
mc_experience_monster - scaling applied to experience from killing a monster, compared to a player
mc_experience_minion - scaling applied to experience from killing a minion, compared to a player
mc_faction_win_experience - the experience awarded to each player of the winning faction in a team game
ally_experience_boost_fraction - how much extra experience is awarded for being near allies in team games
pvm_buff_interval_aperture - how frequently the armor regen effect ticks when aperture players are near each other in a team game
pvm_buff_interval_resistance - how frequently the health regen effect ticks when aperture players are near each other in a team game
pvm_buff_combine_scale - the damage bonus that combine players get for being near each other in team games
mc_spawn_protect_time - how long players will be invulnerable for after spawning
mc_can_vote_gamemode - 1 by default, 0 to disable game mode voting
mc_can_vote_map - 1 by default, 0 to disable map voting
mc_vote_duration - how long a vote lasts for
mc_vote_seperation - how long after one vote is complete before another can be started (new in 1.76)