// main mod cvars
user string swwm_voicetype = "default";		// voice for your demolitionist
user int swwm_tagcolor = 0;			// customize glowing tag color
nosave float swwm_flashstrength = 1.0;		// strength of screen flashes
nosave int swwm_hudmargin = 5;			// margin around fullscreen hud elements
nosave int swwm_mutevoice = 0;			// mute demolitionist voice
						// 0 - none
						// 1 - combat comments
						// 2 - interaction comments
						// 3 - map start comment
						// 4 - pain/death and grunts
nosave int swwm_voiceamp = 2;			// additional voice line amplification, up to 4x
nosave int swwm_targeter = 1;			// show healthbars in the hud (2: only show monsters and players, 3: only show allies)
nosave bool swwm_targettags = true;		// show names above healthbars
nosave bool swwm_damnums = true;		// show damage numbers
nosave bool swwm_damnums_color = true;		// use color per damage type, rather than just red
nosave bool swwm_scorenums = true;		// show score numbers
nosave bool swwm_pois = true;			// show points of interest highlighted by omnisight
nosave bool swwm_shaders = true;		// use pp shaders for some effects
server bool swwm_revive = true;			// allows the player to do an "emergency reboot" when dying
server int swwm_revivecooldown = 60;		// cooldown after using a revive, in seconds (0: no limit)
server int swwm_blood = 1;			// custom blood/gibbing (2: forcibly use our blood)
server int swwm_maxblood = 200;			// max blood effects at any time
server int swwm_maxgibs = 100;			// max gibs at any time
server int swwm_maxcasings = 100;		// max casings and spent mags at any time
server int swwm_maxdebris = 200;		// max chunks of debris at any time
nosave bool swwm_fuzz = true;			// allows toggling the fuzz shader on menus/backgrounds, useful if you're streaming/recording since it destroys the encoding quality
server bool swwm_cbtall = false;		// wallbuster breaks any wall, not just movable ones
server bool swwm_doomfall = false;		// monsters take fall damage outside of hexen
server bool swwm_resetscore = true;		// reset score back to 0 on pistol starts
nosave bool swwm_menupause = true;		// pause the game when demolitionist menus are open
nosave noarchive bool swwm_debugblast = false;	// debug visual aid for DoExplosion
nosave bool swwm_funtags = true;		// replace vanilla monster names with silly ones
server bool swwm_omnibust = false;		// add wallbusting effect to all weapons
server bool swwm_superfuel = false;		// enable unlimited fuel
server bool swwm_partytime = false;		// killed enemies burst into confetti
nosave bool swwm_bigtags = false;		// use a bigger font for targeter tags
server int swwm_enemydrops = 0;			// allow enemies to drop ammo and weapons (-1 - no ammo or weapons, 0 - ammo only, 1 - both)
user bool swwm_collectanim = true;		// player special gestures for collectables (first person only)
nosave int swwm_precisecrosshair = 1;		// use mod's own, more precise crosshair (2 - force even when crosshair is not on)
nosave bool swwm_ldspoil = false;		// [LD] always shows "Legendary" prefix on Legendary monsters, otherwise only when they've transformed
server bool swwm_uncapalert = false;		// all noise alerts have infinite range
server int swwm_strictuntouchable = 0;		// untouchable bonus ends... (1 - even if your armor absorbed all the damage, 2 - if you get hit by anything PERIOD)
server bool swwm_swapweapons = true;		// [DLC] allows carrying only one weapon in each slot (excluding starter melee)
nosave int swwm_forcestats = 1;			// always shows level stats on the HUD, not just when the automap is open (2 - also show map name, otherwise only stats)
user int swwm_funtrails = 0;			// recolors trails of eviscerator chunks and sheen bullets
server int swwm_ps_fullreset = 0;		// full reset of inventory, including score if enabled (0: no, 1: all maps excluding hubs, 2: between clusters)
server int swwm_ps_resetammo = 0;		// resets all ammo to zero
server int swwm_ps_resetitems = 0;		// removes all carried items
server int swwm_ps_resethealth = 0;		// sets health back to 100
server int swwm_drlaskill = 3;			// [DRLA Monsters] skill setting for monster spawns
server bool swwm_singlefirst = false;		// single weapons are selected before dual ones, has to be a server cvar due to limitations
nosave int swwm_filterachievements = 1;		// filter for achievements at 0%: 0 - no filter, 1 - obscure text, 2 - don't show
nosave noarchive bool swwm_debugview = false;	// debug visual aid for various things, such as actor collision, trajectories, relationships, etc.
server bool swwm_usetopickup = false;		// allow item pickup only by pressing use
nosave bool swwm_buttsfx = true;		// buttslam homerun SFX
user float swwm_bumpstrength = 1.0;		// intensity of fov/viewangles bumping
server bool swwm_nomagdrop = true;		// does not drop spent magazines (the "environmentally conscious" option)
nosave bool swwm_nomapmsg = false;		// disables special map dialogue messages
nosave bool swwm_weapontooltips = true;		// shows a tooltip on weapon operation when first selected
nosave string swwm_tooltipshown = "";		// which weapons have already had their tooltips displayed
nosave noarchive bool swwm_tooltipnote = false;	// set if the note on how to disable tooltips was already displayed
nosave bool swwm_beepboop = false;		// prompts the Demolitionist to go "beep", "boop" and "bop" when pressing any switch (may get annoying)
nosave string swwm_menuposehistory = "";	// stores currently seen poses for the main menu, for shuffling
nosave string swwm_titlesubhistory = "";	// stores currently seen subtitles for the title screen, for shuffling
nosave noarchive int swwm_profstart = 0;	// starts profiling as soon as handler is registered for specified >0 tics
nosave bool swwm_voicelog = false;		// adds player voicelines to the message log
nosave bool swwm_skipskill = false;		// skips skill confirmations
nosave bool swwm_hudallammo = false;		// only show ammo for owned weapons
nosave bool swwm_nointroex = false;		// does not play the "explosions" intro sequence
server bool swwm_bonkhammer = false;		// combat hammer makes bonk sounds when hitting enemies
server int swwm_friendlyfire = 0;		// 0: allow all friendly fire, 1: block incoming damage, 2: block incoming and outgoing damage
nosave bool swwm_showmaptitle = false;		// shows the name of the map when entering, just like in dark souls!
server bool swwm_lobdoubled = false;		// [LOB] Enable Double Death monster spawns
nosave int swwm_bardist = 2000;			// distance at which healthbars will be visible (does not affect player bars)
nosave bool swwm_oldcheats = false;		// has received the "old cheats" dialogue from Zanaveth
nosave bool swwm_ccmessage = false;		// has received the "corruption cards" dialogue from Cytho
nosave bool swwm_useweaponbar = false;		// scroll through weapons using a bar, like with inventory items
nosave bool swwm_percentstats = false;		// show level stats as percentages, like in intermissions
nosave bool swwm_targetvals = false;		// show current/max health values above heathbars
nosave int swwm_hudscale = 0;			// force the primary scale of the HUD (used by the HUD itself) [0: auto loose fit, -1: auto tight fit]
nosave int swwm_hudscale0 = 0;			// force the "zero minus" scale of the HUD (used by damage numbers)
nosave int swwm_hudscale1 = 0;			// force the "one minus" scale of the HUD (used by healthbars, score numbers)
nosave int swwm_hudscale2 = 0;			// force the "two minus" scale of the HUD (used by interest points)
server bool swwm_altclear = false;		// use an alternate, less graphically demanding "All Clear" effect
user bool swwm_analogmove = false;		// for gamepad users, player movement is adapted for analog sticks

// minimap settings
nosave bool swwm_mm_enable = true;		// show a minimap on the top right corner of the hud
nosave bool swwm_mm_missiles = true;		// show projectiles (how revolutionary)
nosave bool swwm_mm_usecanvas = false;		// use a canvas to draw the minimap, so its pixel density is consistent with the rest of the HUD
nosave noarchive bool swwm_mm_steptrace = false;// traces the player path in the minimap
nosave int swwm_mm_maxsteps = 5000;		// how many steps to keep track of
nosave float swwm_mm_minstep = 32.;		// minimum 2D distance between steps in map units

server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false;	// self-explanatory

nosave int swwm_playtime = 0;			// total playtime in seconds
nosave string swwm_achievementstate = "";	// stores dictionary with all achievement states
nosave string swwm_achievementprogress = "";	// stores dictionary with all achievement progress
