Introduction:
Hello everyone!
I'm writing this tutorial because documentation on tile modding is very slim, and I've been asked how it's done. Just to warn you, tile modding can be a long and tiring process depending on the scale of your mod.
What are tile mods?
All maps in PokeMMO are made up of up tiles, which are 16x16 images. With the help of tile mods, you can change these tiles and make maps look however you want. For an example of this, check out Desu's shitpost. Before tile mods, the only way to edit tiles was through ROM hacking which was a horrible process with a huge set of limitations. The new system presented by PokeMMO allows for maps of more vibrant colors and extensive tiles.
How are tile mods structured?
Tile mods must be placed in .zip files and include these things:
The info.xml file included with any PokeMMO mod.
A folder named "maps" without quotes. The folder should contain the following:
A folder named "tilesets" without quotes. The folder contains all tilesets as .png images.
All edited map files in .tmx format.
What tools are needed for tile modding?
Every tool needed for tile modding is completely free! I will list them with links to their download pages. :)
Tiled Map Editor
Tiled Map Editor is the map editor used for tile modding. Since maps are dumped as .tmx files, this is the editor that must be used.
Gimp
Gimp is the preferred tile editing tool in my opinion. It provides support for custom grids, it's easy to use, and best of all it's free! If you have Adobe Photoshop and prefer it over Gimp, there are Photoshop alternatives to all tile editing done in Gimp.
Searching for a Specific Map:
I have compiled the first complete list of map Id's for Kanto. The list also includes each map's bank and map identifiers for those who use the Advanced Map tool for referencing. Unknown maps are not broken due to PokeMMO, most are garbage maps from within the ROM. I'd recommend searching through this list via the CTRL+F search function in your browser.
[spoiler]
1 - PALLET TOWN [4.0]
2 - PALLET TOWN [4.1]
3 - PALLET TOWN [4.2]
4 - UNKNOWN MAP
5 - PALLET TOWN [4.3]
6 - CERULEAN CITY [7.2]
7 - PEWTER CITY [6.4]
8 - VIRIDIAN CITY [5.4]
9 - VIRIDIAN CITY [5.5]
10 - VIRIDIAN CITY [5.3]
11 - ONE ISLAND [32.2]
12 - CERULEAN CITY [7.5]
13 - ROUTE 12 [23.2]
14 - UNKNOWN MAP
15 - CELADON CITY [10.16]
16 - UNKNOWN MAP
17 - RESORT GORGEOUS [39.0]
18 - UNKNOWN MAP
19 - UNKNOWN MAP
20 - FUCHSIA CITY [11.3]
21 - LAVENDER TOWN [8.3]
22 - UNKNOWN MAP
23 - UNKNOWN MAP
24 - UNKNOWN MAP
25 - VERMILION CITY [9.6]
26 - CERULEAN CITY [7.6]
27 - CELADON CITY [10.14]
28 - PEWTER CITY [6.2]
29 - UNKNOWN MAP
30 - FOUR ISLAND [35.4]
31 - THREE ISLAND [34.0]
32 - UNKNOWN MAP
33 - UNKNOWN MAP
34 - SAFFRON CITY [14.3]
35 - UNKNOWN MAP
36 - CINNABAR ISLAND [12.0]
37 - VIRIDIAN CITY [5.1]
38 - UNKNOWN MAP
39 - UNKNOWN MAP
40 - UNKNOWN MAP
41 - UNKNOWN MAP
42 - UNKNOWN MAP
43 - UNKNOWN MAP
44 - UNKNOWN MAP
45 - UNKNOWN MAP
46 - UNKNOWN MAP
47 - CELADON DEPT. [0.0]
48 - CELADON DEPT. [0.1]
49 - CELADON DEPT. [0.2]
50 - CELADON DEPT. [0.3]
51 - FUCHSIA CITY [11.0]
52 - UNKNOWN MAP
53 - UNKNOWN MAP
54 - UNKNOWN MAP
55 - UNKNOWN MAP
56 - UNKNOWN MAP
57 - UNKNOWN MAP
58 - UNKNOWN MAP
59 - UNKNOWN MAP
60 - UNKNOWN MAP
61 - UNKNOWN MAP
62 - UNKNOWN MAP
63 - UNKNOWN MAP
64 - UNKNOWN MAP
65 - UNKNOWN MAP
66 - UNKNOWN MAP
67 - UNKNOWN MAP
68 - UNKNOWN MAP
69 - UNKNOWN MAP
70 - UNKNOWN MAP
71 - UNKNOWN MAP
72 - UNKNOWN MAP
73 - UNKNOWN MAP
74 - UNKNOWN MAP
75 - UNKNOWN MAP
76 - UNKNOWN MAP
77 - UNKNOWN MAP
78 - PALLET TOWN [3.0]
79 - VIRIDIAN CITY [3.1]
80 - PEWTER CITY [3.2]
81 - CERULEAN CITY [3.3]
82 - LAVENDER TOWN [3.4]
83 - VERMILION CITY [3.5]
84 - CELADON CITY [3.6]
85 - FUCHSIA CITY [3.7]
86 - CINNABAR ISLAND [3.8]
87 - INDIGO PLATEAU [3.9]
88 - SAFFRON CITY [3.11]
89 - ROUTE 1 [3.19]
90 - ROUTE 2 [3.20]
91 - ROUTE 3 [3.21]
92 - ROUTE 4 [3.22]
93 - ROUTE 5 [3.23]
94 - ROUTE 6 [3.24]
95 - ROUTE 7 [3.25]
96 - ROUTE 8 [3.26]
97 - ROUTE 9 [3.27]
98 - ROUTE 10 [3.28]
99 - ROUTE 11 [3.29]
100 - ROUTE 12 [3.30]
101 - ROUTE 13 [3.31]
102 - ROUTE 14 [3.32]
103 - ROUTE 15 [3.33]
104 - ROUTE 16 [3.34]
105 - ROUTE 17 [3.35]
106 - ROUTE 18 [3.36]
107 - ROUTE 19 [3.37]
108 - ROUTE 20 [3.38]
109 - ROUTE 21 [3.39]
110 - ROUTE 22 [3.41]
111 - ROUTE 23 [3.42]
112 - ROUTE 24 [3.43]
113 - ROUTE 25 [3.44]
114 - MT. MOON [1.1]
115 - MT. MOON [1.2]
116 - MT. MOON [1.3]
117 - VIRIDIAN FOREST [1.0]
118 - S.S. ANNE [1.4]
119 - S.S. ANNE [1.5]
120 - S.S. ANNE [1.6]
121 - S.S. ANNE [1.7]
122 - S.S. ANNE [1.8]
123 - S.S. ANNE [1.9]
124 - DIGLETT'S CAVE [1.37]
125 - VICTORY ROAD [1.39]
126 - VICTORY ROAD [1.40]
127 - VICTORY ROAD [1.41]
128 - ROCKET HIDEOUT [1.42]
129 - ROCKET HIDEOUT [1.43]
130 - ROCKET HIDEOUT [1.44]
131 - ROCKET HIDEOUT [1.45]
132 - SILPH CO. [1.47]
133 - SILPH CO. [1.48]
134 - SILPH CO. [1.49]
135 - SILPH CO. [1.50]
136 - SILPH CO. [1.51]
137 - SILPH CO. [1.52]
138 - SILPH CO. [1.53]
139 - SILPH CO. [1.54]
140 - SILPH CO. [1.55]
141 - SILPH CO. [1.56]
142 - SILPH CO. [1.57]
143 - POKéMON MANSION [1.59]
144 - POKéMON MANSION [1.60]
145 - POKéMON MANSION [1.61]
146 - POKéMON MANSION [1.62]
147 - SAFARI ZONE [1.63]
148 - SAFARI ZONE [1.64]
149 - SAFARI ZONE [1.65]
150 - SAFARI ZONE [1.66]
151 - CERULEAN CAVE [1.72]
152 - CERULEAN CAVE [1.73]
153 - CERULEAN CAVE [1.74]
154 - UNKNOWN MAP
155 - UNKNOWN MAP
156 - SEAFOAM ISLANDS [1.83]
157 - SEAFOAM ISLANDS [1.84]
158 - SEAFOAM ISLANDS [1.85]
159 - SEAFOAM ISLANDS [1.86]
160 - SEAFOAM ISLANDS [1.87]
161 - POKéMON TOWER [1.88]
162 - POKéMON TOWER [1.89]
163 - POKéMON TOWER [1.90]
164 - POKéMON TOWER [1.91]
165 - POKéMON TOWER [1.92]
166 - POKéMON TOWER [1.93]
167 - POKéMON TOWER [1.94]
168 - POWER PLANT [1.95]
169 - ROUTE 25 [30.0]
170 - S.S. ANNE [1.10]
171 - S.S. ANNE [1.11]
172 - UNDERGROUND PATH [1.30]
173 - UNDERGROUND PATH [1.34]
174 - UNDERGROUND PATH [1.31]
175 - UNKNOWN MAP
176 - ROUTE 12 [23.0]
177 - S.S. ANNE [1.12]
178 - S.S. ANNE [1.18]
179 - CELADON CITY [10.6]
180 - PEWTER CITY [6.0]
181 - PEWTER CITY [6.1]
182 - CERULEAN CITY [7.1]
183 - CERULEAN CITY [7.0]
184 - CELADON CITY [10.7]
185 - CELADON CITY [10.8]
186 - CELADON CITY [10.9]
187 - CELADON CITY [10.10]
188 - CELADON CITY [10.11]
189 - CELADON CITY [10.15]
190 - CELADON CITY [10.17]
191 - CELADON CITY [10.19]
192 - CELADON CITY [10.0]
193 - CELADON CITY [10.1]
194 - CELADON CITY [10.2]
195 - CELADON CITY [10.3]
196 - CELADON CITY [10.4]
197 - CELADON CITY [10.5]
198 - SAFARI ZONE [1.67]
199 - SAFARI ZONE [1.71]
200 - FUCHSIA CITY [11.2]
201 - FUCHSIA CITY [11.7]
202 - FUCHSIA CITY [11.8]
203 - CINNABAR ISLAND [12.1]
204 - CINNABAR ISLAND [12.2]
205 - CINNABAR ISLAND [12.3]
206 - CINNABAR ISLAND [12.4]
207 - SAFFRON CITY [3.10]
208 - ROUTE 5 [17.1]
209 - ROUTE 7 [19.0]
210 - DIGLETT'S CAVE [1.36]
211 - DIGLETT'S CAVE [1.38]
212 - INDIGO PLATEAU [13.0]
213 - POKéMON LEAGUE [1.75]
214 - POKéMON LEAGUE [1.76]
215 - POKéMON LEAGUE [1.77]
216 - POKéMON LEAGUE [1.78]
217 - POKéMON LEAGUE [1.79]
218 - POKéMON LEAGUE [1.80]
219 - ROUTE 21 [3.40]
220 - ROUTE 11 [22.1]
221 - ROUTE 2 [15.0]
222 - ROUTE 22 [28.0]
223 - ROUTE 16 [25.1]
224 - ROUTE 11 [22.0]
225 - ROCKET HIDEOUT [1.46]
226 - SAFFRON CITY [14.0]
227 - SAFFRON CITY [14.1]
228 - SAFFRON CITY [14.2]
229 - SILPH CO. [1.58]
230 - ONE ISLAND [3.12]
231 - TWO ISLAND [3.13]
232 - THREE ISLAND [3.14]
233 - FOUR ISLAND [3.15]
234 - FIVE ISLAND [3.16]
235 - SEVEN ISLAND [3.17]
236 - SIX ISLAND [3.18]
237 - KINDLE ROAD [3.45]
238 - TREASURE BEACH [3.46]
239 - CAPE BRINK [3.47]
240 - BOND BRIDGE [3.48]
241 - THREE ISLE PORT [3.49]
242 - SEVII ISLE 6 [3.50]
243 - SEVII ISLE 7 [3.51]
244 - SEVII ISLE 8 [3.52]
245 - SEVII ISLE 9 [3.53]
246 - RESORT GORGEOUS [3.54]
247 - WATER LABYRINTH [3.55]
248 - FIVE ISLE MEADOW [3.56]
249 - MEMORIAL PILLAR [3.57]
250 - OUTCAST ISLAND [3.58]
251 - GREEN PATH [3.59]
252 - WATER PATH [3.60]
253 - RUIN VALLEY [3.61]
254 - TRAINER TOWER [3.62]
255 - CANYON ENTRANCE [3.63]
256 - SEVAULT CANYON [3.64]
257 - TANOBY RUINS [3.65]
258 - UNKNOWN MAP
259 - UNKNOWN MAP
260 - UNKNOWN MAP
261 - UNKNOWN MAP
262 - CELADON DEPT. [0.4]
263 - SAFFRON CITY [14.9]
264 - UNKNOWN MAP
265 - SEVEN ISLAND [31.1]
266 - VIRIDIAN CITY [5.2]
267 - UNKNOWN MAP
268 - UNKNOWN MAP
269 - MT. EMBER [1.96]
270 - BERRY FOREST [1.109]
271 - ONE ISLAND [32.0]
272 - TWO ISLAND [33.0]
273 - VERMILION CITY [9.3]
274 - LAVENDER TOWN [8.2]
275 - ROUTE 5 [17.0]
276 - VIRIDIAN CITY [5.0]
277 - FOUR ISLAND [35.0]
278 - UNKNOWN MAP
279 - UNKNOWN MAP
280 - MT. EMBER [1.97]
281 - MT. EMBER [1.101]
282 - MT. EMBER [1.98]
283 - MT. EMBER [1.99]
284 - MT. EMBER [1.100]
285 - MT. EMBER [1.103]
286 - MT. EMBER [1.104]
287 - MT. EMBER [1.105]
288 - MT. EMBER [1.106]
289 - MT. EMBER [1.107]
290 - MT. EMBER [1.108]
291 - MT. EMBER [1.102]
292 - ROCKET WAREHOUSE [1.114]
293 - ICEFALL CAVE [1.110]
294 - ICEFALL CAVE [1.111]
295 - ICEFALL CAVE [1.112]
296 - ICEFALL CAVE [1.113]
297 - TRAINER TOWER [2.10]
298 - TRAINER TOWER [2.1]
299 - TRAINER TOWER [2.2]
300 - TRAINER TOWER [2.3]
301 - TRAINER TOWER [2.4]
302 - TRAINER TOWER [2.5]
303 - TRAINER TOWER [2.6]
304 - TRAINER TOWER [2.7]
305 - TRAINER TOWER [2.8]
306 - TRAINER TOWER [2.9]
307 - TRAINER TOWER [2.11]
308 - CERULEAN CITY [7.9]
309 - DOTTED HOLE [1.115]
310 - DOTTED HOLE [1.116]
311 - DOTTED HOLE [1.117]
312 - DOTTED HOLE [1.118]
313 - DOTTED HOLE [1.119]
314 - DOTTED HOLE [1.120]
315 - BIRTH ISLAND [2.58]
316 - ONE ISLAND [32.1]
317 - PATTERN BUSH [1.121]
318 - THREE ISLE PATH [2.34]
319 - UNKNOWN MAP
320 - LOST CAVE [2.12]
321 - LOST CAVE [2.13]
322 - LOST CAVE [2.14]
323 - LOST CAVE [2.15]
324 - LOST CAVE [2.16]
325 - LOST CAVE [2.17]
326 - LOST CAVE [2.18]
327 - LOST CAVE [2.19]
328 - LOST CAVE [2.20]
329 - LOST CAVE [2.21]
330 - LOST CAVE [2.22]
331 - LOST CAVE [2.23]
332 - LOST CAVE [2.24]
333 - LOST CAVE [2.25]
334 - LOST CAVE [2.26]
335 - MONEAN CHAMBER [2.27]
336 - LIPTOO CHAMBER [2.28]
337 - WEEPTH CHAMBER [2.29]
338 - DILFORD CHAMBER [2.30]
339 - SCUFIB CHAMBER [2.31]
340 - ALTERING CAVE [1.122]
341 - TANOBY KEY [2.35]
342 - BIRTH ISLAND [2.56]
343 - NAVEL ROCK [2.0]
344 - NAVEL ROCK [2.36]
345 - NAVEL ROCK [2.37]
346 - NAVEL ROCK [2.38]
347 - NAVEL ROCK [2.39]
348 - NAVEL ROCK [2.40]
349 - NAVEL ROCK [2.41]
350 - NAVEL ROCK [2.42]
351 - NAVEL ROCK [2.43]
352 - NAVEL ROCK [2.44]
353 - NAVEL ROCK [2.45]
354 - NAVEL ROCK [2.46]
355 - NAVEL ROCK [2.47]
356 - NAVEL ROCK [2.48]
357 - NAVEL ROCK [2.49]
358 - NAVEL ROCK [2.50]
359 - NAVEL ROCK [2.51]
360 - NAVEL ROCK [2.52]
361 - NAVEL ROCK [2.53]
362 - RIXY CHAMBER [2.32]
363 - VIAPOIS CHAMBER [2.33]
364 - NAVEL ROCK [2.54]
365 - NAVEL ROCK [2.55]
366 - UNKNOWN MAP
367 - UNKNOWN MAP
368 - UNKNOWN MAP
369 - UNKNOWN MAP
370 - UNKNOWN MAP
371 - UNKNOWN MAP
372 - UNKNOWN MAP
373 - UNKNOWN MAP
374 - UNKNOWN MAP
375 - UNKNOWN MAP
376 - UNKNOWN MAP
377 - UNKNOWN MAP
378 - UNKNOWN MAP
379 - UNKNOWN MAP
380 - UNKNOWN MAP
381 - UNKNOWN MAP
382 - SEVEN ISLAND [31.0]
383 - EMBER SPA [2.57]
384 - UNKNOWN MAP
[/spoiler]
Step 1: Creating Your Tileset(s):
The first step in tile modding in creating the tileset for your map(s). A map can contain any number of tilesets and tilesets can be any size (to my knowledge). When maps are first dumped from PokeMMO, they contain two default tilesets containing the original Kanto/Hoenn tiles.
Preparing Gimp:
Open Gimp
Open your tileset or create a .png image (make sure its width/height are divisible by 16)
Go to Image -> Configure Grid
Set the grid spacing to 16x16 pixels then press OK.
Go to View -> Click Show Grid.
Placing Tiles into the Tileset:
To place tiles into the tileset, simple cut and paste them from a source (such as a tileset found online). When placing tiles into a tileset, there are a few general rules to follow:
Make sure doors consume an entire tile on the grid. Otherwise it will not be located properly in-game.
Keep related tiles held close together (grass with flowers, paths with fence, ect.)
Do not have huge spots of white space where possible.
When you are done adding tiles to the tileset, save the image to the /tilesets/ folder as a .png file.
Example:[spoiler][/spoiler]
Adding the Tileset to the Map:
To add the tileset to the map, follow these steps:
Open Tiled Map Editor.
Go to Map -> New Tileset -> Click Browse...
Click the tileset image -> Click OK.
Click OK.
The tileset should now be added to the map!
Step 2: Replacing Tiles
When replacing tiles, it is important to remember that you are simply upgrading the visuals of the original tiles on the map. You cannot place trees or any obstacle in any location because all of your changes are purely visual.
All About Tile Layers:
A tile layer is just as is sounds; a layer of tiles. PokeMMO only supports two and they can be named anything (by defaut: Top Tile Layer, Bottom Tile Layer). The top tile layer covers heroes and any tile that it covers on the bottom layer. It is important that you only draw tiles on the top layer where you are supposed to, or you will be in for a bad time.
Note: If a tile on a map is dumped with two layers, that tile automatically has the "player covers both layers" attribute. You can use this to your advantage but it can also hurt you.
Replacing Tiles:
I always start by replacing tiles in the bottom layer. Any tile that you walk on top of, or any tile that shouldn't cover you, should be on the bottom layer. This usually includes things like grass, paths, fences, signs, ect.. To replace tiles, follow these steps:
Make sure you have the correct layer highlighted (top right pane by default).
Click your tileset's tab in the Tilesets pane (bottom right by default) within Tiled Map Editor.
Click the tile you wish to place on the map.
Click the area(s) on the map you wish to place to tile.
Repeat steps 3 and 4 until you've completed the layer.
Finally, repeat steps 3 and 4 for the other layer.
Step 3: Editing Map Properties:
The final step in editing a map is editing its map properties. To view a map's properties, go to Map -> Map Properties.
Editing Border Data:
There are 4 attributes for border data.
border_bottom: The tile IDs for the bottom layer of border tiles, represented as a comma-separated list of integers.
border_height: The border's height in tiles
border_top: The tile IDs for the top layer of border tiles, represented as a comma-separated list of integers.
border_width: The border's width in tiles
Note: The IDs in border_bottom and border_top should be the tile's ID (to see the tile's ID, click on it and look at the info pane) then add 1. The tileset that holds the border tiles should be the first tileset on the map.
I plan on updating this thread with images and more details, but I'm busy with a research paper right now... :<