BBCode is the text-based type formatting engine in the BBS, name as seen in the Profile settings.
Whereas the Formatting Help menu have referred some of the contents, still some more things are not mentioned. This thread is an unofficial collection of the BBCode, and it will keep on extending indefinitely. Anyone is welcome to add!
Contents
- Escape Letters
- Horizontal Lines
- Text Types(WIP)
- Extended Headings(WIP)
- Lists(WIP)
- Tables(WIP)
- SFX Snippets(WIP)
Escape Letters
Almost all the codes have to use escape letters to explain literal special characters without messing the output. BBCode uses \ for simple escape:
| Code | Text | |||
| *italics* |
Backslash escape will be omitted when explained in a code snippet:
`\[hidden\]` |

In a fractured America, war is no longer fought with soldiers—but on the field. States have become independent powers, and conflict is settled through Cyberball: a brutal, high-stakes sport where massive machines clash for control of territory, resources, and military authority.
These aren’t athletes—they’re towering cybernetic giants, built for speed, power, and destruction. Every play is a calculated act of war. Every game shifts the balance of power.
Tennessee stands at the center of it all.
The Volts are known across the league for their relentless, hard-hitting style—built on raw strength, aggressive offense, and machines designed to break through anything in their path. They don’t play for finesse. They play to dominate.

Personally, I wish for Voxatron EDU, just like Pico-8 EDU exists...
@zep can you make an EDU version of Voxatron

After watching a recent LazyDevs video, I thought I would try to implement smooth diagonal player movement into one of my old games (Nodes). However, when implemented, the only diagonal that works is up/left. Normal left, right, up, down are unaffected. I've been staring at this code for quite a while now and have to admit that I am completely stumped! The code in question is in the tab(1) of the attached cart, this bit in particular:
--diagonal normalise pl_move = ((btn(1)!=btn(0)) and (btn(3) != btn(2))) and 0.7071 or 1 --store old pos for anti-cobble local old_x,old_y=pl_x1,pl_y1 --horizontal movement if btn(⬅️) then if prev_h_dir != -1 then p_flp() end pl_flp, pl_draw_offset=false,2 crect_tmp.x=pl_x1-pl_move if pl_x1>9 and (current_room!=1 or not intersect(crect_tmp,cage_crect)) then pl_x1-=pl_move end prev_h_dir=-1 elseif btn(➡️) then if prev_h_dir != 1 then p_flp() end pl_flp, pl_draw_offset=true,1 crect_tmp.x=pl_x1+pl_move if pl_x1<109.7071 and (current_room!=1 or not intersect(crect_tmp,cage_crect)) then pl_x1+=pl_move end prev_h_dir=1 else prev_h_dir=0 end --scenery collision pl_crect1.x=pl_x1+1 --cage collision crect_tmp.x=pl_x1 --vertical movement if btn(⬆️) then crect_tmp.y=pl_y1-pl_move if pl_y1>17 and (current_room!=1 or not intersect(crect_tmp,cage_crect)) then pl_y1-=pl_move end prev_v_dir=-1 elseif btn(⬇️) then crect_tmp.y=pl_y1+pl_move if pl_y1<110.7071 and (current_room!=1 or not intersect(crect_tmp,cage_crect)) then pl_y1+=pl_move end prev_v_dir=1 else prev_v_dir=0 end -- animate only if moved if pl_x1!=old_x or pl_y1!=old_y then anim_flip(pl) end -- anti-cobble per-axis if pl_x1!=old_x then pl_x1=flr(pl_x1) end if pl_y1!=old_y then pl_y1=flr(pl_y1) end |

A previous version of this cart:
Version 0.3
Controls:
UP for SFX #64
DOWN for SFX #1
LEFT for previous SFX
RIGHT for next SFX
O to play current SFX
X to stop currently playing SFX
Updates:
Changed counter to say v0.3 instead of v3

A previous version of this cart:
Version 0.3
Controls:
UP for SFX #64
DOWN for SFX #1
LEFT for previous SFX
RIGHT for next SFX
O to play current SFX
X to stop currently playing SFX
Updates:
Added 2 more SFX
Previous version here.
Next version doesn't exist yet.
basically making the game following a tutorial
designed a new crab like enemy
no enemy bullets function now
4 waves of enemy then you win
22/4/2026 updates:
- fix a little bug
- change the start screen to "press 'x' to play"
A bonus crazy version I made before:
when getting hurt you can explode all the enemies.

Perform fantastic feats of puzzle-y prowess!
You control the troupe leader - the red acrobat. You also control any connected acrobats (green).
Grab the trophy to complete each feat!
Highwires allow you to drop down to lower areas, ladders let you climb up, trampolines blast you to the other side of the tent, and barrels can be pushed out of the way.
Controls:
- Left and right arrow keys - move acrobats side to side
- Down arrow key - move down a ladder, or down from a highwire
- Up arrow key - move up a ladder
- Z - launch from any connected trampoline
- X - reset the current level
- Enter - menu
Created by Tom Brinton with inspiration from Arthur Brinton

Hey community,
When I try to start Picotron it says the following:
INFO: can not access /desktop INFO: can not access /appdata INFO: picotron home path or is read-only? or / is mounted to a path that is not writeable? |
The traceback at the end of log.txt looks like this:
[000274 001] SDL_AUDIODEVICEADDED 3 [000275 001] run_process_slice() for process 1 error: 2 :43: attempt to call a nil value (global 'yield') [000275 001] -------- traceback: stack traceback: :43: in main chunk --------- [000275 001] SYSTEM ERROR: *runtime error [000275 001] SYSTEM ERROR: :43: attempt to call a nil value (global 'yield') [000275 001] SYSTEM ERROR: stack traceback: :43: in main chunk [000275 001] ** RUNTIME ERROR IN KERNEL ** [000275 001] :43: attempt to call a nil value (global 'yield') |
This seems to be a Windows problem. I tried both the current version (0.2.2b) and the previous one (0.2.2). The latter has been running without problems but now shows exactly the same error. Any ideas?

Myriad Darkness
Developed for B1T Jam 4 (2026).
By: anchobius and midorilovesnekos.
Try it on Itch.io: Myriad Darkness
Football Manager Pico-80s
A football management game inspired by the classic 8-bit games of the early 1980s, including Football Manager and The Boss. You start in Division 4 and work your way up to the top of Division 1.
Competitions include the Four League Divisions, a cup competition and Play-Offs if you miss out on the automatic promotion places.
Transfer
You can buy and sell players (once per week) to improve your squad. Once you enter those menus, you have one chance to buy or sell.
Money
If you run out of money, the bank covers the shortfall automatically and adds it to your loan. If your debts exceed your credit limit after your available funds are taken into account, you are sacked. The credit limit is £250,000 in Division 4 and £1,000,000 in Division 1. Getting sacked deletes your save
Saving
Your game is saved automatically at the end of every season. When you next load the game, you'll be given the choice to start a new game or continue your saved career. Just select "load saved game", and you'll pick up the season you left off.
There's one save slot, so it always holds your most recent completed season. Your progress mid-season is not saved. If you quit during a season and start a new game, that season's progress will be lost.
Feedback
This is a beta release; please report any issues, thoughts and comments in this thread. Now it's your turn to play it.

Version 2 update
I added two different variations of melodic voices. A lead and bass voice. Set any track to variation D and you can enter lead voice notes spanning a little more than an octave on each step using (hold X + ⬆️⬇️). Variation E is the bass voice. These can be added to any track and then you can switch back to the other variations (A-C) and add drum sounds to that same track. In order to delete a melodic note/beat simply double tap X. All other marker types are still deleted with a single tap.
I was having a little trouble getting the save function to retain all of these new configurations but I think I solved it. Let me know if you run into a scenario where the save and load (when resetting the cart) functions don't work.
Ok, here's a little drum sequencer I put together. I crammed a lot of features into this and it leans more into the features than the appearance for sure. Maybe a steep learning curve so start slow. You should definitely explore the ability to set individual track lengths and pingpong mode once you have the start stop, mute, and place beats features down.
It's a tad jittery but I think of it as having a built in humanizer effect. With the right beats it can sound pretty good actually.
Navigation & Basics
Arrow Keys (⬆️⬇️⬅️➡️): Move the player cursor around the grid and sidebar.
X Button: Add or Remove a beat at the current cursor position.
Z + X: Toggle Play / Reset.
Track Controls (Cursor on the Grid)
When your cursor is over the 16-step grid (Player X ≥ 16):
Z + ⬅️ / ➡️: Change the Loop Length for that specific track (min 2, max 16).
Z + ⬆️: Toggle Mute for the specific track.
Z + ⬇️: Toggle Pingpong Mode (The playhead bounces back and forth instead of looping).
Instrument Controls (Cursor on Left Sidebar)
When your cursor is over the track names like "ki", "sn", etc.:
Z + ⬅️ / ➡️: Cycle through Variations A, B, and C.
SFX Slots: A = 0–7, B = 8–15, C = 16–23.
Global & BPM Controls (Cursor on the Bottom Row)
When the cursor is highlighting the "bpm:" line:
Z + ⬆️: Increase BPM (Faster).
Z + ⬇️: Decrease BPM (Slower).
Z + ⬅️: Save Pattern (Stores grid, BPM, mutes, variations, and lengths to memory).
Z + ➡️: Clear Pattern (Wipes all beats from the grid).
feel free to add your own sounds and change things around as you see fit. I could dedicate one channel to melody line and one to a bassline. That might come in a future update if I feel like putting more time into this.






1 comment


