| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -37,6 +37,8 @@ DFHack commands can be executed in a number of ways:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#. From one of several `init-files`, automatically
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#. Using `script` to run a batch of commands from a file
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The DFHack Console
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				------------------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The command line has some nice line editing capabilities, including history
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				that's preserved between different runs of DF - use :kbd:`↑` and :kbd:`↓`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				to go through the history.
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -53,16 +55,45 @@ As an example, the following two command lines are exactly equivalent::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  :foo a b "c d" e f
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  foo "a b \"c d\" e f"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				There are two ways to run DFHack commands from an OS terminal.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Using an OS terminal
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				--------------------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFHack commands can be run from an OS terminal at startup, using '+ args',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				or at any other time using the ``dfhack-run`` executable.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* If DF and DFHack are already running, calling ``dfhack-run my command``
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  in an external terminal is equivalent to calling ``my command`` in the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  DFHack console.  This executable is provided to support external programs,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  and is not intended for direct use.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				If DF/DFHack is started with arguments beginning with ``+``, the remaining
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				text is treated as a command in the DFHack console.  It is possible to use
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				multiple such commands, which are split on ``+``.  For example::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				* If DF/DFHack is started with arguments beginning with ``+``, the remaining
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  text is treated as a command in the DFHack console.  For example, use
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  `load-save` to skip the main menu with ``./dfhack +load-save region1``.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ./dfhack +load-save region1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    "Dwarf Fortress.exe" +devel/print-args Hello! +enable workflow
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The first example (\*nix), `load-save`, skips the main menu and loads
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				``region1`` immediately.  The second (Windows) example prints
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				:guilabel:`Hello!` in the DFHack console, and `enables <enable>` `workflow`.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Note that the ``:foo`` syntax for whitespace in arguments is not compatible \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				with '+ args'.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				If DF and DFHack are already running, calling ``dfhack-run my command``
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				in an external terminal is equivalent to calling ``my command`` in the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFHack console.  Direct use of the DFhack console is generally easier,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				but ``dfhack-run`` can be useful in a variety of circumstances:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- if the console is unavailable
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  - with the init setting ``PRINT_MODE:TEXT``
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  - while running an interactive command (eg. `liquids` or `tiletypes`)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- from external programs or scripts
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				- if DF or DFHack are not responding
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Examples::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ./dfhack-run cursecheck
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    dfhack-run multicmd kill-lua; die
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The first (\*nix) example `checks for vampires <cursecheck>`; the
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				second (Windows) example uses `kill-lua` to cancel a script and exits.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Built-in Commands
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |