Simple tool to generate outlines with the text outline functions introduced in Pico 0.2.7
Usage:
- Click on the boxes in the center to define the outline
- Left click on the color boxes to set outline color
- Right click on the color boxes to set text color. Text color is just for preview purposes. It will be not encoded in the exported string
- Click on the button to export the P8SCII string into the clipboard
As showcased in this video
Let me know if there are any issues or anything you wanted to add!

Template
Code
State Machine
function _init() gsm = sm:new() gsm:setsts({ s_title, s_game, s_gameover }) gsm:init("title") end function _update() gsm:update() end function _draw() cls() gsm:draw() end |
State
s_game = st:new("game") function s_game:enter() psm = sm:new() psm:setsts({ ps_idle, ps_move, ps_dead:new() }) psm:init("idle") player:spawn(64, 96) end function s_game:update() psm:update() end function s_game:draw() psm:draw() player:draw() end |
Add State Properties
ps_dead = st:new("dead") function ps_dead:new(o) -- inherited state o = state.new(self, "dead") o.timer = 0 return o end function ps_dead:enter() start_shake(10, 10) end function ps_dead:update() update_shake() if self.timer >= 30 then gsm:trans("gameover") end self.timer += 1 end |



A fighting fantasy adventure inspired by Ian Livingstone books!
It's still work in progress, but the game seems to be functioning as intended with a possibility of multiple endings.
Can be controlled with either mouse or keyboard/controller.
If you find any bugs or have feedback let me know!

Sparkly particle fun for the pico 1k jam!
Use ←/→ to change the spin speed, mouse to move the cursor, left click to attract and right click to repel. Have fun!
I got my player character to walk, jump, die, and be idle. But I haven't been able to get its attack animation beyond one frame.
For context, this is how I update and draw the player:
function _init() plr={ x=10, --x position y=75, --y position dx=0, --movement direction fl=false, --flip sprite sp=1, --sprite state="idle", } function _update() moveplayer() animate_plr() end function _draw() spr(plr.sp,plr.x,plr.y,1,1,plr.fl) end function moveplayer() --attack if btn(🅾️) then plr.state="attack" --move left and right elseif btn(⬅️) then plr.dx=-1 plr.fl=true plr.state="walk" elseif btn(➡️) then plr.dx=1 plr.fl=false plr.state="walk" else plr.dx=0 plr.state="idle" end plr.x+=plr.dx end |
To animate, I use the below function. plr.sp
calls the sprite number, which are as follows:
1-2 = Walk
2 = Jump
3-5 = Attack
8 = dead
function animate_plr() --handle animation state if plr.state=="dead" then plr.sp=8 --idle elseif plr.state=="idle" then plr.sp=1 --attack elseif plr.state=="attack" then plr.dx=0 plr.sp=3 while plr.sp<5 do plr.sp+=1 end --walk elseif plr.state=="walk" then if plr.sp<2.75 then plr.sp+=0.25 else plr.sp=1 end --jump elseif plr.state=="jump" then plr.sp=2 end end |
So the problem is that when I use btnp
in the code above it only shows sprite 5 and then immediately switches back to the walk frames. If I use btn
then the character just stays frozen in sprite 5.
What I want to achieve, is to have it go through all three attack sprites (3, 4, 5) in succession and then revert back to its previous state, e.g. walking animation or standing still.
Thanks in advance.



My First Solo Game Project!
This is my first time ever coding a single thing. When I started I had no idea how to code a single line, but with the help of SpaceCat on youtube and a few other resources I found my way into making a game that feels like a game! I ended up making most of the code up myself, and while it's a mess, it's functional!
Looking forward to making cleaner code in the next one.
Controls
Use X or Up to raise the meatball.
Press O/Z to skip the death animation or restart the game.
Unlike most Flappy Bird games I wanted a jump motion that felt more like a jetpack for our flaming meatball. Sometimes holding the button is better, and sometimes quick presses get the job done.


BRGR BOSS
Take on the role of a brilliant entrepreneur who's taken a sizable loan out to buy an experimental food printer.
Pay off your crippling debt with your own Burger Business!
How to Play
-
Use the arrow keys to issue commands, holding X or O will open up different options.
-
Holding X- Hire employees to automate your process, buy more locations to make room for more employees.
- Holding O- Conduct research and train your existing employees to make even more money, even faster!
Tips
-
Watch out! Your loan accrues interest over time, it might be tempting to add more debt, but this only makes the interest rates worse!
-
Throw your employees a pizza part to (temporarily) motivate them.
-
The Bank limits your cash on hand to 30,000. They CLAIM its to avoid an overflow error that will actually give you a negative balance, but you're pretty sure its just to keep you down...
-
Cashiers work a LITTLE faster than cooks, what can I say- people love the Burgers!
- If your Burger/Combo count is -1, that just means they need help in the kitchen.
Updates
- 9/9/25 added prices to the R&D tab, and made it more obvious when they were purchased.
This is my first crack at a ground-up game for Pico 8, I think it went pretty well!



Ciao,
the famous Rooms and Mazes from Bob Nystrom for PICO-8
more info here
⚠️ sadly the script is token intensive ⚠️
[Z] New dungeon
[X] Show map


A game heavily "inspired" by Among Us. Fans will find the map VERY familiar.
CONTROLS:
Mouse/Left/Right Arrows - Rotate left/right
Up/Down Arrows - Walk forward/backward
O button - Run forward
X button - Perform action
Player 2 X button - View map (Not everyone has this button)
FEATURES:
- Usable Command table
- Usable security cameras
- Usable vents
- Proximity-based NPC footsteps volume
- Very sus but hopefully amusing player names
- Stars go wooooooooo
UPDATES:
[09-12-25]
- Fixed jittery textures (thanks @freds72 for pointing them out)
- Fixed some other miscellaneous graphical bugs
[09-10-25]
- Added mouse lock (I've heard it doesn't work on every platform so YMMV)


A simple graphical demo for the PICO-1K Jam 2025 which creates an animated Dragon Curve.
A Dragon Curve can be generated physically from repeatedly folding a strip of paper in half and hence the lines in a Dragon Curve never cross each other.
The different colours represent the level of recursion that each segment was generated at by the algorithm.
You can use the cursor keys to move he viewport and ZX / NM / CV to zoom in and out to explore the curve in more detail as it renders or once it has finished.
The compressed byte size of the cartridge is 643. I've made very little effort to save bytes because the program is so simple in the first place.
Hello! I'm new joiner and following Dylan's zine.
I understood the relation btw map and sprite... partially. And seems something is incorrect. Please check my understanding!
- map has 128x64 tiles.
- each tile is 8x8 pixels.
- lower half of map, that is 128x32, is shared with sprite sheet.
- there are 4 sprite sheets. Each has 16x4 tiles, which has 128*32 pixels.
At this point, I'm confused because a single sprite sheet already covers lower half of map. So no need to use both 2nd and 3rd sheets!
...or isn't it?



Day 1
Starting a small snake game as a (hopefully) short first project. Hoping to do a series of classic games (snake, pong, flappy bird, etc) and make a blog post about each, maybe going into design decisions, what I learned, what I'd do differently next time. Or maybe the blog posts mentioning them would just link to here, idk 😆
I'll be using this post to save my day-to-day progress, and keep plugging away at it until it's done! Hopefully tomorrow, or maybe the next day! 😆
Right now it does absolutely nothing except initialize the grid and the snake's head though. 😆


Ciao,
I got really inspired by how LDtk handles auto-tiles with rules, and I thought — why not try something similar for PICO-8?

If you’re curious, I put together some instructions here: PICO-8-autotiles README.
⚠️ This is not the most elegant code you're gonna read today but it does the job :P