Tip of the Day

Tip of the Day was a set of tips and hints that could be unlocked through the easter egg console in SMBX 38a versions 1.4.3 and 1.4.4. At the moment, there is no tip of the day section in 1.4.5.

''' NOTE: THESE ARE FROM 1.4.3/1.4.4 AND MAY NOT BE RELEVANT IN 1.4.5! '''

The tip #49, #50 and #117 aren't in the list because are user-dependent!

Tip #1: The first Easter Egg unlocks 'Player GFX Offset Settings'.

Tip #2: With 'Player GFX Offset Settings', you can define the offsets drawing the graphics of your character, which makes the customization of characters more convenient.

Tip #3: 'Player GFX Offset Settings' will affect the single level. There is a way to make it affect the whole world.

Tip #4: The second Easter Egg unlocks 'Game Font Settings'.

Tip #5: 'Game Font Settings' enables you to load standard font files when the world initializes.

Tip #6: There is a way in the script system to draw characters directly from font files.

Tip #7: The third Easter Egg unlocks 'Local Array'.

Tip #8: 'Local Arrays' need to be initialized by a function before use. The function is 'redim' and it is called 'Function A7' in other daily tips.

Tip #9: 'Function A7' has no return values. It has 3 parameters and they are called 'Param C1', 'Param K4', 'Param W3' in other daily tips, respectively.

Tip #10: 'Param C1' can be 0 or 1. Set it to 0 and all memory allocated to the array will be cleared. Set it to 1 and you can just resize the array.

Tip #11: 'Param K4' stands for the name of the array.

Tip #12: 'Param W3' stands for the new size of the array.

Tip #13: Arrays can be read and written after initialization. Use 'X(Y(Z))' to represent an element in an array. 'Y' is the name of the array. 'Z' can be an expression and stands for the index of the element. 'X' is the identifier of arrays and is called 'Identifier R1' in other daily tips.

Tip #14: 'Identifier R1' is 'Array'

Tip #15: The fourth Easter Egg unlocks two features and they are called 'Feature F2' and 'Feature U4' in other daily tips.

Tip #16: 'Feature F2' can pack your music files up and transform them into an all-in-one file.

Tip #17: 'Feature U4' packs up your episode and makes an executable file.

Tip #18: 'Feature U4' will also pack up files in the 'graphics', 'music' and 'sound' folders. You can delete some unused music files before packing the map, but not the unused pictures.

Tip #19: The fifth Easter Egg unlocks 'Game Save Editor'.

Tip #20: 'Game Save Editor' can edit some of the save data generated by unpacked maps. Like altering the visibility of world map objects and checking the star acquisition information.

Tip #21: Unpacked maps, packed maps and exe-file maps have different save file formats.

Tip #22: The sixth Easter Egg unlocks 3 features and they are called 'Feature O4', 'Feature M5' and 'Feature F9' in other daily tips.

Tip #23: 'Feature O4' creates a global one-dimensional string constant table, which can be used to store string constants. You can use 'Function V7' to access it in levels and the world map.

Tip #24: 'Function V7' is 'strconst'.

Tip #25: 'Function V7' has only one double type parameter. It stands for the index of the string constant.

Tip #26: 'Feature M5' enables you to create a two-dimensional constant number table that applies to the whole world. The type of the constants in this table is Single. You can access the table via 'Function J4'

Tip #27: The name of 'Function J4' is 'const'

Tip #28: 'Function J4' has two Double-typed parameters determining the index of the element.

Tip #29: 'Feature F9' enables you to create a two-dimensional variable table. You can regard it as a two-dimensional array and it is called 'Object B8' in other daily tips.

Tip #30: You can use 'Function R3' to read from the 'Object B8' and 'Function C4' to write into it.

Tip #31: The name of 'Function R3' is 'vallistr'.

Tip #32: 'Function R3' has two double type parameters determining the index of the element.

Tip #33: The name of 'Function C4' is 'vallistw'.

Tip #34: 'Function C4' has 3 double type parameters. They are called 'Param H4', 'Param Z2' and 'Param Y9', respectively.

Tip #35: 'Param H4' and 'Param Z2' determines the location of the element.

Tip #36: 'Param Y9' stands for the new value of the element.

Tip #37: The seventh Easter Egg unlocks 'Message Text Color Settings'.

Tip #38: 'Message Text Color Settings' enables you to change the color of in-game messages.

Tip #39: The eighth Easter Egg unlocks 'More Special Events'.

Tip #40: Special events can be triggered by normal events. Additionally, they can also be triggered by scripts with a function. The function is called 'Function I4' in other daily tips.

Tip #41: The name of 'Function I4' is 'spevent'.

Tip #42: 'Function I4' has only one parameter standing for the ID of the event.

Tip #43: The ID of a specific special event can be seen in the event window. Right-click the form to reveal it.

Tip #44: The ninth Easter Egg unlocks two functions and they are called 'Feature V6' and 'Feature S4'.

Tip #45: 'Feature V6' enables you to customize the cutscene picture shown when entering a level.

Tip #46: 'Feature S4' allows you to customize the pause menu.

Tip #47: The image file 'Feature V6' and 'Feature S4' use as the image source is 'scflash.png'.

Tip #48: Once an Easter Egg game is opened, the common way to close it is killing the game process via the task manager. Actually, there is an alternative choice, which is inputting a password. The password is 'exit_XXXXYYYY' and the unknown parts of it are called 'Param Y2' and 'Param A8' in other daily tips.

Tip #49: 'Param Y2' is 'XXXX'. (USER DEPENDENT)

Tip #50: 'Param A8' is 'YYYY'. (USER DEPENDENT)

Tip #51: There is a way to terminate a running easter game without using the task manager.

Tip #52: There is a way to reduce the difficulty of Easter Egg games.

Tip #53: This game has many hidden features and the ratio of the number of them to visible ones is 'Param T5'.

Tip #54: 'Param T5' is greater than 1.

Tip #55: The number of daily tips you can see in total and the number of cleared Easter Egg games are related.

Tip #56: The number of daily tips you can see in total is associated with your computer ID profile, which indicates that you may not be able to see all of them with only one computer.

Tip #57: Daily tips tell much information, and some of the information are not affected by your computer ID profile thus can be shared with other people, but the other parts can only be applied to one computer.

Tip #58: The 'Auto Rect Tool' in the editor can be used to place liquids, not only blocks.

Tip #59: The operator 'like' is handy for matching strings and it has the same syntax as the one in VB6.

Tip #60: 'With' blocks are superior in efficiency when you are modifying multiple properties of a single object.

Tip #61: If you just want to modify the content of a text object, the much more efficient way is to modify the 'text' property instead of using functions.

Tip #62: 'Goto' statements are very useful. You might have known it that every control flow operations in any high level programming languages can be reduced to some 'Goto'-like things.

Tip #63: You can move your scripts to be used in multiple levels (like custom HUD) to global scripts.

Tip #64: You can execute a script with the function 'exescript', which has only one parameter standing for the name of the script to be called.

Tip #65: When layer-related functions are called in global scripts, they will affect the layers in the world map.

Tip #66: If there is a call-back way to run scripts, don't use the looping way. For example, you should try to let NPCs run scripts when they are killed, instead of checking whether the NPCs are dead on every frame.

Tip #67: If you happen to found a bug that crashes the game, you may report it in a proper way as soon as possible. You may not merely tell me that the game crashed, but you'd better tell me the details of how it happened. For example, if your episode is always crashing the game when it loads, you should upload your episode when reporting.

Tip #68: If you found a bug that doesn't crash the game, you should report it with instructions, pictures or videos explaining how to trigger it, and more detailed instructions are preferred if the triggering process is complex.

Tip #69: I can fix bugs at the speed beyond your imagination, only if you properly reported them and they can be reproduced.

Tip #70: If you are trying to customize the movement pattern of NPCs with scripts, a viable way is setting the coordinate. However, you should also remember to calculate and set the speed according to physical laws to prevent odd glitches when the game checks collisions.

Tip #71: Parametric equations can be pretty handy in many cases, like making NPCs move in circles. By the way, you can improve your math abilities by playing Easter Egg games. *laugh*

Tip #72: There is a way to rotate the images of NPCs.

Tip #73: If you can't use the local array function, you can make simulated arrays with strings, however losing some efficiency and convenience.

Tip #74: Detecting the keys players are currently pressing is possible via scripts. It is not achieved using sysval.

Tip #75: Buttons, textboxes, checkboxes and other elements in Level Events window can all be right-clicked. If you have trouble finding out what a button does, why not right-click it?

Tip #76: The 'Swap Object' function in level settings can be used not only to replace objects in a level, but can also be used to delect objects.

Tip #77: Use 'debug' function to output texts to the Debugger so that you can debug your scripts.

Tip #78: Clickable buttons can be used to simulate various buttons.

Tip #79: Rect, Line, Circle cursors in the editor can be used to select objects in 'Selection' edit mode. It is possible to multi-select objects by doing so again and again.

Tip #80: If there are selected objects, click the copy button or the flip button to manipulate them.

Tip #81: In fact, this game is not completely written in VB6, it is developed in VB6, C++ and ASM combined.

Tip #82: It does not make sense to compare the superiority and inferiority between different programming languages. Only laymen who don't have a deep understanding of programming do so. If you insist on declaring XXXX is better than YYYY, why not provide your users with a C compiler and ask them to write a Super Mario game?

Tip #83: NEVER try to dig out some secrets of this program with Cheat Engine. All secrets are well encrypted and this program is able to kill itself.

Tip #84: Special events have many special effects. Before having a hard time simulating a feature with scripts, check the special events first to see if there are built-in versions, like SMB3 power-up system.

Tip #85: MarioShop is time-saving and useful in altering the hue and replacing a certain color.

Tip #86: NEVER try to do some research on how the Easter Egg system recognizes a computer. You are highly unable to succeed in it and if you did it, all Easter Egg records for everyone will become invalid.

Tip #87: If you want your suggestions to be accepted and implemented soon, they should be: 1) unable to be achieved easily using existing methods 2)supplied with all resource files (like graphics) 3)not repeated and compatible with other existing features.

Tip #88: Valuable suggestions are accepted rapidly, if they fulfill 'three requirements'.

Tip #89: 'Sleep' functions are only functioning within scripts called by events. They can not function in functions but 'Gosub' and 'Goto' statements does not affect their availability.

Tip #90: A part of sysval variables are writable and another part of them are readable. There are also some of them both readable and writable.

Tip #91: Invincible NPCs can only be killed using scripts. Set 'alive' property to 0 to kill a NPC instantly.

Tip #92: 'ivalA', 'ivalB' and 'ivalC' are actually int type properties of NPCs, so they can not store float numbers.

Tip #93: Use 'exit script' to immediately stop the executing of scripts or exit functions.

Tip #94: Objects in scripts have many hidden properties. To get the names of them, you have to play Easter Egg games or guess on your own.

Tip #95: The function 'rgba' can be used to calculate color values and it has four parameters standing for the RGBA valued.

Tip #96: NPCs have more than 30 properties.

Tip #97: You can insert numeric variables in strings using '&val' and '&gvl', and for strings, you should use 'Identifier K7'.

Tip #98: 'Identifier K7' is '$val' and '$gvl'.

Tip #99: The property 'Name' of objects are writable so you can store a large sum of information in it

Tip #100: All built-in script systems in all games are not meant to let you create a completely different or new game system, because if you are able to write such scripts, actually you can make your own game engine. Making update suggestions directly is much more effective if you want to implement a extremely complex but rather useful feature.

Tip #101: Non-puzzle games do exist in Easter Eggs and they are not discovered by chance but by meeting a certain series of requirements.

Tip #102: Special judge programs are used in non-puzzle Easter Egg games. The rules of these games are also different from other games. If you beat one, you will get an extra 'special bonus'.

Tip #103: You will get rewards by beating Easter Egg games. There are also some hidden rewards during the gameplay.

Tip #104: When using the names of layers and events in scripts, enclosing them with quotation marks or without are both acceptable, however you have to add the marks if there are special characters in the names.

Tip #105: For some NPCs, 'ivalA', 'ivalB', 'ivalC' variables are already in use by the game. You can tell the meanings of them by monitoring the values of them. Adjusting their values in a proper way is helpful when customizing NPCs.

Tip #106: Hidden features unlocked by Easter Egg games receive updates occasionally, and a major update will reset the record registry which means you need to beat the game again. There are also some hidden features that will no longer be hidden and become normal features.

Tip #107: The 10th Easter Egg game is located at 'Easter Egg Master'. It is not a puzzle game.

Tip #108: Autorun events have parameters. So that you can get the information of the dead NPC with 'NPC - Death' calling a script.

Tip #109: Spin jumps can be disabled by setting the value of a sysval variable. The name of it is 'Identifier N8'. Normal jumps can also be disabled in a similar way.

Tip #110: 'Identifier N8' is 'disablespinjump'.

Tip #111: The function 'format' can be used to make formatted strings from numbers. It has two parameters and the first one is of string type and the second one is of double type.

Tip #112: The second parameter of 'Format' function is the numeric variable to be formatted.

Tip #113: The first parameter of 'Format' function is the format of the result string. For example, "%8z" turns the number into integers with leading zeroes and "%.2f" turns the number into decimals with two decimal places.

Tip #114: Multiple conditions can be followed after the 'Case' in 'Select Case' statements. Separate them with commas.

Tip #115: The conditions followed after 'Case' statements can be ranges like 'Is > 3', which stands for 'greater than 3'.

Tip #116: You can use the 'inwater' read-only property to know whether a NPC is in water.

Tip #117: Input 'code_****XXXX' to decrease the difficulty of Easter Egg game '1'. (USER DEPENDENT)

Tip #118: The upper limit for the number of coins a player can store is customizable. You can achieve it by adjusting the value of a sysval variable. The name of that variable is 'Identifier I3'.

Tip #119: 'Identifier I3' is 'coinsforextralife'.

Tip #120: The music script in the script example 'Castle in the Sky' is actually generated with a program. The program can be found somewhere in the editor.