You are on page 1of 13

SMB3 engine help guide By Pwyskowski

Game Controls (keyboard):


MapScreen: Arrow keys move Mario around, End - Pause, Enter-Enter a level Game Levels: Left/Right Arrows walk Ctrl - Run/Fire/tail Alt - Jump/Fly/Swim Alt+Up Jump higher out of the top of the water End Pause Up - Enter a door / Upper pipe Down Duck / Enter down pipe Enter Open Treasure Chest Alt (while holding Down)-Turn Tanooki into Statue (let go of down to change back to Tanooki) Debug/Cheat Keys: MapScreen: + goto next room, 1-6 Change Mario's Powerup, M - Toggle Music, Backspace=restart Game Levels: + goto next room, F Cycle through PowerUP'ed forms, Backspace=restart., 2 Activate Invincibility (Sorry reg. Users only right now), 1 Deactivate Invincibility.

Game Controls (Gamepad):


MapScreen: Dpad to move. Button 2 to enter a level. Button 3 to pause. Game Levels: Left/Right -- walk Button 2 - Run/Fire/tail/Open big chests Button 1- Jump/Fly/Swim Button 1+Up Jump higher out of the top of the water Button 3Pause Up Enter a door / Upper pipe Down Duck / Enter down pipe Button 2 (while holding Down)-Turn Tanooki into Statue (let go of down to change back to Tanooki) *To use a gamepad you must press J to toggle between gamepad and keyboard Last Updated 10-22-05 Page 1/13

Bosses:
Thus far, there are 3 types of bosses in the SMB3 engine. Boom-Boom: This is the boss that you see in the fortresses. The basic strategy to defeating him is to either stomp him 3 times, use 3 fireballs , or 1 hammer. Boom-Boom comes in four variations. 1. Stompboss (he just follows you and can be stomped without any worry) 2. Stompboss2 (follows you, but temporarily grows spikes on his back after stomping) 3. Jumpingboss (same as above, but randomly jumps at you) 4. Flyingboss (This boss takes flight and flies randomly around the room) SMB1 Bowser: This is the boss that you would see at the end of a world in the castle in the first Super Mario Bros. He cannot be stomped. To defeat him, it will take 3 fireballs, 3 hammers, or Mario hitting the axe to the bridge he stands on. SMB1 Bowser comes in 3 variations. 1. Bowser01 (Randomly jumps and shoots fireballs) 2. Bowser02 (Randomly jumps and throws hammers) 3. Bowser03 (Randomly jumps, throws hammers, and shoots fireballs) Larry Koopa: (This is the boss from the first world in SMB3) He can be stomped 3 times or fireballed/hammered 10 times to be defeated. Larry will climb stairs (not too steep) to get to Mario and shoots magic from his wand. When making a lair for Larry try not to make too tight of spaces or make any steps too steep otherwise he may get stuck.

Last Updated 10-22-05

Page 2/13

BGFlasher
This is an invisible object that you can place in a room where you want the background to flash at regular intervals. An example of this would be a doomship. The bgflasher has 2 variables that must be set. The first is myflashcolor which default is c_red . This is the color that you wish to have flash in the background. The second is mybgcolor which default is c_black . This is the color that you wish the background to be normally. To setup the bgflasher object, put the following code into the creation code of the room. instance_create(0,0,bgflasher) //or place them in the room using the room editor with instance_find(bgflasher,0) { mybgcolor=c_black myflashcolor=c_red } *Note as of 3/12/05, there is a 2 nd Bgflasher that makes cannon noises available for use as well.

Bridge/Axe
When Mario makes contact with the bridge axe, each Bridgepiece is destroyed one at a time (in order of instance). If Bowser exists in the room, he will be destroyed as well. An animation of him falling off the bottom of the screen will occur when all of the bridge pieces are destroyed. Since the Bridgepiece(s) are destroyed in order of instance, it is best to place them in the room in the order that you wish to have them destroyed.

Last Updated 10-22-05

Page 3/13

Chests (Big and Small)


Variables that need to be set with Chests: item_inside=Mush (set the item inside the chest) roomdestination=room (if it is not set, collecting item inside will not send the player to another room) Big chests are usually for the Mushroom house but can be used in other rooms as well. Mario must be standing in front of it (not moving) and the player must press enter to open the chest. with instance_find(big_chest,0) { roomdestination=room item_inside=Mush } Note: when there are multiple Big Chests in the same room, all of the other Big Chests will deactivate when one is opened. Small chests are usually for hammer brother duels but can be used elsewhere as well. By default they are invisible until all of the monsters in the room are destroyed. However, you can make it visible in the room's creation code if you wish to use it in another type of situation. with instance_find(smallchest,0) { roomdestination=room item_inside=Mush }

Last Updated 10-22-05

Page 4/13

GameInit object
This must be placed on the title screen of any game you make with this engine , otherwise you will run into many errors. This object sets up and resets many global variables. You can find this under objects/other. lives=5 (Sets the number of lives a player starts with) global.getcoin=0 (Sets the number of coins the player has) show_score=false global.savepowerup="small" (sets the starting powerup) global.BigRed=false (Toggle for Big Red Switch) global.BigGreen=false (Toggle for Big Green Switch) global.BigYellow=false (Toggle for Big Yellow Switch) global.Music=true (Toggle for Music being on/off) global.current_map=TestMap (Sets the room/map that Mario returns to when he dies) global.just_died=false global.gamepad=false (false for keyboard, true for gamepad) global.outpipe="right" global.stomp_tally=0 global.card1="blank" (initializes the card system) global.card2="blank" global.card3="blank"

Last Updated 10-22-05

Page 5/13

Map Screens: (see TestMap for example)


Put this code in the creation code of the room With (instance_id) { sprite_index=maplevel1 roomdestination= room instant_entry=false blocking=false } instance_id represents the instance number of the MapLevel that you wish to set the destination of. sprite_index is used for choosing the Map Level icon for the instance. Default is maplevel1. Room is where you put the room name for the destination. Just using the word "room" will just make it so nothing happens when Mario is on the icon with the player pressing enter. Instant_entry can be set to either true or false. If it is set to true, the player will automatically enter the level upon contact with the Map Level icon. Blocking is used to make it that Mario cannot pass a Map Level icon without completing it first. The default is false for most MapLevel object except for the MapFortress object, which is set to true by default.

MapFortress/MapLocks
The MapFortress object has 2 variables that can be set: Destroylock Setting this to True will destroy an object on the MapScreen which is set by using the mylock variable, usually this is a MapLock but you can get creative with it if youd like. For example, in the engine demo: destroylock=true mylock=114649 mylock is set to 114649 which is the ID number of the instance of the MapLock on the MapScreen. So when the fortress is destroyed, the lock is destroyed as well. Last Updated 10-22-05 Page 6/13

MapPipe:
This has 2 variables that can be set. Roomdestination is used just like any MapLevel object to set the room you wish Mario to travel to when enter is pressed while standing on it. If it is not set to a room name, the pipe wont send Mario to another room. Instead he will be sent to another location in the same room by using the pipe_exit variable. Pipe_exit is set to an objects ID number (usually another MapPipe) that Mario will be teleported to when enter is pressed while Mario is standing on the MapPipe. * See TestMap or TestMap2 creation code for example.

Maze Pipes:
Maze Pipes have 2 variables that can be set Pipedestination must be set to in the rooms creation code to set where Mario emerges when he enters this pipe. This variable MUST point to another Maze Pipe or Mario will not emerge from anywhere. If this variable isnt set at all, Mario wont enter the pipe. This can be helpful in making a one-way pipe. Example (from Maze Room Creation Code): with (118448) // Instance_Id of the first end of the pipe { pipedestination=118452 } // Instance_Id of the other end with (118452) // Repeat with the other end and set its { pipedestination=118448 } // destination to the first pipe Now you have a 2-way pipe. J Scrollspeed is an optional variable that can be set. Its default is 16. This is used to adjust the scrolling speed used when Mario is moved from one end to the other. If you dont want any scrolling (instant jump to the other end), just set the variable to 1. Also remember that if you adjust this variable, you must set it to the same variable in both connected pipe maze objects or one will scroll differently than the other.

Last Updated 10-22-05

Page 7/13

NoteBlocks:
Mario bounces when standing on these blocks. If jump is held down while Mario bounces, he will bounce much higher. Warning: DO NOT PLACE ANY OTHER OBJECTS (LIKE OTHER BLOCKS) UNDERNEATH A NOTEBLOCK BECAUSE IT WILL GET STUCK WHEN BOUNCED ON!

Quicksand:
Mario sinks when standing on or in quicksand. Also, walking through quicksand will slow Mario down. If Mario falls too deep (about 6-8 pixels from the bottom) into a quicksand block, he will fall out of the bottom of it. If you have quicksand at the bottom of room, I would recommend placing an extra layer of it underneath it off the bottom of the room to keep Mario from falling through prematurely.

Roulette Block:
These are used at the end of levels. When Mario hits one of these from underneath, he will get a card and then return to the current mapscreen. When Mario gets 3 cards, he will be rewarded with extra live(s). If all 3 cards match, you will be rewarded as follows: Mushrooms (2 lives), Flowers (3 lives), Stars (4 Lives). If they dont match, you will receive only 1 extra life.

Last Updated 10-22-05

Page 8/13

Scroller object:
Place the scroller object on the 7th square up and 7th square in for best results. Change View 0 to follow scroller object. Keep Mario fairly close to the starting point of the scroller object to avoid any bugs. To get the scroller moving just use vspeed(negative values to scroll up) and hspeed(positive values to scroll forward). The best place to do this is in the room's creation code. As a side note: I added what I call a "scroll trigger" to the engine example (vines_to_climb room). This shows how you can make an object quickly change to a scrolling screen when Mario reaches a certain point to give an extra effect or to activate a boss. 2/21/2005 Added an example of how to do complex scrolling using paths (See Ship_Test room)

Start Pipes:
Start Pipes are for levels where you want the level to start up with Mario coming out of a pipe. Simply place the start pipe that you want Mario to begin the level at wherever you want but do not place a Mario object in the room. Also, you need to set the view_object for view 0 to the start pipe that you used in the room. For example in the pipe_corridor rooms, since Mario is coming out of a startpipe_down that is the object that view 0 is set to.

Switches:
There are 3 types of switches. The first is the coinswitch. This switch turns all coins into dud blocks and all dud blocks into coins. The second type is the Bluebuttonu. This switch will destroy all of the Blueblock(s) in a room. The third type is the giant switch. These switches will turn empty blocks of the corresponding color into powerup blocks of the corresponding color. Since the giant switches use a global variables, any empties in other rooms will also be effected when Mario steps on it as well as any other giant switches of the same color. This was designed to help make multi-room puzzles.

Last Updated 10-22-05

Page 9/13

Teleport Doors:
These teleport Mario to another Teleport Door in the same room. To use just set the destination_door variable in the rooms creation event. This variable MUST point to another Teleport door or it will not work. It works exactly the same way the Maze Pipes do. For example: with (118487) { destination_door=118486 } with (118486) { destination_door=118487 } By using the proceeding code in the rooms creation code event, 118487 and 118486 are two Teleport Doors and they are now linked to each other. When Mario is standing in front of one of the doors and up is pressed, he will be teleported to the other door.

VineBlocks: (see flower_room for example)


Vineboxes are like item boxes except they produce a vine to climb if hit. To set one up place it in a room using the room editor and then in the rooms creation code, add the following code: with(Instance_ID) { vines_inside=9 } Instance _ID represents the instance_id of the VineBlock and vines_inside is the number of segments long you want the vine that is generated to be. In this case the vine is 9 segments long.

Vines: (See Vines_To_Climb room for example)


Here is a little trick to let Mario climb to the top of a vine and stand on it. If you overlap a jumpthrough block with a climbable_object (vine), you can stand on top of the vine (but not climb back down it). Then using Tiles, create a layer (set the layer to 1) and place a graphic over it (in this case I used a cloud) to give the effect that Mario climbed up onto the cloud.

Last Updated 10-22-05

Page 10/13

Warp pipes: (also applies to doors and locks)


Put this code in the creation code of the room with (instance_id) { roomdestination= room } Instance_ID is the instance_id of the Warp Pipe that you wish to set the destination. "room" is where you put the room name for the destination. Just using the word room will just return you to start point of the room you are already in.

Water:
When Mario comes in contact with water, he will go into swim mode. There are 3 different sized water blocks to make placing it easier than ever. When Mario is at the top of a body of water, the player may press up and jump at the same time to jump higher out of the water. As a cautionary note, Mario will fall out of the bottom of a water block if he is too close to the bottom of it(about 8 pixels). In a level where you have nothing under the bottom of the water (like a pit), it's a good idea to put a couple of the smaller water blocks underneath it off the bottom of the screen to keep Mario from falling prematurely, the same goes for quicksand.

Last Updated 10-22-05

Page 11/13

Special Enemies:
Angry Sun: Best placed about 8 blocks up from where Mario Starts. The Angry Sun will follow Mario and randomly dive down at Mario. The Angry Sun can only be destroyed by a hammer or by an invincible Mario. There are 2 versions of the Angry Sun. Both behave the same, however angrysun2 will repop shortly after being killed. Bob-Ombs: These little buggers will start flashing and then explode after a random amount of time. They can be stomped to stop them from moving and then kicked around by Mario. The only way they can be destroyed is by hammer or by an explosion by another bomb. There are 2 versions that can be placed in a room. The first starts its countdown to explosion immediately after being created. The second waits until it comes into view. I would recommend using the second version for most stages. The first version is generally used with the Lakitu_bomber object. As a side note:explosions from bob-ombs destroy breakable bricks. Bombing Lakitu: This guy drops bombeggs down at Mario. There are 3 versions of it. The first drops bombeggs that become bob-ombs. The second version drops bombeggs that explode on impact with any solidblocks. These explosions will destroy any breakable bricks that they come in contact with. The third version of the lakitu_bomber randomly drops bombeggs that explode on impact and those that turn into bob-ombs. Bombing Lakitu's just like any Lakitu, is best placed above Mario about 9 squares or about 11 squares from the bottom of the view. Blooper: These squids will stalk Mario wherever he is. There are 2 versions. The first can be placed anywhere in a room and will start moving towards Mario when they come onto the screen. The second type are best placed outside of the room (far left or right, I don't recommend having them off the bottom of the screen) and they will periodically repop if destroyed. Cheap-Cheaps: Cheap-Cheaps come in 4 versions. The first is a stationary fish. The second moves left and right (use blocks or blockers to keep in an area). The third works like the second except that it moves up and down. And finally the fouth just moves to the left from off the screen and repop periodically. These are best placed off the right of the screen. Flying Fish: These cheap-cheaps continually fly up from the bottom of the screen towards Mario. Place them off the bottom of the screen and they will continue to repop after being destroyed by Mario of by falling off the screen.

Last Updated 10-22-05

Page 12/13

Invincible Flowers: These baddies cannot be destroyed. There are 3 versions available for use. The first do not move and can be walked on by an invincible Mario. The other 2 move up and down (best placed inside mini-pipes). The moving invincible flowers by default will always pop in/out at the same time. To get them to come out at different periods use the following code in the room's creation code. with (instance_find(invincible_flower02,0)) {alarm[2]=105} alarm[2] is the alarm used for the initial delay before the flower first starts moving up/down. Please see the flower_room for an example JellyFish: These are completely indestructible and do not move. Mario will take damage it he comes in contact with one (unless he is invincible). Paragoombas: These come in 2 versions. The first moves like a regular goomba except that it hops every once in a while. The second hovers in the air, dropping baby goombas like they were bombs. Ptooie Plants: These come in 2 versions. One walks back and forth, while the other is stationary and should be placed atop of a pipe. Spiny: Use the Spiny2 when placing them directly in a room. The other is used by Lakitu and self destruct when out of view.

Last Updated 10-22-05

Page 13/13

You might also like