SOS: PBS Data

Section 7.B.2

Upon installing the plugin for the first time, you must recompile your game. This is not an optional step. This will update all of your relevant PBS files with the necessary data. If you're unaware of how to recompile your game, simply hold down the CTRL key while the game is loading in debug mode and the game window is in focus.

Installation Details

If done correctly, your game should recompile. However, you will also notice lines of yellow text above the recompiled files, like this:

This indicates that the appropriate data have been added to the following PBS files:

  • items.txt

  • pokemon.txt

  • pokemon_forms.txt

  • pokemon_base_Gen_9_Pack.txt (if the Gen 9 Pack is installed)

  • pokemon_forms_Gen_9_Pack.txt (if the Gen 9 Pack is installed)

This will only occur the first time you install the plugin. If you for whatever reason ever need to re-apply the data this plugin adds to these PBS files, you can force this to happen again by holding the SHIFT key while loading your game in debug mode. This will recompile all your plugins, and the data will be re-added by this plugin as if it was your first time installing.

Note: Because this plugin adds new PBS data to your files, it is highly recommended that you make back ups of the PBS files listed above prior to installing this plugin. Also, keep in mind that if you ever choose to uninstall this plugin, you'll need to replace these PBS files with your backups, since the data added by this plugin will no longer be readable by Essentials without this plugin installed.


Item PBS Data

After compiling, some of the data for the following items found in items.txt may have changed.

Adrenaline Orb

This plugin edits your items.txt PBS file to make a single change to the Adrenaline Orb item. All this does is set BattleUse = Direct for this item, which allows it to be used from your bag during battle.

Using the Adrenaline Orb in battle increases the odds of wild Pokemon using SOS calls.


Species PBS Data

For each species or form entered in your various PBS files, any number of the following lines of data may have been added. I'll go into detail about what each new line of data does, how it can be set, and provide some examples.

CallRateSOS = Integer

This sets the SOS call rate for this species or form. An SOS call rate determines how likely the species is to call for help during battle, and the odds of each call being successful. This should be set as an integer, which represents the odds of these things occurring.

In Sun & Moon, the call rate for each species was set as either 3, 6, 9, or 15; with 3 being the lowest odds, while 15 being the highest odds. Typically, very common and weak species will have a high call rate of 15, such as Caterpie or Rattata. While strong and/or rare Pokemon will have the lowest call rate of 3, such as Scyther or Gyarados. However, you have no obligation to stick to these standards. You can set the call rate to whatever number you want, for any species.

Note that if you do not set a call rate for a species at all, then it is assumed that the call rate for this species is zero. A species with a call rate of 0 will never call for help during battle. Most legendaries, starters, and 3-stage fully evolved Pokemon do not call for help, so by default these species will not have call rate data set. But again, you don't have to stick to these standards.

One last thing to note is the call rate for specific forms of a species. If no call rate is set for that form, then the call rate they use will always just default to whatever the call rate is for the base form of that species. However, if you set a call rate for a form, that will override the default call rate, allowing each form to have different call rates.

SpeciesSOS = Species ID or Array

This sets the species that may join this species in battle after a successful SOS call. By default, every species will always just call another Pokemon of their same species to help them. However with this setting, you can change it so that any species you set here may appear instead.

You can set multiple species here too, if you want there to be the potential for a variety of different species to answer an SOS call from this species. However, the order is important. The first species entered will always be the most common to appear, while all subsequent species in this list will be considered "rare" encounters, and thus only have a 15% chance to roll for one of them to be called.

For some example, Tauros is given this line in its PBS data:

SpeciesSOS = TAUROS,MILTANK

This means that 85% of the time, wild Tauros will call other wild Tauros to its side when it calls for help. However, 15% of the time wild Miltank will show up instead.

For a more extreme example, let's take Tyrogue's entry:

SpeciesSOS = TYROGUE,HITMONCHAN,HITMONLEE,HITMONTOP,HAPPINY

Here, wild Tyrogue will have an 85% chance to call other wild Tyrogue to its side. However, there is a 15% chance that it may call one of the following instead: Hitmonchan, Hitmonlee, Hitmontop, or Happiny.


By default, if a species is entered in SpeciesSOS that matches the same species as the user, then the form of that called species will match the caller's form. For example, let's take the Tauros example from above:

SpeciesSOS = TAUROS,MILTANK

This makes it so Tauros may call another Tauros or a Miltank when using an SOS call. However, what if you have Paldean Tauros in your game? If Paldean Tauros makes an SOS call, it will also call Tauros or Miltank. But, because Tauros and Paldean Tauros both share the same base species, any Tauros called by Paldean Tauros will also be in Paldean form, and will not spawn in its base form.

There may be situations where you don't want this to happen, however. For these situations, you can use the SOSForm_# flag, where # is the form number you want to spawn. For example, Spiky-Eared Pichu is form 1 of Pichu. So, if you're in a battle with Spiky-Eared Pichu and it uses an SOS call to summon another Pichu, that newly spawned Pichu would want to inherit the form of the original caller (form 1), making it another Spiky-Eared Pichu.

However, you don't want this to happen, since Spiky-Eared Pichu should be unique. Instead, we want base form Pichu to be summoned.

To do this, all we need to do is give Spiky-Eared Pichu the flag SOSForm_0. This will flag it so that if Spiky-Eared Pichu ever makes an SOS call that summons another one of its kind, the form of that new Pichu will always be set to 0. This can be done with any species, so you can customize the exact forms of certain species you would like to appear, regardless of the form of the original caller.

ConditionalSOS = Species ID, Encounter type ID, Map number

This sets additional species that may join this species in battle after a successful SOS call, but only under very specific conditions. These conditions include whether you encountered the species in a specific way and/or whether or not the species was encountered on a specific map.

For example, let's say you want wild Magikarp to have a chance to call wild Gyarados to come to their aid through SOS calls. But, you don't want this to happen with just any Magikarp the player encounters, because this would be too overpowered to encounter early on in the game. So instead, you only want Magikarp that are encountered in a specific way or a specific map (or both) to be able to do this. You can accomplish this by setting a ConditionalSOS. Here's some examples of ways this could be set up:

  • ConditionalSOS = GYARADOS,Water,10 This would allow wild Magikarp to have a chance to call wild Gyarados, but only if Magikarp was specifically encountered through the :Water encounter type, and only specifically on map 10.

  • ConditionalSOS = GYARADOS,SuperRod, This would allow wild Magikarp to have a chance to call wild Gyarados, but only if Magikarp was specifically encountered through the :SuperRod encounter type. The map number here has been left blank, so this means this can happen on any map.

  • ConditionalSOS = GYARADOS,,30,GYARADOS,,31,GYARADOS,,32 This would allow wild Magikarp to have a chance to call wild Gyarados, but only if Magikarp was specifically encountered on maps 30, 31, and 32. The encounter type has been left blank, so this means that this can happen regardless of the method in which Magikarp is encountered.

  • ConditionalSOS = GYARADOS,Water,,WISHIWASHI,WaterDay,25,MILOTIC,PokeRadar,72 This would allow wild Magikarp to have a chance to call wild Gyarados, but only if Magikarp was specifically encountered through the :Water encounter type on any map. This would also allow wild Magikarp to have a chance to call wild Wishiwashi, but only if Magikarp was specifically encountered through the :WaterDay encounter type, and only specifically on map 25. This would also allow wild Magikarp to have a chance to call wild Milotic, but only if Magikarp was specifically encountered through the :PokeRadar encounter type, and only specifically on map 72.


If you need to reference all the possible encounter type ID's which can be used, these are the ones included in Essentials by default:

  • :Land

  • :Cave

  • :Water

  • :OldRod

  • :GoodRod

  • :SuperRod

  • :RockSmash

  • :HeadbuttLow

  • :HeadbuttHigh

  • :PokeRadar

  • :BugContest

Note: For the first three types in this list, you may add any one of the following to specify a time of day: Day, Night, Morning, Afternoon, or Evening. For example, :LandDay would only consider encounters that happen on land in the day time.

RivalSpecies = Species ID or Array

This setting allows you to set the rival species for a particular species. You can list as many different rivals as you please. If a wild Pokemon of this species is on the field with another Pokemon that is a member of one of its rival species, it will prioritize attacking that rival first, even if they're on the same side.

For example, Corsola is listed as Mareanie's rival, as such:

RivalSpecies = CORSOLA

So whenever a wild Mareanie is on the field while a Corsola is also on the field, the wild Mareanie will always prioritize attacking Corsola.


If you want all forms of a species to count as a rival species, you can do so by using the flag AllRivalForms. For example, let's say you want wild Lickitung to consider Alcremie a rival species and attack it whenever it detects one on the field. To do this, you would enter Alcremie as a rival species for Lickitung, as so: RivalSpecies = ALCREMIE

However, this poses a problem. Only the base form of Alcremie will be recognized as a rival species. You could resolve this by entering all of Alcremie's possible forms as rival species too, but with 60+ forms to consider, this would be really impractical to have to enter by hand.

To resolve this, you can instead give Alcremie's base form the flag AllRivalForms. This will flag all of Alcremie's forms as being eligible rival species for any other species that lists Alcremie as a rival. This can be a helpful shortcut for setting up rival species for Pokemon that have many different cosmetic forms.


Map Metadata

The map_metadata.txt file is not edited by this plugin. However, code is put in place to recognize the following if you so choose to add this data to any of your map entries yourself.

SpecialSOS = Species ID, Integer, Time of day, Conditional type, Condition

This allows you to set up map-specific SOS encounters that can be called by any Pokemon encountered on that map. This can be used if you want a specific species to be a possible SOS encounter on a given map, regardless of the species of the caller.

To do this, you just need to add this line to the data of a specific map's entry in map_metadata.txt that contains the following data:

  • Species ID The ID of the specific species you want to appear as an SOS call on this map.

  • Integer The percent chance of this species answering a wild Pokemon's call (1-100).

  • Time of Day The specific time of day this species should be available to call, if any. This can be any one of the following: Any, Day, Night, Morning, Afternoon, Evening. If this field is left empty, then it defaults to Any time of day.

  • Field Conditional type The specific type of field condition that should be checked for to see if this species should be available to call. This can be any one of the following: Any, Weather, Terrain, Environment. If this field is left empty, then it defaults to Any field conditional type.

  • Field Condition The specific field condition of the type listed above. For example, if Weather was set, then this field should be a type of weather, such as Rain or Sun. If Terrain was set, this should be set to a specific terrain type, such as Grassy or Misty. If Environment was set, this should be set to a specific environment type, such as Forest or Underwater. If Any was set, or it was left empty, then this field should also be left empty.

For example, let's add a special SOS encounter to Route 1 in default Essentials:

[005] # Route 1
Name = Route 1
Outdoor = true
ShowArea = true
MapPosition = 0,13,11
BattleBack = field
SpecialSOS = PIKACHU,5,Any,Any,

This will make it so that any wild Pokemon you encounter on Route 1 will have a 5% chance of attracting a wild Pikachu when making an SOS call, regardless of the species of the caller and regardless of which species it would normally call. This can happen at any time of day, under any circumstances.

Here's a series of more detailed examples to demonstrate the many ways that this data can be set:

  • SpecialSOS = POLIWRATH,1,Any,Weather,Rain This would make it so that wild Poliwrath have a 1% chance to be called during any time of day, but only if it's currently raining in battle.

  • SpecialSOS = FLORGES,50,Morning,Terrain,Grassy This would make it so that wild Florges have a 50% chance to be called, but only during morning hours, and only if Grassy Terrain is currently set in battle.

  • SpecialSOS = TRAPINCH,20,Day,Environment,Sand This would make it so that wild Trapinch have a 20% chance to be called, but only during daytime hours, and only if the battle environment is set to Sand.

  • SpecialSOS = LYCANROC_1,100,Night,Any, This would make it so that wild Midnight form Lycanroc have a 100% chance to be called, but only during night time hours. This can happen under any field condition.

  • SpecialSOS = JOLTEON,10,Any,Terrain,Electric,FLAREON,10,Any,Environment,Volcano,VAPOREON,10,Any,Weather,Rain,LEAFEON,10,Any,Weather,Sun,GLACEON,10,Any,Weather,Hail,ESPEON,10,Day,Any,,UMBREON,10,Night,Any,, Here's an extreme example to show how far this can be pushed. This would make it so that the following SOS encounters may be called by any Pokemon while on this map:

    • 10% chance to call Jolteon, but only if Electric Terrain is in play.

    • 10% chance to call Flareon, but only if the battle environment is set to Volcano.

    • 10% chance to call Vaporeon, but only if the weather is set to Rain.

    • 10% chance to call Leafeon, but only if the weather is set to Sun.

    • 10% chance to call Glaceon, but only if the weather is set to Hail.

    • 10% chance to call Espeon, but only during the day.

    • 10% chance to call Umbreon, but only at night.


Special Spawn: Castform

If you set a SpecialSOS for a map that depends on the current weather in battle, there is a small chance that Castform will spawn instead, regardless of whatever the SpecialSOS species was that you set. This may only occur if the weather that you set is either Sun, Rain, or Hail.

For example, if you set this SOS encounter for a particular map:

SpecialSOS = CHERRIM,5,Day,Weather,Sun

Then this would make it so that wild Cherrim have a 5% chance to be called, but only during the day while the weather is sunny. However, because Weather was specifically set for this special SOS encounter, and the specific weather being checked for is one of Sun, Rain, or Hail, it's possible that Castform may be summoned instead. Castform is considered a "rare" spawn, which means it has a 15% chance frequency to appear if Cherrim would be called.

This means that since Cherrim in this example is set to have a 5% chance to be called, Castform would have a 15% chance out of a 5% chance to be called, meaning that Castorm's overall chance to appear from any SOS call is 0.8%. This is an exceedingly rare spawn, but it's a fun little surprised when it happens.

Last updated