P8Coder is a handy little tool that replaces the lua code in pico-8 cartridges (p8) with the code you write in P8Coder (Windows only, untested with Mono).
It allows to group functions (any code actually) that belong to the same entity/unit in your game and lets you have functions (any kind of code sections) as tabs.
When writing to the cartridge it concatenates all code to one large lua code block as you would have when writing the cart directly in the p8 file or in pico-8.
In its functionality it serves the same way as a project explorer (multiple "files") and a code outline (functions list) but in P8Coder that's all just virtual (no files, just entries in a list). The structure of your projects is up to you.
It stores projects as p8c (P8Coder) files containing the code along with the path to the selected cartridge.
You can use upper-case characters in P8Coder for better readability. Everything will be converted to lower-case on build.
P8Coder has pico-8 lua syntax highlighting and API code hints and can be used entirely with keyboard (F1/F2 to switch entity, ALT+F1/F2 to switch tab, see tooltips for more):
Internal pico-8 spritesheet viewer with zoom and location helper:
Since version 1.2 there's a button in the top-right corner to save the spritesheet as png.
Internal pico-8 map viewer with zoom and location helper:
Pico-8 color table, API cheatsheet and P8Coder GitHub page are just one click away:
Since v1.2 you can configure the way pico-8 launches when running your cartridge:
P8Coder watches changes made to sprites or map data of the loaded cartridge and updates its views automatically.
P8Coder project files (p8c) can be opened with P8Coder from Windows Explorer ("Open with..." and associate the file extension by choosing P8Coder.exe).
If you're looking for other tools for pico-8, check the awesome-PICO-8 collection.
P8Coder overwrites all lua code of the cartridge you select! Everything else (gfx/map/sfx/music) remains untouched.
1.8 - 2020-07-07
1.7 - 2020-06-23
1.6 - 2018-10-20
1.5 - 2018-09-02
1.4 - 2018-05-07
1.3 - 2017-10-20
1.2 - 2017-10-02
1.1 - 2016-11-01
1.0 - 2016-05-13: public release