Skip to content

v1.4.269 — Gen 3 item-ball hotfix

Choose a tag to compare

@jtfresh90 jtfresh90 released this 23 Oct 16:34
· 2 commits to main since this release

Hotfix — Gen 3 (FireRed/LeafGreen/Emerald) only. One file changed.

The bug (reported by darthtron64 — thank you!)

In Gen 3, item Poké Balls on the ground were being treated as NPCs by the mod's interaction system: talking to one gave it a generated trainer name and dialogue ("Trevor" the Pokéball), and worse, the ball could never be picked up — the mod's dialogue swallowed the talk, so the native pickup script never ran. Repeat talks could even trigger item/trade/battle events from a ball.

Root cause

FireRedInteractions decided "is this a regular NPC?" by checking for a script and trainer type, but native object defs carry no item flag — so item balls (graphics id 92) passed every exclusion and were adopted as ambient NPCs. The routines and sleep systems already excluded prop graphics; the interaction module was the one place missing the guard.

The fix

isRegularNpc now excludes the prop graphics ids (92 = item ball, 95/96/97 = cut tree / rock / boulder), mirroring the guard the routines module already used. Item balls now fall through to their normal pickup script.

Verified headless on engine 0.3.94 and 0.3.95 by driving the real item ball in Viridian Forest through the game's actual talk hook: before the fix the ball got a name and opened trainer dialogue; after the fix it passes straight through to pickup. Gen 1 and Gen 2 checked and not affected (their interaction paths only ever adopt mod-spawned NPCs). No other features or behavior changed.