## How to update
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
- Once you have your remote set up, run the command `git pull RHH expansion/1.13.4
`.🧬 General 🧬
Changed
- 1.13.3 release by @hedara90 in #8109
- Adds an auto-generated include file of script commands by @FosterProgramming in #8156
- Adjust label workflow to only run if PR is approved by @hedara90 in #8183
- Add include/constants/script_commands.h to gitignore by @AlexOn1ine in #8169
- add fdeblasio as a contributor for code by @allcontributors[bot] in #8200
- Adjust Canceler naming to contain only one l by @AlexOn1ine in #8258
- Pret merge (16th of November, 2025) by @AlexOn1ine in #8262
- *.party: text with lfs by @mrgriffin in #8320
- Fedora install instructions by @estellarc in #8355
- Indent unintented if statement by @hedara90 in #8367
Fixed
- Update mdbook to v0.5.0-beta.1 by @rayrobdod in #8133
- Fix wild_encounters script not closing arrays properly by @FosterProgramming in #8123
- Fix missing FREE_MATCH_CALL by @FosterProgramming in #8171
- Fix scroll prompt sometimes being off-screen with automatic line breaks by @hedara90 in #8182
- Fix gcc11 again by @AsparagusEduardo in #8188
- Fixed decompression error reporter OOB window creation by @hedara90 in #8199
- Fix error when compiling with P_FUSION_FORMS disabled by @cawtds in #8298
- Fix compile on gcc11 by @AlexOn1ine in #8300
- Fix debug battle flag never being cleared by @FosterProgramming in #8357
🗺️ Overworld 🗺️
Changed
- Add additional comment explaing map name popup transparency side-effects by @FosterProgramming in #8117
Fixed
- Fix berry blender not computing flavor correctly by @FosterProgramming in #8113
- Allow vs seekers to work with script not starting with trainerbattle by @FosterProgramming in #8062
- VS seeker now work with trainers who don't start with trainer_battle. You can use
vsseeker_rematchid TRAINER_IDto indicate that this NPC is a battling trainer and the game will fetch the appropriate rematch if necessary.vsseeker_rematchidwork like acant_see_if_trainerflag_setwith additional functionality to handle vs seeker.
All NPCs who don't start with eithervsseeker_rematchidortrainerbattlewill show as "X"/unmatchable by the vs seeker, so non-rematchable trainer who do not start withtrainerbattle may "lie" and not show an excalmation mark showing they haven't been fought yet. This can be fixed by including avsseeker_rematchid` for them too.
- VS seeker now work with trainers who don't start with trainer_battle. You can use
- Fix grade in summary screen not accounting for 26 IV by @FosterProgramming in #8157
- Fix match call regression by @FosterProgramming in #8227
- Fix mew sprite not appearing correctly by @FosterProgramming in #8235
- Fix wrong palette for types sprites in hgss dex after catching mon by @FosterProgramming in #8153
- Fix mirage tower ceiling crumble color by @FosterProgramming in #8081
- Fix light flickering when different types of light sprite are present by @FosterProgramming in #8043
- Light intensity of neon signs was reduced to avoid conflicts with other light sources
- Fix flickering when both neon signs and light ball are present on screen
- Bug Fix: NPC Followers not working on slow sideways stairs by @Bivurnum in #8257
- Fix not enough memory being allocated when moves load background in contests by @FosterProgramming in #8284
- Make MON_DATA_NICKNAME10 return a 10 character string by @FosterProgramming in #8291
- Fix bug where interviews would print bad data in their string
- Fix game freeze when trainers try to walk on sideway stairs by @FosterProgramming in #8316
- Fix tossing items applying to the wrong stack by @FosterProgramming in #8282
- Prevent moves to be changed when choosing half party by @FosterProgramming in #8336
🐉 Pokémon 🐉
Changed
- Fix Kyurem typo in swap move tables by @Bassoonian in #8139
- Fix typo in Voltorb-Hisui pokedex entry by @PhallenTree in #8143
- Fix some followers sprites by @estellarc in #8208
⚔️ Battle General ⚔️
Changed
- Clean up redundant todo by @AlexOn1ine in #8094
- Powder Move blocking cleanup by @PhallenTree in #8194
- Restored encourageEncore flag to non-volatile status effects by @AsparagusEduardo in #8387
Fixed
- Allow to send active mon to PC when capturing a Pokemon by @FosterProgramming in #8111
- Fix transform not loading the correct sprites when facing shiny or unown by @FosterProgramming in #8146
- Fixes Receiver not immediately activating copied abilities by @PhallenTree in #8162
- Fix destiny knot behavior and add tests by @FosterProgramming in #8174
- Fix recharge moves + add recharge move tests by @FosterProgramming in #8181
- Fixes Magician for spread moves by @AlexOn1ine in #8170
- Fix tera tint not applying on activation by @FosterProgramming in #8135
- Fixes wrongly assigned count for Semi Invulnerable state by @AlexOn1ine in #8175
- Fixes Drain Punch / Parental Bond / Scale Shot interaction by @AlexOn1ine in #8198
- Fix wrong ditto sprite on capture by @FosterProgramming in #8226
- Fixed an issue related to same turn Encore targeting by @LinathanZel in #8230
- Fixes Shell Trap not activating on contact but no damage by @AlexOn1ine in #8243
- Fix Magic Coat reflecting hazard moves incorrectly when used by a partner by @moostoet in #8272
- Magic Coat now properly reflects hazard moves from either slot in double battles.
- Shell Trap tests and Fix for Encore interaction by @AlexOn1ine in #8268
- Fix max mushroom unable to be selected when one stat is maxed by @FosterProgramming in #8287
- Block selecting x items when contrary pokemon are at minimum stages by @FosterProgramming in #8288
- Fix Fur Coat affecting confusion self-damage by @moostoet in #8267
- Fix confusion self-damage ignoring defense/attack abilities such as Fur Coat.
- Fixes End Turn Speed Order by @AlexOn1ine in #8289
- Make switchout abilities trigger after a pokemon has returned to its ball by @FosterProgramming in #8304
- Fix Shed Shell allowing fleeing/teleporting and Smoke Ball failing to guarantee escape by @moostoet in #8286
- Fix bug where defiant/competitive would pass their stat change to the next target by @FosterProgramming in #8312
- Fix max move message against semi invulnerable target by @FosterProgramming in #8313
- Fixes Neutralizing Gas displaying message when exiting with multiple users by @PhallenTree in #8318
- Fix Kings Rock not being ignored by flinch moves by @AlexOn1ine in #8327
- Fix Protosynthesis stat boosts ignoring speed drops by @moostoet in #8277
- Protosynthesis and Quark Drive now recalculate their boosted stat when Speed is lowered or Neutralizing Gas temporarily disables the ability.
- Fix switch-in abilities not triggering on revive by @FosterProgramming in #8293
- More Neutralizing Gas cleanup by @PhallenTree in #8335
- Fix cure status item effect not working properly in doubles by @FosterProgramming in #8339
- Fix infinite confusion (berserk gene) not being cured by cure_status bag items by @FosterProgramming in #8343
- Fix
B_PHYSICAL_SPECIAL_SPLITwhen set to Gen 4 by @AsparagusEduardo in #8348 - Refactor Beat Up handling for Gen 3/4 defaults, fix crit check, and expand test coverage by @moostoet in #8307
- BUGFIX: Beat Up (
GEN =< 5) now no longer doubles its damage on every non-critical hit - Beat Up now precomputes eligible party members/strikers for consistent multi-hit resolution and expanded tests covering both pre-Gen5 and Gen5+ rules
- BUGFIX: Beat Up (
- Fix substitute graphic not disappearing after using a pivor move by @FosterProgramming in #8340
- Fixes Beak Blast burning after Beak Blast was already used by @PhallenTree in #8361
- Fix Roar not being recorded for LastUsedMove by @AlexOn1ine in #8362
- Fixes Neutralizing Gas / Mold Breaker / Dragon Darts interaction by @AlexOn1ine in #8389
- Fixes battle tv overwriting damage values by @AlexOn1ine in #8378
- Fix ball cycling not working properly when the same ball take multiple bag slots by @FosterProgramming in #8163
- Two new defines added to items.h
FIRST_BALL_INDEXandLAST_BALL_INDEX - We now assume the indexes of all regular ball usable in wild battle have consecutive indexes and some features (throw ball shortcut in battle) might break if not true
- Two new defines added to items.h
🤹 Moves 🤹
Changed
- Fixed Uproar's description and spacing by @fdeblasio in #8187
- Clean usage of gMovesInfo by @AsparagusEduardo in #8234
- Also, fixed an OOB in
HasMoveThatChangesKOThreshold
- Also, fixed an OOB in
- Make tailwind anim mirror based on side by @FosterProgramming in #8249
- Make rainbow effect anim change based on side by @FosterProgramming in #8269
- Art assets by SonikkuA-DatH
- Update Lash Out description to clarify its effect by @PhallenTree in #8372
Fixed
🧶 Items 🧶
Fixed
- Allow vs seekers to work with script not starting with trainerbattle by @FosterProgramming in #8062
- VS seeker now work with trainers who don't start with trainer_battle. You can use
vsseeker_rematchid TRAINER_IDto indicate that this NPC is a battling trainer and the game will fetch the appropriate rematch if necessary.vsseeker_rematchidwork like acant_see_if_trainerflag_setwith additional functionality to handle vs seeker.
All NPCs who don't start with eithervsseeker_rematchidortrainerbattlewill show as "X"/unmatchable by the vs seeker, so non-rematchable trainer who do not start withtrainerbattle may "lie" and not show an excalmation mark showing they haven't been fought yet. This can be fixed by including avsseeker_rematchid` for them too.
- VS seeker now work with trainers who don't start with trainer_battle. You can use
🤖 Battle AI 🤖
Fixed
- fix (AI scoring): shield dust considerations, IsMoveEffectInMinus self effect edge case, hitsToKO zero-case consideration by @ghostyboyy97 in #8126
- The AI now sees Shield Dust on the player's Pokemon correctly
- The AI now sees self-targeted positive effect boosts correctly
- fix (contrary): Contrary stat down handling in MoveEffectInPlus by @ghostyboyy97 in #8165
- When comparing positive move effects in damaging move comparison, the AI will correctly see moves like Leaf Storm as beneficial if their Pokemon has Contrary.
- Added check for parental bond killing through sturdy by @MaximeGr00 in #8206
AI now accounts for Parental Bond when checking if a move can ko the player through sturdy/focus sash. - Fix AI_FLAG_DOUBLE_ACE_POKEMON sending duplicate Pokémon in doubles by @moostoet in #8279
- Fixed AI_FLAG_DOUBLE_ACE_POKEMON trainers resending the same Pokémon after a KO instead of their two Ace Pokémon in double battles.
- Fix switchin KO threshold logic by @Pawkkie in #8370
🧹 Other Cleanup 🧹
- Clean up redundant todo by @AlexOn1ine in #8094
- Fix Kyurem typo in swap move tables by @Bassoonian in #8139
- Fix typo in Voltorb-Hisui pokedex entry by @PhallenTree in #8143
- Fixed Uproar's description and spacing by @fdeblasio in #8187
- Add include/constants/script_commands.h to gitignore by @AlexOn1ine in #8169
- Powder Move blocking cleanup by @PhallenTree in #8194
- Clean usage of gMovesInfo by @AsparagusEduardo in #8234
- Also, fixed an OOB in
HasMoveThatChangesKOThreshold
- Also, fixed an OOB in
- Adjust Canceler naming to contain only one l by @AlexOn1ine in #8258
- Fix wrongly renamed logs by @AlexOn1ine in #8264
- Tests for Max Moves already exist by @AlexOn1ine in #8314
- Use MAP_OFFSET by @estellarc in #8328
- Fixed broken friendship from items in battle test and added new test for opposite case by @pkmnsnfrn in #7872
- Indent unintented if statement by @hedara90 in #8367
- Update Lash Out description to clarify its effect by @PhallenTree in #8372
- Restored encourageEncore flag to non-volatile status effects by @AsparagusEduardo in #8387
🧪 Test Runner 🧪
Added
- Prevent EXPECT functions from casting negative numbers into unsigned by @FosterProgramming in #7866
Changed
- Added Soundproof and Bulletproof tests by @AsparagusEduardo in #8189
- Wrote some missing tests by @AsparagusEduardo in #8203
- A couple more tests by @AsparagusEduardo in #8209
- Fixed some failing tests with GEN_LATEST = GEN_5 by @AsparagusEduardo in #8241
- Add test for mold breaker/ice scales interaction by @FosterProgramming in #8240
- Yet more tests by @AsparagusEduardo in #8228
- Added tests for:
- Dark Aura
- Fairy Aura
- Flare Boost
- Toxic Boost
- Added test names for Flying Press.
- Slightly increase headless test speed by modifying animations by @AsparagusEduardo in #8299
- Make
gTestRunnerHeadlessinto a constant outside of tests by @hedara90 in #8306 - Tests for Max Moves already exist by @AlexOn1ine in #8314
- Finished fixing tests when setting
GEN_LATESTtoGEN_5by @AsparagusEduardo in #8263 - Wrote missing Fling tests by @AsparagusEduardo in #8383
Fixed
- Fixes difficulty not being restored after tests by @grintoul1 in #8129
- Reset saveblock data between test runs by @hedara90 in #8145
- Fix ohko moves ai tests by @FosterProgramming in #8309
- Fixed broken friendship from items in battle test and added new test for opposite case by @pkmnsnfrn in #7872
- Add tests to verify aromatherapy is not affected by heal bell config by @FosterProgramming in #8344
- Pre gen 5 encored move now signals the test engine a move is happening by @FosterProgramming in #8338
- Refactor Beat Up handling for Gen 3/4 defaults, fix crit check, and expand test coverage by @moostoet in #8307
- BUGFIX: Beat Up (
GEN =< 5) now no longer doubles its damage on every non-critical hit - Beat Up now precomputes eligible party members/strikers for consistent multi-hit resolution and expanded tests covering both pre-Gen5 and Gen5+ rules
- BUGFIX: Beat Up (
- Fix known failing AI trace test by @FosterProgramming in #8337
📚 Documentation 📚
- Lock mdbook to v0.4.35 to fix docs not building by @grintoul1 in #8130
- Add additional comment explaing map name popup transparency side-effects by @FosterProgramming in #8117
- Fix wrongly renamed logs by @AlexOn1ine in #8264
- Use MAP_OFFSET by @estellarc in #8328
- Fedora install instructions by @estellarc in #8355
Full Changelog: expansion/1.13.3...expansion/1.13.4