Yo. Dizzy asked me to explain some of the new options that have been added in the config in the last few updates.
Here's a link right to the config file if y'all want to follow along. I'm just gonna through all of them.
EXP_CAPTURE: Toggles implementation for gaining experience upon capturing a Pokemon, like in the canon games from X and Y forward. By default it is set to true. Set it to false to disable.
STAT_RECALC: Pokemon in the 3rd generation games (save Deoxys) only recalculate their stats when they level up or are withdrawn from a PC. This has a noticeable effect if your Pokemon gain a lot of EVs but don't level up or are withdrawn. Those EVs will not factor into its stats until those events happen. Set this to true to have stats recalculated immediately after every battle, which will apply EVs without having to jump through hoops. This is how Deoxys behaves in vanilla Gen 3. By default, it is set to false. Set it to true to enable.
ITEM_STEAL: Toggles allowing the player to keep any stolen items they take from enemy Trainer's Pokemon. By default, it is set to false, and stolen items will disappear at the end of a Trainer battle. Set to true to enable.
ITEM_SWAP: Toggles allowing permanent item swaps in battles. When false, player Pokemon that were victims of Trick, Switcheroo, etc. will have their original held items restored at the end of the battle. By default, it is set to false. Set to true to keep swapped items after battle.
MAX_LEVEL: Defines the level cap. 100 is the default. You can set it to less than 100 if you want as well.
MAX_EVS: Defines the cap for the
total number of Effort Values a Pokemon can accumulate across
all stats. This does not change the individual 255 hard cap for individual stats (which would require a rewrite of the Pokemon data structure). The default value is 510. 1530 is enough to max out all stats. Can set to 0 to
functionally remove EVs entirely.
EXP_DIVIDE: Since X and Y, Pokemon who participate in battle will each receive full experience. So if you had one Pokemon out, switched to another, and then KO'd the foe's Pokemon, they would both receive 100% experience from the knockout. This creates extra experience out of thin air, so it may wreck your level curve if you're not careful. That is why, by default, this is set to false (where experience will be divided evenly among participants like it was prior to X and Y). Set to true to enable.
GENVI_EXPSHARE: If this is true, Exp. Share functions like it does from X and Y onward, where the team will receive half of the experience gained from a knockout regardless of participation. If it is false, it will function as it normally does in Gen 3. Default is false.
EXPSHARE_FLAG: This flag must be set sometime if GENVI_EXPSHARE is true. By default, the flag is 0x900. When this flag is set, the extra experience will begin being distributed to the player's team. Use as the On/Off switch for your Exp. Share item.
DISABLED_EXP_FLAG: When this flag is set, Pokemon are unable to gain experience. This is useful for battle facilities or other situations where you don't want a player's Pokemon to gain experience. If you leave it at the default value of 0x0, this functionality is disabled (Pokemon will gain experience as normal and you will be unable to disable it at will). If you want to use this functionality, provide a free flag number.
DISABLED_EVS_FLAG: When this flag is set, Pokemon are unable to gain EVs. This is useful for battle facilities or other situations where you want your player's Pokemon to remain static. If you leave it at the default value of 0x0, this functionality is disabled (Pokemon will gain EVs as normal and you will be unable to disable it at will). If you want to use this functionality, provide a free flag number.
DOUBLE_WILD_BATTLES: Setting to true enables double wild battles. Default is false.
DOUBLE_WILD_TILES: This is the amount of tiles that you plan on allowing double wild battles on. By default, this is 4. The table for which tiles actually allow for double wild battle encounters are in
this table here. It is unaligned, so there are no padding bytes and it can be edited freely with a hex editor after insertion if needed.
EXPANDED_POKEBALLS: If your hack is using Poke Ball expansion, so that you have more than the default Poke Balls usable, set this to true. The default is false.
INVERSE_FLAG: If this flag is set, battles are done using the inverse ruleset, where type effectiveness is inverted.
Here is more information on this battle type, which was introduced in X and Y. If you leave it at the default value of 0x0, this functionality is disabled (No battles will ever be inverse battles). If you want to use this functionality, provide a free flag number.
FISHING_FLAG: This flag is used for upcoming expanded Poke Balls functionality. If you leave it at the default value of 0x0, this functionality is disabled (no change to existing engine). If you want to use this functionality, provide a free flag number. It will be set automatically before battling a hooked Pokemon so that the Lure Ball works correctly.
CANT_CATCH_FLAG: When set, the player is unable to catch Pokemon. The player will be able to throw balls, but they will get a message that the Pokemon blocked the ball. If you leave it at the default value of 0x0, this functionality is disabled (player will always be able to catch wild Pokemon in appropriate situations). If you want to use this functionality, provide a free flag number.
ALLOW_LOSE_FLAG: When this flag is set, the player will not whiteout when they lose a battle and the script will continue unimpeded after a loss. There is also provided functionality to have the enemy Trainer say a message when you lose with this flag set. To customize this message, set 0x02038BE4 to a pointer to the desired text
before calling the trainerbattle command. It will be your responsibility to check the result of the battle in the script and branch accordingly. Losing a battle with this flag set will
not heal the player's Pokemon, and you will want to heal them in a script at some point. By default, this flag is 0x0.
I think that's everything. Happy hacking, and thanks guys for adding all this awesome functionality to the engine!