- Prints a string to a console window that is running PICO-8, or to a file or the clipboard.
- str
-
- The string to print.
- filename
-
- The name of a file to append the output, instead of printing to the console. If this is the string
"@clip"
, the message replaces the contents of the system clipboard instead of writing to a file.
- The name of a file to append the output, instead of printing to the console. If this is the string
- overwrite
-
- If
filename
is provided and is the name of a file andoverwrite
istrue
, this overwrites the file. The default isfalse
, which appends the message to the end of the file.
- If
- save_to_desktop
-
- Create or modify
filename
on the desktop instead of in Pico-8's data directory.
- Create or modify
You can use printh()
to emit debugging information without printing it on the PICO-8 display. It can emit this output to a command console window, to a file, or to the system clipboard.
Running PICO-8 in a console window[]
To see the output of printh()
in a window, you must run PICO-8 from a command console. How to do this depends on which operating system you're using.
Windows[]
- In Windows, instead of double-clicking the PICO-8 icon, open Command Prompt, then start PICO-8 with the following command:
"\Program Files (x86)\PICO-8\pico8.exe"
The prompt appears immediately, even though PICO-8 is running. printh()
output will appear in this window anyway.
- Alternatively, create a file in the same folder as
pico8.exe
namedpico8.bat
containing this line:
cmd /k start pico8.exe
When you double-click on this file, it opens a Command Prompt window and runs PICO-8. Messages appear in the window, and the window closes automatically when PICO-8 exits.
- Similar to the above method, you can create a windows shortcut file that launches pico-8 with an attached console; details + video here
Mac OS X[]
In Mac OS X, instead of double-clicking the PICO-8 icon, open Terminal, then start PICO-8 with the following command, adjusting the path to match where you put the app. For example:
/Applications/PICO-8.app/Contents/MacOS/pico8
If you don't want to type that into your terminal every time, you can add an alias to your terminal configuration file. Open a terminal window, and type:
nano ~/.bash_profile
Then, paste the following (do not add any spaces between the = or it will not work!):
alias pico8=/Applications/PICO-8.app/Contents/MacOS/pico8
Save the file, logout and log back in. You will now be able to type pico8 in the terminal to open the program.
Linux[]
In Linux, you probably already run the pico8
command from a terminal window. If you don't, locate where you put the pico-8/
directory, then run the pico8
command from a terminal window using its full path. For example:
~/pico-8/pico8
Writing to a file[]
The printh()
function accepts optional arguments that tell it to send its output to a file instead of to the console. This works even if PICO-8 was not invoked from a command console.
To append the message to a file, provide a filename as the second argument. This creates the file if it does not exist.
printh('debug: score='..score, 'scores.txt')
To overwrite an existing file instead of appending to it, provide true
as the third argument:
printh('scores', 'scores.txt', true)
printh('------', 'scores.txt')
Writing to the system clipboard[]
Writing to the special filename '@clip'
, you can overwrite the system clipboard.
See Clipboard for full details.
Examples[]
t = 0
function _update()
t = (t + 1) % 30
printh('t = '..t)
end
function _draw()
cls()
circfill(t * 3, t * 3, 4, 8)
end