The game world is made up of maps grouped into areas. An area is a collection of related maps, like all the rooms in Boo's Mansion. Most chapters have one or two areas.
Paper Mario's areas
| Folder | Japanese | English |
|---|---|---|
| kmr | クリむら | Goomba Village |
| mac | まち | Toad Town |
| tik | まちのちか | Toad Town Tunnels |
| kgr | くじらのなか | Inside the Whale |
| kkj | きのこ城 | Princess Peach's Castle |
| hos | 星ふる丘 | Shooting Star Summit |
| nok | ノコノコむら | Koopa Village |
| trd | とりで | Koopa Bros. Fortress |
| iwa | 岩山 | Mt. Rugged |
| dro | カラカラタウン | Dry Dry Outpost |
| sbk | カラカラ砂漠 | Dry Dry Desert |
| isk | カラカラいせき | Dry Dry Ruins |
| mim | 迷いの森 | Forever Forest |
| obk | テレサハウス | Boo's Mansion |
| arn | あれの | Gusty Gulch |
| dgb | ドガボンの城 | Tubba Blubba's Castle |
| omo | ヘイホーのおもちゃばこ | Shy Guy's Toy Box |
| jan | ジャングル | Jade Jungle |
| kzn | 火山 | Mt. Lavalava |
| flo | フラワーランド | Flower Fields |
| sam | さむいさむい村 | Shiver City |
| pra | パラレルきゅうでん | Crystal Palace |
| kpa | クッパ城 | Bowser's Castle |
| osr | きのこ城そと | Outside Peach's Castle |
| end | エンディング | Ending |
| mgm | ミニゲーム | Minigames |
| gv | ゲームオーバー | Game Over |
| tst | テストマップ | Test Map |
Paper Mario names each area with three letters, and starts each map's name with its area's name, such as the map kmr_20 in kmr. Your areas and maps don't have to follow this pattern.
Each map is a folder in its area's folder, such as world/area/kmr/kmr_02/. It holds:
- The map: its models, collision, zones, markers, and settings, which you edit in the map editor.
main.c: the map's code, which controls what happens in the map. The game starts itsEVS_MainEVT script when the player enters the map.- A header named after the map, such as
kmr_02.h, which the map's code includes.
Creating the map
- In the Filesystem, right-click an area's folder in
world/area, such askmr, and select New > Map. To start a new area, right-clickworld/areaand select New > Area instead. A new area comes with its first map. - Enter a name for the map. Diorama64 suggests the area's name followed by the first free number. A map's name can use letters, numbers, and underscores, and no two maps can share one.
- Select OK.
Refer to the map's objects
Each model, collider, and zone in the map has a constant, such as MODEL_o101, COLLIDER_deilie, and ZONE_1, that the map's code can refer to.
Map settings
To change the map's settings, open the map and select nothing. The properties show the map's settings. In Star Rod without Diorama64, they're in the Options tab.
| Setting | What it sets |
|---|---|
| Location | Where the pause menu's map shows the player, such as Toad Town. Keep the previous location keeps the location of the map the player came from. |
| Tattle | The message the player's partner says when it tattles on the map, such as MapTattle_kmr_02. The list has the project's messages whose names start with MapTattle. |
| Reverb | The reverb on sound effects and ambient sounds. Small room adds a few short reflections. Each Echo repeats a sound after its delay, fading each time. |
| Background | The image behind the map, or without one, the color the camera clears to. |
| Camera | The camera's field of view, how near and far it draws, and whether it leads the player by looking ahead of them. |
| World fog and Entity fog | Fog over the map's models, and over its NPCs and entities. |
| Lighting | Whether the map has sprite shading, the color of a sprite's unlit side, and how wide its lit edges are. |
Some base-game maps also have Song variation, which plays the second version of six songs, such as the special battle theme and the new partner jingle, in place of the one a script asks for. The base game uses it in dungeons and dangerous areas. The map's settings only show it on maps that use it. To choose a version of a song yourself, give it to SetMusic.
The game sets up the location, camera, and fog as the map loads, before its EVS_Main starts, so the map's EVT scripts can change them, such as to move the camera in a scene.
If the tattle changes during the game, write a get_tattle function in the map's code that returns the message to use. It takes the place of Tattle.
s32 get_tattle(void) {
if (evt_get_variable(nullptr, GF_KPA16_ShutOffLava)) {
return MSG_MapTattle_kpa_15_after;
}
return MSG_MapTattle_kpa_15_before;
}Testing the map
With the map's main.c or map.xml open, select Game > Play. The game starts in your map. If you last saved in that map, it starts where you saved. Otherwise, it starts at the map's first entry.