Filesystem/BFBB

The filesystem of the Battle For Bikini Bottom disc is composed of multiple folders, each containing multiple HIP and HOP files. Each set of HIP/HOP pair contains data for a level's section. Each folder has a name which is an abbreviation of the level's name. The files also have numbers which refer to the sub section.

Aside from these, the game also has a few other files, such as boot.HIP, font.HIP and plat.HIP, and also sb.ini, which is an easily editable INI file containing a lot of general game settings. It's possible to alter game menus, physics values and enable development options through editing of this file.

The GameCube version of the game also contains many extra files, such as LIP/LOP pairs for each HIP/HOP. These files are not present in other versions of the game and are actually ignored by the game, but they contain leftover data from development that might be useful to help us figure out how the game works.

Level Files

 * B1 - Boss 1
 * B101 - Poseidome
 * B2 - Boss 2
 * B201 - Industrial Park
 * B3 - Boss 3
 * B301 - Unused Musclebob
 * B302 - Kah Rah Tae
 * B303 - The small shall rule... or not
 * BB - Downtown Bikini Bottom
 * BB01 - Downtown Streets
 * BB02 - Rooftops
 * BB03 - Lighthouse
 * BB04 - Sea Needle
 * BC - Barnacle Cave
 * BB01 - Mermalair Entrance
 * BB02 - Mermalair Main Chamber
 * BB03 - Mermalair Security Tunnel
 * BB04 - Rolling Ball Area
 * BB05 - Villain Containment Area (Prawn)
 * DB - Dream Bubble
 * DB01 - Spongebob's Dream
 * DB02 - Sandy's Dream
 * DB03 - Saquidwards's Dream
 * DB04 - Mr. Krabs' Dream
 * DB05 - Patrick's Dream (Unused)
 * DB06 - Patrick's Mind (Final)
 * GL - Goo Lagoon
 * GL01 - Goo Lagoon
 * GL02 - Sea Caves
 * GL03 - Pier
 * GY - Graveyard
 * GY01 - Graveyard Lake
 * GY02 - Graveyard of Souls
 * GY03 - Dutchman's SHIP
 * GY04 - Flying Dutchman
 * HB - Hub
 * HB00 - Prologue (Cutscene)
 * HB01 - Bikini Bottom
 * HB02 - Spongebob's Pineapple
 * HB03 - Squidward's Tiki
 * HB04 - Patrick's Rock
 * HB05 - Sandy's Treedome
 * HB06 - Shady Shoals
 * HB07 - Krusty Krab
 * HB08 - Chum Bucket
 * HB09 - Police Station
 * HB10 - Movie Theater
 * JF - Jellyfish Fields
 * JF01 - Jellyfish Rock
 * JF02 - Jellyfish Caves
 * JF03 - Jellyfish Lake
 * JF04 - King Jellyfish
 * KF - Kelp Forest
 * KF01 - Kelp Forest
 * KF02 - Kelp Swamp
 * KF04 - Kelp Caves
 * KF05 - Kelp Vines
 * PG - Playground
 * PG12 - Spongeball Arena
 * RB - Rock Bottom
 * RB01 - Downtown Rock Bottom
 * RB02 - Rock Bottom Museum
 * RB03 - Trench of Advanced Darkness
 * SM - Sand Mountain
 * SM01 - Ski Lodge
 * SM02 - Guppy Mound
 * SM03 - Flounder Hill
 * SM04 - Sand Mountain

Other Files

 * MN - Menu
 * MNU3
 * MNU4
 * MNU5
 * SP - Single Player
 * SPPA - Patrick
 * SPSB - Spongebob
 * SPSC - Sandy

boot.HIP
The boot.HIP file is loaded as soon as the game starts and is never unloaded, so its assets are always available. It contains:
 * Models, textures, animations and other data for Spongebob and all his bubble abilities, including the BOUL assets for the Bubble Bowl and Spongeball
 * All pickups (shinies, spatula, underwear, even specific level collectables), and the game's only PICK asset
 * The shiny objects given to you by combos
 * Text for character names

font.HIP and font2.HIP
These files are loaded as soon as the game starts and are never unloaded, so their assets are always available. They contains images and text used for textboxes.

plat.HIP
?

mnu3.HIP and mnu3.HOP
These files contain all the data for the game's main menu, including the menu level itself and the UI.

mnu4.HIP
The mnu4.HIP file is loaded as soon as the game starts and is never unloaded, so its assets are always available. It's the game's main file for the pause menu, and contains all assets which control it. It contains:
 * All models, textures, animations and data for the game's pause menu
 * All pause menu UI and UIFT assets
 * Shiny object combo texts
 * Level names
 * Spatula task texts (On top of the Pinapple) - all texts start with PAUSE TASK TXT XXXX in which XXXX is one of the following (there are also texts with the stage's abbreviation letters, but those go unused):

010X - Bikini Bottom 020X - Jellyfish Fields 030X - Downtown Bikini Bottom 040X - Goo Lagoon 050X - Poseidome 060X - Rock Bottom 070X - Mermalair 080X - Sand Mountain 090X - Industrial Park 100X - Kelp Forest 110X - Flying Dutchman's Graveyard 120X - Spongebob's Dream 130X - Chum Bucket Lab 140X - Patrick 150X - Mr. Krabs

mnu5.HIP
The mnu5.HIP file is loaded as soon as the game starts and is never unloaded, so its assets are always available. It contains:
 * All of the game's task counters. Task counters are counters with 3 possible values (0, 1, 2) used by the pause menu to determine if a certain spatula is supposed to appear as a question mark (doesn't allow warping), a silver (uncollected) spatula or a golden spatula. These counters must be set with events sent by each stage's assets; usually, a trigger or dispatcher at level start that disables itself after the first use will send Count1 and collecting the spatula itself will send Count2. These counters do not "take care of themselves" (i.e. if you send Count1 to a counter that already has Count2 set, the golden spatula will become silver again, and your spatula count will not decrease).
 * UIFT and TEXT for the FLY textboxes

Stage HIP and HOP files
Each individual stage HIP and HOP contain the necessary assets for that specific stage to work. They can reference (use resources such as models from and send events to) the assets in boot.hip, mnu4.hip and mnu5.hip at any time. Although any asset can be put in a HIP or HOP file, the game's original stages follow this organization for the asset types: The objects which must have their data in the HOP for a placement in the HIP to work are all enemies, tikis, stage props such as bus stops, checkpoints, taxi stands, Patrick and Sandy.
 * HOP: RWTX, MODL, ANIM, JSP, SND, SNDS, SNDI, COLL, JAW, PIPT, LODT, SHDW, MAPR, CSN, CTOC. Basically, resources which only one instance is needed, used for construction and placement of the HIP assets.
 * HIP: All Object Assets, ALST, ATBL, MINF, LKIT, TEXT. Assets which are used to form the level itself.