
Modding
Mods are awesome. Mods of mods are even better. It's simple math!
Here's how to make new maps for Reelism should the mad urge take you. If you want to create new bosses or slots, be sure to check the Reelism website for example code!
Things
The things needed to run a Reelism map will appear in Doom Builder 2 under appropriate "Reelism" categories as long as the PK3 is loaded as a resource.
Scripts
The global script source code is included in the acs_src folder. It's labyrinthine, to put it politely, but it compiles and works. And that's what counts, right?
These scripts will return the current value of each gameplay modifier - handy for creating your own actors in DECORATE, or maps that react to certain modifiers.
Slot 1: 901
Slot 2: 902
Slot 3: 903
Boss: 904
Jackpot: 905
Script 444 is run after the boss is killed in Infinite mode. It should be used to reset boss-specific areas, like special entrances etc.
Script 185 is used to reset the 2D sky texture at the start of rounds, since the Reelism 64 reel changes it. Here's an example:
script 185 (void) { ChangeSky("sky1","sky1"); }
In addition, the named script IsMultiplayer will return a 1 if the game is not in Single Player mode, allowing you to make adjustments for multiplayer when appropriate.
Script 999 is used by a certain easter egg. Be sure to set up something interesting and/or silly to occur if it gets executed!
It's common courtesy to include a descriptive line of text and a map credit in an OPEN script. Here's a sample for you to use, if you know nothing about scripting:
script 1 OPEN { log(s:"This is my cool Reelism map!"); log(s:"Map by MyNameHere"); }
ZDoom by default only shows four(?) lines of logs at once, so don't go too crazy with the namedropping!
Actors and Line Behavior
Normal enemies will ignore "block monster" lines, while bosses and THE JERK will not. Use this to block off death traps so that bosses don't kill themselves like idiots or so THE JERK doesn't trap himself in a pit. You could also use this to keep the bosses/JERK to a specific area, I suppose...
Cameras
The death/victory scene calls for a camera with a TID of 64. However, there is no scripting for the camera's behavior in the global script, so feel free to make it do whatever the hell you want (flights through the map etc.)
Music Scripts
The following scripts handle the music playlist. Feel free to override them with your own music randomizer scripts to give your map a unique feel!
Normal Round: 102
Boss Round: 103
Victory Stats: 105
Keep in mind, these scripts can also do things other than music. For example, Astrolab uses script 103 to do the awesome boss entrance as well as trigger the boss music.
Boss Rush
You can tell Reelism to use the Boss Rush scripts by giving your map a unique LevelNum greater than 100 in your MAPINFO definition.
Things To Keep In Mind
As a general rule, there's going to be a shitload of enemies, so build for crowds. It also helps to be detail conservative - the hordes and effects will bog the framerate down enough without you trying to be Baby Torm.
The tank morph is 100 units tall. You WILL get stuck if you transform under a low 3D floor. Be sure to keep this in mind!
Don't assume that there will always be a static number of rules! Custom slots may well be loaded, and then you'll look a bit silly.
Debug Cheats
These cheats are useful for development purposes, but real men/women/porpoises don't use them during normal play. You hear me?
pukename rigslots # # # - Rig the next spin of the slots. Replace each "#" with a number between 1 and 16. Invalid numbers are ignored and randomized as normal.
pukename rigboss # - Rig the boss randomizer. Replace "#" with a number between 1 and 10. Same rules apply.
Now go make something that'll disqualify you from getting a Cacoward for life!