• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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.

Script: Walk In Storage Boxes

Walk-In Storage Boxes with Overworld Pokemon - by derFischae (Credits if used please)

This script is for Pokémon Essentials v20 and v20.1 (for short PEv20).
VERSION-NUMBER: v0.0.1

Every storage box has an representation as a map, where you can walk in as the player and see your caught pokemon move as overworld pokemon and interact with them.


FEATURES
  • You can create maps where your caught pokemon live and run around
  • Pokemon play their cry when touched

INSTALLATION
  • Add Graphics: Either get the resources from Gen 8 Project (broken link removed)
    and install the "Graphics/Characters" folder in your game file system.
    Or you place your own sprites for your pokemon/fakemon with the right names in your "\Graphics\Characters\Follower" folder and your shiny sprites in your "\Graphics\Characters\Follower shiny" folder.
    The right name of sprites is:
    usual form - SPECIES.png where SPECIES is the species name in capslock (e.g. PIDGEY.png)
    alternate form - SPECIES_n.png where n is the number of the form (e.g. PIKACHU_3.png)
    female form - SPECIES_female.png or SPECIES_n_female (e.g. PIDGEY_female.png or PIKACHU_3_female.png)
  • Create Maps: build and design a map for each storage box and keep the corresponding map ids in mind . Also make sure that these maps are accessible for the player and connected to the ordinary maps, somehow.
  • Add Script: Go to https://github.com/VisibleOverworldWildEncounters/Walk-In-Storage-Boxes and install the folder in you plugins folder.
  • Change Settings: Open the settings.rb file in the folder and write down the map ids in the parameter STORAGE_MAPS and change the parameters in the settings section therein as you like. Details descriptions about the parameters can be found there as well.
  • Enjoy!
 
I was in the middle of working on something similar, this is great!

When it comes to them being tied to Storage, does that include the player party?
 
I was in the middle of working on something similar, this is great!

When it comes to them being tied to Storage, does that include the player party?

You can also include your party to a map. Because your party is basically your storage box with number -1.
 
I got this error if start a new game
[PokeCommunity.com] Walk In Storage Boxes
 
About a map_id in setting,
I still confuse how to insert ID map in the setting
Can you give me a example?

there is an example in the settings.rb file. This example adds pokemon from box with number 0 to the map with id 5. The spawn positions are on the diagonal tiles [x,y]=[0,0], [1,1], [2,2], etc. You find the map-id in the map properties in the map editor.
 
there is an example in the settings.rb file. This example adds pokemon from box with number 0 to the map with id 5. The spawn positions are on the diagonal tiles [x,y]=[0,0], [1,1], [2,2], etc. You find the map-id in the map properties in the map editor.

I have try to follow like on example,
Maybe you can correct if I'm wrong...
In settings :
Spoiler:

And I'm getting error' like this
Spoiler:


Note : for 7 in maps_id, that's a my first Route on map..
 
I have try to follow like on example,
Maybe you can correct if I'm wrong...
In settings :
Spoiler:

And I'm getting error' like this
Spoiler:


Note : for 7 in maps_id, that's a my first Route on map..

Oh no, for every map, seperately, you have to copy and paste the whole register-block and change it to the new settings (i.e. map-id, storage-box etc.)
Code:
GameData::StorageMap.register({
  :id              => :Box1,
  :id_number       => 1,
  :name            => _INTL("Box 1"),
  :storage_box     => 0,
  :map_id          => 7,
  :spawn_positions => [[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[17,17],[18,18],[19,19]],
})

GameData::StorageMap.register({
  :id              => :Box2,
  :id_number       => 2,
  :name            => _INTL("Box 2"),
  :storage_box     => 1,
  :map_id          => 12,
  :spawn_positions => [[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[17,17],[18,18],[19,19]],
})

GameData::StorageMap.register({
  :id              => :Box3,
  :id_number       => 3,
  :name            => _INTL("Box 3"),
  :storage_box     => 2,
  :map_id          => 14,
  :spawn_positions => [[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[17,17],[18,18],[19,19]],
})
 
how great for interactions! One question: can I send different boxes to the same map? or should it be a map for each box?
 
Love this! Is perfect for the game I'm making! Thanks! <3

Just one question: after playing the cry the Pokémon stops moving and stays in place until the map is refreshed. Is this the normal behavior or the Pokémon should resume walking after the interaction?
 
Hi! While this script works in 21.1 it may have some compatibility issues. In my project every time I went out to a particular map (not those linked to this storage map) portions of the tilesets looked transparent and then "repaired" as they went off screen, on returning to the area the problem is resolved. In this regard, not knowing what was going on, I pulled all my plug ins and the only one generating the problem was this one. Is there any way to fix it? Are there plans to do an update? I will try to keep an eye on it anyway.
 
is there a way to have an event run if a specific pokemon is present on the map from this script?
 
is there a way to have an event run if a specific pokemon is present on the map from this script?

Yes you can. For instance, you can create an event that searches for all gameEvents on the map. An gameEvent that is the representation of the a pokemon in your storage is of the type Game_BoxPokemonEvent and stores its pokemon under gameEvent.pokemon whose species for example is gameEvent.pokemon.species.
 
is there any way to be able to interact with the Pokemon? say to hold or swap items and or add or replace with a party Pokemon? I'm trying to eliminate the pc box for a more ranch-style gameplay instead of squishing them into data lol.
 
is there any way to be able to interact with the Pokemon? say to hold or swap items and or add or replace with a party Pokemon? I'm trying to eliminate the pc box for a more ranch-style gameplay instead of squishing them into data lol.
Yes you can. The script place a pokemon cry when you interact with an pokemon. You can replace that in the script code with your functionality.
Search for
Code:
def pbPlayCryOnOverworld(pokemon,form=0,volume=30,pitch=100) # default volume=90
  return if !pokemon || pitch <= 0
  form = 0 if form==nil
  if pokemon.is_a?(Pokemon)
    if !pokemon.egg?
      GameData::Species.play_cry_from_pokemon(pokemon,volume,pitch)
    end
  else
    GameData::Species.play_cry_from_species(pokemon,form,volume,pitch)
  end
end
in the script code and put in the code for the menu you want to open when interacting.
Code:
def pbPlayCryOnOverworld(pokemon,form=0,volume=30,pitch=100)
  # put the pokemon menu effect you want to open here
end
See in UI section of the the pokemon essentials code to see how the default menu does it and learn how to reproduce it.
 
Back
Top