Star-flowers bloom once in a hundred years, but only if their roots are rich with rain and electricity.
You are a cute cloud, in charge of a field of star-flowers.
Wield your ancient powers over wind and water to nurture your star-flower garden, and pump the field's battery full of electricity! Watch out for missiles and chompers along the way!
Good luck!



I'm trying to make a (sort of) rhythm game in Pico-8. It should be possible, using stat(20) for example, to trigger events in time with the music. Inside the console, it works fine, and running the exported version in (Mac OS) Chrome or Safari; but run in Firefox, the music is out of sync; sometimes early, sometimes late.
Has anyone else come across this problem?
Hi! I just started using PICO-8 and I'm having a little trouble with my collision code.
It works fine when colliding against walls, but colliding against corners (the red tiles) breaks it.
Here is the collision part of the code:
function placeMeeting(x, y, f) local tilesize = 8 local tilex = flr(x/8) local tiley = flr(y/8) local s = mget(tilex, tiley) return (fget(s, f)) end |
And this is the movement part:
if (btn(0)) then if (not placeMeeting(p.x-1, p.y, solidtile)) then p.x -= p.speed end p.mirror = true elseif (btn(1)) then if (not placeMeeting(p.x+p.bbox_w+1, p.y, solidtile)) then p.x += p.speed end p.mirror = false end if (btn(2)) then if (not placeMeeting(p.x, p.y-1, solidtile)) then p.y -= p.speed end elseif (btn(3)) then if (not placeMeeting(p.x, p.y+p.bbox_h+1, solidtile)) then p.y += p.speed end end |


I have pico 8 on my home pc, my work pc, and my raspberry pi, but they each have their own favorites list. Is there a way to put this favorites list in the root path? I have all my carts and such in a dropbox share that all three machines use, but not the favourites.txt.
Also is there a way to sort favourites.txt (other than just editing the file and sorting by the column of the title of the game)?
Is there any way to make a pattern stop short of 32 notes? (like famitracker has a Bxx effect for jumping to another pattern/frame) I have some music with a repeating section but it won't fit in 32 notes. if I could make it stop at say note 24 (or whatever it ends up being) I could repeat this section in a pattern and not have to waste an extra sfx.




The mobile player on the forum is pretty nice, but it's missing one important feature : It doesn't disable the long-press context menu.
If you hold the d-pad or a button down (as you do) it pops up a context menu, making the games frustrating.
Until this is fixed, I recommend using this bookmarklet to fix it.
javascript:(function()%7Bwindow.oncontextmenu%20%3D%20function(event)%20%7Bevent.preventDefault()%3Bevent.stopPropagation()%3Breturn%20false%3B%7D%7D)() |
The forum strips out JavaScript links, so I can't link to the bookmarket, but make a new bookmark, and copy/paste that code into the URL field. Tapping on it will disable the context menu, making Pico8 a joy to play on mobile firefox.


I'm noob with PICO-8 and wanna play "Mary had a little lamb" using only beeps from code. Not using sfx editor, not using music.
however, i dont hear any beeps. Whats wrong?
print("Press arrow keys ",12,64,0) ID=0 if btnp(0) then sfx(id,"E-4") elseif btnp(1) then sfx(id,"E-6") elseif btnp(2) then sfx(id,"E-7") elseif btnp(3) then sfx(id,"E-5") end |

I was playing around with loops and learning exactly how iterators work and stumbled across this...
When we write the following:
for k,v in pairs(t) do ... end |
In regular lua it is identical in function to writing this:
for k,v in next,t do ... end |
Because that's what pairs(t) returns: the builtin next() function, which iterates over the hash table that underlies lua tables, and t.
In PICO-8, we don't have direct access to next(), but we can get it:
next=pairs(any table, doesn't matter) |
Once done, we've spent 5 tokens getting it. However, the "in next,t" form of the loop is one token shorter (and two characters). So if you convert more than 5 loops, you're saving.
I know it's minor, but I know some of you end up scrimping and saving for single tokens, so I thought I'd pass it on. Um. Enjoy? ;)
@zep: any chance we could just get next() available directly?
In Lua, long comments using --[[ / ]] cannot be nested: another opening --[[ in there will just be ignored. So the following code will print 2 in Lua, and 1 in PICO-8:
a=1 --[[ [[]] a=2 --]] print(a) |
This is actually a funny way to detect whether you’re running inside PICO-8 :-)
print("running in ".. --[[[[]] "lua!") --]] "pico-8!") |

This is the same as the player below, except it's illustrating a way to link multiple animations using cutaways. Normally you would need to account for each shape in a previous frame in the new frame as they are intended to 'animate'. That can be used for interesting effects, like the cat gif below that has words transition from Japanese to Meownese. But using this structure allows you to more traditionally link completely unrelated scenes so they will be played in a sequence, before returning to the main program state.




On Windows 10, if the mouse cursor is all the way on the left or right of the screen (so it's not visible), scrolling does nothing visually. However, the moment my mouse comes back on the screen, the editor jumps to where it would have visually scrolled to had my mouse been on the screen. Here's a gif of what's happening. (When the mouse goes off the screen, I'm scrolling up and down.)

Looking for thoughts, suggestions on tightening up the gameplay and feel.
Rules:
Match 3 or more tiles in any direction on the bottom game board
3: 50 points
4: 250 points
5: 1000 points
Score multiplier for quick matching.
You can hold 5 tiles at once.
Extra drop at 1000 points
Additional colors introduced every 1000 points
Controls:
Down arrow to speed up drops
X to drop a tile
if you lose you can reset the cart
Todo:
Need a better game over sound.
Need to fix some bugs with the matching algorithm
(Try this pattern:
__X _X_ XX_ |
)

