Here’s another wtf-why-ain’t-no-tutorial situation. I mean, it’s relatively easy to pick up just by stumbling through it - for some people that’s fun, and for others it’s a turn-off.
So for all of the latters out there, here goes a simple rundown. Editing a nightmare module is pretty much as simple as opening the damn thing in Notepad. I’ll cover the format for you.
1 Nightmare Module Title 0xOFFSET //It won't be 0x8OFFSET #ofentries #bytelengthofentries dropdownfilename.txt //Use NULL for a blank dropdown NULL
This is your typical header for a nightmare module. Here’s what it looks like in practice:
1 FireShell Character Editor 0xBDCE18 254 52 FE7 Character List.txt NULL
Then we get down to the labeling of our structured arrays. Let’s dig through the rest of that character editor. Just follow along.
Character Name //The label 0 //The byte in the structure being modified 2 //Length of the label in bytes NEHU //Specifies a hex entry NULL Character Description 2 //As you progress, this will be the previous entry's two numbers added together. 2 NEHU NULL Character Number 4 1 NEHU NULL Class 5 1 NDHU //This command specifies a hexadecimal dropdown list Class List.txt //And here's your filename Sword Level 20 1 NDDU //Whereas this one uses regular numbers Weapon Rank.txt Base HP 12 1 NEDS //This one uses real numbers with negative values NULL HP Growth 28 1 NEDU //This one allows real numbers up to 255 for one byte NULL Supports Data Pointer //A typical pointer setup 44 4 NEHU NULL
Like I said, pretty simple to pick up. With the power to modify your modules by hand, you open the door to personalization to suit your project’s needs and improve the modules.
The only other thing to cover are the dropdown list files themselves.
100 0x00 None 0x01 Eliwood Lord 0x02 Lyn Lord 0x03 Hector Lord 0x04 Eliwood Lord Knight (only by class name) 0x05 Lyn Blade Lord (only by class name) 0x06 Hector Great Lord (only by class name) 0x07 Eliwood Lord Knight 0x08 Lyn Blade Lord 0x09 Hector Great Lord 0x0A Mercenary 0x0B Mercenary 0x0C Hero 0x0D Hero 0x0E Myrmidon 0x0F Myrmidon 0x10 Swordmaster 0x11 Swordmaster 0x12 Fighter 0x13 Warrior 0x14 Knight 0x15 Knight 0x16 General 0x17 General 0x18 Archer 0x19 Archer 0x1A Sniper 0x1B Sniper 0x1C Monk 0x1D Cleric 0x1E Bishop 0x1F Bishop 0x20 Mage 0x21 Mage 0x22 Sage 0x23 Sage 0x24 Shaman 0x25 Shaman 0x26 Druid 0x27 Druid 0x28 Cavalier 0x29 Cavalier 0x2A Paladin 0x2B Paladin 0x2C Troubadour 0x2D Valkyrie 0x2E Nomad 0x2F Nomad 0x30 Nomad Trooper 0x31 Nomad Trooper 0x32 Pegasus Knight 0x33 Falcon Knight 0x34 Wyvern Knight 0x35 Wyvern Knight 0x36 Wyvern Lord 0x37 Wyvern Lord 0x38 Soldier 0x39 Brigand 0x3A Pirate 0x3B Berserker 0x3C Thief 0x3D Thief 0x3E Assassin 0x3F Civilian 0x40 Dancer 0x41 Bard 0x42 Archsage 0x43 Magic Seal 0x44 Transporter 0x45 Transporter 0x46 Fire Dragon 0x47 Civilian 0x48 Civilian (F) 0x49 Child 0x4A Brammimond 0x4B Peer 0x4C Peer (F) 0x4D Prince 0x4E Queen 0x4F Hung Leila 0x50 Corsair 0x51 Prince (Tactician) 0x52 Fallen Prince 0x53 Prince facing upward 0x54 Fallen Ninian 0x55 Fallen Ice Dragon 0x56 Fallen Warrior 0x57 Child 0x58 Child (F) 0x59 Transporter w/ Horse 0x5A Uber Sage 0x5B Archer in Ballista 0x5C Archer in Iron Ballista 0x5D Archer in Killer Ballista 0x5E Empty Ballista 0x5F Empty Iron Ballista 0x60 Empty Killer Ballista 0x61 Dismounted 0x62 Dismounted (F) 0x63 Empty (Make a custom class!)
And this is the Class List.txt file, referenced by the Character Editor.nmm. The number on the first line indicates the number of entries. You can skip entries and write them out-of-order. Lists using real numbers just use the number instead of 0x??.
Lists referenced by the header block of the module don’t have that number, nor do they need any of the 0x??s (it’ll just show that twice).