Skip to content

Battle Flags

The DamageType names below are exposed by Classic’s flag database and may be combined with ~Flags:DamageType:.... The remaining tables describe raw fields used by battle structures and API functions. Their meanings are descriptions of engine behavior unless a Star Rod name is shown explicitly.

Damage calls accept a bitfield combining one or more elements with behavioral modifiers. Star Rod exposes these names through the DamageType flag database.

ValueNameMeaning
00000002FireFire element.
00000004WaterWater element.
00000008IceIce element.
00000010MagicMagic element.
00000020ElectricShock element.
00000040SmashHammer or smash element.
00000080JumpJump element.
00000100CosmicCosmic element.
00000200BlastBlast element.
00000400POWPOW Block behavior.
00000800QuakeQuake element.
00001000FearFear or spook behavior.
00002000DeathSpecialized instant-death item behavior; named by the engine but omitted from the Classic flag file.
00008000AirLiftAir Lift behavior.
00010000SpinySurgeSpiny Surge behavior.
00020000ShellCrackConvert applicable hit events to Shell Crack.
00040000ThrowHammer Throw element and charge behavior.
ValueStar Rod nameMeaning
00100000PowerBounceMark a Power Bounce hit.
00200000QuakeHammerMark a Quake Hammer hit.
00400000RemoveBuffsRemove applicable buffs.
00800000PeachBeamMark Peach Beam behavior.
01000000MultiBounceMark a Multibounce hit.
02000000UnblockablePrevent normal blocking.
04000000SpinSmashConvert applicable hit and death events to Spin Smash variants.
08000000IgnoreDefenseIgnore positive defense; preserve 99 as immunity.
10000000NoContactDo not trigger contact hazards.
20000000NoOtherDamagePopupsUsed by multi-target or multi-popup attacks; engine source calls this MultiplePopups.
40000000StatusAlwaysHitsBypass the normal hit restriction for the associated status attempt.
80000000TriggerLuckyAllow a failed hit test to produce Lucky.

Use the same combination as a working attack with similar contact, targeting, and popup behavior.

The battle state contains two 32-bit flag fields conventionally called flags1 and flags2. Several unnamed bits are transient state owned by the battle engine. Avoid changing an unnamed battle-state bit merely because its observed behavior resembles the effect you need.

ValueMeaning
00000001Actors are visible.
00000002A battle menu is open.
00000004The Tattle window is open.
00000008Show player decorations such as Frozen, Water Block, and Cloud Nine.
00000010Include Power Plus, Merlee, and other attack power-ups.
00000020Allow special target events such as flip, fall, and burn.
00000040Nice action-command result.
00000080Suppress the action-command rating message.
00000100A move is executing.
00000200Super action-command result for partner and item hits.
00000800Force an immune hit result.
00001000Automatically succeed the action command.
00008000Free action command.
00020000Disable the normal celebration.
00040000Player or enemy fled.
00080000Partner is acting.
00100000Player is in back.
00200000End the current move or turn when set by YieldTurn.
00400000Player is defending.
00800000Do not game over on a loss.
01000000Star points have been dropped.
02000000Tutorial battle; partner switching is restricted.
04000000Hustled state.
08000000Sort enemy turns by X position.
10000000Hammer charge is present.
20000000Jump charge is present.
40000000Goombario charge is present.
80000000Current attack was blocked.
ValueMeaning
00000001Star points are being awarded.
00000002Player turn has been used.
00000004Partner turn has been used.
00000008Override inactive player presentation.
00000010Override inactive partner presentation.
00000020Running away is allowed.
00000040Peach battle.
00000100Do not decrement a stored Turbo Charge turn at the start of the player turn.
00000200Jump tutorial is active.
00000400Final Bowser part 1; no other understood use.
00001000No target is available.
00004000Ignore darkness.
00010000Hide partner buff counters.
00100000Do not apply the player’s palette adjustment.
01000000Battle began with a first strike.
02000000Do not stop the current music when battle ends.
04000000HP Drain has already applied.
08000000A Rush badge condition is active.
10000000Drop a Whacka’s Bump after battle.
ValueMeaning
00000001Invisible.
00000004Hide the actor’s shadow.
00000010Low-priority target when combined with Target Only.
00000040Minor target; ignored by Primary Only targeting.
00000080Cannot be tattled.
00000200Flying; rejected by Not Flying and unaffected by Quake Hammer.
00000400Flipped.
00000800Upside down or attached to the ceiling.
00001000Actor type changed; refresh Tattle and HP-bar state.
00002000Immune to items, Chill Out, and Up & Away.
00004000Target only: no turn and does not keep the battle alive.
00008000Half height.
00010000Skip the current turn.
00040000Never show a health bar.
00080000Health bar is temporarily hidden.
00200000Do not attack.
00400000Do not apply damage to HP.
02000000Hide damage popups.
04000000Actor is using its idle animation.
08000000Show status icons.
10000000Blur effect is enabled.
20000000Do not use an inactive animation; player only.
ValueMeaning
00000001Invisible.
00000002Do not accept decorations.
00000004Hide the part’s shadow.
00000008Default part for the actor.
00000020Ignore the “target below” check.
00000040Minor target; ignored by Primary Only targeting.
00000080Cannot be tattled.
00000100Transparent or illusory part.
00002000Damage immune.
00020000Cannot be targeted.
00100000Position is absolute rather than relative to the actor.
00800000Primary target for attacks which filter secondary parts.
01000000Has a palette effect.
20000000Do not change idle animation for status.
40000000Do not apply the shock visual effect.
80000000Do not allocate movement state.

Part target flags are 01 = NoJump, 02 = NoSmash, and 04 = NoDamage. They affect target selection and damage or status processing, not rendering.

Items and moves use the same target-list filter bits:

ValueMeaning
00000001Player selects one target.
00000002Widely used for ordinary enemy targeting; independent meaning is not named.
00000004Ground row only.
00000008Target the player rather than enemies.
00000010Reject high targets; unused by vanilla moves.
00000020Reject actors marked Flying.
00000040Reject ground-row targets.
00000080Unread compatibility bit used by jump-like moves.
00000100Target the partner rather than enemies.
00000400Air Lift filter; reject ceiling targets.
00000800Jump-like move; reject parts marked NoJump.
00001000Smash-like move; reject parts marked NoSmash.
00002000Reject targets behind another eligible target.
00004000Reject targets below another eligible target.
00008000Primary parts only.
00010000Allow actors marked Target Only.
00020000Tattle filter; reject actors or parts marked NoTattle.
00040000Reject ceiling actors.
00100000Direction Right filter; bugged and unused.
00200000Direction Left filter; bugged and unused.
00400000Direction Below filter; bugged and unused.
00800000Direction Above filter; bugged and unused.
80000000Proceed without selecting a target.

Target construction also inspects actor rows, columns, whole-actor flags, part flags, and part target flags. Copying a target bitfield without the matching actor-part setup commonly produces an empty target list.