system


menuitem( index, [label], [callback] )
index A number (1-5) for the order of the menu item in the pause menu.
label (optional) A string up to 16 characters long that will be displayed in the pause menu.
callback (optional) A function that will be called after the menu item is clicked.

This function will add or remove additional options in the Pause Menu of the game. You can add up to 5 additional items in the menu.

This is the default pause menu (press "P" on the keyboard, or start button on a controller while a game is running):

This is an example adding all 5 slots in the pause menu:



Examples:
menuitem( 1 , "item 1" )

- add new menu item at the top-most slot of the pause menu, under "continue" labeled "item 1"

menuitem( 3 )

- remove the menu item at slot 3

menuitem( 2, "invert Y", invert )

- add a menu item at slot 2, with the label "invert Y" and call a function named "invert" when clicked

menuitem( 5, "difficulty: "..diff, change_mode )

- add a menu item at slot 5, with the label "difficulty: ___" using a variable named "diff", and run the function named "change_mode" when clicked.



556

20 Oct 2023


all about config settings

507

22 Jan 2023


how to use other editors

445

22 Jan 2023


backup

This command will save a backup .p8 file of the currently loaded game in your backups folder. It will save under the current filename, or as "untitled_#.p8" if you haven't yet saved and given the data a filename.




After using this command, you will be notified in PICO-8 that it has been saved and under what name:


To open the backups folder, either navigate to {appdata}/pico-8/backup or use the folder command and specify "backup":


The above command will not notify you in PICO-8, but it will open the backups folder in your file explorer and should look like this (in Windows):



328

4 Nov 2023


all about controllers, in manual

355

22 Jan 2023


Anytime inside of PICO-8, whether you are in-game or in an editor, you can take a screenshot by pressing Ctrl+6 (Cmd+6):

This will saves a screenshot to your the folder specified in your config file (Default location is $HOME/Desktop). You can change this behavior by editing the PICO-8 config.txt file. See Customize Configurations on how to do that.

This also works in the PICO-8 Education Edition, as well as any online PICO-8 player in a browser. However, it does not automatically download. There may be a pause of the game while it is working, then a small thumbnail preview of the image you just captured will be presented in a popup window at the top left of the PICO-8 player. You must right-click on this image and choose Save image as.. to download.


Alternatively, you can press F6:

Warning: This hotkey does not work in your browser.



333

4 Nov 2023


1.9 in manual

383

22 Jan 2023


Anytime inside of PICO-8, whether you are in-game or in an editor, you can take a video (animated .gif file) by pressing Ctrl+9 (Cmd+9):

This will save a .gif video to your the folder specified in your config file (Default location is $HOME/Desktop). You can change this behavior by editing the PICO-8 config settings. See Customize Configurations on how to do that.

This also works in the PICO-8 Education Edition, as well as any online PICO-8 player in a browser. However, it does not automatically download. There may be a pause of the game while it is working, then a small thumbnail preview of the gif you just captured will be presented in a popup window at the top left. You must right-click on this gif and choose Save image as.. to download.


Alternatively, you can press F9:

Warning: This hotkey does not work in your browser.



Set a Starting Point

PICO-8 is always recording the screen, with a default duration of the last 8 seconds. You can increase this duration up to 120 seconds using the config settings. See Customize Configurations on how to do that. So by using the above command to save the gif, it will save the full duration of video based on this setting. However, you can also save shorter videos and control when the gif starts recording without changing these settings.

To specify a video recording starting point, first press Ctrl+8 (Cmd+8):


Alternatively, you can press F8 (again, does not work in a browser):


357

4 Nov 2023


1.10 in manual

297

22 Jan 2023


1.4 of manual

334

22 Jan 2023


1.1 manual

352

22 Jan 2023


"PICO-8 is a fantasy console for making, sharing and playing tiny games and other computer programs. It feels like a regular console, but runs on Windows / Mac / Linux. When you turn it on, the machine greets you with a commandline, a suite of cartridge creation tools, and an online cartridge browser called SPLORE." - PICO-8 Homepage

pico-8 iconPICO-8
Official Homepage
Console Specs
Display 128x128 16 colours
Cartridge Size 32k
Sound 4 channel chip blerps
Code P8 Lua
CPU 4M vm insts/sec
Sprites 256 8x8 sprites
Map 128x32 tiles


Made by Lexaloffle Games LLP.
Developer: Joseph White ("Zep")
Contact: hey@lexaloffle.com

328

31 Mar 2023


You may have heard of something called "ASCII" (American Standard Code for Information Interchange). It is an ordered sequence of numbers to represent individual characters in computers. The characters could be letters, numbers, punctuation marks, symbols, etc. In ASCII, each character is assigned a unique numeric value or "character code". For example, the ASCII code for the uppercase letter 'A' is 65, while the code for the lowercase letter 'a' is 97.

PICO-8 has its own sequence of characters in its own order. We call these "P8SCII" for fun. Below is the full list of P8SCII characters from 0 to 255, separated into their groups.

You can use chr() and ord() to switch between the P8SCII characters and their ordinal number values.



(0-15)  Control Codes

From numbers 0 to 16, the P8SCII "characters" are actually control codes rather than symbols. These are advanced options that you can use inside of print() to change certain settings. See more about how to use these in the Special Control Commands page.


"Ord" = Ordinal Number Value

Ord Code Control
0 \0 terminate printing
1 \* repeat next character this number of times.
2 \# draw solid background with this color number.
3 \- shift cursor horizontally by a value minus 16 pixels
4 \| shift cursor vertically by a value minus 16 pixels
5 \+ shift cursor by two values minus 16 pixels on X and Y axes.
6 \^ special commands (more below)
7 \a audio commands (more below)
8 \b backspace
9 \t tab
10 \n newline
11 \v decorate previous character (more below)
12 \f set foreground colour (text color)
13 \r carriage return (move cursor to start of same line)
14 \014 switch to custom font (memory 0x5600)
15 \015 switch to default font



(16 - 31) Symbols

"Ord" = Ordinal Number Value | "Chr" = Character

Ord Chr
16
17
18
19
20
21
22
23
24
25
26 ¥
27
28
29
30
31



(32 - 126) ASCII Numbers, Letters, and Punctuation

"Ord" = Ordinal Number Value | "Chr" = Character


These all correspond to the standard ASCII numbers and characters. Note that the uppercase letters (A-Z) are actually puny font in PICO-8, while the lowercase letters (a-z) are printed as the normal PICO-8 font which looks like all caps.

Ord Chr
32 (space)
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~



(127 - 153) PICO-8 Glyphs

 

These are special characters unique to PICO-8. You can manually type these glyphs into PICO-8 by holding Shift while pressing a certain letter. Here are the glyphs with the corresponding letter to use with Shift. The arrow and button keys are even recognized in btn() and btnp() functions.

"Ord" = Ordinal Number Value | "Chr" = Character

Ord Chr
127
128
129
130 ?
131 ⬇️
132
133
134
135
136
137
138
139 ⬅️
140 ?
141
142 🅾️
143
144
145 ➡️
146
147
148 ⬆️
149 ˇ
150
151
152
153



(154 - 203) Japanese Hiragana

"Ord" = Ordinal Number Value | "Chr" = Character

Ord Chr
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203



(204 - 253) Japanese Katakana

"Ord" = Ordinal Number Value | "Chr" = Character

Ord Chr
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253



(254 - 255) Arcs

"Ord" = Ordinal Number Value | "Chr" = Character


Ord Chr
254
255


434

4 Dec 2023


Font