-
Notifications
You must be signed in to change notification settings - Fork 3
Basic: AutoHost Rolling
This is the all-in-one autohost that can host all of the following:
-
Rolling autohosts
- Roll a den and host a random Pokémon.
- To host a rolling den: Set N to 3 (or more).
-
Hard-locked Dens
- Host a den that is locked on a single mon
- To host a hard-locked den: Set N to zero.
-
- Host's a singular soft-locked mon but maintains a backup save for re-rolling the den
- To host a soft-locked den: Set N to zero and set “BACKUP_SAVE” to true. (see below.)
- Follow the hyperlink above for instructions specific to hosting a soft-locked den
Functionally, all this program does is repeat the following sequence forever:
- Roll the den forward by N days.
- Host the Pokémon.
- Reset the game.
Important Warning:
All auto-hosts carry a risk of destroying the den that is being hosted. The failure case is an error that causes the program to clear the raid and drop a new wishing piece. Dropping a wishing piece is a hard-save and cannot be reversed via backup save.
If you care about your den, get rid of all your wishing pieces. They are easy to get back later with watt farming.
-
System Time: Unsynced
-
Casual Mode: Off
-
Text Speed: Fast
If starting the game requires checking the internet (because it is digital on a non-primary Switch), you will need to open up
PokemonSettings.c
and changeSTART_GAME_REQUIRES_INTERNET
to true.
-
Game is not currently connected to internet (Y-comm is white)
-
Position character as follows:
- Somewhere safe from being attacked by wild Pokémon
- Standing in front of a wishing piece den with watts collected
-
Save
-
Return game to overworld
-
Navigate to the Change Grip/Order Menu
-
Plug in micro-controller to start the program
- Or "Start Program" via serial UART if you have the setup for advanced programs
If hosting online, ensure you have a strong internet connection.
- Host offline using local communication instead of online
- Automatically accept friend requests
- Add a delay between raids to make farming more efficient when you can't clear a raid before the next one starts
- Select a first move for the hosting Pokémon
- Troll host and attack your allies for more challenge
By default, the program will start the raid at 2:00. Everybody needs to be ready by then or the raid may fail. This can be changed by modifying LOBBY_WAIT_DELAY
.
This program uses TOLERATE_SYSTEM_UPDATE_MENU_SLOW
to bypass the system update window.
In addition to the main options below, there are more global options that can be configured if you encounter problems.
const uint8_t RANDOM_DIGITS = 0;
const char* RAID_CODE = "1280 0000";
See Raid Code Entry.
const uint8_t SKIPS = 3;
This option sets how many frames to skip before hosting. Set to 0 if either hard-locked or backup save soft-locked on the Pokémon to host. Otherwise, set this to the # of frames behind the target you are saved. In most cases, this will be 3 frames. But sometimes people will save further back on high-value dens as a safety against accidental roll-over.
const bool HOST_ONLINE = true;
Set this to true if you want to host online and false if you want to host locally.
Make sure you have a strong internet connection if hosting online
const uint16_t LOBBY_WAIT_DELAY = 60 * TICKS_PER_SECOND;
Wait this long in the lobby before starting the raid. Thus the start time is 3:00 minus this value. The default is to wait 60 seconds which starts the raid at 2:00.
const bool BACKUP_SAVE = false;
If set to true, the game will load backup save upon soft-reset.
Use this for hosting a soft-locked den This option only makes sense when
SKIPS = 0
.
The idea here is to roll forward from the save frame to the shiny frame. Once on the shiny frame (with the desired softlock), you enter and exit the camp to setup a backup save on the shiny frame. That way, you can load the backup save on the shiny frame while leaving the real save safely 3 or more frames before.
// ALWAYS_CATCHABLE All pokemon in this den are catchable.
// MAYBE_UNCATCHABLE There may be uncatchable pokemon.
const Catchability CATCHABILITY = ALWAYS_CATCHABLE;
Some dens have uncatchable Pokémon (i.e. Mewtwo or Zeraora). If the den has any such uncatchable Pokémon, you must this to MAYBE_UNCATCHABLE. If the den has uncatchable Pokémon, but it is hard-locked in a way that prevents any of them from showing up while rolling or hosting, then it is safe to leave this as ALWAYS_CATCHABLE.
const uint8_t FRIEND_ACCEPT_USER_SLOT = 0;
If set to zero, do not accept friend requests. Otherwise, this is the user profile to accept friend requests for.
Once enabled, the program will automatically accept friend-requests while waiting in the lobby. It will do this multiple times to avoid getting disconnected and to give people more chances to see the code when streaming.
There is no current way to change how often the program accepts friend-requests
const uint16_t EXTRA_DELAY_BETWEEN_RAIDS = 0 * TICKS_PER_SECOND;
If you are farming a Pokémon and the time between raids is too short to join consecutive raids, use this to add time between raids. This extra wait time is done after entering the den, but before entering the code. Thus, the raid stamp pops up later.
const uint8_t MOVE_SLOT = 0;
const bool DYNAMAX = true; // Must set to false if you cannot dmax.
const uint8_t TROLL_HOSTING = 0; // 0 disables the troll hosting option, 1 attacks the first ally, 2 attacks the second one, 3 attacks the third one. Dynamaxing will disable this option.
This is a silly feature that lets you choose a first move before resetting the game.
If MOVE_SLOT
is 0, no first move is selected and the program resets as usual.
Otherwise, the move slot if the slot # for the move (1 = first move). The flag “DYNAMAX” will let you dmax/gmax the Pokémon as well.
const bool ALTERNATE_GAMES = false;
If you are able to play both Sword and Shield on the Switch without changing cartridges, this option will let you host both Sword and Shield dens on the same user using the same settings. When set to true, the auto-host will soft-reset into the other game instead of the same game.
Needless to say, Sword and Shield must be the 1st and 2nd game slots in the Switch Home menu.
const uint32_t TOUCH_DATE_INTERVAL = (uint32_t)4 * 3600 * TICKS_PER_SECOND; // 4 hours
If the den is not rolling (SKIPS = 0
), the date will advance naturally. This means that the den being hosted will eventually roll over. To prevent this, the auto-host will periodically touch the date at the specified interval.
Set this value to zero to disable the feature. This option is ignored if (SKIPS > 0) since it is unnecessary.
// Time from "Connect to Internet" to when you're ready to enter den.
const uint16_t CONNECT_TO_INTERNET_DELAY = 20 * TICKS_PER_SECOND;
// "Communicating" when entering den while online.
const uint16_t COMMUNICATING_STANDBY_DELAY = 8 * TICKS_PER_SECOND;
// Delay from "Invite Others" to when the clock starts ticking.
const uint16_t OPEN_ONLINE_DEN_LOBBY_DELAY = 8 * TICKS_PER_SECOND;
// Time from start raid to reset. (when not selecting move)
const uint16_t RAID_START_TO_EXIT_DELAY = 14 * TICKS_PER_SECOND;
// This + RAID_START_TO_EXIT_DELAY = time from start raid to select move.
const uint16_t DELAY_TO_SELECT_MOVE = 32 * TICKS_PER_SECOND;
These are all delays related to your internet connection. You may need to adjust these to ensure the auto-host works correctly.
Try with the defaults first. If things don’t work, then try increasing these timings. Likewise, if your internet connection is very fast, feel free to reduce some of these delays.
THIS INFORMATION IS ONLY APPLICABLE IF YOU ARE USING A SERIAL UART
The program outputs the number of raids hosted, raiders joined, and empty raids. This can be read by the serial programs.
THIS INFORMATION IS ONLY APPLICABLE IF YOU ARE USING A CAPTURE CARD
The serial version of this program utilizes video feedback to:
- Start the raid early when the lobby is full and all players are ready.
- Wait for any players who don't ready up by the start time.
For auto-hosting we no longer use the method of disconnecting from the raid. Instead we use a safe method involving backup saves. Here’s how it works:
- Save 3 (or more) frames before the shiny frame.
- Roll to the shiny and repeat until you get the desired Pokémon.
- While still in front of the den, enter the Pokémon Camp and leave it.
This establishes a backup save on the shiny frame with the current Pokémon.
- It hosts as if you are hardlocked. But when you reset, loads a backup save instead of regular save.
- When you are done hosting and you want to clear the softlock, just load the game normally. It will load back on the original saved frame that is 3 (or more) frames before the shiny.
This method is safe because it doesn’t do any actual saving. If the backup save is lost, you simply lose the soft-lock. This method also works offline, but it will freeze the raid for about a minute before the raiders can start the battle.
To configure the program to load backup save instead of the regular save, set “BACKUP_SAVE” to true.
For water dens, you will not be able to camp. However, here are some alternatives:
- Go into Y-COMM, then join and clear a random raid. This will establish a backup save.
- Manually host one raid online and disconnect. When you return to the overworld, it will establish a backup save.
- Windows OS
- Mac OS
- Windows OS
- Mac OS
- Not supported currently
Hardware Requirements
Example Hardware Setups
Appendix
- Change Grip Order Menu
- Day Skippers
- Global Settings
- How to host your first Raid
- Maximizing Switch Stability
- Pokemon Walls
- Program Compatibility
- Raid Code
- Unattended Shiny Hunting
- User Slot Number
Troubleshooting