Log In  

I never imagined I'd be excited about releasing a website update, but here it is! This update addresses many ancient bugs and issues, but also aims to support the PICO-8 / Voxatron fantasy console ecosystem. There are new features to make collaboration, sharing, teaching and exploring carts a little easier.

lexaloffle.com is now also running on a new server, on top of a leaner stack that should be much more responsive. Along with a lot of new code running underneath it all, there will still be some new bugs to deal with (apologies to those who were around earlier this week for the bumpy migration process!) -- feel free to report any issues in the comments here, or in the PICO-8 bugs sub-forum.

New Features


View a feed of everything going on using the Superblog. You can also follow other users to create a tailored feed.

Featured Carts

The list of featured carts (same as in SPLORE) is now sorted by the time each cart was added to the list, so that it's possible to come back periodically and see what's new without digging too much for notable releases. Selection will be based on a combination of user interaction, manual curation, and the phase of the moon. To kick things off, the first few pages of the old featured lists will be fed through a few carts per day.

Featured cartridges also now show up on the main PICO-8 product page. I went with a whirlpool format, where newly featured carts start out big on the left and then get sucked down.

(this screenshot is from my test server -- you can see the live version here)

Custom Cart IDs and Versioning

When submitting a cartridge, you can now choose an alphanumeric id, for example: "spooky_forest". A revision number is automatically appended to the id: "spooky_forest-0". To refer to the most recent version of a cart, you can optionally use the id without the revision number: LOAD("#SPOOKY_FOREST") will download the most recent version.

Unlisted Cartridges

Unlisted carts can now be played online by anyone who knows the id: https://www.lexaloffle.com/bbs/cart_info.php?cid=silly_tree

This can be useful if you want to send someone (or yourself) a cartridge in a semi-private way. The id defaults to a relatively non-guessable string for this reason.

Cart Menu

The cart player now has an extra pull-out menu (top right) that displays more cartridges by the same author, along with some featured carts and a random cart for good luck. This selection is not currently aware of context (e.g. which carts you already visited), so it's not a great way to surf around more than a handful of carts, but I'm hoping it will draw at least a few hapless visitors into the rabbit hole.


If you'd like your cartridge to be embeddable on other websites, there is now an option on the submission page, or enable it on existing carts by pressing the 'edit' link under the cart player.


Each thread has a little notification button that can be toggled:

Any new replies to a thread you are subscribed to, or any @ mention of your username (e.g. @zep) will trigger an email notification. These can be muted with a global option under Settings if they become annoying.

Drafts and Unlisted Threads

New posts can be saved as a draft, and then retrived from your profile page under the 'Posts' section.

If you would like to create a thread that can be viewed via a secret url, you can also create an unlisted thread. Mentioning another user in an unlisted thread will only notify them if they have already posted there. Unlisted threads are handy for things like allowing other people to comment on drafts, semi-open invitations to collaborate or test ideas, and class / workshop threads where participants can share their work without having to make a more visible BBS thread.

Community Tags

Community tags can be added to any post by any user. There are just two tags for the moment:

  • Posts tagged with Mature Content will not be visible in SPLORE when the content_filter is set to 2 in config.txt (this will be easier to set up in future!).

  • Post tagged as spam will go under review to be removed. If your account is older than the posts account when you flag it as spam, the post contents are instantly hidden (plus a few minutes for caching to catch up) until it is reviewed. This is to limit the potential for shenanigans from relatively new users.

User Profiles

If you look under your Settings page, you'll find a place to put a homepage link, plus any social media account names. These show up as little buttons under your name, and at the top of your profile page. There are also options to make your likes and/or favourites lists public from your profile > Carts page.

In the pull-down menu next to each post you can also find an option to pin up to 3 posts to the top of your profile. Alternatively, whole playable cartridges can be included in the "About" field using [# followed by the cart id, followed by #].


Unfortunately there seems to still be a bunch of sleeper spam accounts to be weeded out over time, but it now a little harder for spammers to join up:

To be honest, this is not a very difficult CAPTCHA to defeat, but I'm counting on it not being worth any potential spammer's time to solve it just for one website. And if it came to it, I think we could make new carts faster than spammers can automate their solutions. (SPAMJAM?)

New Cart Players

Both the Voxatron 0.3.5 and PICO-8 0.1.12 players are live! There isn't much to see yet except for a new boot screen in Voxatron, but both players are needed before the binary updates are available to handle newer BBS features. But updates for both are also around the corner.

Missing features

Some things didn't survive the migration (yet), or are unfinished:

  • The 'Code' and 'Copy' buttons on the cart players are missing. I don't think we need copy anymore, because it is easier just to LOAD("#FOO") from inside PICO-8. I miss the Code button, which will return at some point, but possibly in a different form.

  • The GFX, SFX snippets and Tutorial sub-forums are empty because they're new. I've re-organised the way sub-forums are presented (now under 4 broad categories: Carts, Community, Snippets and Support), and the old Graphics and Music subs didn't fit very well. They only had a couple of pages of posts each, so I've bumped them into their respective authors' blogs for now.
P#59457 2018-11-29 18:42 ( Edited 2018-11-29 18:49)


Wow. Awesome update. Thank you! :D Love the new features.

Edit: Oh, and I love the idea of a SPAMJAM! :D

P#59458 2018-11-29 18:50 ( Edited 2018-11-29 18:51)

wooooo! it's great!

lol yesss spamjam

also e-mail notifications are the best thing everrrr

P#59459 2018-11-29 19:26 ( Edited 2018-11-30 03:44)


I love the update, although there are a few bugs posted in the "bugs" subforum already.

I like the embed option! Maybe I don't have to maintain HTML builds to host on itch anymore, although it'd be nice if plates could support a magic string that inserted the BBS id if present (although I don't know if pico-8 is aware of the BBS id if a cart has been loaded with one).

I also really miss the "code" button and hope it will come back soon.

P#59471 2018-11-29 21:02

A) This update is so amazing!

B) plzplzplz bring back code! Was my critical Pico-8 grokking resource!

P#59479 2018-11-30 03:45

I really like that I can now see which carts I've starred.

P#59484 2018-11-30 06:15

Love this new update and all the new features! Makes this an even better place to hang out and support each other.

Would be nice to have some tooltips on the buttons.

Like the thread subscribe button as an envelope looks like its for messaging. And the report options as the down arrow, I thought might be a downvote, but a flag would be better. So on-hover tooltips would make those clear.

P#59494 2018-11-30 12:01 ( Edited 2018-11-30 12:08)


Why remove the Code button? I really, really don't like this. As someone who tends to help people with their code, you've made things very cumbersome. I'll have to download their cart into a folder my browser isn't directed to most of the time, load up pico-8, load the cart, and browse the code in that context, not to mention having to set my browser back to the usual download folder the next time I download something else.

I'm also annoyed about the lack of the Copy button, which was nearly as useful, because if I was trying to help debug something, I'd just copy the cart and the load @clip and be right in the thick of it, no cluttering up my own folder with third party carts I'd have to remember the names of and delete later.

I don't understand why you removed these and I'm not happy about it. This is a serious step backwards for the community of learners and teachers.

P#59554 2018-12-02 01:26 ( Edited 2018-12-02 01:30)

@Felice Zep mentions the Code and Copy buttons at the bottom of the post. They weren't targeted for removal, they simply "didn't survive the migration (yet), or are unfinished". And he plans to bring back the Code button. So I wouldn't call it a serious step backwards, just a temporary misstep.

I agree with zep that Copy is now unnecessary though, because of LOAD(#cartId), which is more intuitive and one less step from how you described using Copy before. So give that a try.

Meanwhile we all are patiently waiting for the Code button's return. Fingers crossed for a short wait.

P#59556 2018-12-02 02:05

@NerdyTeachers @zep
Yeah, I know that, I read the whole thing. He said the Code button would be back, eventually, but in another form. However, for the time being, it's not present in ANY form.

Neither is the Copy button, which isn't expected to return, and I quite liked the Copy button. Copy the cart, load it from clipboard, done. I don't have to look up the cart ID, remember it while I switch contexts, and then type it out again.

These things weren't broken, at least not at my end. They didn't need to be fixed, and they certainly shouldn't have been removed outright without warning (or <gasp> soliciting our opinions?).

The thing is, I hate software updates that do nothing for me except to remove features I like.

I'm sure zep is pleased to have added whatever he likes about these additions, and I'm sure those who benefit from them are likewise happy about them, but for me, this update feels like a step backwards, or a stumble in place, or some other pointless metaphor that describes how I don't like sweeping changes that break things for the sake of feature creep.

Constant incremental change with a community feedback loop would be a far better system than dropping large changes at very long intervals. This is the same sort of system that produces things like Windows 8, where people go off on their own for a year or more and produce something they think people want, and it turns out that if they'd actually involved those people during the process, they'd have found out they needed a different plan.

This applies to PICO-8 as well. PICO-8 stagnates for ages at a time, with reported bugs outstanding, easily a year between releases now, maybe longer, and we have little to no communication in the interim. I'll grant that zep's fixed a bunch of stuff I've reported in the past, and even added a few things I and others have asked for, but the stonewalling between updates is always off-putting.

It's just sad to me that PICO-8, and probably Voxatron as well (I don't use it myself, so I don't know), are so stifled by this slow cadence and lack of back-and-forth. PICO-8 so wants to be an amazing platform that everyone knows and has, but I don't see how that can happen here.

Ah well, back to playing games and trying not to think about how much I wish the world didn't work the way it seems to. I'll probably regret writing this later. (Edit: Nope, I don't.)

(And yes, I realize we're not paying a premium for the product, nor are we paying for the BBS or any ongoing development, but knowing that doesn't preclude me from seeing what looks like a chronic issue, one I've seen before in many other contexts where the eventual outcome was poor, and commenting on it. It does, however, tell me that I shouldn't expect my tiny e-voice to have a meaningful impact on the issues I'm talking about. I am just one person behind a keyboard, like anyone else.)

P#59612 2018-12-03 13:21 ( Edited 2018-12-06 00:43)

A technical note; it seems that having (some?) emoji will cause a post or edit to be silently discarded upon submission. In particular, pasting the "x button" code from pico-8 source into a post was causing it to cryptically fail.

P#59690 2018-12-04 23:16

@zep it seems post time stamps on the thread lists say NaN instead of the correct time stamp. Can you fix that?

P#59693 2018-12-05 00:11

First cent, the tags overwhelm me. I think I'd rather have colored text instead.
Second cent, I liked the copy button too, not sure I will bother with the post number on a whim.
Not a real rant, I'm sure some improvements went over my head, I'm not delving much into the bbs these days...

P#59697 2018-12-05 01:28 ( Edited 2018-12-05 02:35)

@Felice If you (are on desktop and) don't mind installing a userscript, it shouldn't be too hard to hack something together to replicate the copy button...

Depending on your requirements/usecases:

  1. Simple(r) way:
    Wrap each [#cartid#] text bit on the page in a button which copies the text "load #cartid".
    Then you can just paste it in the pico-8 terminal.

  2. Full replication:
    A button which onclick does:
    (CORS allowing) Load the cart image data by XMLHttpRequest (grab path from lil cart link).
    Convert png data to hexadecimal. Insert hex data in between [cart] and [/cart].
    Copy final result to clipboard.

(apologies if this post was rambly it's partially a brain dump)

P#59755 2018-12-06 08:36


I don't mind userscripts, but it really ought to work out of the box.

Your suggestion would actually be a good idea across the whole BBS. I think @zep should add that. Anywhere there's that text, it should be replaced with a copy-load-command-to-clipboard link.

But personally I still kinda prefer the idea of fully copying the cart in text-encoded format.

P#59795 2018-12-07 13:22 ( Edited 2018-12-07 13:35)

I think it would be fine to have both -- clicking the id can fold out a menu with a snippet for pasting into commandline (LOAD #BLAH) and also the old clipboard text method. The clipboad text can be handy for getting around firewalls in some situations.

The code fold-out is coming back before too long too -- I'm just fighting a lot of technical issues right now! (way things turned out, I needed to release Voxatron and the site update around the same time, which is going to be a bumpy ride)

P#59943 2018-12-12 23:54


Thanks, I appreciate that.

While you're tinkering, any chance of adding a time zone to our profiles? Everything is UTC, from the look of it. Have to convert in my head any time I want to know how recent something really is.

HTML really needs an element that's just a UTC datetime object that gets shown in the browser's locale. Sadly, the time tag isn't that.

P#59997 2018-12-14 10:30 ( Edited 2018-12-14 10:33)

Do breadcrumbs work with unlisted carts? I always wanted to create a screen to select a version of a game like a language or the version history and take you to the cart through breadcrumbs and those versions couldn't be accessed without the launcher cart.

P#60391 2018-12-27 17:24

I think I saw a bug with monospace formatting: this shouldn't happen.

The "shouldn't" shouldn't be part of the inline code bit.

(Sorry, didn't know where to write it)

P#60456 2018-12-31 12:06 ( Edited 2018-12-31 12:07)

@Eiyeron yea the inline code/monospace conversion is really broken it seems.

inline code line
this line shouldn't be monospace

(also, the html used is a styled span, when it should be a <code> tag)

uhhhh there are other issues relating to the (handrolled?) markdown conversion and current preview feature but it's late and i'm tired

P#60498 2019-01-02 09:54

when in fullscreen on a chromebook the cursor flashes between where it should be and the top left corner. this makes fullscreen basically unusable and it would be greatly appreciated if that would be fixed.

P#60682 2019-01-08 16:42

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2024-04-16 06:58:31 | 0.057s | Q:47