[v20.1\v21.1] Arcky's Region Map

v21.1 [v20.1\v21.1] Arcky's Region Map v2.4.0

This resource pertains to version 21.1 of Pokémon Essentials.
Pokémon Essentials Version
v21.1 ✅
Also compatible with
  1. v20.1
Have you been waiting for a Region Map plugin that supports any region map size and works for both v20.1 and v21.1? Then don't look any further because you came to the right place!
I present to you
Arcky's Region Map! (Not all features are shown in detail in the video).

v20.1 and v21.1 common features:
  • Bigger map support.
  • Location Highlighting.
  • Unvisited Location Marking
  • Quest Icons and Preview. (Requires Modern Quest System)
  • New Fly Icons and Quick Fly.
  • Pokedex Area map scrolling.
  • Smart Option Selection (it'll remember the last chosen option).
v21.1 exclusive features:
  • Modular UI and Pokedex Data combability.
New Features (v20.1 and v21.1) (up to v2.3.0)
  • Region District Names.
  • Replace Unvisited Locations with "???" or any prefered text.
  • Multiple Mode Option Menu.
  • Custom Music on the Region Map.
  • Quest Preview Box auto Resize (requires Modern Quest System)
  • Comapbility with @LinKazamine Pokegear Themes.
  • Compability with @LinKazamine Lin's Weather System.
  • Bigger Screen Size support.
  • Detailed Location Preview.
  • Region Map switching with Menu.
  • Possibility to Change the UI for Each Region or for some Regions.
  • Possibility to Change the Max number of Choices being shown at the same time.
  • Compability with @-FL-'s Set the Controls Screen.
  • Game Translation Support.
  • Compability with @wrigty12's Berry Planting Improvements.
  • Implemented @-FL-'s Roaming Icon on Map.
  • Location Searcher with filter option.

Good to know:

  • The map scrolling is activated from the moment your region map is bigger than the default size of 480x320px.
  • To scroll the map in the pokedex just press USE (press F1 in game to know which key button) and the arrows Icons will show in which direction(s) you can scroll the map.
  • The quick Fly and Quest Icons and Preview can be turned on/off in the 001_RegionMap_Settings.rb file. (see Plugin Settings below)
  • Quest Icons are not shown on the public wall map or the fly map, only on the PokeGear map or the town map item.
  • You're free to change the graphics for the UI and icons to your preferences but you should respect their sizes and the positioning of the field meant for the map itself (the UI background specifically)


The installation process for this plugin is mostly the same for v20.1 and v21.1 but there are a few differences in where to put your own files.

If you have installed this plugin before, please follow the update installation instructions in the update log for v2.0.0. These will be added here later as well to avoid confusion.
  • Extract the Zip file using any extractor tool.
  • Inside the Arcky's Region Map folder you'll find 2 folders and 1 file.
  • Copy the townmapgen (either v20.1 or v21.1, depending on which version you're using) to your game's root folder (where game.exe is located) and remove the original one.
  • Depending on the Pokémon Essentials version you are using, open the respective folder.
  • Copy both the Graphics and Plugins folder in your game's root folder (where game.exe is located).
Version 20.1 Installation:
  • Go into your game's root folder and go to Graphics > Pictures folder.
  • Copy your Region images and paste them in RegionMap > Regions folder.
  • copy your hidden Region images, if you have any, in RegionMap > HiddenRegionMaps folder.
Version 21.1 Installation:
  • Go into your game's root folder and go to Graphics > UI > Town Map.
  • Copy your Region Images and paste them in the Regions folder.
  • Copy your Hidden Region Images and paste them in the HiddenRegionMaps folder.
  • Copy your Player Icons (if you made any custom ones) and paste them in Icons.
You have now installed this Plugin :)
For both versions you can also move the images instead of copying them to their new location.

Plugin Settings:

open 001_RegionMap_Settings.rb with notepad++ or any code editor and you'll be able to add more HiddenRegion stuff, turn certain features on/off and change the button to activate the Quick fly and Quest Preview. I don't really need to go over this here as I explained everything in this file itself.


This is for both v20.1 and v21.1 the exact same set-up.
(new since update 2.0.0):
Location Preview:
If some parts of following guides are a bit confusing to you, which is understandable, I recommend trying this plugin first in a new project and changing things in the 001_RegionMap_LocationInfo.rb file to see what's changed. This way you might be able to understand everything a lot better. (You can also just ask me for help :) I'll be happy to help you out.)
Go into the 000_Settings_and_Setup folder and open the 001_RegionMap_LocationInfo.rb file with notepad++ or any code editor (similar process as the Settings file). In this file you'll find pre-defined Location Info Data used for the Default Essentials Region Map.

I'll guide you through the process of editing this to make it correct for your own locations.

First of all here's a list of all possible parameters the data may contain:

  • description: a short description of the location.
  • icon: (optional) a MiniMap of the location.
  • directions (optional) you can list to which other locations this locations connects. They may either be coordinates or text with the name of the location. Possible directions are:
    • north:
    • northEast:
    • east:
    • southEast:
    • south:
    • southWest:
    • west:
    • northWest:
Example 1:
Lappet Town Location Data - Example 1:
LappetTown = {  
[SIZE=4][SIZE=4]  description: "A fairly old and loud town. It's a big and not so pretty place.",  
  south: [13, 13],  
  north: [13, 11],  
  west: [12, 12],  
  icon: "LappetTown" 

  • It's important to start with the name of the location and typing this with no spaces in-between the name so Lappet Town would be LappetTown.
  • The name must match with the location's name you wrote in the Town Map PBS (without spaces). description: speaks for itself what it is.
  • You can add text formatting but I'll come to this in a later example.
  • For each direction, you write the X and Y position of the point you want the direction to point to between [ and ] and separed by a comma. (This will be converted into text by the script.)
  • In case of this example, south: would point to "Route 8" which has 13, 13 as it's coordinates in the PBS file. north: would point to "Route 1" and west to "Safari Zone".
  • An Icon is automatically added by the script before each direction text. The icon: is the name of the image without "map" but "map" must be included in the image's name (so the image name should be "mapLappetTown.png).
Result in game:

The ??? is because I have the NO_UNVISITED_MAP_INFO setting set to true (false by default). If this setting is false then you'll see the actual location name, otherwise it's the text you set in the UNVISITED_MAP_TEXT setting.
Example 2:
Lappet Town Location Data - Example 2:
LappetTown = {
[SIZE=4]  description: "A fairly old and loud town. \nIt's a big and not so pretty place.",
  south: [13, 13],
  north: [13, 11],
  west: [12, 12],
  icon: "LappetTown" 
This might look the same as Example 1 but the difference is that in the description: text, after "town." you'll see a "\n" which results in a line break.
Other formatting like <ac> </ac> also work which will make the text be centred vertically.
A list of different formats supported is provided in the 001_RegionMap_LocationInfo.rb file.
Result in game:

Example 3:
Cedolan City Location Data - Example 3:
CedolanCity = {
[SIZE=4]  # location [13, 10]
  northEast_13_10: [14, 9],
  south_13_10: [13, 11],
  # location [14, 10]
  north_14_10: [14, 9],
  southWest_14_10: [13, 11],
  # used for both locations
  east: [15, 10],
  west: [12, 10],
  description_13_10: "The biggest City in Essen. It has a department store!",
  description_14_10: "The biggest City in Essen. It has a department store and what does it not have?",
  icon: "LappetTown" 

  • This might be a bit confusing but the order of defining each element doesn't matter but it's recommended to keep the same structure as it'll be easier to edit after some time.
  • For the 1st direction northEast: you noticed that it includes "_13_10" this is the coordinate of the point it should be used for. In other words, you can have different directions for each coordinate of a same location (a City/Town/Location/Route being bigger than 2 tiles on the Region Map).
  • For the 2nd direction south: which is similar to the 1st one, it also includes "_13_10" and thus also is used for coordinate 13, 10 only.
  • If you would happen to have put south_15_10: the direction will not be displayed as coordinate 15, 10 does not exist for this location (Cedolan City).
  • For the 3rd and 4th directions we do the same method as the first 2 but the direction changes (This will be more clear with the screenshot below).
  • The 5th and 6th direction don't have coordinates included as this will be used for all points of this location.
  • If you would add a new direction east_13_10: [14, 9] then this will be used for coordinate 13, 10 and coordinate 14, 10 will use the east: [15, 10] direction.
  • We can also do the same thing for the description as well. This way each point of a same location can have a different description (can be used for point of interests on cities or routes and such).
Result in Game (Position 1)

northEast_13_10: was set to [14, 9] which is Route 2 and south_13_10: was set to [13, 11] which is Route 1.

Result in Game (Position 2)

north_14_10: was set to [14, 9] which is Route 2 and southWest_14_10: was set to [13, 11] which is Route 1.

As you noticed from these 2 screenshots, the Arrow Icon changes as you changed the direction. This is optional but I personally like this little detail. The Location Preview stays up for a Same location so you'll see the Icon change when moving the cursor. Just keep in mind that the order the directions are shown in is always the same.
Example 4:
Route 3 Location Data - Example 4:
Route3 = {
[SIZE=4]  west_14_6: [13, 6],
  east_14_6: "Ice Cave",
  west_15_6: [13, 6],
  south_15_6: [15, 8],
  south_15_7: [15, 8],
  north_15_7: "Ice Cave",
  description: "A Route full with Trainers.",
  description_15_6: "An Icy Cold Cave located here... And still a lot of Trainers!" 

  • Route 3 has 3 coordinates on the Region Map so for the directions we can define 3 different ones.
  • As you might have noticed for east_14_6: and north_15_7: we don't put coordinates but "Ice Cave". I might already have said it (or not) but instead of coordinates you can simply put any text you want. This could be handy to point toward Point of interests and such.
  • I also gave point 15, 6 a different description (the coordinate the Ice Cave POI is on).
  • The other 2 will use the normal description: text.
Result in Game (Position 1)

Result in Game (Position 2)
That's it for the examples. Just keep in mind that the Directions and MiniMap Icon are an optional argument, the description is required if you want to see something on the location preview, well if you don't put anything, it'll give a message that there's no information given so don't worry, it won't crash the game. Also about the Dash line, you can turn this on/off in the settings.[/SIZE]

Hightlight Images:
Inside the Highlight folder you'll see these 2 folders:

Others is used for highlighting all type of locations except for Routes, we have the Routes folder for that.

Cities, Towns and Locations:
We'll start with the Others folder:

These are the example Images I've provided for you. The way of making them is for all of them the same so we'll take mapSize1x1 as an example. We'll break down it's name so you can understand it's purpose:

  • map: this should be included in the name for all images you make for the Region Map.
  • Size1x1: This is the size of the location. "Size" always needs to be included.

Important: The image is 48x48 as for the HGSS style. Depending on the Style you're using, your image could be smaller in size (16x16 for a 1x1 Location). In that case include "Small" in the image's name: "mapSize1x1Small"
Next are the route highlights. Here you'll need to know how the route will look before hand as making presets like with the other locations will not work. Of course you can use a route image for routes that are equal:

Let's look at the 1st one "mapRoute1"
This image is 16x16 as Route 1 is only 1 location. The image has a grey stroke on top and bottom because this part will overlap a part of the Town above and below it:
Route 1.png
Route 1 Highlighted.png

As for Route 3, there are 2 examples included:
Route 3.png
Route 3 highlighted.png
Route 3 highlighted 2.png

As you see on the second highlighting Image, the area around the Location is also colored.
You are free to do it as you prefer but I personally like the second highlight image more than the first one.
As for the coloring of the highlighting, you are free again to do them in any color you want, I just followed the HGSS style for the examples.
Unvisited Images:

The naming is the same like the highlighting but here it's only necessary for locations you can fly to.
In most cases those are cities/towns and rarely locations.
The script will only use one of these images if you can fly to that map.
If you don't want to use the unvisited location marking then you can make this folder empty.
Ignore the error messages
you'll get in the console, it'll say it can't find the image it's trying to use but that's normal as you deleted them.
Quest Icons and Quest Preview:
Note: I didn't test the quest plugin in v21.1 myself but I've heard it should work just fine in v21.1.
The requirement for this feature is pretty simple, all you need is the Modern Quest System Plugin installed.
Open the 004_Quest_Data.rb with notepad++ or any code editor.
This is all we need to add :Map1 => [region number, x position, y position]

  • Region number: This should normally be 0 or 1, 2, 3... if you have multiple Regions.
  • X-position: the X-point of the Icon on the map.
  • Y-position: the Y-point of the Icon on the map.
Showing Quest Icons on the Region Map:
[SIZE=4][SIZE=4]  Quest1 = {
    :ID => "1",
    :Name => "Introductions",
    :QuestGiver => "Little Boy",
    :Stage1 => "Look for clues.",
    :Location1 => "Lappet Town",
    :Map1 => [0, 13, 12],
    :QuestDescription => "Some wild Pokémon stole a little boy's favourite toy. Find those troublemakers and help him get it back.",
    :RewardString => "Something shiny!"
  • Here we set :Map1 => [0, 13, 12] which means that this will be displayed on Region 0 on Position-X=13 and Position-Y=12.
  • This will set the icon for the first Stage.
  • If you only put :Map then it'll use this for all stages of this Quest.
  • If you have 3 stages you can set :Map for 2 stages and :Map3 only for the 3rd stage for example.
Quest Icon.png

In game preview:


Editing the PBS File

This is for both versions the exact same method.
To make the highlighting and unvisited map marking properly work, we'll need to edit the town_map.txt PBS file and add extra information so the script knows which image to use for which point on the Region Map.
We'll handle the images at the same time but it's not too complicated. Just keep in mind that the examples are for the HGSS Region Map Style specifically and it would need to be done differently for your Region Map Style.
This can be done 2 ways:

  • manually editing the PBS file
  • using the townmapgen.html tool.
Open the town_map.txt file which is location in the PBS folder.
This is only a part of the PBS file from Base Essentials.
Name = Essen
Filename = mapRegion0.png
Point = 13,12,Lappet Town,Oak's Lab,2,8,8,
Point = 13,11,Route 1,,,,,
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11,
Point = 14,10,Cedolan City,,7,47,11,
Point = 14,9,Route 2,,,,,
Point = 14,8,Route 2,,,,,
Point = 15,8,Lerucean Town,,23,11,15,
Point = 16,8,Natural Park,,,,,
Point = 15,7,Route 3,,,,,
Point = 15,6,Route 3,Ice Cave,,,,
Point = 14,6,Route 3,,,,,
Example 1:
The 1st point is Lappet Town.
Lappet Town.png

This Location has a size of 1 by 1 on the Region map =>1 Point is defined.
Lappet Town (before edit):
Point = 13,12,Lappet Town,Oak's Lab,2,8,8,
Let's add which highlight/unvisited image to use for this location: we add the name of the image but don't include "map" => "Size1x1" (the script does that for you)
Lappet Town - Example 1:
Point = 13,12,Lappet Town,Oak's Lab,2,8,8,,Size1x1
Pay attention that you add an extra , before Size1x1 as that would normally be where we define a switch ID.

Result when the cursor is on this location:
Lappet Town Highlighted.png

Result when this location hasn't been visited yet:
Lappet Town Unvisited.png

You can also add "LappetTown" if you want to. (the image name should then be "mapLappetTown"
Lappet Town - Example 2:
Point = 13,12,Lappet Town,Oak's Lab,2,8,8,,LappetTown
But then you would probably be asking yourself: "But Arcky, now you write 2 times "Lappet Town" for the same point". Me: "Yes that's right but the first "Lappet Town" will be the location's name and the second one will be the image's name (excluding "map"). This also gives you the freedom to name the image whatever you want independent on the Location's name. You can go as crazy as you want with this :D". Also as you might have noticed I wrote "LappetTown" without spaces, this is just my own preference for the image names. You can add spaces if you want to.
Example 2:
The 3rd and 4th points are Cedolan City:
Cedolan City.png

This Location has a size of 2 by 1 on the Region map => 2 Points are defined.
Cedolan City (before edit):
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11,
Point = 14,10,Cedolan City,,7,47,11,

Let's add which highlight/unvisited image to use for this location: we add the name of the image but don't include "map" => "Size2x1" (the script does that for you)
Cedolan City - Example 1:
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11,,Size2x1
Point = 14,10,Cedolan City,,7,47,11,,Size2x1
Pay attention that you add an extra , before Size2x1 as that would normally be where we define a switch ID.

Result when the cursor is on this location:
Cedolan City Highlighted.png

Result when this location hasn't been visited yet:
Cedolan City Unvisited.png

Or you can name it "Cedolan City" if you want to here as well:
Cedolan City - Example 2:
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11,,Cedolan City
Point = 14,10,Cedolan City,,7,47,11,,Cedolan City
In this case I added a space in the image name: "mapCedolan City" so we add "Cedolan City" in the PBS for both points.
Example 3:
The 5th and 6th points are Route 2:
Route 2.png

This Location has a size of 1 by 2 on the Region map => 2 Points are defined.
Route 2 (before edit):
Point = 14,9,Route 2,,,,,
Point = 14,8,Route 2,,,,,
Adding which highlight/unvisited image to use for this location, we do like this by adding the information "Route 2" at the end of both points:
Route 2 - Example 1:
Point = 14,9,Route 2,,,,,,Route2
Point = 14,8,Route 2,,,,,,Route2

Result when the cursor is on this location:
Route 2 Highlighted.png

This might now be a bit confusing as for Routes we use the Route number/name. This is because each Route is unique is most cases. But again, you can name it "BridgeRoute" or anything else if you want to here as well:
Route 2 - Example 2:
Point = 14,9,Route 2,,,,,,BridgeRoute
Point = 14,8,Route 2,,,,,,BridgeRoute
Example 4:
The 8th point is Natural Park:
Natural Park.png

This Location has a size of 1 by 1 on the Region map => 1 Point is defined.
Natural Park (before edit):
Point = 16,8,Natural Park,,,,,
Adding which highlight/unvisited image to use for this location, we do like this by adding the information "Size1x1Small" at the end of both points:
Natural Park - Example 1:
Point = 16,8,Natural Park,,,,,,Size1x1Small

Result when the cursor is on this location:
Natural Park Highlighted.png

Or you can name it "NaturalPark" if you want to:
Natural Park - Example 2:
Point = 16,8,Natural Park,,,,,,NaturalPark
Example 5:
The 9th, 10th and 11th points are Route 3:
Route 3.png

This Location has a size of 2 by 2 on the Region map => 3 Points are defined. (Not 4 as on the bottom left, there's nothing on the map).
Route 3 (before edit):
Point = 15,7,Route 3,,,,,
Point = 15,6,Route 3,Ice Cave,,,,
Point = 14,6,Route 3,,,,,
Adding which highlight image to use for this location is going to be a bit more tricky, but not too complicated, than the first examples. We have a Point of Interest on the second point. If prefered, you want this point to be highlighted differently and not have the whole Route Highlighted.
Route 3 (before edit):
Point = 15,7,Route 3,,,,,,Route3
Point = 15,6,Route 3,Ice Cave,,,,,Size1x1SmallRoute3
Point = 14,6,Route 3,,,,,,Route3

result when the cursor is on the 1st or 3rd point:
Route 3 highlighted 2.png

result when the cursor is on the 2nd point:
Route 3 highlighted 3.png

Just like in example 3, you can name Route3 something else if you're not using Route numbers for example.

townmapgen.html tool:

I edited the townmapgen.html tool so it would support a bigger map size and there's an extra field of input where you can type your image name (excluding map)
I'll say it honestly, it's a bit broken right now but it'll do it's purpose without any issues.
The known issue is that you can select a point outside of the image. This won't crash your game but this point will never be shown in game either way.


Fly Icon Images:


You'll find these images in the Icons folder.

  • The 1st one is used when you can fly to a location.
  • The 2nd one is used when you can't fly to a location (yet).
  • the 3rd one is used when you hover with the cursor over a location, like the highlighting but this only works for flyable locations.
You can change these icons if you wish to. (I made them myself based on the ones from HGSS)

Modular UI and Pokedex Data page compability:

Note: This is only for Pokémon Essentials V21.1 The modular UI plugins will not work in v20.1 either way.

If you have these plugins already installed before mine, then there's not a problem except that you'll need to replace the bg_area.png image in Graphics > UI > Pokedex with the one in the Modular UI Pokedex Folder (you'll find this in my plugin's downloaded folder if you follow the same path (Graphics > UI > Pokedex)).


This concludes it once again for this plugin, if you got any question or suggestion for new features/changes, you can freely contact me on discord: Arcky1997 or you can join my Discord Server
@Lucidious89 : compability with the Modular UI and Pokédex Data plugins
@Alpha Zetanium XYZ : testing the plugin
@Arcky : yes, I did something too :P
First release
Last update
5.00 star(s) 19 ratings

More resources from Arcky

Latest updates

  1. v2.4.0: Progress Counter and Berry Preview Improvements

    I'm back already with the next update for this plugin. Bug Fixes: Fixed a bug with the list of...
  2. v2.3.0: Location Search and Fake Locations

    Bug Fixes: Fixed an issue with the District Counter crashing the game when the total Counter is...
  3. v2.2.0: Berry Mode (with preview) and Roaming Mode

    Bug fixes: Fixed an issue with the Arrow (pointing upwards) not moving correctly when the...

Latest reviews

A fantastic work which keeps updating all the time.
Thanks a lot, appreciate it :)
Great plug!
Can you help me? Im' tryng to create my second FanGame, for the first I used GSC Essential, this is the first FanGame with essential v20.1
Thank you :)
What do you need help with? You can contact me in DM on relic castle or on discord which might be easier
I'm not sure if i did it right but my words are on the left side not right and and this words are like moving fast
Can you show a screenshot in the discussion. This is the review page. Thanks for 5 stars though
a very useful resource for the map, especially if it is very large.
And a nice creator
Thank you, much appreciated :)
This is a phenomenal resource for making a high-quality town map for your game, and Arcky has been fantastic at responding to feedback and fixing issues
thank you so much and no problem at all, happy to help :)
Feature-packed, with more features being added very often, and the dev is extremely responsive, if I could give 10/5 stars I would
Thank you, much appreciated :D
Absolutely the most incredible plugin I've come across! I'm curious about the extent of the code behind it. <.<
Thanks buddy
Amazing plugin !
tough, i seem to have an issue caused by the plugin, where after closing the town map in game music just fades out. Any clues ?
Thanks. Are you sure you have default BGM set for the Game Map you're opening the town map from? Could you send me more details in discussion please
Excellent plugin!!! It would be great if it were compatible with Lyn's weather System!!!
Thanks and It will be very soon :D
Very handy and well made. Especially good if you are doing quests of have large map
Thanks man :D