MapleThiefCompendium

Monster Carnival

Monster Carnival is a timed hunting mode, run by Speigemans, in which the monsters' levels follow the hero's strength and kills earn points instead of EXP. It is the game's only level-scaling mode. The code and the three tickets ship in version 1.5, but no map places the NPC whose scripts start it, so a normal game never reaches it.

How to enter

Each of three scripts takes one ticket (Monster Carnival Ticket A, Monster Carnival Ticket B or Monster Carnival Ticket C), starts the mode and moves the hero to its room: Kerning City Village for the first, Orbis Village for the second and Magatia Village for the third. A round lasts 3 minutes.

In 1.5 none of this is reachable. The three scripts are never named by any object on a map, the NPC stands on no map, and nothing in the game drops, sells or gives the tickets. The rooms are on the game's list of maps where saving is refused (saving).

Level scaling

While the mode runs, each monster's level is adjusted when it is loaded. H is the hero's (ATT + DEF) / 2, rounded down.

The adjusted level is what the evade, miss, avoid and monster damage rules use, so in the carnival a weak hero meets weaker monsters with tougher hides.

Example (made-up numbers): a hero with 50 ATT and 30 DEF has H = 40. A level 60 monster becomes 60 minus 10 = 50, with 150% HP; a level 30 monster becomes 30 minus 5 = 25, with its normal HP.

Points and rewards

A kill gives no EXP, no drops and no quest progress. It adds the monster's carnival points to the score and counts the wave. A death costs 70, 90 or 110 points in the first, second or third mode.

When the result popup closes, the hero gets EXP by the final score:

Mode (ticket)Score bandsEXP
First (Monster Carnival Ticket A)up to 1,500 / up to 2,000 / up to 2,500 / above 2,500250 / 500 / 1,000 / 1,500
Second (Monster Carnival Ticket B)up to 800 / up to 1,400 / up to 2,000 / above 2,0002,700 / 3,500 / 4,000 / 4,700
Third (Monster Carnival Ticket C)up to 2,000 / up to 2,500 / up to 3,000 / above 3,0004,500 / 6,200 / 7,000 / 7,700

The best score of each mode is kept in the game's score file.

Example: a second-mode round that ends with 1,600 points falls in the band up to 2,000 and pays 4,000 EXP.

Sources

The scripts common/Spiegelman1.out to Spiegelman3.out call the native initMonCa 0x99545, which runs CStateGame::StartMonsterCarnival 0x82271; the mode flag is CStateGame +0x404, the mode +0x40C, the timer +0x430, the score +0x434 and the wave +0x410. Scaling is in CMob::LoadStats 0x73B51, the carnival points come from the spawn table behind the pointer at 0xF13B4, and the reward is CStateGame::resultMonCa 0x819E5 with its table at 0xEAD40. The best scores are bytes 0x000 to 0x00B of the cupon file. That the mode is unreachable comes from the compendium's script walk: no map object names the three scripts.