Hi all!
I scraped the PICO-8 API Reference from the manual as a side project, and would like to share it here, feel free to use it :)
Please note that as the manual's structure is a bit messy, some API elements may be incorrect or missing. I tried to account for all anomalies, but there may be some that went unnoticed.
Lua Definitions
I also made a definition file for the Lua Language Server based on the extracted data, you can find it here:
GitHub
The project's repo is on the following link: https://github.com/vupdivup/pico-8-api-scraper

It's a mostly green system theme.
You can paste
store("/appdata/system/themes/forest.theme", unpod("b64:bHo0AEgBAAD5AQAAoHtkZXNrMD0xMywJAEExPTE0CQCRX3NoYWRvdz01DgB0dG9wMD0xOQwANDE9MwsA8RNfcGF0dGVybj1weHUAQyAICAQHcAcABxAHEBcQFyAHEAeADgAVABAAFRA6AANiAABXAMJvcl9ib3JkZXI9MjEOAHF1dHRvbj01DQBRZnJhbWWiAKBvcl90aXRsZT02DABKbWFudDgAAhIAAjwAJTE5EgACQQAlMjcRAAJFAJEzLGljb24wPTcIAEExPTExCQAyMj0yEgAQM0QAlHRvb2xiYXI9NwoAEDGKAAMMABcyDABQX2JhY2uIAAQQAABDAAggAFZpdGVtPQ8AgHNlbGVjdGVkdwA0d2luyQADDQADxAARMw4AA8AAETkNAAK8ABA3DAA0ZG93NwAVMBAAAjoAFDMQAAI8ACQxMRAAkHRpdGxlPTE5fQ==")) |
into the picotron terminal to install it (assuming you already created the /appdata/system/themes/ folder).
Alternatively, heres the uncompressed theme file:
{desk0=13,desk1=14,desk_shadow=5,desktop0=19,desktop1=3,desktop_pattern=userdata("u8",8,8,"07000000000000000007000700000700000707000007070000000700000700000000000000000007000700000700070000070700000707000000070000070000"),desktop_shadow=19,dor_border=21,dor_button=5,dor_frame=13,dor_title=6,dormant_border=21,dormant_button=19,dormant_frame=27,dormant_title=3,icon0=7,icon1=11,icon2=27,icon3=19,toolbar=7,toolbar1=13,toolbar2=13,toolbar_back=21,toolbar_icon=13,toolbar_item=3,toolbar_selected=11,win_border=1,win_button=13,win_frame=29,win_title=7,window_border=0,window_button=3,window_frame=11,window_title=19} [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=164577#p) |
Void Requiem
A bullet hell roguelike with upgrades.
You pilot a small orange spaceship through endless space filled with enemies and danger. Absorb enemy bullets to charge up your weapons. But, if you let your energy gauge overflow, you're the one taking the damage.
Defeat enemies to gain XP, level up, and choose from a set of upgrades to customize your run.
.gif)
.gif)
.gif)
Features
- Absorb to fire mechanic - Turn enemy bullets into your own
- 8 upgrades - Try different builds
Controls
Use the D-Pad or arrow keys to move your character around the map. Press X to buy items from the shop, read through pages of guides, and hold O to use the buyable Magnet item.
Basics
To start the game, you'll move into a yellow square. Inside, there will be a click--which you want to collect--and an enemy, which ALSO tries to collect the click. You can buy items in the shop for clicks, to aid you in gaining EVEN MORE CLICKS! The goal of the game is to buy the trophy before the enemy does. Don't let the enemy deceive you, though. They appear slow at the beginning, but as the enemy gains more clicks, they become more and more challenging!
Map
As you adventure, you'll find:

Alright, I often find myself wanting to arrange colors next to one another to build gradients of different types: gradient by value, gradients that share a hue, etc.
I had previously been trying to do this by cutting up screenshots in gimp but.. man is that labor intensive.
So, I got the idea to turn on the undocumented 5bpp mode so that all 32 available colors can be toyed with on the screen at the same time (at half horizontal resolution, which works fine for this tool) and make a simple tool that both displays the colors and labels their color indexes (I prefer the -16 through 15 numbering so that's what this tool uses) and makes it easy for me to rearrange the colors vertically in any fashion that I want.
Introducing the PICO-8 version of the full release of Celeste!
Celeste Full Release Edition
I might later add different music but I'm not very good at the PICO-8 music tracker.
All credit for ideas and stuff goes to Matt Thorson and Noel Berry (As mentioned on the title screen.) Have fun and I am open to suggestions!


A single-screen puzzle-platformer.
Collect hats with various powers and defeat all the on-screen enemies to progress!
You can't be hurt in this game - so just relax, explode those baddies, and try to get all the collectables on each screen.
Credits
Code, graphics and music by myself.
Some SFX taken from Gruber's SFX pack.
Controls
- < > to move
- O (keyboard: z) to jump
- X (keyboard: x) to use hat power
The music can be turned off via the select menu.
Version history
- 1.0 - Initial release.
- 1.1 - Add 'exit level' to the in-game menu. Fix issue where levels had no baddies after finishing the game.










How would I go about doing something like
finisher=4 --or finisher="4"
attack..finisher()
and having the second line trigger a function called attack4 as though "attack4()" were written there?
I'm currently doing it like
IF FINISHER==4 THEN ATTACK4() END
but I'm pretty sure there's a much better way to do it if I only knew the formatting: what is it?
I wonder if I just didn't test guesses enough.
I think this belongs in "Workshop" but I personally don't think most people here really adhere to that...






Includes QoL features like:
-the first move cannot lead to a game over.
-the ability to reveal all tile cells around the selected one using double LMB or LMB+RMB
-the ability to change the number of mines before the start of the game
I've been trying this over the years on various platforms (ah, Quartz Composer, RIP), this is the latest attempt.
I got bored of trying to draw tracks with tiles, so added a live-editable spline-based track.
Not sure what to do with it now I've done the fun bit, so I'll leave it here for a while.
Possible future features:
lots of optimisation!
improved quad filling, ideally with textures for track edge
fine tune car navigation
maybe change to "through points" rather than vertices for the track alignment
Hi. I'm new to PICO-8 and programming in general.
I followed the guide for Squasy in the first issue of the fanzine. After that, I decided that I wanted to try and add a few stuff. I managed to limit the paddle to the inside of the screen and was able to add a menu screen (with some tutorial help). My problem is that for some reason, the game over screen doesn't work. Not sure what I'm doing wrong.
My idea is to display the game over screen if lives==0.
Here is the code to see if lives==0:
function losedeadball()
if bally>128-ballsize then
if lives>0 then
sfx(3)
bally=64
ballx=64
lives-=1
else
ballydir=0
ballxdir=0
bally=64
ballx=64
sfx(4)
over_init()
end
end
end
The idea is that the over_init() sets the game state=3 and the displays the game over screen. Here is the game over screen code:
--initiliaze game over screen--
function over_init()
state=3

