the cutting room mirror

Unused Code & Oddities

This is a sub-page of The SpongeBob SquarePants Movie (GameCube, PlayStation 2, Xbox).

Unused Code#

Executable Text#

These strings can be found in most (if not all) of the console's executable files.

System/Hex

Text

GameCube: 0x368662 PlayStation 2: 0x51FF8A

X to test lightning

GameCube: 0x370896 PlayStation 2: 0x502250
Xbox: 0x2A36B0

--TakeMeToYourLeader--

GameCube: 0x377029; 0x377034; 0x377041 PlayStation 2: 0x502250; 0x52E254; 0x52E261
Xbox: 0x289A48; 0x289A38; 0x289A28

FMV\promo6
FMV\MakingOf
FMV\Trailer1

GameCube: 0x37801E PlayStation 2: 0x52FF3E
Xbox: 0x29560C

Plasma Brand WhoopAss

These can only be found in the GameCube version.

Hex

Text

Notes

0x37512A

(With apologies to Jim Morrison) This the end, my only friend, The End

Can also be found in Battle for Bikini Bottom.

0x3752D6

SPONGEBOB2:PATRICK'SREVENGE::RyanNeilDan

0x3A5FA0

SpongeBob: Naught Four
Build 127
(c) 2004 Heavy Iron Studios
Confidential -- internal use only
GameCube build: Sep  5 2004, 13:26:17

Judging from a later Evil Engine prototype for Ratatouille, this build information was likely displayed over the initial copyright screen from the final game.

0x3BCCEC

DVDChangeDiskAsync(): You can't specify NULL to company name.

These can only be found in the PlayStation 2 version.

Hex

Text

Notes

0x52E6BA

Hello and Welcome.......................
........................................
Programming Team:.......................
Amrit Dharwadkar........................
Randy Dillon............................
Neil Ka'apuni...........................
Ryan Mapes..............................
Karen Paik..............................
Mark Pope...............................
Eric Will...............................
We Thank You For Playing!...............
(and with us in spirit ...).............
Jason Hoerner...........................
Philip Nowell...........................
Justin Wilder...........................

These can only be found in the Xbox version.

Hex

Text

Notes

0x2A3A18

This is not the Scooby-Doo Game Disc. Please insert the Scooby-Doo Game Disc.

Leftovers from the GameCube version of Scooby-Doo! Night of 100 Frights.

0x2A3A68

Please insert the Scooby-Doo Game Disc.

0x2C8900

SpongeBob: Naught Four
Build 124
(c) 2004 Heavy Iron Studios
Confidential -- internal use only
Xbox build: Sep  3 2004, 02:43:41

Judging from a later Evil Engine prototype for Ratatouille, this build information was likely displayed over the initial copyright screen from the final game.

SB04.INI#

The game's main initialization file contains a few debug settings and a lot of commentary.

Goofy Goober Platform Level#

#   PLS6:   Spongebob Goober Dream
#   PLP6:   Patrick Goober Dream


# Goofy Goober Platform Level
# PointerPlayerMapping = GG01 PLS6 PLS6 PLS6 PLP6 PLS6

TaskStatus =    GG01    0   0   0   0   0   0   # World 13 (Disabled, to be removed)

A disabled world slot for a Goofy Goober platform level can be found. Seeing how the first "PointerPlayerMapping" listed is for PLS6 (SpongeBob's GG costume), it implies that it was mainly designed for SpongeBob (further supported by all Sonic Wave tutorial dialogue being internally labeled "GGP"). Additionally, the music in "I'm Ready... Depression" and "Sundae Driving" is internally named music_gg_plat, making it likely that it was originally composed for this level.

(Source: Waschpenner)

Debug Task Menu#

# Task menu (says where to warp to for each task)
#Menu01 = BB 01 02
#Menu02 = DE 01 02
#Menu03 = TT 01 02 03
#Menu04 = TR 01 02
#Menu05 = JK 01 02 03
#Menu06 = GG 01 02
#Menu07 = SC 01 02 03
#Menu08 = PT 01 02 03
#Menu09 = TL 01 02 70
#Menu11 = B1 01
#Menu12 = B2 01
#Menu13 = B3 01
#Menu14 = B4 01

A debug warp menu that still uses the Battle for Bikini Bottom task setup (warp rows shared a scene folder). It lists a row for test levels (TL), but it also lists scene IDs for story levels scrapped from final game (TT03, JK03, GG01, SC01, SC03). A handful of story levels are also missing (BB03, TR03, B402, and all AM/FB/BL levels).

Soak Test#

# Soak these levels (alternative to "SOAK")
# BOOT = AM01 AM02 AM03 BB01 BB02 BB03 DE01 DE02 TT01 TT02 B101 TR01 TR02 TR03 JK01 JK02 B201 GG02 SC02 B301 PT01 PT02 PT03 B401 B402 BL01 BL02 BL03 BL04 FB01 FB02 FB03

These are parameters for a soak, a test for finding memory issues. Upon leaving the main menu, it loads the game's levels on an indefinite loop. It loads every level for 1-7 seconds in order, reverse order, and finally at random. If a cutscene is present, it will play a short clip of it twice. Oddly enough, this test doesn't load into AM04 (the "Ultimate" Combat Challenge).

Floating Block 4#

ScenePlayerMapping  = FB04 PLP3         #Patrick start

Settings for a fourth Floating Block level. Perhaps "I'm Ready... Depression" was planned to have one, before "Three... Thousand Miles to Shell City" inherited FB01, leaving it with only five challenges.

Play Music#

# Play music?       1 == YES, 0 == NO
NoMusic = 0

Setting this to 1 disables music, regardless of volume, yet the comment claims the opposite. Oddly enough, it won't disable the failure theme.

Japanese Setting#

# Default language.  No setting defaults to US for NTSC or UK for PAL.
DefaultRegion = US
LanguageSetting = US
LanguageSetting = JP

The Xbox version of SB04.INI contains a language setting for Japanese, despite the game never releasing in Japan. This is likely a remnant from the ini for The Incredibles, which was also being developed by Heavy Iron Studios and did release in Japan.

Collectibles#

# Initial inventory counts (useful for debugging)
G.InitialShinyCount     = 0
G.InitialSpatulaCount   = 0

Sets the number of collectibles for the player on a new game. The settings are still internally named after the collectibles from Battle for Bikini Bottom. G.InitialShinyCount refers to Manliness Points and G.InitialSpatulaCount refers to Goofy Goober Tokens.

Atomic Order#

# REMOVED - SEE spongebobCostumeAtomicOrder IN ZENTPLAYER INSTEAD
# Model ordering indices for SB.  Change these whenever the exporter chooses a different random order.
# SB.model_index.body             = 0
# ... removed, see source control if you need it ...
# SB.model_index.shadow_wand      = 15

This originally allowed developers to change the model indices for SpongeBob, before being hardcoded. Setting the order of models fixes an issue where SpongeBob isn't visible, but other objects in his model are, due to a quirk in the RenderWare exporter.

Attract Mode Timer#

# Allow attract mode timer to run during gameplay?
# (Good for public demo builds)
G.AttractModeDuringGameplay = 0

An unused attract mode. If the game idled long enough, it would have automatically quit back to the main menu.

Playback Mode#

# Playback options:
# PlaybackMode:  0 - off, 1 - record, 2 - play, 3 - play and dump frames
# PlaybackFile:  sets the filename to dump playback data into
# ScreenDumpPath sets the folder to dump into (for example, "c:\sb\dump\")
# ScreenDumpStartFrame and ScreenDumpEndFrame set a frame range to dump
# ForceCinematic:  if > 0, plays the nth cinematic in the scene
# ForceAllCinematics: if > 0, plays all cinematics in the scene for 2 seconds each
#
# To record:
#   1) Set PlaybackMode to 1
#   2) Run the game (controller data will be saved internally)
#   3) If you are happy with the recording, press triangle/Y on the debug
#      controller -- this will write the data to the PlaybackFile
#   4) Rerun the game with PlaybackMode set to 2 or 3 to play or play/dump the frames

# Screen dump stuff
#ScreenDumpPath = C:\SB04\BUILD_P2\Screenshots\
#ScreenDumpStartFrame    =  0
#ScreenDumpEndFrame      =  65535

PlaybackMode = 0
PlaybackFile = test.pbk
ScreenDumpPath = C:\SB04\BUILD_P2\Screenshots\
ScreenDumpStartFrame = 0
ScreenDumpEndFrame   = 65535
ForceCinematic       = 0
ForceAllCinematics   = 0

This, obviously, allowed the devs to record gameplay and take screenshots.

Debug Mode#

DebugMode = 

A setting for debug mode.

No FMVs#

NoMovies = 0

A setting for skipping full motion videos.

No Cinematics#

NoCutscenes = 0

A setting for skipping in-game cutscenes.

Cheats#

# Cheats enabled?
G.CheatSpongeball       = 0
G.CheatPlayerSwitch     = 0
# Can I always portal with the pause menu? 1 == YES, 0 == NO
G.CheatAlwaysPortal     = 0
G.CheatFlyToggle        = 1
G.FriendlySelectMode    = 0
G.DisableForceConversation = 0

A couple of cheats.

Test Level Mappings#

# n. Test Levels
ScenePlayerMapping  = TL00 PLS3 PLP3    #SpongeBob start
ScenePlayerMapping  = TL01 PLS3
ScenePlayerMapping  = TL02 PLP3
ScenePlayerMapping  = TL03 PLS3 PLP3
ScenePlayerMapping  = TL04 PLS3 PLP3
ScenePlayerMapping  = TL05 PLY2 PLS3 PLP3
ScenePlayerMapping  = TL06 PLS3 PLP3
ScenePlayerMapping  = TL07 PLS3 PLP3    #SpongeBob start
ScenePlayerMapping  = TL08 PLS3 PLP3
ScenePlayerMapping  = TL09 PLS3 PLP3

ScenePlayerMapping  = TL10 PLS3 PLP3
ScenePlayerMapping  = TL11 PLS3 PLP3
ScenePlayerMapping  = TL12 PLS3 PLP3
ScenePlayerMapping  = TL13 PLS3 PLP3
ScenePlayerMapping  = TL14 PLS3 PLP3
ScenePlayerMapping  = TL15 PLS3 PLP3
ScenePlayerMapping  = TL16 PLS3 PLP3
ScenePlayerMapping  = TL17 PLS3 PLP3
ScenePlayerMapping  = TL18 PLS3 PLP3
ScenePlayerMapping  = TL19 PLS3 PLP3

ScenePlayerMapping  = TL20 PLS3 PLP3
ScenePlayerMapping  = TL21 PLS3 PLP3
ScenePlayerMapping  = TL22 PLS3 PLP3
ScenePlayerMapping  = TL23 PLS3 PLP3
ScenePlayerMapping  = TL24 PLS3 PLP3
ScenePlayerMapping  = TL25 PLS3 PLP3
ScenePlayerMapping  = TL26 PLS3 PLP3
ScenePlayerMapping  = TL27 PLS3 PLP3
ScenePlayerMapping  = TL28 PLS3 PLP3
ScenePlayerMapping  = TL29 PLS3 PLP3

####

ScenePlayerMapping  = TL61 PLS3 PLP3
ScenePlayerMapping  = TL62 PLS3 PLP3
ScenePlayerMapping  = TL63 PLS3 PLP3


ScenePlayerMapping  = TL70 PLS3 PLP3
ScenePlayerMapping  = TL71 PLS3 PLP3
ScenePlayerMapping  = TL72 PLS3 PLP3
ScenePlayerMapping  = TL73 PLS3 PLP3
ScenePlayerMapping  = TL74 PLS3 PLP3
ScenePlayerMapping  = TL75 PLS3 PLP3
ScenePlayerMapping  = TL76 PLS3 PLP3
ScenePlayerMapping  = TL77 PLS3 PLP3
ScenePlayerMapping  = TL78 PLS3 PLP3
ScenePlayerMapping  = TL79 PLS3 PLP3

ScenePlayerMapping  = TL80 PLS3 PLP3
ScenePlayerMapping  = TL81 PLS3 PLP3
ScenePlayerMapping  = TL82 PLS3 PLP3
ScenePlayerMapping  = TL83 PLS3 PLP3
ScenePlayerMapping  = TL84 PLS3 PLP3
ScenePlayerMapping  = TL85 PLS3 PLP3
ScenePlayerMapping  = TL86 PLS3 PLP3
ScenePlayerMapping  = TL87 PLS3 PLP3
ScenePlayerMapping  = TL88 PLS3 PLP3
ScenePlayerMapping  = TL89 PLS3 PLP3

ScenePlayerMapping  = TL90 PLS3 PLP3
ScenePlayerMapping  = TL91 PLS3 PLP3
ScenePlayerMapping  = TL92 PLS3 PLP3
ScenePlayerMapping  = TL93 PLS3 PLP3
ScenePlayerMapping  = TL94 PLS3 PLP3
ScenePlayerMapping  = TL95 PLS3 PLP3
ScenePlayerMapping  = TL96 PLS3 PLP3
ScenePlayerMapping  = TL97 PLS3 PLP3
ScenePlayerMapping  = TL98 PLS3 PLP3
ScenePlayerMapping  = TL99 PLS3 PLP3

Player mappings for up to 100 potential test levels. Most of them are duplicates, but TL01, TL02, and TL05 uniquely assign SpongeBob alone, Patrick alone, and the Patty Wagon respectively. The Patty Wagon level redundantly maps on SpongeBob and Patrick's platforming files too.

Secondary Mappings#

ScenePlayerMapping  = BB02 PLS1 PLP1    #SpongeBob start
ScenePlayerMapping  = TR02 PLS5 PLP5    #SpongeBob start
ScenePlayerMapping  = JK02 PLP3 PLS3    #Patrick start

No Cheese! (BB02), Now That We're Men 1/2 (TR02), and Shell City Dead Ahead 2/2 (JK02) map secondary players, despite not having Port-O-Heads for switching characters. Interestingly, No Cheese! maps Plain Patrick (PLP1), unique from the parachuting Patrick object used in the level. In the final game, Plain Patrick is only seen when enabling the costume from the Extras menu.

Alternate Costume Mappings#

#--------------------------------------------------------------------------------
#  Alternate costume list
#  e.g. 
#      AlternateCostumeMapping = BB01 PLS2 PLSA
#      Substitutes costume PLSA for PLS2 if the costume is unlocked.
#--------------------------------------------------------------------------------
AlternateCostumeMapping = BB02 PLS1 PLSA
AlternateCostumeMapping = DE01 PLS3 PLSB
AlternateCostumeMapping = TR02 PLS5 PLSC
AlternateCostumeMapping = PT01 PLS3 PLSD
AlternateCostumeMapping = BB03 PLP2 PLPA
AlternateCostumeMapping = JK01 PLP3 PLPB
AlternateCostumeMapping = TT01 PLP4 PLPC

A system for applying player cosmetics to specific levels: SpongeGar in "No Cheese!", Mermaid Man in "Three... Thousand Miles to Shell City," Ripped Pants SpongeBob in "Now That We're Men...," Plain Sponge in "Planktopolis Minions", Patar in "I'm Ready... Depression," Disco Patrick in "Shell City, Dead Ahead," and Goofy Goober Pat in "Bubble Blowing Baby Hunt."
This function does not appear to work, as only two player cosmetics are active at a time (one for SpongeBob and Patrick each) in any level.

Early Upgrade Requirement Values#

By deleting the Upgrade Point requirement values from SB04.INI, hardcoded ones are revealed from the E3 demo. Each upgrade requires 1,000 more points than the last (1,000 more for the second upgrade, 2,000 for the third, 3,000, and so on). Partly because of this, the first upgrade is free, the second is cheaper, and the last nears the cap of 99,999.

Upgrade

Early

Final

1

0

250

2

1,000

1,500

3

3,000

3,000

4

6,000

5,000

5

10,000

7,000

6

15,000

9,000

7

21,000

11,000

8

28,000

14,000

9

36,000

17,000

10

45,000

20,000

11

55,000

23,000

12

66,000

27,000

13

78,000

31,000

14

91,000

35,000

Early Enemy Manliness Point Values#

By deleting the enemy Manliness Point values from SB04.INI, different hardcoded values are revealed. Most enemies grant the same number of Manliness Points, but a few enemies differ.

Enemy Type

Early

Final

Thug/Trench Fogger

10

15

Goofy Slammer

50

30

Desert Slammer

60

35

Thug Slammer

75

40

Bucket-O-Tron

300

50

Early Manliness Point Pickup Values#

By deleting the Manliness Point Pickup values from SB04.INI, different hardcoded values are revealed which are much higher.

MP Color

Early

Final

Red

1

1

Yellow

5

2

Green

10

5

Blue

25

10

Purple

100

50

(Source: Willcon2000)

General Unused Code#

Challenge Timer Text#

A leftover timerace_clock_text asset is present in the Combat Arena and SpongeBall Challenges. These challenges likely had set times planned, but it's more likely that the text is a carryover from the Floating Block Challenges.

Planned Turret Projectiles#

Turret enemies found across different levels were planned to have unique designs. Despite all of them borrowing the missile from BfBB, their projectile models have unique names. Turrets were planned to fire tiny kegs in BBBH (fx_tur_v1_tinykeg.dff), lava rocks in NTWM (fx_tur_v2_lavarock.dff), and peanuts in Planktopolis (fx_tur_v3_peanut.dff). Although, the peanut projectiles are likely a remnant from the scrapped Goofy Goober platforming level (GG01).

(Source: Koopa Eliminator)

Popper v2 Enemy Type#

There is a scrapped Popper enemy type called "NME_TYPE_POPPER_V2." The code calls for a projectile model called "fx_pop_v2_gumball.dff," which suggests that "NME_TYPE_POPPER_V2" was intended for the scrapped Goofy Goober Dream platforming level. "NME_TYPE_POPPER_V2" shoots five pellets at a medium speed while leaving a yellow trail in its wake. For comparison, Popper v1 leaves a green trail and shoots three pellets at a slow speed, while Popper v3 leaves a blue trail and shoots seven pellets at a high speed.

Start Menu Credits UI#

SBMovie-Console-MNUS-START_4_CREDITS_UIF.png

In the Main Menu's files, a fully functioning Credits selection remains, being placed between Options and Promotional Materials. It originally served the same role as it did in Battle for Bikini Bottom. The credits are identical to how they appear at end of the game. Scrolling through all the credits automatically returns to the Main Menu.

Overscan Safe Area#

SBMovie-Console-MNUI-_XBOX_SAFE_AREA.png

In the pause menu's files, there is a box outlining the area in which the UI is safe from being cropped by overscan, a setting commonly found on commercial CRT televisions where a good portion of the output signal is hidden beyond the screen's edges.

Enemy Viewer Menu#

During the game's credits, there is unique dialogue from SpongeBob and friends reacting negatively to "these guys," calling them "fiends." Seeing how the name of the Sound Group for these clips is called "MENU_SND_ENEMIES SGRP" it is highly likely that a sub-menu was planned for viewing enemies, similar to the Robot Viewer from BfBB.

Trivia Menu#

The menu dialogue for the "knowledge is money," "wrote this stuff down" and "sanctum sanctorum" voice lines are also assigned to an unused Sound Group internally named "MENU_SND_TRIVIA SGRP," suggesting that they were originally intended for a menu that provided trivia facts.

No Cheese!#

Jellyfish Fields Light Kit#

A Jellyfish Fields light kit (jf01_light_kit) remains, which is the default lighting for many levels, likely making it a placeholder.

I'm Ready... Depression#

Pointers#

There are five leftover duplicates of the "Sponge on a Wire" challenge pointer (POINTER_02_01_BB03). They are labeled from 6-10, suggesting that the level originally had up to ten challenges to complete.

Combat Arena Challenge (Depression)#

Combat Arena Skeleton Pile Leftover#

Assets for the breakable pile of bones seen in levels such as "I'll Let You Pet Mr. Whiskers" and "Rock Slide" are present in AM01. These are likely remnants from when the level was using the "I'll Let You Pet Mr. Whiskers" battle arena as a placeholder (seen in E3 footage). These leftovers are present in every combat challenge except the combat arena from "Welcome to Planktopolis... Minions."

Sandwich Driving 101#

Early Time Challenge Textboxes#

These early designs for Time Challenge UI can be found in Sandwich Driving 101, No Weenie Parking Anytime, and Drive of the Knucklehead-McSpazitron.

Player Death Fail Script#

Watch on YouTubePLAYERDEATH_FAIL_SCRIPT is an early version of the Patty Wagon's "Challenge Failed" script. It only turns off player control, briefly shows the failure message, and resets the scene after 1.7 seconds.

0.1 => ControlOff => PLAYER_WIDGET
0.2 => Visible => CHALLENGE_TEXTBOX
0.7 => Invisible => CHALLENGE_TEXTBOX
1.7 => ForceSceneReset => BB01_DISP

Challenge Pointer#

A warp pointer for the main challenge (POINTER_03_01_BB01) is present with a 235.35 yaw instead of 235. Despite being referenced in SB04.INI, this pointer is ignored by the game because the Patty Wagon is hardcoded to always use the Player Widget.

Three... Thousand Miles to Shell City#

Hidden Bungee Timers#

Upon starting any Bungee challenge, a hidden timer counts down. The timers are set to 120, 100, and 60 seconds respectively. Based on their decreasing pattern and lack of event links, these timers imply that bungee challenges were originally under a time limit.

Three... Thousand Miles to Shell City

Now That We're Men

Welcome to Planktopolis... Minions

Bubble Blowing Baby Hunt#

Steel Safe Leftovers#

Leftover assets for Steel Safes remain in Bubble Blowing Baby Hunt, suggesting that they might have planned to appear.

SpongeBall Yellow Manliness Points#

In the Bubble Blowing Baby Hunt SpongeBall Challenge, there are several red manliness points internally labeled as yellow. Their values may have changed in development.

Retail

Beta

Retail

Beta

Retail

Beta

No Weenie Parking Anytime#

Challenge Pointers#

An unused START_POINTER as well as set of ten task pointers (TT02_TASK_POINTER_01 through 10) are present. Since the task pointers don't align with their names in SB04.INI (pointer_07_0#_tt02), they are also ignored by the pause menu. Even so, the pointers would have been ignored anyway since the Patty Wagon is hardcoded to use the Player Widget for spawn position.

Rock Slide#

Challenge Pointers#

There exists four challenge pointers that do nothing. Internally, the task menu is searching for pointers labeled POINTER_09_##_TR01, but since they are incorrectly labeled as POINTER_10_##_TR01, the game defaults to the initial player position for each challenge.

Cloud Effect#

SBMovie-Console-TR01-PARTICLE_CLOUD_OBJ.png

There is a cloud of fog covering the far wall in the level, but is invisible in-game due to its model having a level-of-detail distance of zero.

Now That We're Men...#

Fogger Difficulty Balancing#

NTWM part 2 contains a leftover attack-prep animation (fog_attack_prep02) used by the fast Fogger variant in the trench themed Combat Arena. This indicates that Foggers were made slower in NTWM and likely Planktopolis since it also has a fast Fogger variant in a Combat Arena. Strangely, Rock Slide utilizes a fast Fogger variant despite them rarely having time to attack.

Combat Arena Challenge (NTWM)#

Leftover Crate Types#

Despite only Balloon Boxes and Thunder Barrels being used in the level, leftovers exist for wooden Supply Crates and shrinking Supply Computers, suggesting that they may have been used at some point.

Floating Block Challenge (NTWM)#

Beacon Script#

SBMovie-Console-Beacon_Script.gif

There is an unused script called BEACON_SCRIPT which highlights the ending platform with a unique expanding effect. It was intended to highlight the ending platform during the skydive. This effect has a tendency to flicker if restored on the Xbox version, likely being a reason for its removal.

Shell City, Dead Ahead#

Beta Light Kit#

A leftover light kit (jk01_light_kit) remains. It was likely used early in development, but it did make its way to the final version of the Frogfish boss fight.

jk01_light_kit (Early)

jk01_player_light_kit (Final)

Plankton TV Counter#

Despite SCDA's final TV being what ultimately spawns the main token, a hidden counter (TV_COUNTER_01) also tries keeping track of the total TVs destroyed to spawn it. Since SCDA is split with a loading zone, conflicts arise with tracking the total, ultimately making the counter ineffective.

Expired => CollisionVisibleOn => GGTOKEN_ENDLEVEL_PWRUP

JK02 Token Counter Dispatcher#

SCDA Part 2 internally sets SCDA's main challenge menu counter to unlocked (Count2), but since this value was already set in part 1, there's no in-game difference.
Done by TOKEN_COUNTER_DISP.

ScenePrepare => Count2 => COUNTER_11_01_JK01
RoomPrepare => Disable => TOKEN_COUNTER_DISP

Turret v3 in JK02#

Leftover assets for a Planktopolis Turret remain in Shell City, Dead Ahead (Part 2), suggesting that Turrets might have been planned to appear.

Combat Arena Planned for SCDA#

Judging from the presence of a "CombatArenaChallegeText" asset in the text for the level, it's likely that a Combat Arena challenge was planned to appear at some point.

SpongeBall Challenge (SCDA)#

Spinner Assets#

Assets for Thug Tug Spinner enemies are present, despite the challenge having none to defeat. Considering that SpongeBall challenges borrow the overhead lamps from "Bubble Blowing Baby Hunt," it could be a simple case of copying over too much.

Floating Block Challenge (SCDA)#

Icy Bubble Blocks#

SBMovie-Console-FB03-Icy_Bubble_Blocks.png

In SCDA's Floating Block challenge, this highlighted set of bubble blocks were originally ice blocks. Internally, these blocks are labeled as "ICE_ROTO_SCL_SPK_MECH" (ice, rotating, scaling, spike, mechanism), and it may even suggest that they were planned to be a hybrid of icy and bubbly, having both a slippery surface as well as shrinking properties.

Sundae Driving#

Manually Closed Barrier#

During the first Time Challenge, crossing the finish line will manually close the exit barrier. Despite this action being made redundant by the "ForceSceneReset" Event, it likely suggests that this Event had not been programmed before the challenges were being implemented.
Done by RACE_2_END_SCRIPT_01:

2 => CollisionVisibleOn => EXIT_BARRIER_GROUP_1
2 => CollisionVisibleOff => EXIT_BARRIER_GROUP_2

Google Eyes and Smelly Knick Knacks#

Third Starfish NPC Voice#

In Google-Eyes and Smelly Knick Knacks, the Sound Group for the starfish NPCs (STARFISH_SNDGRP) targets a missing voice clip with an asset ID of 0x0A8A0E67. It is likely that a third voice for a starfish was planned at some point, as an even 3/9 entries are assigned to it.

Welcome to Planktopolis... Minions#

Popper MVPT GRUP Differences#

Due to memory limitations, the level "Welcome to Planktopolis... Minions" was split between two areas (PT01, PT03). All enemy positions from the first area (PT01) were removed in the second (PT03). However, two deleted Popper enemies from PT01 kept their MovePoint Groups in PT03. MovePoint Groups tell a Popper which points it can travel to. For POPPER_V3_ENEMY_4C, its GRUP (POPPER_V3_4C_GRP_01) reveals that it originally had four MovePoints before being reduced to three in the final game. Finally, for POPPER_V3_ENEMY_2C, its GRUP (POPPER_V3_2C_GRP_01) reveals that it originally had three MovePoints before being increased to four in the final game.

Junk Spinner Texture in Planktopolis#

Among the assets for PT03 (Welcome to Planktopolis... Minions Part 2) is a leftover texture for a Junk Spinner. Since this level contains one Planktopolis-themed Spinner enemy, it's likely that the Junk-themed Spinner enemy was used as a placeholder.

Jellyfish Fields Light Kit#

A placeholder jf01_light_kit remains in area 2 (PT03). Interestingly, it still gets used mistakenly in area 1 (PT01) by the player instead of pt02_light_kit, but this gets corrected after entering a light kit trigger.

Plankton's Riddle Timers#

Watch on YouTubeAmong the assets for Plankton's Riddle is a set of PUZZLE_TIMER assets which resemble early versions of the scripts used in the final game for pressing two wrong buttons. They are more basic with no polish. They only rise the lava and unload the surrounding platforms in a blink. Additionally, getting the puzzle wrong a third time didn't originally "sink" PLAT_SIMP_09, notably a platform leading to a correct button. Finally, getting the puzzle wrong a fourth time would make PLAT_SIMP_06 "sink," an unused platform below a wrong button.

Drive of the Knucklehead-McSpazitron#

Balloon Boxes in PT02#

Leftover assets for Hover Crates remain in Drive of the Knucklehead-McSpazitron, suggesting that they might have planned to appear.

Alternate Player Lighting#

SBMovie-Console-pt02 player lightkit.png

There is an used Light Kit in the level called pt02_player_lightkit, and it's noticeably darker and warmer.

Main Challenge Alternate Ending#

Watch on YouTubeAn unused script called "MINDY_1_END_SCRIPT(NOT USED)" can be found. Since the main challenge utilizes a unique ending cinematic instead of the generic token celebration, this script got scrapped. Oddly enough, it transitions to Mindy's Time Challenge instead of the final boss, and it is done very abruptly (three seconds sooner). The script's timings also haven't been rounded to the nearest second.
Note that MUSIC_SUCCESS_SCRIPT being Run twice is also a development oversight.

0.1 => ControlOff => PLAYER_WIDGET
1.1 => EndConversation => MINDY_1_MAINCHAL_TASKBOX
1.1 => Run => MUSIC_SUCCESS_SCRIPT
1.1 => Switch => REWARD_CAM
1.1 => Run => MUSIC_SUCCESS_SCRIPT
1.1 => Visible => MINDY_1_MAINCHAL_TOKEN
1.1 => CelebrationAnimPlay => PATRICK_NPC
1.1 => CelebrationAnimPlay => SPONGEBOB_NPC
4.1 => Pickup => MINDY_1_MAINCHAL_TOKEN
4.1 => Count3 => COUNTER_18_01_PT02
4.1 => Count2 => COUNTER_18_02_PT02
4.1 => Count2 => COUNTER_19_01_B401
6.1 => StartConversation => MINDY_2_TIMERACE_TASKBOX

Turn the Tables on Plankton#

Challenge Pointers#

There exists several challenge pointers (labeled B401_TASK_POINTER_01-10) intended for the warp menu. Since they are not correctly labeled as "pointer_19_##_b401", the warp menu falls back on the Player Widget's position when warping to the boss. Despite this, "B401_TASK_POINTER_01" is still used in the final game for warping in front of the Goofy Goober Token, albeit at an uneven 90.29998 degree rotation.

Flythroughs and Cameras#

I'm Ready... Depression#

SBMovie-Console-SIDE2_CAM_01.png

There is an unused camera for the "An Ounce of Bounce" challenge room. Its intended use is unknown.

Sandwich Driving 101#

SBMovie-Console-MINDY_MEDIUM_CAM.png

There's an unused "medium" camera for Mindy. Only the "wide" and "close" cameras are used when she speaks.

Three... Thousand Miles to Shell City#

SBMovie-Console-DE01-MINDY_CAM_01.png

An early camera position for Mindy's dialogue for where she was initially placed in the level.

SBMovie-Console-DE01-SB_CAM_01.png

An early camera position for SpongeBob's dialogue for where he was initially placed in the level.

SBMovie-Console-DE01-WHEEL_CAM_01.png

A camera for an unknown wheel object.

SpongeBall Challenge (BBBH)#

SBMovie-Console-BL02-SPONGEBOB_CAM_01.png

The SpongeBall Challenge contains a "SpongeBob Cam" off to the side of the track.

Now That We're Men...#

Watch on YouTubeThe second half of Now That We're Men at one point was supposed to have a flythrough of that section. No flythrough is present in the final game.

SBMovie-Console-BUCKETOTRON_KILL_CAM_01.png

There is a camera for the last Bucket-O-Tron intended for showing it self-destruct.

SBMovie-Console-TR02-REWARD_CAM.png

A camera called REWARD_CAM remains out of bounds. Its coordinates are identical to the REWARD_CAM found in Rub a Dub Dub, Slip Slide in the Tub.

Shell City, Dead Ahead#

An early version of Mindy's Close camera can be found in part 2 of the level. Mindy may have been repositioned:

MINDY_CLOSE_CAM (Early)

MINDY_CLOSE_CAM (Final)

Alternate angles for Mindy's conversation camera:

MINDY_CAM_01

MINDY_CAM_02

Sundae Driving#

Watch on YouTubeThe Sundae Driving flythrough had more of a focus on the goofy goober you're supposed to chase through the level.

Oddities and Oversights#

To do:
Leftovers from other parts of "Exit Levels", suggesting they were going to be full levels than split into two parts.

General Oddities#

Treasure Chest Counter#

The shade of yellow used by the pause menu's treasure chest counter mistakenly uses a value of e6c800 instead of the lighter ffe600. Aside from being the wrong color, this text is also made visible without fading in.

Retail (e6c800)

Corrected (ffe600)

Mindy's Forced Pause Always Opens Rub a Dub#

During an automatic game pause, Rub a Dub Dub, Slip Slide in the Tub is the default level selected, as opposed to the current level. ABILITY_FAIL_SCRIPT sends the event called SetPauseState_Pause, and it will not let the aptly named CURRENT_LEVEL_COUNTER update properly. This causes it to default to its starting value of 5 (for level five). This oversight can be fixed by sending PauseGameSafe instead, although Mindy's current TaskBox must be closed.

Swinger Solidity#

SBMovie-Console-BB03-PAT_SWINGER_SIMP_01.png

While Patrick's swingers are typically non-solid, a few levels give them collision: I'm Ready... Depression, Three... Thousand Miles to Shell City, and Welcome to Planktopolis... Minions, with the latter being the only one with a no-stand surface.

Ring Sound Effect Missing in Most Sonic Wave Challenges#

When a ring appears during the Sonic Wave Challenges in Bubble "Blowing Baby Hunt" and "Shell City, Dead Ahead," wgt_ring_appear01 never plays as it's missing from the level. As a result, these specific challenges only cycle through 3/4 of the intended sound effects. Additionally, the ring's Sound Group in these levels are also named differently, called RING_APPEAR_SGRP and RINGS_SGRP respectively instead of RING_APPEAR_SFX_GROUP, suggesting that the challenges use an earlier version of the ring challenge "template."

Message Box Timing#

When a text box appears in Bubble "Blowing Baby Hunt", "Now That We're Men..." and "Shell City, Dead Ahead," they are only shown for a duration of 4 seconds instead of the usual 5 seconds in other levels, making it harder to read challenge-unlock text.

No Cheese!#

Truck Collision Mesh#

TSSMG-Console-Nocheese-Invisible-Truck.png

If the level "No Cheese!" is reloaded before the truck finishes crashing, it will cause the truck to get stuck behind the pile of Krusty Krab crates. Approaching where the truck should have crashed reveals invisible collision, including ledge-grab collision for the storage crates used to progress in the level.
Reloading the level within 1.3 seconds of TRUCK_CRASH_SCRIPT_01 running will result in TRUCK_ON_DISP_01 remaining disabled, which prevents the crashed version of the truck from spawning when the level resets. Since the script is run by a trigger that immediately disables itself, it is impossible to correct without starting a new game.

(Source: Teh_supar_hackr)

Truck Collision Mesh 2#

The truck scripted to crash into these crates has its bottom collision enabled before reaching them. Since two of the crates rest inside it, they are pushed to the top.

In-Editor

In-Game

Warp Position Discrepancy#

In No Cheese!, SpongeBob's starting rotation is slightly different when returning to the level after beating the game. Normally SpongeBob's yaw is 320 degrees, but it will be reduced to 319.8315 after defeating Neptune. This is because a unique pointer (POINTER_19_01_B401) is used when teleporting SpongeBob back.

I'm Ready... Depression#

Drunk SpongeBob Visibility#

When switching characters in "I'm Ready... Depression," a set of conditionals (SB_INVIS_COND_01 and SB_VIS_COND_01) are evaluated to toggle the visibility of the DrunkBob NPC. Since the setup applies the conditionals consecutively, it results in the NPC being made visible then invisible in under a frame.
Comments have been added for reading clarity:

# PORTOHEAD_BUSSTOP_01
BusSwitchCharacter => Evaluate => SB_INVIS_COND_01
BusSwitchCharacter => Evaluate => SB_VIS_COND_01

# SB_INVIS_COND_01 (Is SPONGEBOB_SIMP_01 invisible?)
True => Visible => SPONGEBOB_SIMP_01

# SB_VIS_COND_01 (Is SPONGEBOB_SIMP_01 visible?)
True => Invisible => SPONGEBOB_SIMP_01

BB03 Position Discrepancy#

In I'm Ready... Depression, the Player Widget position is turned slightly to the right (+0.15 yaw) compared to the pause warp pointer for "Sponge on a Wire". The Player Widget position is only used when loading a Save Game, and not when loading the level from the pause menu, resulting in two slightly differing spawn positions.

Menu Warp

Loaded Game

Checkpoint Gap#

SBMovie-GC-BB03-CHECKPOINT_TRIG_13.png

There's a small gap on the right side of the 13th checkpoint trigger from I'm Ready... Depression. This flaw can be exploited to restart at the 12th checkpoint (before the cookie elevator), which is impossible under normal circumstances.

Sandwich Driving 101#

Rare Nitro Tutorial#

SBMovie-Console-NitroHint.png

In "Sandwich Driving 101," there is a one-time "speed boost" prompt intended to appear when collecting your first Nitro. Strangely, collecting the first available Nitro never shows this prompt, yet collecting any other one will display it as normal. This is due to an oversight with "NITRO_01" as it is forced to close the previous textbox when collected, resulting in the "speed boost" prompt being closed prematurely.

Tiny Arrow Sign#

SBMovie-Console-BB01-ARROWSIGN_SIMP_30.png

In Sandwich Driving 101, an arrow sign can be found that is half the size of the other ones in the level. A developer may have forgotten to resize it.

Three... Thousand Miles to Shell City#

Invisible Wooden Platforms#

SBMovie-Console-DE01-Invisible_Platforms.png

In Three... Thousand Miles to Shell City, the river's wooden platforms have collision before pressing the button.
This is likely to circumvent a collision bug with "PLAT" objects that are set to non-solid with a ledge surface. All other instances of the wooden platform don't have the issue as they use "SIMP" objects or lack ledge surfaces.

(Source: TetraxZ)

Impossible Manliness Point#

After defeating all the enemies during the ambush in Three... Thousand Miles to Shell City, a springboard is revealed along with two Manliness Points. The script used for this event is supposed to spawn three Manly Points, but it mistakenly disables one of them, causing it to never load. This is easily corrected by editing AMBUSH_SPRINGBOARD_SCRIPT_01.

Retail

Corrected

Floating Block Challenge (3K)#

Starting Platform Isn't a Platform#

SBMovie-XB-fb_platform_LightKit_Difference.png

In the Floating Block Challenges, the starting platform isn't a true PLAT object but rather the level's JSP terrain. Unlike the rest of the levels' platforms, its lighting is baked-in and seemingly an earlier version of it. Additionally, it is impossible to CollisionVisibleOff with the level's timer, forcing the designers to add another out-of-bounds trigger around it as a hotfix. Originally, the game's engine required a JSP in each level for them to load successfully. This JSP requirement was removed later in development, but the levels weren't updated to account for it.

FB01 Checkpoint Platforms Mislabeled#

In the Floating Block Challenge from "Three... Thousand Miles to Shell City," the names for the checkpoint platforms adopt the names of surrounding blocks instead of being labeled as "SAFE_PLAT," suggesting that the checkpoint platforms were added by simply copying an existing block, reassigning the model and removing its movement. The first checkpoint platform is named BASICTRANS_MECH_66, set to slide vertically. The second checkpoint platform is called BASICROTATE_MECH_41, set to rotate on its Z axis. Finally, the third checkpoint is named BASICSCALE_MECH_40, a bubble block.

Rub a Dub Dub, Slip Slide in the Tub#

DE02 Manliness Points#

In Rub a Dub Dub, Slip Slide in the Tub, several manliness points were changed in value.

Internal Name

Original Color

Final Color

MAN_01_45

Red

Blue

MAN_01_53

Yellow

MAN_01_54

MAN_01_55

Blue

MAN_01_60

MAN_01_61

Yellow

MAN_01_62

Green

MAN_01_63

MAN_01_64

MAN_01_65

Yellow

MAN_10_01

Blue

Red

MAN_10_02

MAN_10_03

MAN_10_04

MAN_10_05

Bubble Blowing Baby Hunt#

BBBH Spinner Intro Persistency Dispatcher#

Unlike other enemy introductions, the Spinner in Bubble Blowing Baby Hunt is not despawned prior to its intro cutscene. This is likely an oversight, supported by the fact that NPCSetActiveOn is sent to "SPINNER_ENEMY_A_01" shortly after the cutscene ends. Additionally, "SPINNER_INTRO_PERSIST_DISP" gets enabled with the purpose of spawning it after a level reset.

BBBH Plat Support Solidity#

SBMovie-Console-TT01-BUTTON_C03_MECH.png

In Bubble Blowing Baby Hunt, the platform support for the button accessing "Throwing the Fruit Electric" is the only one in the level with collision, allowing Patrick to stand on it.

FLOATING_BLOCK_ENTER_SIMP#

SBMovie-GC-TT01-FLOATING_BLOCK_ENTER_SIMP.png

The Warp Pad for entering Bubble Blowing Baby Hunt's Combat Arena is internally named FLOATING_BLOCK_ENTER_SIMP, suggesting that it likely teleported Patrick to a Floating Block Challenge at some point.

Overlapping Thunder Barrels#

SBMovie-GC-TT01-EXPLODE_CRATE_66.png

In Bubble Blowing Baby Hunt, there is an extra copy of a Thunder Barrel overlapping this one in the SpongeBall Challenge warp room.

SpongeBall Challenge (BBBH)#

BL02 Position Discrepancy#

In BBBH's SpongeBall Challenge, the Player Widget position is turned slightly to the left compared to the pause warp pointer which is more centered. The Player Widget position is only used when loading a Save Game, and not when loading the level from the pause menu, resulting in two slightly differing spawn positions.

Menu Warp

Loaded Game

No Weenie Parking Anytime#

Lack of Ramp Dialogue#

This is the only Patty Wagon level that does not have dialogue play when going over a ramp. The level has no ramp triggers, and the audio clips are not present either.

Now That We're Men...#

Leftover Patrick NPC#

Watch on YouTubeMindy's Secondary Challenge description has a generic Patrick NPC present. Seeing how this level contains an identical reward camera to that from Rub a Dub Dub, it is likely that it was mistakenly written in the style of a sliding level, which normally has both SpongeBob and Patrick talk to Mindy.

Wall Jump Signs#

SBMovie-Console-TR02-WALLJUMP_SIGN_MECH_01.png

Unlike all other wall jump signs, the ones in Now That We're Men lack a no-stand surface. They also sway at half their speed.

Teleport Box Lighting#

SBMovie-Console-TR02-Teleport_Box_Oddity.png

Leaving the cave using the Teleport Box applies an exclusive "tr02_lightkit" onto SpongeBob, likely mistaken for the intended "tr02_object_lightkit." Its similar name likely makes it an older version of the level's lighting. Despite this, "Rub a Dub Dub, Slip Slide in the Tub" still uses the old lighting when inside tunnels.

Fallen Crates#

In Now That We're Men, several wooden crates fall through their balloon boxes due to being clipped inside them during gameplay. It is likely that a developer forgot to reposition the crates after swapping out their BfBB tiki designs for their larger Chum Bucket ones, as restoring the models in an editor corrects the stack alignment.

In-Editor

In-Game

Tikis Proof of Concept

Bungee Checkpoint#

SBMovie-Console-TR02-BUNGEE CHALLENGE TRIG 01.png

Rather than using an independent trigger, the Bungee Challenge checkpoint is mistakenly tied to the task-unlock trigger, making it single-use. As a result, physically returning from an earlier area will not activate the checkpoint, leaving the pause-warp as the only way to do so.

Sundae Driving#

Balloon Box on Crate Pyramid#

SBMovie-GC-GG02-CRATE_HOVER_006.png

Sundae Driving contains a wooden crate pyramid that has a balloon box at the top, although it's likely that this is a mistake and that it is meant to be a standard crate.

Ramp Trigger 6#

Unlike the first five ramp dialogue triggers in Sundae Driving, RAMP_SFX_TRIG_06 never gets reenabled in future laps after driving over it once. This is due to it being omitted from the RAMP_SFX_TRIG_GROUP, which is used to reenable the dialogue triggers.

Welcome to Planktopolis... Minions#

Overlapping Manliness Point#

SBMovie-Console-PT01-MANLINESS_YELLOW_PICKUP_08.png

The first wall jumping sequence has a yellow Manliness Point overlapping a red one. The yellow point was likely meant to be moved slightly upward to lead the player to wall jump, as there's another yellow one just above to compliment it.

Alternate MERV Weakspot#

SBMovie-Console-Alt_MERV_Weakspot.png

By walking beneath the MERV enemies found in "Welcome to Planktopolis... Minions", their lasers will deactivate and allow SpongeBob to attack them from below. This is unlike the Mini-MERV enemies found in "Shell City, Dead Ahead" as those will instantly zap the player if approached head-on.

(Source: Teh_supar_hackr)

Improper Crate Stack#

The crate stack near the More Bounce Please challenge is not stacked properly, so the steel safe falls through the wooden crate it is resting on. The steel safe was placed too low in the scene.

In-Editor

In-Game

Plat Support Solidity#

SBMovie-Console-PT01-PLAT_SUPPORT_MECH_01.png

In Welcome to Planktopolis... Minions, the support for the platform accessing "More Bounce Please" has collision, allowing Patrick to stand on it.

SBMovie-Console-PT03-PLAT_SUPPORT_MECH_26_thru_28.png

The set of platform supports for the Plankton statue conveyor belt are solid too. This is due to the entire conveyor belt group being sent 'CollisionVisibleOn' as oppose to sending 'Visible' individually to the supports.

Ice Skating Idiot Gates#

SBMovie-Console-PT01-Side1_GATE_TRIG.png

Each gate in the "Ice Skating Idiot" challenge has a trigger for keeping them open once inside. However, these triggers are set to be persistent, so they work only once per save game and results in Patrick getting trapped inside on repeated attempts.

Plankton's Riddle Checkpoint Mishap#

SBMovie-GC-PT03-CHECKPOINT_TRIG_10.png

The checkpoint trigger before Plankton's Riddle is mistakenly set to persistent, causing it to become single-use per save game. CHECKPOINT_TRIG_10 is likely persistent due to it being a modified copy of PUZZLE_ENTER_TRIG_01, supported by the fact that both overlap.

Plankton's Riddle Camera Mishap#

In Plankton's Riddle, when two buttons are pressed for evaluation, the camera is meant to focus on the current button being pressed and reveal the outcome. Due to an oversight, the camera focuses on the previous button that was pressed. This is due to the Event Links on each button being listed out of order. The last two listed Events should be listed first to fix the priority issue.

# PUZZLE_BUTTON_01
ButtonPress => Decrement => PUZZLE_WRONG_COUNTER_01
ButtonPress => Increment => PUZZLE_NEUTRAL_COUNTER_01
ButtonPress => DisableGroupContents => PUZZLE_CAM_GRP_01
ButtonPress => Enable => PUZZLE_BUTTON_CAM_01

Trigger Events on a Breakaway Object#

SBMovie-Console-PT01-BREAKAWAY_FLOOR_SIMP_01.png

Just before the last Plankton statue destroys this floor, a breakaway object can be found that contains event links seemingly intended for a trigger. Because of this, the events do not fire at all. These event links are intended for resetting Plankton's Riddle to its initial state, and they are also attached to CHECKPOINT_NPCOFF_TRIG_07, 14, and 16.

Mistextured Spinner Fragment#

SBMovie-GC-PT03-enemy_spinner_pt_frag_05.png

The Planktopolis Spinner's defeat-fragment shirt is incorrectly mapped and uses the enemy's fin (left). This can be corrected by assigning the Planktopolis Fogger texture (right).

Drive of the Knucklehead-McSpazitron#

Best Time Reward Amount#

Beating your best time awards 100 Manliness Points, the smallest amount awarded compared to every other Patty Wagon level. Since "Sandwich Driving 101" awards 400 points, "No Weenie Parking Anytime" awards 600 points, and "Sundae Driving" awards 800, it stands to reason that Knucklehead should award 1,000 points. The developers likely forgot to add a zero.

Patty Wagon FMV#

Spongebob_Movie_(GC_PS2_Xbox)-wagon-upgrade-fmv.png

When Mindy brings back the Patty Wagon in Drive of the Knucklehead-McSpazitron, a video is shown in the same vein as when she grants a move. Strangely, the lower left corner mistakenly displays a coordinate symbol from being animated in Maya. No other video has this symbol, so it was likely overlooked as it would be cut off by overscan.