[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 583: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 639: sizeof(): Parameter must be an array or an object that implements Countable
Ice-Pick Lodge forums • All in one guide to textures,regkeys,commands,keybinds,etc
It is currently 15 Aug 2020, 17:01
Author Message
PostPosted: 08 Dec 2008, 21:23 


28 Nov 2008, 06:17

Posts: 2

*Please feel free to add what you can to this!*

A rich text version, with highlighting and all that jazz is available here:

The translated .vfs extractor, discussed later, can be found at:


Here are all the notes I took from messing with pathologic, handilly translated from scribbled a
scribbled mess on some scrappy old stave sheets. Figured I'd share 'em :)

Bear in mind this info refers to the UK release of the game, most things seem to be
the same, but i can't guarantee all the commands will work..


1 - Basic Commands & Keybinds
2 - Further Commands
3 - Adding items, and some item lists/class lists etc
4 - Registry Keys / Completed games.
4 - extracting files from .vfs
5 - modifying textures

Setup, To enable the console:

Find your Pathologic\Data folder (Usually c:\program files\ something..)

Open the file config.ini with notepad, and in the top section, add/change the following:

ShowConsoleLog = 1
EnableConsole = 1

Once saved, you can use the ` key (left of 1 on most keyboards) to activate the console
like in most FPS games.

Simple Cheatage:

god -Toggles god mode (invulnerability)
fly [0/1] - Turns flying/noclip on/off

slow -Sets the uspeed (games speed) to 0.1 (default is 1)
normal -Sets is back to 1

uspeed [0.0 > 100] - Sets the game speed to whatever you want,
gt_speed [0.0 > 100] - Values are reversed here, i.e. gt_speed 0.1 will cause
time to speed up, whereas gt_speed 8 will cause time to pass 8 times more slowly.

map -Returns the ID of the current map (i.e. room/level/etc)
go [mapname] - i.e. 'go Sabor' will take you to the cathedral, more later.

Keybinds to simplify things:

Open your init.cfg file with notepad (in data folder) , and you'll see the basic
layout, and maybe learn some commands =)

To add your own binds, you'll be wanting to use the 'bindcmd' command instead of 'bind'

for example, some of mine:
bindcmd f1 fly 1
bindcmd f4 fly 0
bindcmd f2 god
bindcmd f6 slow
bindcmd f7 normal
bindcmd f10 go city

You can even make your own .cfg file and run that, i.e.
exec init.cfg <- reloads init.cfg if you're alt+tabbed out and modified it.
bind F11 exec bullets.cfg <-- if you've made a file called bullets.cfg (i.e. to give bullets)
you can hit F11 to run the file :)
Usefull if you need to bind a key to more than one command, since
 all the commands in the .cfg file will be executed.

Save_Config [filename] <-- saves a new init.cfg, saves you reloading etc.

Actor/Prop Commands:

id_player -Returns the player ID (the number)
id_trace -Returns Object/Actor type and the Object ID (the number) of whatever you aim at.
vis -Returns all the currently visible actors.
actor_list -Lists all actors in the vicinity`
id [id] -Returns model type for the selected actor.
[[Note - use pageup/pagedown if this list is too long]]
use [id] -use/activate i.e. to talk to Notkin 'use 6792' can be used long-distance, but using outside
 of notkin's warehouse will probaly crash his script. Poor kid.

These IDs are necessary to modify the properties of existing objects and things, for example
id_player returns the following
Player ID: 6973 <- stays the same throught the whole game.
Player position: 200 300 400 <-- pretty self explanitory
Player direction: 0.1 0.3 0.4 <-- presumably 3 floats for x/y/z orientation

With your player ID in hand, (yours might be different, you can try the following)

propf 6973 health 1
propf 6973 hunger 0
propf 6973 tireness 0
propf 6973 immunity 1
propf 6973 disease 0
propf 6973 reputation 1
(Valid values are 0.0 to 1.0 )

More prop commands:

prop [name] <- returns the value of the property, i.e. prop 6973 health will tell you how much
health is left.

propl <- Sets an integer value, i.e. whole numbers 1,2,3 not 0.4 1.3, etc..

props <-- sets a string value, such as class or #SourceXML

For example, to open a locked door, go up to it:

propl [door_id] locked 0 <-- unlocks :)
propl [door_id] dlocked 1 <-- disease locks a door

To kill an npc:
propf [id] health 0 <- kills, by giving them a 'death' if applicable

or kill [id] <- physically removes the actor/object from the game world

List of classes I know of is coming later.

Listing Points (which leads on to spawning):

rl_list <- lists all the points in the active scene
rl_set [name: string] [x] [y] [z] [xr] [yr] [zr] <- makes a new point with x,y,z position and x,y,z rotation
i.e. rl_set pt_anna 5 5 5 0.1 0.1 0.3
rl_del [name] <- deletes it
rl_info [name] <- Some details about the point :)
rl [name] <- uses your current point and makes a new one with that name.

Most scenes have a point called 'birth' , but I use a 'bindcmd f7 rl foo' to make a point called foo wherever I stand.

Spawning Peoples:

xspawn [model_name] [point_name] [xml_file]
for example:

rl Fudge <- makes a point called fudge
xspawn pers_nudegirl fudge nudegirl_common.xml
or xspawn pers_wastedgirl fudge wasted_girl.xml

or a bomber:
xspawn pers_bomber fudge d6q02_bomber.xml

You can also mix and match styles, i.e.
model pers_wastedgirl with the xml file for a rat (rat.xml),
or have two warring factions of rats... criminals an dpatrol guards, this usually crashes however :\

sspawn [model_name] : spawns the item at a fairly random location.

Unknown Spawns:
qxspawn - seems to want to load from an external file?
bspawn - accepts parameters but does nothing (?)
If anyone has any details about these spawn types, I'd appreciate some help :)

Spawning Items Into Inventory/Actor/Your Inventory:

items [actor id] <- Shows all the items (and IDS in your inventory)
additem [actor id] [item id] amount <- Adds an amount of an item to the inventory of.. bleh.
removeitem [actor id] [item id] amount

i.e. :
additem 6973 10004 1 <- spawns a revolver
additem 6973 10104 50 <- spawns revolver ammo

you might for example put those lines in a file called bullets.cfg
then add
bind f10 exec bullets.cfg
to you init.cfg file.
Reload the init.cfg file with exec init.cfg
and you can push f10 to run the script :)

You can get item ID's from the world.vfs file, pop it open in notepad, or a hex editor, but
there are details on extracting .vfs further down the page.

I reccomend only adding like ~50 bullets at a time... since when you add twice, they don't stack..
and it takes a while to click 2000 bullets into a trade :p

Other Commands found in init.cfg

rd_wire [0/1] <- wireframe mode
rd_gamma [0.0 / whatever] <-- adjust gamma
rd_shadows [0/1]
fps <- shows your fps
rd_stat [0/1] <- onscreen stats.. neat
sshot_gamma [ x ] <- presumably screenshot gamma :p?
m_sensitivity 0.0 - 1.0 <- mouse sensitivity
m_invert [0/1] <- invert mouselook

Game Variables:

getvars <- lists ingame vars
getvar [string] <- returns value of variable, i.e.
getvar b1BurahHome <- shows wheher or not old burah's lab is available.
setvar KnowGrif 1 <- You now know Gryph

Miscellaneous Commands:

gametime <- current game time
gametimed <-- same

script_list <- shows all running scripts

sun_on <-sun's status
sun_on 0/1 <-- on or off
amb_color <-- more random color stuff
factor_list <-- actors that belong to no scene

ver/build <-- shows build info
abort <-exits
quit <-exits
qsave <-quicksave

map_list <- lists all the maps :)

seeme / hearme / fearme <- whether an actor can see/hear/fear the player :)

hit [id] [amount] [type] <- Simulates a hit, try on yourself

dbg_exception <- pops into debugger, crashes if you're not debugging :)
map_unload [map] <-- unloads a map :p?
maybe usefull to reset stuff, never tried.

Puzzling Commands

pfid <- pathfind id??
pf_dist <- pathfinding distance?
id_sel [actor_id] "invalid command args"
id_sel "No Objects Selected"
Actor_ref [id] <-- lists something associated with actor

tl_tex <- attempts to load texture
tl_geom <- Loads mesh maybe?
tl_actor <- meeh?

trigger 0/1 <- Triggers.. a something?
switch 1 "No Such Group in active scene"

Sample Properties for actors:

Player Properties:


Salesmen Properties:

class <-- common to all bipeds
medcine <- deliberate typo
sellf1 > sellf12 <- dunno what these groups are.



The purpose of this list is quite simple, alter a few things, and keep searching
in cheat engine for the changes, when you've zoned in on the changes, you can
open up the memory browser and search for other new commands and things :)
Remember to use propf for floating points, and propl for integers.
By scrolling around the browsed memory you will find other commands in plain text.

Some Usfull maps:

go cot_bigvlad < big vlad
go cot_anna
go warehouse_notkin
go warehouse_grif
go storojka < little girl by the cemetary
go hidden_room
go house3_shop_up02 <the shop with great prices
go dt_house_1_04 <creepy little ospina's house
go cot_Kapella <vlad's girl
go shouse1_kabak <the tavern
go d2q01_house1 <heirophant's dad's house
go house_vlad <the one with the well
go home_burah <heirophant's dad's lab
go cot_eva

Registry Keys:

The followng registry key exists to keep tabs on whether or not the game has been finished, or
has been played previously.

(even for the UK release)

You can browse these values with Regedit ( Start->Run-> and type 'Regedit' minus quotes)

Alternatively, paste the following into a a text file, save it, and rename it to something.reg
(make sure you don't just call it something.reg.txt, you need extensions enabled to do this)

_____ copy after this line ____

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Ice-pick Lodge\Mor. Utopia]
@="C:\\Program Files\\Buka\\Pathologic\\bin\\Final\\Game.exe"

____stop copying before this line

Interestingly, it does't make a blind bit of difference if your path (C:\program files\buka ..etc)
is wrong.

Extracting the .vfs files:

.Vfs files can be extracted with the .vfs convertor, originally by
Ilich of www.gstrategy.ru however, you can find my
English Translation at www.wopstick.co.uk
The instructions there are pretty simple, point it at a .vfs file
in your pathologic data directory and it will extract into a 
directory structure - quite fast as well.

Some notes on thie process:

After extraction, the game will use the folders *where available* instead of
the ones in the .vfs files.

i.e. If you modify wasted_girl.xml from the Actors folder, the game will
use your new version.

i.e. If you remove the files you're *not* using from the folders, the game
will not mind, and just use the originals from the .vfs files.

A sample:

Lets say you want to turn all the pers_wasted_girl into pers_nudegirl..

head into the Actors folder and open the files pers_wastedgirl with a hex editor
if you don't know what one of those is, it might be bad to fiddle!

You will see that pers_nudegirl points to the file pers_nudegirl.mesh
while pers_wasted_girl points to the file pers_wasted_girl.mesh

At this point write over the pers_wasted_girl.mesh line with pers_nudegirl.mesh
since nudegirl is *shorter* you must zero out the bytes trailing this.

Additionally, the single byte before 'pers_...' is the length, you will need to
change this to 12h (hex) since that's the length of the filename (18 decimal bytes, or characters)

Now reload the game, and all your wasted_girls will be semi naked hotties. It helps pass the time.

After much fiddling, i've had no luck spawning NPC meshes as regular characters, i.e. with NPC_Anna,
(as opposed to spawning them as actual NPCs - xspawn NPC_anna foo NPC_Anna.xml)
since NPC's use a different head-set. This means you can spawn them, but thier .bin file dictates
that they cannot be shot... Huff.. Altering the .bin file will normally pop a nice little error too, since
the new .bin file will likely not have the same scripts. Dammit!
(.bin file is a compiled script, for the record, possible to edit them, but dammed if I'm working out
the file format)

You can also make your own file, such as copying pers_bomber to bomb and
d2q06_bomber.xml to bomb.xml , now you can do the binds:
bindcmd f6 rl foo

Which will let you set a point with F6 and spawn a bomber there with F7.

Altering larger pers_* or NPC_* files will be tricky, since the filename has always to be shorter, you *must*
zero out the trailing bytes correctly, and adjust the string length. However some interchanges are acceptable to the

Altering Textures:

1 - First get ahold of Nvidia's DDS/Direct3d photoshop plugins from the developer section of thier website.
 It's less stressfull than you'd think.. Seriously.. Really really easy.

 If you dont own a copy of photoshop .. try DXTex which comes with MS's Directx SDK

2 - Might be handy to download NVidia's dds thumbnailer too, remember to install it, you'll need it later.

All of the .tex files are simply .dds (Direct Draw Surfaces), which is a form of image compression/storage,
in much the same way a .jpg is, that's not that important though.. continue.

make a new .txt file in your Textures directory and paste the following line into it:
rename *.tex *.dds

Save the file as a .bat file , remember, not something.bat.txt but file.bat , if you did it right, the icon will change,
if not you'll have to enable file extensions from the Tools menu in a windows folder.

After running, your .tex files will be .dds with previews of the flat images to be wrapped and warped around
different 3d models.

You can now open 'em with photoshop.

On loading *do not* generate mip maps, this will simply confuse things.

Play away, edit, work, draw, doodle, scribble on things etc, when you're done save the file as a.dds file.
If you can't save as .dds remember to flatten the image in photoshop's Layers menu first.
(make backups btw)

As you save, generate *4 Mipmaps* (these are just tiny preview versions of the image cascading from the left to
the right for different quality levels, it's pretty automagic, but you have to do it) This can be done on the right hand
side of the nvidia popup.

You might even consider moving all the .dds files out of the \textures folder to make it a little easier to find stuff
you're working on. And make frequent backups.

Right, that's all I can be bothered writing.
Gives a shout if you find anything I missed :)

had to remove some links due to spam

Last edited by happyfunfun on 17 Dec 2017, 15:13, edited 1 time in total.

PostPosted: 08 Dec 2008, 22:03 
User avatar


20 Jan 2007, 19:47

Posts: 655

Wow - Thanks for typing all of this up :D This is now a 'sticky' topic, as I'm sure it will be useful for a lot of players.

PostPosted: 09 Dec 2008, 05:52 
Бессмысленный и беспощадный
User avatar


21 May 2006, 19:45

Posts: 989

Location: Иркутск

May I post a bit of self adversiting?)
I have a plugin for TotalCommander/Far that handles VFS archives from Pathologic and Tens... The Void.

Here it is:
Start wearing purple, wearing purple
Start wearing purple for me now

PostPosted: 09 Dec 2008, 13:17 
In Turgor!
User avatar


01 Sep 2008, 06:09

Posts: 902

May I post a bit of self adversiting?)
I have a plugin for TotalCommander/Far that handles VFS archives from Pathologic and Tens... The Void.

Here it is:
I see what you did there ;)

PostPosted: 09 Dec 2008, 15:17 
Бессмысленный и беспощадный
User avatar


21 May 2006, 19:45

Posts: 989

Location: Иркутск

I just needed to know if anyone uses this plugin. But It seems like no one does :cry:

But stop... Log files on server say that this file was downloaded 40 times in 3 months...
YAHOOO! My plugin is useful! :D
Start wearing purple, wearing purple
Start wearing purple for me now

PostPosted: 10 Dec 2008, 04:42 


28 Nov 2008, 06:17

Posts: 2

Cheers for the feedback guys :) Seems worth while!

Go ahead with the shameless plugs!
Seems like a good place to get them used =)

Also, please feel free to add anything else i've missed.
I'd love to add it to the post!

PostPosted: 26 Dec 2008, 15:53 


29 Aug 2004, 16:52

Posts: 2152

Location: Россия, Москва

OK, I see that trigger command seems confusing. It was of limited usage to me indeed, I typed it mainly to set some quest status. Like this:
trigger quest_d1_01 completed
This one makes Dankovsky's first day (d1) quest 01 (main quest) 'completed'. Use b and k for Burakh and Klara correspondingly. I don't really know if it is possible to use the command for something else.
Generally, as far as Dankovsky and Burakh MUST complete their first day quests in order to continue to the following days, this command is useful when you just want to play some day in the middle or the end of the game. Then the command can be used in pair with 'gametimed':
trigger quest_d1_01 completed
gametimed 6 10 23
These two commands above finish your main task (if you play for Daniil;)) and 'fast forward' game time to 10:23 of the day 7 (day 1 has number '0', so day 7 is '6').

PostPosted: 14 Mar 2010, 18:57 


14 Mar 2010, 18:54

Posts: 1


I'm probably being rather dumb, but I can't seem to get the console screen up. My config file looks like:

ShowConsoleLog = 1
EnableConsole = 1
InitUI = game.xml
GameMenuUI = ingame.xml

Pressing the ` button gets no response.

Any advice?


PostPosted: 26 Apr 2012, 17:48 


26 Apr 2012, 17:33

Posts: 1

Hi, I'm having the same issue as Corn Spike. Setting the codes to hotkeys doesn't seem to make any difference either. Has anyone else had this issue, and/or seen a workaround? I have the GamersGate version of the game, if that helps at all.

PostPosted: 30 May 2012, 20:36 


10 Mar 2012, 10:14

Posts: 134

To Corn Spike and Kegluneq:

I have config.ini as follows:

EnableConsole = 1
ShowConsoleLog = 0
InitUI = game.xml
GameMenuUI = ingame.xml

XRes = 1024
YRes = 768
Fullscreen = 1
FrameSync = 0
NoCompressedTextures = -1
LightmapQuality = 0
TextureQuality = 0
EyeCandy = 1
Depth32 = 1
VSync = 0
RefreshRate = 0
Antialias = 2
TexAnisotropy = 16
NoBumpmapping = 0
DODrawDist = 45
WaterReflections = 1

Enabled = 1
MasterVolume = 1
MusicVolume = 0.5
VoiceVolume = 1
SoundsVolume = 1
SampleRate = 44100

ui = txt, 0
map = txt, 100000
keys = txt, 300000

ActorsType = VFS
FontsType = VFS
GeometriesType = VFS
ScenesType = VFS
ScriptsType = VFS
StringsType = VFS
TexturesType = VFS
UIType = VFS
VideoType = VFS
WorldType = VFS

And everything works!
Strike “~/`” key (beneath “Esc”) and be happy! :-)

PostPosted: 15 Sep 2012, 12:55 


15 Sep 2012, 12:45

Posts: 1

Hi i am newbie here i really glad to read this post because it has lot of information please share many more informative and useful matters and i hope we can disscuss various topics here ..... thanks ...... good luck

PostPosted: 24 Sep 2014, 12:40 


15 Oct 2012, 10:36

Posts: 3

I am a newbie here and started learning Jazz and very recently. I was searching for reference links to get the Basic Commands & Key binds. This was a great help by sharing links with all the required commands. This made things easier.

Display posts from previous:  Sort by  

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: