Legality - kwsch/SysBot.NET GitHub Wiki

These settings control how Auto-Legality Mod (ALM) generates Pokémon. Basic rules for ALM are covered in more detail on PKHeX-Plugins' Wiki under How does Auto-Legality Mod (ALM) work?

Custom Trainer Data

  • Refer to Auto-Legality Mod's page on Using Custom Trainer Data.

  • Once you have created a folder of pkm files, put the path to the folder in the GeneratePathTrainerInfo field. You need trainer data for EVERY game if you want to ensure that any generated Pokémon has the trainer details you provide.

  • You can specify your own OT, TID, and SID in the bot settings. These will not be game specific.

    The GenerateTID16 and GenerateSID16 should be 5 digit numbers seen in PKHeX when hovering over the trainer information.
    TID16: 15040 and SID16: 18831 in this example. Gen 1-6 Pokemon will have TID: 15040 and Gen 7+ will have TID: 123456. image
    These values may be changed by ALM if required for legality, such as for shiny Pokémon.

    If you do not provide trainer files for other games, ensure that your GenerateOT is legal for all games, i.e. no illegal characters in any game and not blank. If it is longer than the game allows (5 or 6 for Asian languages, 10 or 12 for Western languages), it will be truncated.

Other Settings

  • MGDBPath: directory path for any additional Wonder Cards that should be loaded. An example of a path is C:\Users\Anubis\Desktop\Sysbot\mgdb if the directory is the mgdb directory.
    • Most Wonder Cards should be bundled with the stable PKHeX Core, but this can be used to load in any new Wonder Cards before an official release is published.
    • New Wonder Cards can be obtained from Project Pokémon or the Github repository and should end in .wc8.
      • A Wonder Card is NOT a pk8/pb8 file; putting pk8/pb8 files into this directory will not work. The file extension should be wc8/wb8.
    • Restart the program after configuring an MGDBPath.
  • PrioritizeGame / PrioritizeGameVersion:
    • Note that targeting any game that is not the current game will result in invalid HOME data; recommended setting is for PrioritizeGame as True and PrioritizeGameVersion as Any.
    • If PrioritizeGame is set to False, ALM will ignore PrioritizeGameVersion and look for Pokémon encounters starting from the most recent game to the oldest game.
    • If PrioritizeGame is set to True and PrioritizeGameVersion is set to Any, ALM will try to generate a Pokémon from the current loaded save game version first before checking other games.
    • If PrioritizeGame is set to True and PrioritizeGameVersion is set to a specific game, ALM will try to generate a Pokémon from that game first.
  • SetAllLegalRibbons: attempts to add all legal ribbons according to PKHeX legality.
  • SetMatchingBalls: applies a legal Pokéball that matches the color of the Pokémon.
  • ForceSpecifiedBall: allows the user to attempt to specify a legal Pokéball by including it as a line in their set. This should be used as Ball: Level Ball.
  • ForceLevel100for50: assumes level 50 sets are actually level 100 competitive sets. Disable this if you want level 50 sets to be treated as level 50 sets.
  • EnableHOMETrackerCheck: Turns on HOME tracker checking for all legality. This will prevent trading Pokémon (as sets or files) with characteristics from other games if they do not have a HOME tracker. If this is disabled and a Pokémon requiring a HOME tracker is created without one, it will not be able to enter HOME.
  • PrioritizeEncounters: sets the priority of encounter types to attempt. All 5 encounter types must be present; if any are missing, the program will add missing ones back in the following order. The program must be restarted after configuring this setting.
    • Egg: hatched eggs
    • Slot: encounter slots (e.g. tall grass), GO Pokémon
    • Static: static encounters, fixed encounters (SV), and Raid encounters (SWSH/SV)
    • Mystery: Mystery Gift, including HOME gifts
    • Trade: in-game NPC trades
  • SetBattleVersion: If enabled, bot will set all past-generation Pokémon as Battle Ready for games that support it (currently only SWSH). This allows past-gen Pokémon to be used in competitive play, but limits moves that are available to SWSH only.
  • EnableEasterEggs: Tells the bot to replace illegal sets with Easter Egg joke Pokémon instead.
  • AllowTrainerDataOverride: Allows usage of the OT:, TID:, SID:, and OTGender fields.
  • AllowBatchCommands: Enables use of Batch Editor commands for further customization.
  • Timeout: Maximum time in seconds to spend generating from a Showdown set before canceling. This prevents difficult sets from freezing the bot. Default time is 15 seconds.