Console Commands

*This entry includes information regarding both Pathologic (2005) and Pathologic 2 (2019).*

**Warning: Use console commands at your own risk. Some commands might cause crashes and game breaking errors.**

## Pathologic

These commands apply to both *Pathologic* and *Pathologic Classic HD.*

### Enabling the console

Open the game directory and go to the `data` folder.

For **Steam**: `(Disk):\steam\steamapps\common\Pathologic Classic HD\data`
For **GOG**: `(Disk):\GOG\Pathologic Classic HD\data`

In the `data` folder open `config.ini`. Find `[General]`, type `ShowConsoleLog = 1
EnableConsole = 1` on the next line, save and exit.

* Note: `ShowConsoleLog` does not need to be enabled to use console commands, but it is recommended.

To turn on the console launch the game and press ```.

### Commands

An "actor" is an entity (NPC or object) in *Pathologic*. Every actor has a numerical ID generated when that actor is spawned, and most actors have a name that refers to their geometry file. IDs are never reused. (A plague cloud is an example of an actor which does not have a unique name.)

All commands are case-sensitive.

### Graphics commands

These commands change various lighting and color settings, and have no direct impact on gameplay. Further documentation is needed for this category.

 `sepia [intensity: 0.0 - 1.0] [hue: 0.0 - 1.0]`  | Applies a solid color filter to the viewport. A hue of 0.1 = magenta, 0.3 = purple, etc. looping to red at 1.0.Example: `sepia 0.5 0.95` - a "sepia" view

### Changing the player stats

There are 6 bars you need to take control of during the game. You can change all of them according to your wishes.
Use this command: `propl **[id\_player] [stat name] [value]**`
Example: `propl 6986 health 1`

You can also use that to change how much money you have.
Example: `propl 6986 money 5000` will set your money value to 5000.

* Note: `propl` only works with integers. For decimals, use `propf`. Example: `propf 6986 health 0.5` will make the health bar half-full.

Stats names and their values
 `reputation` | 0 - the worst reputation; 1 - the best reputation

The player can also manage how much damage they receive and their risk of infection. This is normally done so through equipping clothing items.

### Hotkeys

It is possible to bind console commands to set keys using `bindcmd [key] [command]`.

For example, if one wanted to bind the command `propl health 1` to the F1 key, they would use `bindcmd F1 propl health 1`.

The `bindcmd` settings are stored within the game's setting files, so they do not need to be re-entered each time the game is opened. These settings will remain until the player wishes to manually remove them.

### Items

These are case-sensitive. Attempting to add items with incorrect upper- or lower-case letters will give the error "Unknown item". It is highly recommended to spawn items at a maximum stack of 50.

## Pathologic 2

The console can be accessed by pressing Ctrl+Shift+F4 at the same time. All commands are case-sensitive.

### Items

Items can be added into the player's inventory by typing in the command: `add_storable -storable:[itemid]`

#### Cut Items

 Flask\_Empty\_Entity
 Pills\_Intro\_Entity

### Inspector

Due to the way the Unity engine works, everything done within the Inspector is updated in real time. Thus, it is highly recommended that when working with the Inspector - particularly player stats - to do so while paused in a menu.

#### Camera

A freely movable camera can be accessed via the console command `camera fly`, in which the camera has no collision with world objects. However, the Haruspex is *not* associated with this camera's position - objects cannot be interacted with while "fly mode" is active, new world objects will not be loaded, and the Haruspex can still be attacked by enemies near him (potentially dying if this happens). The player will return to their original position when fly mode is exited, via the command `camera FirstPerson_Controlling`. Camera modes are case-sensitive.

#### Player Stats

All player stats can be manipulated by expanding the following path in the inspector:

* `UpdateService (UpdateService)`
	+ `PlayerUpdater (DelayUpdater)`
		- `Updatable [9]`
			* `Element # (PlayerControllerComponent : Simulation/Objects/X)`

The '#' is an arbitrary number, usually 0, that has the potential to change depending on what's in the current scene when loaded. The information in `(Simulation/Objects/X)` is what's important. 'X' is the player object in a given area, as the game treats areas such as the town, dreams, and the Abbatoir as different locations with different rules.

The relevant locations for the player are:

* `Player`, the main town.
* `PlayerAbbatoir`, the Abbatoir.

Once the appropriate element is expanded, the respective player stats can be adjusted as follows.

##### Immortality

Expand the `IsImmortal (ParameterValue<bool>)` and then expand the `Parameter (BoolParameter : Immortal | False)`. Click the box labelled `Value`, which should then change `Immortal | False` to `Immortal | True`.
While immortal, the player will not take health damage and the stamina bar will not drain, nor will the thirst meter increase. The hunger meter and exhaustion meter will still increase and can cause health damage and the immunity meter can still decrease. However, this cannot kill the player.
* There is a chance that the numbers of your Elements will change during scene changes and in-game events, thus removing `Immortal | True` from `Simulation/Objects/Player`.

##### Health

Expand the `Health (ParameterValue<float>)` and then expand the `Parameter (Parameter : Health | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` with any number between 0 and 1, with 1 setting your health to maximum, and 0 setting your health to minimum, killing you.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Hunger

Expand the `Hunger (ParameterValue<float>)` and then expand the `Parameter (Parameter : Hunger | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` with any number between 0 and 1, with 1 setting your hunger to maximum, so you begin to lose health, and 0 setting your hunger to minimum.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Fatigue

Expand the `Fatigue (ParameterValue<float>)` and then expand the `Parameter (Parameter : Fatigue | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` with any number between 0 and 1, with 1 setting your exhaustion to maximum, so you begin to lose health, and 0 setting your exhaustion to minimum.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Thirst

Expand the `Thirst (ParameterValue<float>)` and then expand the `Parameter (Thirst : Fatigue | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` with any number between 0 and 1, with 1 setting your thirst to maximum and 0 setting your thirst to minimum.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Immunity

Expand the `Immunity (ParameterValue<float>)` and then expand the `Parameter (Immunity : Fatigue | #)`, with '#' being a number between 0 and 2. You can then edit the box labelled `Value` with any number between 0 and 2, with 2 setting your immunity to maximum and 0 setting your immunity to minimum.
##### PreInfection

Expand the `PreInfection (ParameterValue<float>)` and then expand the `Parameter (PreInfection : Fatigue | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` with any number between 0 and 1, with 1 setting your pre-infection to maximum, meaning that you will then become infected, and 0 setting your pre-infection to minimum.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Infection

Expand the `Infection (ParameterValue<float>)` and then expand the `Parameter (Infection : Fatigue | #)`, with '#' being a number between 0 and 1. You can then edit the box labelled `Value` any number between 0 and 1, with 1 setting your infection to maximum and 0 setting your infection to minimum.
* Although it is possible to use decimals, due to the nature of the game's engine, it is difficult to do so and will often result in the value being automatically corrected to either 0 or 1.

##### Reputation

Reputation functions differently from other stats, as it is not a float value. Although there is an option to numerically edit the player's reputation similarly to other stats, doing so will not actually impact the player's reputation in that district or other districts throughout the Town.
In order to change reputation, expand `Reputations [30]`. This opens up a list of various actions that can be taken by the player that will change reputation. Expanding any of these will offer the player an `Apply` button, which upon pressing, will cause the player's reputation to increase or decrease according to the action taken.
For example, using `Element 9 (ReputationInfo: MurderNPC)` will cause the player's reputation to decrease just as it would have done if the player had killed an NPC.
* All listed `ReputationInfo: AttackNPC` and `ReputationInfo: MurderNPC` when used will result in a decrease in reputation, just as if the player had attacked a regular townsfolk or a guard.
* Even though `Element 11` refers to killing bandits, attempting to apply this will still cause a decrease in reputation.