Advanced UI

Most of the UI is labeled and self-explanatory, though in some cases extra information is provided in extremely condensed form via abbreviations, unlabeled numbers and letters, or sometimes color.

## Tactical HUD

An optional mode that provides more detailed UI info, recommended for all advanced players and roguelike veterans. Activating it in the options provides the following features:

* HUD shows your exact core exposure percentage
* HUD shows both stationary and mobile energy cost per turn, rather than just mobile
* HUD shows full heat breakdown including stationary upkeep, when mobile, and injector/ablative cooling
* HUD movement speed also indicates current momentum
* Movement speed for both self and other bots expressed in time units rather than as a percentage
* Volley speed expressed in time units rather than as a percentage
* Info page for your attached parts with less than 1% coverage shows that value as a fraction instead
* Info page for power sources also includes chain reaction explosion details (loaded on startup)
* Robot part lists show per-item coverage rate
* Robot core damage popups indicate actual remaining integrity rather than a percentage
* Scan window displays both robot integrity and current heat, rather than just integrity
* Multi-wielding melee weapons shows their respective followup attack chance(s) in the parts list
* Buttons appear next to part list categories to allow batch toggling (non-keyboard mode only)
* Part integrity markers are boxed upon taking damage, remaining that way until your next action
* Part data visualization shows values next to graph in most modes
* Parts swapped in from the inventory show a line marker to their left as long as the original part still in inventory

All other subsections of this Advanced UI guide assume Tactical HUD mode is active.

## HUD

The top-right HUD area shows primary stats and related data.

Energy: The first parenthesized number is energy cost per turn when stationary, followed by total cost per move when mobile. Any energy currently stored in inventory containers is totaled at the end after the "I:" indicator.

Matter: If any attached and active Field Recycling Units are processing matter, parenthesis enclose the amount released per turn followed by the total amount remaining to process. Any matter currently stored in inventory containers is totaled at the end after the "I:" indicator.

Temperature: Like energy, this gives total values under stationary and mobile conditions. If any active coolant injectors are attached, their combined dissipation is shown as a third value.

Movement: The time cost per move is shown in parenthesis, followed by a single digit that represents your current momentum. The base momentum factor usually ranges from 0 to 3, and is increased by repeated movement in the same direction. Higher momentum confers a bonus to melee and ramming damage, thus you'll see your current momentum reflected on the status window damage modifier list.

## Scan Window

Hovering over objects displays their basic data here. For robots the top block color reflects their current integrity, the bottom block color indicates their current heat level (not shown when temperature is cool), while the color of the name indicates their current relation with you: red for hostile, gray for neutral, and green for friendly. When spotted by a hostile, a red '!' appears in the bottom left corner. When a robot has some dialogue that requires you to be adjacent or bump into them to hear, a green '?' is shown there instead. The '?' instead appears gray if you've already collected the associated lore and listening to them does not offer any repeat per-run benefits.

## Evasion Window

This contains a summary of all defensive modifiers to the chance to be hit by an incoming projectile. It assumes the standard base hit chance of 60%, and cannot take into account the many attacker-sourced and situational factors, thus it is not generally an accurate representation of the actual chance to be hit, instead serving to demonstrate the relative defensive value of certain circumstances and part configurations. Hovering the cursor over the window (or holding '\') opens the full details, which lists each component by name and will also indicate why a given value is grayed out (i.e. inapplicable). Note that while the summary window updates in real time, the details window does not (in the rare case that you're toggling parts while also holding that window open).

## Volley Window

While in firing mode, the evasion window is replaced with the volley window, showing summary data for the volley if there are any active weapons. 'R' indicates the range from your current position to the cursor. Letters in brackets refer to all active weapons (using their parts list letter), where those which are not currently within range of the cursor target (and therefore will not fire) are grayed out. For all weapons that will fire, the total resource costs are listed in the second line: time required to fire along with energy ('E'), matter ('M') and heat ('H'). Energy and matter are displayed as total costs, while heat is instead the amount generated per turn over the volley duration.

At the bottom of that window is a button for toggling a visualization of the volley range (alternatively use the 'v' key) to highlight the area reachable by the current volley, using different levels of brightness if multiple ranges are involved. Any visible terrain destroyable using the volley (including generally taking into account all applicable damage modification from active utilities, current momentum, resistances, etc.) will glow red, while any other terrain that could at least theoretically be destroyed by currently inactive weapons or those in inventory will instead glow yellow. The appearance of terrain you don't likely have the means to destroy at the moment remains unchanged. Note that even in such a case, it may sometimes still be possible to destroy the terrain using other means, since the system does not take into account inactive utilities or those in inventory, special weapons, the environment, or other means to creatively destroy terrain, but it is a useful way to quickly confirm that you already do have the capability.

## Parts Window

On the top border of this area is current/max mass, and if overweight an "0x#" indicator will appear in which '#' is the number of times you currently exceed your propulsion support limit, a vital factor in movement mechanics. If flying, the overweight indicator appears yellow since you lose your dodge bonus while overweight, and are no longer capable of flying over non-allied bots.

To the right of each part is extra information about each depending on the current mode (coverage/energy/integrity/info). Info ('q') mode is the most esoteric, but provides a useful at-a-glance summary of stats relevant to each type of item, usually enough to make quick comparisons without opening the full info window. The first number for all parts is always the rating, preceded by a \* if it's a prototype, or \*\* if an artifact. A '+' also appears before that to indicate when you currently have a schematic for that type of part, though note that in the case of a few late-game weapons, there may not be enough room in their summary to show the + reminder. Subsequent values differ by item type. All parts except propulsion indicate their mass with 'M'. Power sources indicate energy output with 'E'. Propulsion indicate base cost/move with 'T', and support with 'S'. Utilities show an ABBR/###, where ABBR is a very short four-letter abbreviation for its effect type, followed by the strength/value of its effect. Because each utility has only one primary type of effect, there isn't much point in learning to recognize those abbreviations (though there is a scheme to them). Instead the number is what's really important.

In Vulnerability ('c') mode, the graphs are derived from a combination of coverage and integrity, where those parts with greater vulnerability are more likely to be lost before others, statistically speaking.

In Heat ('e') mode, propulsion values reflect the amount of heat generated by a full turn of movement plus upkeep, and weapon values assume the weapon is fired alone in a 200-time volley with no further adjustments for delay or utility effects.

Before the slot letter for processors and hackware is a dark ':', which is simply an indicator to remind you that removing or replacing that part will destroy it permanently.

When a part is attached via the swap menu, replacing another part, in Tactical HUD mode a line marker appears to its left and will remain there for as long as the part it replaced is still available in inventory. This makes it easier to swap back and forth between a pair of parts, for example if you have a slightly separate loadout for exploration vs. combat. When the swap menu is opened again for that autopaired part, the previous part to occupy that slot is also listed as part 'Y' for quicker selection. Another feature with much more limited applicability is multiswapping, which allows you to swap all autopaired parts via a single command (Shift-Alt-w). The resource costs are the same, all this does is queue the actions for you. Holding Shift-Alt-a (or hovering the mouse cursor over one of those markers) causes the names of all autopaired parts to appear next to their counterparts, making it easier to quickly determine whether you'd want to do this.

Note that the order parts are listed does not matter, except in the case of weapons, where active weapons in a volley will fire from top to bottom as listed. Reorder weapons as necessary depending on the tactical situation. All parts can be autosorted by subtype with the ':' key, which by default will also sort weapons, but the latter behavior can be manually overridden with the partSortIgnoresWeapons in /user/advanced.cfg.

## Inventory Window

The list of inventory items displays used and free inventory space on its top border, and also inherits the current info mode of the parts list.

Sorting by type/mass/integrity, accessible via the bottom buttons/keys, can also be reversed by double-clicking/pressing the same button/key.

To tag an inventory item with a text note, use the Special Commands interface (Spacebar) or press Shift-Alt-t followed by its inventory number. This feature is generally used to tag unidentified prototypes and alien artifacts that are known based on other factors or meta knowledge, so that they're not lost in the inventory later. Erase an existing item tag by entering an empty tag for it.

## Calc Window

Among the optional top-center windows is the calculations output, the detail level of which can be set in the options menu. At full detail this will give a complete breakdown of all components factored into your attacks. This feature might get an overhaul to improve readability, but for now it shows a string of abbreviations with the following meanings:

  r range

  s size, target

  sg siege mode

  h heat

  ht heat, target

  u utilities

  ut utilities, target

  m movement

  mt movement, target

  ft flying, target

  im immobile

  ob obstructing robot

  a analysis

  ha hacked targeting

  di disruption (from a hack)

  tc tactical coordination suite

Be aware that internally the game uses decimals to calculate hit chance, so the values shown may be slightly inaccurate due to rounding.

When set to full, the log contents are also mirrored to the left side of the map in order to show more at once. Use /user/advanced.cfg to adjust the length (mapCombatLogMaxLength) and duration (mapCombatLogDuration) of the mirrored messages.

## Info Window

When viewing detailed info for a utility, their effect might be followed by one or more of the following indicators:

* <stacks>: This effect is combined with those from all active utilities with the same effect.
* <no\_stack>: Effects from multiple utilities of this type do not stack, only the best available is applied.
* <half\_stack>: Effects from multiple utilities of this type will stack, but only the best two, where the second best contributes 50% of its effect.
* <parallel\_ok>: Multiple active utilities with the same long-term effect continuously apply that effect at the same time.
* <resume\_ok>: If deactivated then later reactivated, this long-term effect will pick up where it left off.
* <consumed>: Attaching the utility activates it, using it up permanently.

## Map

Various temporary indicators may pop up for robots on the map:

* Numbers that appear next to a robot taking core damage represent its remaining core integrity. This can be reverted to non-Tactical HUD behavior by setting percentCorePopup in /user/advanced.cfg to show percent integrity instead, but in either case the color coding reflects how close they are to core destruction, by percentage. Sometimes more than one number may appear, indicating the same robot's core was hit more than once in rapid succession.

* Combat robots glow red for a moment when they have reached critical heat and are ripe for meltdown by further thermal impacts. The glow only occurs on their turn, however, when they first pass the threshold.

* When first spotted by a hostile robot, a red '!' will flash on them temporarily.

* NPCs with dialogue to speak show a flashing green '?'. The indicator is instead gray, and temporary, if the dialogue is pure lore that you have already read in a previous run. Note that in any of the areas with numerous NPCs to speak to, even among those with green indicators it is possible to distinguish pure lore from other benefits: Those which are roaming around will only provide lore, while lone stationary robots also provide you with something useful.

* Hovering your examine cursor over a known Heavy position for a moment will show their sensor range for reference.

* When using the mouse (i.e. outside keyboard mode), because there is no autotargeting, the background behind your previously attacked target will instead flash red on entering targeting mode, to remind you which one you last attacked.

The origins of sound effects heard but not seen are also temporarily marked on the map, and color-coded by type as follows:

* **Red:** Combat-related
* **Orange:** Door open/close
* **Yellow:** Trap trigger, carrier deployment, or garrison dispatch
* **Blue:** Emergency door open/close or phase wall destroyed
* **Green:** Machine destroyed
* **Brown:** Walls destroyed or cave-in

This feature can be disabled via disableVisibleSfx in /user/advanced.cfg.

Open spaces previously occupied by now-destroyed walls and earth have a slight glow to them. Moving through these unstable areas may cause a cave-in, but only if doing so for extended periods. Tunneling between rooms, or through a wall-earth-wall scenario, will not cave in.

You can export an image of the entire current map via the Special Commands interface (Spacebar), or by using the Shift-Alt-m command. The image is placed in a new /screenshots-maps/ directory and tagged with the map's name, depth, and current map turn number. This process may take a few seconds because it needs to sequentially render numerous frames across the entire map, compiling them together into a single PNG. Images exclude any temporary overlays and animations.

## Targeting Behavior

On entering firing mode via the 'f' command, the cursor will automatically shift to the most recent previous target, be it a robot or empty space, and any previous guided waypoints will be recalled (if still in sight). If there is no previous target, or it is no longer valid, the nearest target is chosen instead. Cycle forward and backward through targets sorted in near to far order via the Tab/Shift-Tab, -/=, and Numpad -/+ command pairs. Only armed hostiles are included in the cycle, or if none are visible it will instead cycle through all non-allied targets.

Examine mode uses the same cycling commands, but always includes all non-allied robots, armed and unarmed. When the intent is to attack an unarmed target while other armed hostiles are visible, examine mode can be used as an alternative to cycle through both types of robots, and from there switch directly to firing mode once the desired target is reached.

Note that item examination also allows the same near-to-far cycling scheme, but requires the Ctrl key (Ctrl-Tab/Ctrl-Shift-Tab and Ctrl-Numpad -/+).

## Part Auto-Replacement

When attaching parts from either the inventory or directly from the ground, if there are no available slots of the corresponding type, the interface will attempt to automatically pick a part to replace instead. Replacement candidates are prioritized in the following order:

* Replace an item of the same name that has a lower integrity. Prioritizes replacement of non-functional parts, if any.

* Replace a different part that has the same type of effect, but that effect is not as powerful, regardless of the two parts' respective integrity. This mostly applies to utilities. If more than one part has the same effect type, it will select the one with the worst value, breaking ties by choosing the one with the lowest integrity.

* Replace a different part of the same subtype (ex: "Energy Cannon") where the old part has a lower integrity than any other of the same subtype with a lesser or equal effective rating. "Effective Rating" equals rating, +1 for prototypes. Ties among potential swap targets are broken by choosing the one with the lowest effective rating. This step is skipped by utilities and any parts with an effect, except treads. Weapon subtypes are compared and replaced only if they inflict the same type of damage.

* Armor without any special effect is replaced by other such armor, comparing purely for current integrity (rating is ignored, except to break ties).

If none of the conditions are met, it will simply report "No free slot." The list of rules is relatively short and basic because anything more results in too many complications and lowers predictability. Auto-replacement needs to err on the side of not swapping parts, so it's kept simple and predictable, based on only a few variables. To avoid smart replacement entirely, simply use the manual swap commands, or free the required slot first.

Note that this feature only works for parts that occupy a single slot.

Auto-replaced items are moved to the inventory, or if the inventory is already full, space will either be freed by comparing the item to all those carried based on the same rules above and drop a worse corresponding item, or where no comparison is possible, the replaced item itself is simply dropped.

In addition to attached part replacement, when attempting to pick up an item and put it in a full inventory, the same rules are applied to auto-replace (drop) an applicable inventory item to make room for a better new one. Where no comparison is possible, the pick up action will simply fail with a message indicating the inventory is full.

## Item Label Filtering

In addition to the several adjustable itemLabel filters available in advanced.cfg, when mass labeling map items you can also limit the labels to those items belonging to a particular category, namely by each slot type (or non-part items).

After opening labels for all items, use Tab (or -/= or KP+/-) to cycle through the different categories, which will update the labels each time. Labeling categories also obeys the advanced.cfg filter restrictions, so in order to see the entirety of a particular category, if some individual items were filtered out by your options, you'd need to mass label again while the category filter is active.

The category filter will automatically reset to the default (all items) after ten seconds without use, or you can reset it manually by pressing Escape.

## Item Search

You can search through all known items on the map via the item search interface, activated via the Special Commands interface (Spacebar), or by Shift-Alt-f ("find"). This opens a new window over the right side of the HUD initially listing all known items, which can be shortened through a wide variety of filters.

Simply typing enters text into the Search bar, where the most basic filter is text which must be found in the item name. For example "Imp" will list all items with the Imp. prefix, but technically also include "Impulse Thruster" (unless a period is added, of course, to search for "Imp."). Combine separate strings (requiring all of them to be present, but not consecutive) by using a comma. For example searching for for "par,char" would return any Particle Chargers. Searches are not case sensitive.

As usual, standard text editing commands are available, such as the Delete key, Arrows to move the cursor, and Ctrl-Backspace to erase the current text. The Enter key also simply resets the current search.

To search based on item properties other than name, special filters are available using the period prefix. For example ".power" will list all items that count as parts equippable to a power slot, or ".treads" will list all tread items. Generally only the first few letters are actually required to specify a particular filter, as indicated in the reference list below, but the full word is fine as well.

Special search filters:

  Slots .po(wer)

               .prop(ulsion)

               .ut(ility)

               .we(apon)

  Type .dat(a)

               .non(part)

               .tra(p)

               .tre(ads)

               .leg(s)

               .whe(els)

               .hov(er)

               .fli(ght)

               .dev(ice)

               .sto(rage)

               .proc(essor)

               .hac(kware)

               .arm(or)

               .ali(en)

               .gun

               .can(non)

               .lau(ncher)

               .spe(cial)

               .mel(ee)

  Damage Type .ki

               .th

               .ex

               .em

               .en

               .ph

               .imp(act)

               .sla(shing)

               .pie(rcing)

               (for launchers, damage type matches the explosion

                rather than that of the projectile, if applicable)

  Integrity .X%, where X is a minimum percentage of remaining

                integrity from 1~100

  Rating .X, where X is the minimum rating

  Other .uni(que) retains only items which cannot spawn as

                random drops

Multiple special filters can be combined with one another, as well as used alongside name filters if desired, again using a comma to delineate separate filters. For example "rifle,.th" would list any items with "rifle" in the name which are also capable of dealing thermal damage. Or ".hov,5,70%" would list all hover propulsion of at least rating 5 with a minimum of 70% current integrity. Notice that it's not necessary to repeat the '.' filter prefix for subsequent filters.

Left-click on a listed item (or use Ctrl-a~z) to center the map view on its location. While the map view is currently centered on a listed item, that item is marked with an asterisk in the list, and the shortest known path to reach it is highlighted on the map. Due to command conflicts not all of the various methods of panning the map are currently available while the search function is active, but mouse users can still hold Shift and move the cursor, and keyboard players can use mapshift mode as normal.

Double-clicking on an item in the list (or repeating its Ctrl command) will automatically move to that item. (You can adjust the detection delay via itemSearchPathfindingDelay in advanced.cfg.) Depending on the current state of the map and its occupants, however, pathfinding may be interrupted along the way, especially for distant items.

Items are ordered by their current direct distance from your position, near to far, not taking into account walls or available paths. Those items currently within Cogmind's FOV display their distance in blue, whereas those outside FOV display it in a shade of gray depending on distance. To the right of each item is its last known integrity, if available.

## Map Comments

Comments can be added directly to any position on the map by activating the dedicated mode via the Special Commands interface (Spacebar) or Shift-Alt-c. Keyboard mode can also directly add/remove comments while in look/targeting mode using c/r. Cycle through existing comments using Tab (+Shift reverses), and edit an existing comment by adding a comment at the same location. Even while outside comment mode, map positions containing comments will be highlighted intermittently as a reminder (this functionality can be adjusted via mapCommentHighlightInterval), and hovering the cursor over an existing comment's position will display that individual comment (if another labelable object currently occupies the comment's position, hovering always shows that by default and toggling all comments would be required to see such a comment).

## Audio Log

Off by default but available in the Audio section of the options menu, activating this log lists sound effects at the top-right corner of the map view. Ambient sounds are always listed, while non-ambient sounds are only shown when the origin is outside Cogmind's FOV. Ambient sounds are listed first, followed by a separator, then any non-ambient sound effects.

The audio log is meant to be an accessibility feature akin to closed captions, allowing anyone who keeps their volume low or muted to be able to retain access to important audio knowledge (alongside the visible SFX feature). A given sound's volume must be at least 10% to be included in the log, since anything lower is not generally audible anyway, and it keeps the log cleaner and more focused.

In choosing what sounds to report in the audio log, in most cases it was geared towards information that is strategically helpful to know when out of view, rather than providing an exhaustive list. That said, almost no door actions are reflected, since even if out of view they are clearly displayed via the visible SFX system, and their frequency is often rather high. An exception was made for phase walls, since those are strategically important but do not reveal their precise location as a visible SFX source. Other sounds that have clear visual alternatives are also generally excluded to avoid adding unnecessary "noise" in the audio log, for example dispatch alerts, and the EMP charging and discharging in Waste (which come with their own graphics and messages).

Note that weapon sounds do not necessarily list the specific weapon name, but instead the base name for the sound. For example there are a number of railgun variants that use the same sound, and the audio log will not differentiate between them, simply listing each as a "Railgun," but any weapons with unique sounds are indicated by their specific name where applicable.

There are several advanced.cfg options for customizing the audio log behavior. Aside from those, be aware that using the noAudio system.cfg setting, or muting the audio (for example via F11), will also automatically prevent the audio log from displaying any sounds. You can, however, simultaneously achieve a muting effect and retain audio log information by setting the Master Volume in the options to 0.

## Lore Collection

In the lore collection interface, lore discovered via terminals is ordered alphabetically by topic, where the category simply refers to its origin. As a shortcut to finding a particular topic, type the first letter of its name to scroll to that section. Below terminal records is dialogue lore, organized by source. Their numbers have no significance and exist simply to serve as a distinguishing identifier for reference purposes. The last group are all robot analyses.

To the bottom right of the lore window is an export feature, convenient for those who wish to read their lore outside the game, share it with others, etc. Left-click a button or hit its corresponding letter key (shift for upper case) to immediately export your current lore to that format. The results are output to your /user/ directory. For export purposes, terminal records are reordered by category, and alphabetized within their category. As with the in-game UI, placeholders are shown for undiscovered lore in the TXT and HTML versions, though the CSV version solely includes your discovered lore. The HTML version is both colored and includes a table of contents with links to each section.

When manually updating to a newer version of Cogmind, records of previously collected lore are only retained across versions if you migrate your old /user/ data, specifically the game.bin file. (Unless using Steam autoupdates or a -nonportable/custom file path, in which case this is handled automatically.)

## Item Gallery

All items attached across all runs are tallied in the gallery, which leaves empty spaces for those which have yet to be found. The parse\_system robot hack may also be used on other robots to add their items to the gallery, especially useful when working with allies equipped with unique parts.

To find a particular item more quickly, type the first letter of its name to scroll to that section. Note that this search method ignores name prefixes, e.g. if looking for a "Exp. Transmission Jammer" you should type a "t"; all of the jammers will be next to one another within the "t" section.

To the bottom right of the gallery window is an export feature, convenient for those who wish to review item stats outside the game or theorize about potential builds. Left-click a button or hit its corresponding letter key (shift for upper case) to immediately export your current item stat collection to that format. The results are output to your /user/ directory. Undiscovered items are not included in the export, nor are there placeholders for them. The CSV version is best for number crunching in spreadsheets, the TXT version lists items with only those stats which apply to them, and the HTML verson is both colored and includes a table of contents with links to each slot type.

When manually updating to a newer version of Cogmind, records of previously attached items are only retained across versions if you migrate your old /user/ data, specifically the game.bin file. (Unless using Steam autoupdates or a -nonportable/custom file path, in which case this is handled automatically.)

There is currently only one gallery item not available in the base game: If attempting to fill your gallery, you'll need to activate the Winter2019/RPGLIKE special mode and play it to obtain the Protomatter entry.

## Achievements

Achievements earned throughout all runs can be browsed, filtered, and sorted in this interface.

All achievement descriptions refer to requirements that must be completed within a single run, except where otherwise noted or obvious. Some descriptions are hidden until earned, in order to avoid plot spoilers, or in a few cases to avoid revealing achievements that are fun to earn at random but otherwise boring to aim for. If a Steam player, it is strongly suggested to avoid third-party achievement managers that reveal all hidden achievements because most are spoilers. There is no need to expose and aim for any hidden achievement, as they are things you'll uncover naturally through regular play.

Achievement pop-up notifications are enabled by default, but can somewhat ruin the atmosphere at various points, especially where plot is concerned, so if you like they can be disabled in advanced.cfg by setting achievementPopupDuration to 0. Similarly, setting showAchievementMessages to 0 also prevents those messages from showing up in the log.

If playing on Steam there is bidirectional syncing of your achievements between each system, so if you reinstall Cogmind elsewhere it'll also download all previous achievements and include them in your local meta data (though in that case you'll have lost some info about your achievements like which game and highest difficulty level they were earned in, because Cogmind stores more achievement-related data than Steam's database). Playing the non-Steam version then later migrating over to Steam will also upload all previously earned achievements that are not yet earned on Steam.

All achievements are equally accessible regardless of difficulty setting. If for some reason you want to remove all your achievements, for example having earned many on lower difficulties and want to try again from scratch on a higher setting, add "resetAchievements=1" to advanced.cfg. This change cannot be reversed so you'd better be sure! The resetAchievements option is only valid for non-Steam players due to automated syncing while connected to Steam.

By default achievements can be earned even in challenge modes and special modes, but some are much easier in these modes compared to the regular game, even unintentionally, so a portion of players prefer to block them except when playing normally. You can do this by toggling "Achievements Anywhere" in the options menu. This setting does not affect achievements that can only be earned during challenge modes.

To the bottom right of the achievements window is an export feature, convenient for those who wish to review their achievements outside the game or maybe process them via other means. Left-click a button or hit its corresponding letter key (shift for upper case) to immediately export your current achievement list to that format. The results are output to your /user/ directory. Note that it only exports the currently listed achievements, so your filters and sorting do affect the results.

When manually updating to a newer version of Cogmind, achievement records are only retained across versions if you migrate your old /user/ data, specifically the game.bin file. (Unless using Steam autoupdates or a -nonportable/custom file path, in which case this is handled automatically.)

## Alt-Tab Oddity

Alt-Tabbing between programs in Windows is known to cause issues with software that requires use of the Alt key. The software doesn't always know the correct state of the Alt key after performing such a command, and therefore may believe the Alt key is down when it really isn't. This can be extra noticeable in Cogmind's keyboard mode, which makes heavy use of the Alt key, by necessity. If you frequently Alt-Tab between programs, on returning to Cogmind you might want to tap the Alt key a couple times to make sure its state has been reset, otherwise you may accidentally enter an unintended command. It doesn't happen every time, but it's worth knowing that this is a possibility which can lead to otherwise confusing results.

## Custom Cursors

By default Cogmind uses a 16px hardware cursor, but that may not be suitable at extremely high resolutions depending on OS cursor scaling settings. If the cursor appears too small (or for some other reason you'd prefer a different style), Cogmind includes a way to display a much more flexible software cursor.

Simply put a file named "cursor.png" in the /rex/ directory and it will be detected automatically on startup. Any image dimensions are accepted, and any pixels that use the hot pink color (255,0,255) will be transparent (see samples provided in that directory). The top-left corner (position 0,0) is always considered the "hotspot," or where the click is actually detected.

## Advanced Options

There are a number of special options allowing finer control of certain features, or toggling very specific features some players might find useful. However, these options are only accessible via the /user/advanced.cfg file. As in other config files, binary on/off values are represented as 1/0. Make sure to only edit values while the game is not running.

* exposeKeybinds: Once active, this gives access to the keyboard layout and command rebinding system (both external). Read more about this experimental system in the dedicated thread found in the forums General Discussion board: http://www.gridsagegames.com/forums/index.php?topic=823.0

* blockVi: Blocks vi-key input, to prevent unintended movement from accidental key presses for those who don't use vi-keys anyway. Note that if this option is set, rebinding vi-keys to something else will not be possible!

* showClock: Adds a real-time clock to the top-right HUD area.

* showRunTimer: Adds a real-time run timer to the top-right HUD area, displaying the current run time in hours:minutes. Excludes idle time, which doesn't count towards score sheet's run length tally.

* renderFilter/renderFilterMap: See the later section dedicated to Color Customization.

* challenge???: Use these to activate individual challenge modes. See the manual section on Alternative Rules for a description of each.

* quickStart: When starting a new run, this automatically collects all parts and matter in the Scrapyard and puts you next to the exit. Does not work in the tutorial map or while any challenge modes active.

* noSelfDestruct: Disables the self-destruct option in the game menu, as well as the corresponding hotkeys.

* noManualSaving: Disables the buttons and commands for accessing the quicksave/load feature in Adventurer/Explorer modes.

* autosaveInterval: Autosaves your progress at most every X minutes, but only once idle for at least three seconds. If 0, will only autosave once at the beginning of each map.

* autosaveCount: Maximum number of previous autosaves to retain for the current run. In the event of a serious error with your save file, you can recover your progress by deleting your current save file (user/save\_v[number].sav) and restoring one of the previous states named by order number and time stamp, where the highest number is the most recent. Simply rename it to match the deleted save file (save\_v[number].sav). If 0 will never make backup saves.

* scoresheetJson: Output local copy of scoresheets in JSON format in addition to the normal text version.

* statDumpJson: Output local copy of stat dumps in JSON format in addition to the normal text version.

* ratingBasedItemSpriteColors: Color items visible on the map by their rating, rather than type. Toggling this off instead uses the ASCII coloring scheme for items.

* itemLabelIntegrityPercentCutoff: When mass labeling map items, only label those with at least this integrity percentage (0 to label always label items regardless of integrity).

* itemLabelRelativeRatingCutoff: When mass labeling map items, skip those without an effective rating of at least the current map level minus this value. "Effective Rating" equals rating, +1 for prototypes. "Map level" assumes -10/Materials is level 1, and increases with each change in depth. For example, a value of 2 will only label items with a rating that at least matches two floors down, or better (e.g. at -5/Factory it will not label items with ratings from below -7/Factory). This setting does not affect non-attachable items or Relay Couplers, which are always labeled. And note that item labels ignore all itemLabel filters if mass labeling within 5 seconds of the previous mass labeling.

* itemLabelIgnoreFaulty: Don't label any faulty items when mass labeling map items.

* itemLabelIgnoreBroken: Don't label any broken items when mass labeling map items.

* mapLabelsShowIntegrity: Item and robot popup labels also include the object's remaining integrity, if not currently at max.

* soundIgnoresDistance: Play all audible sound effects at the same volume, regardless of distance. (Setting has no effect on ambient audio from props, for which volume is always diffusion-based.)

* minimumPropVolume: A value from 0~100, setting the minimum volume at which to play ambient machine audio, regardless of distance. Set to 0 for default falloff behavior. Note that changes due to values greater than 0 are not reflected in the audio log, which still accurately reports volume levels relative to the actual distance, falloff, and other factors.

* examineEntersKeyboardMode: If not already in keyboard mode, entering examine (look) mode via keyboard automatically switches to keyboard mode.

* autoExitKeyboardMode: If examine mode was activated via the examineEntersKeyboardMode option, exiting examine mode will automatically toggle keyboard mode off again.

* noMouseWheelWait: Turns off the mouse wheel scroll-to-wait behavior (can be more appropriate for keyboard players with certain types of laptop trackpads that are easily touched unintentionally).

* autoWait: When attempting to move but lack the energy to do so, automatically wait one turn.

* slowMoveSpeed: Speed (in time units) slower than which movement will be temporarily blocked for 0.5 seconds while a warning message is displayed.

* extremeSlowMoveSpeed: Speed (in time units) slower than which movement will be temporarily blocked for 2.0 seconds while a warning message is displayed. Value should be set greater than slowMoveSpeed.

* movementDelayInterval: Delay (in milliseconds) for each space moved when keyboard running or mouse pathfinding. Minimum is 10ms, and note that the default 100ms is fairly appropriate to be both quick while still allowing time to react to the appearance of something of interest that doesn't normally automatically block movement.

* invertMapPan: Invert x- and y-axis shift directions when panning map (only affects mouse-based panning).

* disableShiftCursorMapPan: Disable the Shift-Move Cursor map panning feature.

* viewFollowsCogmind: Always centers map view on Cogmind with every move.

* centerCursorOnMove: Always centers cursor on Cogmind while moving to properly update the Scan window with the item at the current location (only matters in mouse mode).

* disableMouseMovement: Clicks on the map don't initiate moves or pathfinding in mouse mode.

* warnOnMoveOutsideMapView: Moving while positioned outside map view requires confirmation.

* rmbWallsToTarget: Mouse users can right-click on walls to enter targeting mode.

* cursorVisibleDuringAttack: Overrides cursor hiding behavior during Cogmind attacks, keeping it visible.

* cursorAlwaysHiddenWhenInputBlocked: Hide cursor any time input is blocked, such as during any attacks or map event animations. Overrides cursorVisibleDuringAttack setting.

* noRewireRepeatProtection: Disable protection against "over-moving" caused by holding a move key to repeatedly rewire an adjacent robot or trap.

* autoOpenNewIntel: Automatically switch to Intel window in response to gaining new intel.

* warningGlow: Animate UI borders based on current relevant status, where applicable.

* percentCorePopup: In Tactical HUD mode, force core integrity popups that appear next to robots taking damage to display as a percentage rather than actual integrity.

* partDamageIndicatorsRetained: In Tactical HUD mode, damaged parts retain a box around their integrity indicator until your next action.

* precisePartGraphs: Part list data visualizations also show precise numbers in most modes (Tactical HUD only).

* noPreciseCoverage: Part list coverage visualization doesn't show precise values, even with Tactical HUD active and regardless of precisePartGraphs setting.

* partSortIgnoresWeapons: Ignore all weapon slots for part list sorting purposes, allowing complete manual control of volley firing order.

* partSortSeparatesDestroyOnRemoval: Part list sorting moves all nonremovable and destroy-on-removal parts such as Processors to the top of their slot category, maintaining their relative order.

* matchSortInventory: Opening any item's info automatically orders the inventory to list all same-type items at the top.

* dragDropDelay: Delay (in milliseconds) after left-clicking on an attached part or inventory item before the drag-drop UI kicks in. Note that regardless of delay settings, drag-drop mode is also immediately activated as soon the cursor moves out of the item's button area while LMB depressed.

* disableDragDropAutoEquip: Drag-dropping an inventory part to a non-slot location in parts list will not attempt to find an auto-equip solution anyway.

* showPartRange: Circles the maximum range of weapons (and some utilities) on the map while the cursor hovers over that item in the parts list.

* animateVolleyRange: Animate the volley range visualization when activated (otherwise the indicator appears instantly).

* cursorJumpDistance: Distance in cells for commands such as jump shifting the examine or targeting cursor in keyboard mode.

* forceAsciiMachines: Always display machines using the original CP437 line art, even in sprite mode.

* markUndiscoveredLore: Put a '!' marker before undiscovered lore listed on a terminal.

* hudEnergyPerMoveTurnwise: Replace per-move HUD net energy display with turnwise value including movement.

* hudHeatPerMoveTurnwise: Replace per-move HUD net heat display with turnwise value including movement.

* autoDeactivateSiegeModeOnMove: Attempting to move while in siege mode, or transitioning to it, automatically begins transitioning out of the mode instead of warning.

* autoActivateTreadsOnAttack: Attacking automatically activates any attached treads if possible. If not originally using treads to move, then the next attempt to move will also automatically restore the original movement mode.

* autoReadyLauncher: Activating a launcher automatically deactivates all other non-launcher weapons.

* autoUnreadyLauncher: Detaching or swapping out a launcher automatically activates all non-launcher projectile weapons, excluding datajacks, guided weapons, and autonomous weapons.

* showMapBorders: Reveals all edges of the current map. Although this same information can be learned indirectly by attempting to pan around or use certain other UI features, and therefore it should be on by default, it's a deactivated advanced option because on a few maps using this will result in spoilers. It is suggested to instead consider leaving this off until you have already fully explored the world and are familiar with its secrets.

* highlightCaveinAreas: Fully highlights any visible cave-in areas rather than the low-distraction default, equivalent to holding Ctrl-Alt. Not compatible with LOW\_CONTRAST render filters.

* disableTerrainScanAnimation: Players distracted by the flashing of cells revealed or rechecked by an active Terrain Scanner can disable that animation.

* mapCommentHighlightInterval: Interval (in millisecondsd) between highlighting the positions of any manual map comments. Setting to 0 disables this feature.

* modifiedTncPopupDuration: Duration (in milliseconds) for which data windows made available by the Modified TNC will remain visible.

* itemSearchPathfindingDelay: The maximum delay (in milliseconds) between commands in order to detect a double-click (or repeated key command) for the purpose of pathfinding to an item search target. Setting to 0 disables this feature.

* activeSensorPathNewDuration: Duration (in milliseconds) over which to fade activity cells newly discovered by an Active Sensor Suite.

* activeSensorPathsDuration: Duration (in milliseconds) for which Active Sensor Suite activity paths remain at maximum brightness. This time is automatically tripled while panning the map.

* alphabetizeCouplerHacks: Sorts coupler-based robot hacks alphabetically rather than by cost.

* messageLogLimit: Maximum number of past messages stored for the message log. Must range from 500~100,000, and note that high values allows very long runs to create large slow-loading save files.

* combatLogLimit: Maximum number of past message stored for the combat log. Must range from 100~5,000.

* noFluffLogMessages: Don't show a handful of potentially repetitive log messages meant mostly for atmospheric purposes.

* machineAnalysisLogsNoninteractive: Machine Analyzers will also report non-interactive machine discoveries to the message log.

* disableMessageLogTurnNumbers/disableCombatLogTurnNumbers: Don't prefix log lines with the number of the turn on which that event occurred.

* showBuildType: Cogmind will intermittently analyze your current build and assign a name to it, displaying it above the parts list. Updating is lagged to make it more reliable.

* showAchievementMessages: Message log achievement messages can be turned off to retain the original more immersive experience.

* achievementPopupDuration: Duration (in milliseconds) for which each achievement popup will remain visible over the map. Setting to 0 prevents the popups from showing at all (this also affects whether any show on the game over screen).

* mapCombatLogMaxLength: Determines the maximum number of calculations log lines displayed at once on the map (requires full combat log detail setting in options). The value must be between 10 and 48 (inclusive), though setting to 0 deactivates on-map log mirroring completely.

* mapCombatLogDuration: Duration (in milliseconds) before a given line of on-map combat log data will disappear.

* mapAlertDuration: Duration (in milliseconds) for which a given ALERT log message mirrored to the map will remain visible.

* pauseWaitDurationForEnemies: Number of milliseconds for which to block all wait commands after seeing a new enemy (or only non-disarmed threats if "Stop on Threats Only" option is on). Enemies that move in and out of view will not trigger the block until they haven't been seen for at least 10 turns.

* pauseMoveDurationActiveSensor: Number of milliseconds for which to block movement on coming into range of an enemy's Active Sensor Suite, or 0 to deactivate this feature.

* activeSensorWarningBufferRange: Distance outside normal Active Sensor Suite detection range beyond which to reset the warning animation and movement block for a given hostile active sensor user, allowing it to take effect on approaching that enemy again.

* flashProjectileVictims: Robots hit by projectiles flash briefly.

* cogmindPartLossMapIndicator: Choose a style for how to represent Cogmind's own part loss on the map. Defaults to NONE, but other valid options are "COLOR" (flashes red), "X" (flashes a red X), and "NAME" (displays the name of the lost part).

* alwaysWarnAboutResearchers: Warn about Researchers that will witness an attack even if you've already been scanned.

* remindCorruptedInventoryOnExit: Warn when about to exit the current map and a corruption-clearing evolution will/might occur but inventory currently contains unattached corrupted parts.

* ignoreAscendConfirmation: No confirmation required to exit the current map under normal conditions, but does not block other types of warnings like leaving allies behind.

* ignoreNeutralMeleeConfirmation: No confirmation required for normal movement-based melee attacks against neutral or inactive bots (no affect on force-melee behavior).

* disableSecondPropulsionAutoactivate: Attaching a second (or third, etc.) form of propulsion when another is already active will not autoactive the new form.

* disableVisibleSfx: Deactivate visible sound effect animations outside FOV.

* disableInfoWindowCloseAnimation: Close robot/item info windows instantly instead of animating their fade.

* disablePathfindingRobotAvoidance: Mouse pathfinding movement normally avoids blocking non-hostile robots, but disabling it instead stops when blocking, allowing manual redirection rather than letting the game choose the fastest route.

* disableManualHackingHelp: Deactivate hacking autocompletion and all automated manual hacking codes assistance.

* disableAutoBackups: Do not make daily backups of the /user/ directory contents.

* disableEscMenuAccessMouse: In mouse mode, prevents the Escape key from opening the game menu (F1).

* disableEscMenuAccessKeyboard: In keyboard mode, prevents the Escape key from opening the game menu (F1).

* disableSteamRichPresence: By default, if you're playing via Steam then friends will see your current build type, location, and status in game. Setting this to 1 will disable that feature.

* muteAudioOnFocusLoss: Automatically mute all game audio whenever app focus is lost, for example due to Alt-Tabbing or clicking on a window other than Cogmind. Audio will be restored on returning to the game.

* muteTextSfx: Silence the standard text/printing sound effect.

* muteGlobalAlertSfx: Silence alert sound effects played for any non-plot-related global alerts with on-map indicators, such as extermination dispatches, garrison responses, and assaults.

* audioLogIncludesFovSounds: Include all non-ambient sound effects even when the origin is currently in view. Note that even when included, the audio log still excludes non-ambient sounds emitted from Cogmind's position, as these are generally Cogmind's own actions and attacks.

* audioLogIncludesFluffMachines: Include even ambient machine sound effects for those that are mostly fluff, as in they are non-explosive and serve no other special function.

* audioLogMaxLength: Determines the maximum number of sound effects listed at once, where if the list is full when a new sound needs to be added, the oldest non-ambient sound will be removed to make room. The value must be between 5 and 48 (inclusive).

* audioLogDuration: Duration (in milliseconds) before a given non-ambient sound effect entry will disappear from the audio log.

* resetAchievements: This value is not present in the file, but may be added manually and set to 1 to erase all previous achievement records. This effect is permanent and you'll have to start from scratch again! Only applies to non-Steam players, since the Steam version automatically syncs achievements again once logged in.

## System Options

system.cfg also contains a few settings which can be used to manually adjust system-related features:

* mapWidth/mapHeight: These change the dimensions of the map view, in spaces, which in turn affects the size of the entire UI and game window. While the initial values are automatically calculated to give you the maximum font size for your current display, you technically have the option increase the dimensions and see more of the map at once, reducing your maximum available font size as a result. Changing the mapWidth is also a way to convert the game to a 4:3 window on a 16:9 display, in order to have other apps visible beside Cogmind. (Cogmind was designed to work with 4:3, so there are no compromises necessary for that change.)

* fpsCap: Cap your FPS to the specified value. 0 can be used to completely uncap it.

* showFps: Displays current FPS in program title and on in-game HUD (can toggle via Ctrl-F3).

* noAudio: Prevents loading of any sound effects on startup. This may reduce startup time, though also means sound effects cannot play regardless of mute or volume settings. It also prevents the audio log from being displayed.

* unlimitedFontSize: Experimental feature for special monitor setups only! Cogmind can only start up on a system's primary monitor, thus in cases where a secondary monitor has a resolution suitable for a larger font than the primary one, the game cannot take advantage of that in cases where players want to use their secondary monitor. If you have such a setup, set this value to 1 and you will have access to all font sizes regardless of resolution. Then you can set a larger font and once Cogmind is open on the primary monitor, use Shift-WinKey-Left/Right to swap it to the secondary one. If your monitors do not share the same aspect ratio, you may also need to adjust mapWidth/mapHeight accordingly to fit the game on the screen. Unfortunately the library on which Cogmind is built cannot support "fullscreen mode" using a resolution larger than the primary monitor, so this feature has a number of limitations: Only windowed mode works, and you will be unable to select the desired font within the game itself. Instead, set the font size and name in the system.cfg fontSet entry. Not ideal but it might satisfy some player's needs so I've exposed this former debug setting as a feature.

## File Options

Normally all files are saved within the Cogmind directory, and you can even play it off a USB stick, but some players may want the option to store their saves and other files elsewhere.

You can specify a save path by adding "-customFilePath:PATH" to the COGMIND.exe command line parameters, where PATH is the absolute or relative file path under which to store all settings, scoresheets, screenshots, and the backup archives. Alternatively, the "-nonportable" parameter can be used to automatically assign the path based on the Windows default: "C:\Users\[USER]\.Grid Sage Games\Cogmind"

Note that custom file paths are not compatible with Steam Cloud, and like other game-related paths cannot include non-ASCII characters.

## Color Customization

Custom UI and map color schemes are currently controlled via two advanced.cfg settings: renderFilter and renderFilterMap. These can be used to specify one or more filters that adjust the appearance of the map and/or UI as a whole. For example, renderFilter=BRIGHTNESS(80) will set the brightness of the entire game to 80% of what it is by default. Or renderFilterMap=BRIGHTNESS(80) will only darken the map.

Each setting supports mixing as many filters as you want, though remember that each additional filter requires more processing time per frame. Combine filters by separating them with '|'. E.g., renderFilter=BRIGHTNESS(90)|SATURATION(90) lowers both the brightness and saturation by 10%. If there are multiple filters they are applied in the order listed, and all map filters are applied before any program-wide filters.

The available filters are as follows:

* NONE: The default appearance.

* BRIGHTNESS(X): Set the color brightness to X, usually a value from 1~100. Perceived color brightness is not linear, but adding in more complex calculations to compensate would slow it down so this is a direct percentage modifier. As a reference, setting to something like 70-80 is darker but maybe not too dark, depending on your monitor. Values above 100 will increase brightness, for example 150 makes everything 50% brighter, 200 doubles brightness, etc.

* SATURATION(X): Set the color saturation to X, usually a value from 0~100. Most colors in Cogmind are fully saturated, and this value can be used to take the edge off. As a reference, try something like 66.

* SWAP: Swaps the foreground and background colors. While the UI generally looks terrible in this state, it may be your thing when applied to the map, or at least fun to toy around with.

* SHIFT\_HUE(X): Shift/rotate the hue of the entire palette by X, a value from 1~360. Blacks stay black, grays stay gray, but all other colors will become something else. For example, a value of 180 will create a mostly pink UI, 90 is blue, and 270 is orange. Negative values can be used, and will automatically be converted to the proper value within the range.

* SHIFT\_RGB(X): Shifts all RGB color values by X, a number from 1~255. The shifting will ignore any blacks, but this filter is terrible for pretty much anything except creating... color chaos. Negative values can be used, and will automatically be converted to the proper value within the range.

* INVERT: Also known as the negative effect, this inverts all foreground and background RGB values. This mode results in a light-themed interface, and can look decent when combined with other modes such as low-contrast (resulting in a brighter pastel effect) and possibly map swapping. However, inversion works much better in ASCII mode instead of with tiles due to the shading method used in the tiles art.

The following additional filters are only applicable to renderFilter, not the map-only version:

* AUTUMN: A custom low-contrast mode that converts black backgrounds to dark maroon, and raises the brightness of all darker foreground colors while also slightly darkening the brightest foreground colors to take their edge off. In this mode some of the ASCII item art may look a little odd (and not as good), as will parts of the intro and ending animations, but this only affects the minority of areas that use their own background colors. Further time might be invested in overcoming some of the remaining aesthetic challenges of implementing low-contrast modes if it seems like they're being used.

* SLEEPY: A custom low-contrast mode like AUTUMN but with a comfortable blueish background.

* LOW\_CONTRAST(R,G,B): Aside from the AUTUMN and SLEEPY presets, you can also use this filter to create your own low-contrast mode by specifying the RGB values of the desired background color. It should be something relatively dark.

Note that any filter changes affecting color that are made while a run is in progress will in some cases cause areas outside FOV to appear strangely until leaving for a new map.

## Fonts

Available font sets are controlled via data/fonts/\_config.xt. Currently all sets share the same map ASCII style, but for extra readability in ASCII mode some fonts can be converted from the default to another style by opening that file and setting their "Available" column value to 1.

```
 "T+" (sizes 12/14/16/18) is Terminus, a thin and readable sans serif font
 "VGA+" (size 14 only) is IBM VGA, one of the classic DOS fonts
 "V+" (size 16 only) is Verite, a fat mostly-serifed font
 "K+" (size 16 only) is Kaypro, a thin-stroked stylized techno font

```

Although these settings only affect those who use the indicated font sizes (fullscreen or windowed), more map ASCII alternatives can be added upon request.

Additional information will be added to this section later once a tileset modding guide is available.