• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Is there a simple way to change every single trainer's level to a specified number? (Fire Red)

  • 10
    Posts
    3
    Years
    • Seen Feb 24, 2023
    I'm asking this again, yes.

    I'm inexperienced at programming, but is there an easy way to change every trainer mon and wild mon's level to 1? Just 1. It can never go higher than that. Perfect number.

    But I don't exactly want to do horribly huge amounts of clicking and changing values, so any less time-consuming way? Thanks.
     
    Unlikely.
    Especially wirh binary hacking

    Plus wouldn't you have to cancel out getting EXP too?
     
    Last edited:
    I'm asking this again, yes.

    I'm inexperienced at programming, but is there an easy way to change every trainer mon and wild mon's level to 1? Just 1. It can never go higher than that. Perfect number.

    But I don't exactly want to do horribly huge amounts of clicking and changing values, so any less time-consuming way? Thanks.

    No, if by easy you mean a program that does it for you.

    Your options are basically:
    1. Write a program that edits a rom file and sets all trainer and wild mon level data to 1.
    2. Modify the game's code to always create level 1 pokemon regardless of what the trainer/wild mon data says.

    The latter is probably as simple as it gets since it requires editing only a couple lines of code in the decomp.
     
    Uh, hey, so how exactly do I do that modification? I'm kinda bad at editing code, but I can modify basic stuff and all.
     
    Uh, hey, so how exactly do I do that modification? I'm kinda bad at editing code, but I can modify basic stuff and all.

    There are a couple ways to do it but one quick and hacky way is to modify the pokemon generation code since that will apply to all types of mons.

    src/pokemon.c
    Code:
    @@ -1715,7 +1715,6 @@ void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFix
         u32 arg;
         ZeroMonData(mon);
         CreateBoxMon(&mon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
    [COLOR="Red"]-    SetMonData(mon, MON_DATA_LEVEL, &level);[/COLOR]
         arg = 255;
         SetMonData(mon, MON_DATA_MAIL, &arg);
         CalculateMonStats(mon);
    @@ -1727,7 +1726,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
         u32 personality;
         u32 value;
         u16 checksum;
    [COLOR="Red"]-[/COLOR]
    [COLOR="Lime"]+    level = 1;[/COLOR]
         ZeroBoxMonData(boxMon);
     
         if (hasFixedPersonality)
     
    Back
    Top