Skip to content

TicoFat

Super Hackio edited this page Dec 12, 2023 · 4 revisions

Note: This page only applies to Galaxy Level Engine Version 3 and up

As of GLE-V3, the Coin Hungry Luma and old Worldmap Hungry Luma have been modified to be more flexible than they originally were in the original Super Mario Galaxy 2.

TicoFatCoin

Coin Hungry Lumas have remained mostly unchanged. However, the changes that were made are breaking changes if you are updating from GLE-V2, so please read carefully!

Field Type Status Description
ObjArg0 INT32 NEW Save Data ID. See TicoFat SaveData.
Format: TicoFatCoin[%s_%d]
ObjArg1 INT32 Requested Coins. The number of requested Coins.
Default is 5
ObjArg2 BOOLEAN NEW Always Respawn. If set to TRUE (1), this Hungry Luma will always respawn after the level is reloaded and will need to be fed again.
Default is FALSE (0)
ObjArg6 INT32 NEW Information Message ID. See InformationTicoFat.
Default is -1 (which represents InformationPlanet)
ObjArg7 BOOLEAN Special Talking Camera. If set to TRUE, it will use the camera with the name 独自会話 when talked to.
Default is FALSE
SW_APPEAR Switch Use this instead of SW_AWAKE.
In vanilla, Hungry Lumas did not support appearance by switch properly. In GLE, if the luma has been already fed, activating SW_APPEAR will do nothing (instead of respawning the luma).
SW_A Switch Activates during the explosion caused after feeding it
GroupId Group Use this to link the Launch Star to the Hungry Luma. Set the GroupId on the Launch Star to be the same as this value

TicoFatStarPiece

Starbit Hungry Lumas have recieved a complete overhaul and are now actually usable in levels!

VERY IMPORTANT NOTE: Do NOT place multiple starbit hungry lumas close to each other!

Because of how the shooting starbit mechanic works, you cannot place 2 starbit hungry lumas too close to each other. Please make sure there is at least enough space for mario to walk away and have the feeding layouts begin to vanish between starbit hungry lumas. If you do not do this, the camera might lock up until you walk away from all starbit lumas.

Field Type Status Description
ObjArg0 INT32 NEW Save Data ID. See TicoFat SaveData.
If set to -1 this Hungry Luma will always respawn after the level is reloaded and will need to be fed again (like in Good Egg Galaxy).
Format: TicoFatStarPiece[%s_%d]
ObjArg1 INT32 NEW Requested Starbits. The number of requested Starbits.
Default is 25
ObjArg6 INT32 NEW Information Message ID. See InformationTicoFat.
Default is -1 (which represents InformationGalaxy)
Note that the message label in SystemMessage.arc/InformationMessage.msbt will need to be changed
from InformationRouteCreateTico to InformationGalaxy
SW_APPEAR Switch Use this instead of SW_AWAKE.
In vanilla, Hungry Lumas did not support appearance by switch properly. In GLE, if the luma has been already fed, activating SW_APPEAR will do nothing (instead of respawning the luma).
SW_A Switch NEW Activates during the explosion caused after feeding it
GroupId Group NEW Use this to link the Launch Star to the Hungry Luma. Set the GroupId on the Launch Star to be the same as this value

Common

Below are some functionalities that are shared between the lumas

TicoFat Save Data

GLE-V2 introduced the GameEventValueTable.bcsv. In GLE-V3, both Hungry Lumas put this to good use.

In the original SMG2, you could only have a single Hungry Luma in your galaxy at any given time. This was because if a hungry luma was completed or not was tied to a single value inside the stage's SaveData. Obviously Starbit Hungry Lumas were fully tied to the worldmap.
GLE-V3 rectifies this by having each luma reference a numerical ID and a special ValueName string, which also means that you can now have multiple Hungry Lumas in a single stage.

The ValueName field will be set to one of the Luma's ID formats (listed below)
The Value field should be set to Zero (unless you want to start with a partially fed Starbit Luma for some reason...)

  • The ValueName format for TicoFatCoin, is TicoFatCoin[%s_%d]
  • The ValueName format for TicoFatStarPiece is TicoFatStarPiece[%s_%d]

To make a proper ID, replace the %s with the internal name of the galaxy, and the %d with a unique value that will represent an ID.
Example: TicoFatCoin[StarCreekGalaxy_0] will be a Coin Hungry Luma inside Cosmic Cove galaxy with an ObjArg0 set to 0.
Example 2: TicoFatStarPiece[EggStarGalaxy_5] will be a Starbit Hungry Luma inside Good Egg galaxy with an ObjArg0 set to 5.

In your save file, the data that is stored here (for both types of lumas) is NOT 0 or 1 based on if you've fully fed the luma or not. It's actually set to however many coins/starbits you've fed the luma so far. While for the Coin Hungry Luma, this isn't really all that useful, for the Starbit Hungry Luma, it's incredibly important, as it lets you be able to feed a Starbit Hungry Luma partially, and then come back later and have your starbit feeding progress saved.

Both Lumas support being able to "always respawn", and if this functionality is used, there is no need to add an entry for it in the GameEventValueTable.bcsv.
For more information on how to use the "Always Respawn" feature of each luma, scroll up and read each luma's information (as the method for enabling "always respawn" is not the same between the two of them)

InformationTicoFat

Normally, only a single MSBT Label can be used for the information box that appears after the Luma explodes. That single label would be used for all Coin/Starbit Hungry Lumas through the entire game.

GLE-V3 rectifies this with both Luma's ObjArg6 being a number value for a MSBT Label formatted string. If ObjArg6 is set to -1, a default message label will be used. See each luma's information for knowing what the default for each luma is.

The string both lumas can reference is InformationTicoFat%03d, where the %03d is replaced by what's in Obj Arg 6, with 2-pad leading Zeros.
Example: ObjArg6 set to 5 points to InformationTicoFat005
Example 2: ObjArg6 set to 15 points to InformationTicoFat015

All of these MSBT messages should go in SystemMessage.arc/InformationMessage.msbt.

Clone this wiki locally