Page 1 of 1

The SMBX "SMB3" Overhaul API Mod v1.0.2

Posted: 26 Jul 2015, 22:54
by XerX
Hello SMBX community! I present to you, something that I bet a lot of you have been wanting for a long time; More SMB3.

"What do you mean?" You ask. Well I'll tell you!

phpBB [youtube]

Original link: https://www.youtube.com/watch?v=jN9EkHHKF6g



What is the "SMB3 Overhaul API Mod"?

The "SMB3 Overhaul API Mod" is a HUD Mod for SMBX, replacing the old SMW-esque HUD for a more traditional SMB3 Hud. This is all possible thanks to LunaLua.
Spoiler
Image

Here is our new HUD. You like it? I sure do. Everything on the HUD is functional. Yes, even the PBar functions, and makes the sound when you hit top speed and are ready to fly. This API combines the "leveltimer" api and the "smb3goalcard" api, while also adding new features. To avoid any issues, it is advised that you do not use the two api with this one. Another thing to note is that the ItemReserve is not usable with this mod. It has been deactivated, for obvious reasons. (Also adds to that SMB3 charm.)

ONE MORE THING TO MENTION IS: If your level has a floor on the last two block spaces of your level, you must pull down the level boundaries by 2 blocks, otherwise the HUD will overlap anything on that layer. I can't do anything about that due to how SMBX's camera is programmed.

LIKE THIS
Spoiler
Image

OR ELSE YOU'LL GET THIS
Spoiler
Image

I'll guide you through what each of the HUD elements are.
Image
1. The Level Name : This uses SMBX's most useless feature, and makes it more useful. The Level Name feature under Level Settings > Advanced now has a use, and is displayed here. Max 11 characters. Any more than that and it defaults to "LEVEL".
2. Lives/Star Counter
3. Score
4. PBar : This functions pretty close to how the PBar in SMB3 did. You build up speed, the bar fills up. When it's full, you can fly. (The PBar only works for Player 1.)
5. Coin Counter
6. Timer : (Uses Luigifan2010's timer API, Slightly edited.)
7. Goal Cards : (Uses my SMB3 Goal Card API. Slightly edited).

So how do I get started?

First off, make sure you have the latest LunaLua. The oldest release supported is 0.7.0.3 BETA. You can get the latest here : http://wohlsoft.ru/LunaLua/

Then download the API.
When it's downloaded, extract the files somewhere and do the following :
1 . Copy/Paste the smb3overhaul.lua file and smb3overhaul folder into your LuaScriptsLib folder which should be in the root of your SMBX folder. (../SMBX/LuaScriptsLib/).
2 . Make a new file in your project folder called LunaWorld.lua.
3 . Add _smb3overhaul = loadAPI("smb3overhaul"); to the file.
4 . In your onLoad function, you can toggle certain settings on/off.

Code: Select all

_smb3overhaul.setSecondsLeft(TIME);
_smb3overhaul.setTimerState(true/false);
_smb3overhaul.usesCard(true/false);
_smb3overhaul.usesPBar(true/false);
_smb3overhaul.disableSpinJump(true/false);


If this seems too confusing, follow step 1 then after, you can just use the example LunaWorld.lua file provided in the ZIP, which is in the README folder.

Credit to Mike Santiago for the timer api.
Special thanks to Mike Santiago and Kevsoft for the help and support.


If you have any questions/bug reports, please post them here.

Posted: 27 Jul 2015, 0:02
by h2643
This is wonderful! One question though, how am I able to change timer? Should I edit timer API or something to a different value?

Posted: 27 Jul 2015, 0:49
by XerX
h2643 wrote:This is wonderful! One question though, how am I able to change timer? Should I edit timer API or something to a different value?

To change how much time you have on the timer, open your lunaworld.lua/lunadll.lua (if for a specific level) and set the time in this line.

Code: Select all

_smb3overhaul.setSecondsLeft(TIME);

You want to replace TIME.
TIME = Seconds.

So for example.

Code: Select all

_smb3overhaul.setSecondsLeft(300);


The max amount of seconds is 999.


Also there was an update to the API. Please redownload the newest version. (Same link).

Changes
-Added "easymode". Replicates SMB3 Powerup structure. Fire/Leaf/Ect > Big > Small instead of Fire/Leaf/Ect > Small.

If you wish to toggle this off, open your LunaWorld.lua and add this line in the onLoad().

Code: Select all

_smb3overhaul.useEasyMode(true);

Posted: 31 Jul 2015, 13:54
by XerX
UPDATE

I remember a while ago, someone made a simple line that disabled spinjump from being used. It wasn't the best, still played the spinjump sound and turned the player the opposite direction when they jumped in place, as well as keep the same jump height, so spin jumping would get less air than a regular jump would.

I've made my own version, and have added it to the SMB3 Overhaul mod.

phpBB [youtube]

Original link: https://www.youtube.com/watch?v=wPp-wbaeVLw



An update will come soon.

EDIT: Also if you're wondering, yes, you can disable this in LunaOverworld.lua.

Added after 9 hours 38 minutes:
NEW UPDATE.

Please be sure to update to the newest API. (Version 1.0.2)

If you have an older version installed, just overwrite 'smb3overhaul.lua'. That's it.
DOWNLOAD

Changelog
Added a "Disable Spinjump" function.

Code: Select all

   _smb3overhaul.disableSpinJump(true/false);

Posted: 20 Oct 2018, 9:36
by NateMon
so, is this for 1.4.4? or just 2.0?

Posted: 28 Oct 2022, 17:40
by Giggs-Chan
How do you enable the Item Reserve Function if you want it?
Can you change the font and color of the HUD background?