Changes coming to NPC Packs in Beta 4

Hey, today I want to share with you some changes coming in Beta 4 that can break compatibility with NPC packs made on the PAL and MAGLX3 builds. If you have developed some of those packs (like I have), please pay attention!

The changes are all related to the editor “extra settings” framework, with which NPCs can be customized on a per-entity basis. You might’ve seen it on Boo Circles, or the Fire Snake.

Feel the power of extra settings!

So, I have good news and bad news. The good news is that we have expanded the extra settings framework further to be even more useful. Most importantly, we added a way to create cross-ID extra settings, which is insanely useful for episodes that wanna have settings to be able to give any NPC imaginable a mustache. Yes, even the bloopers! With just one extra settings file! The bad news is that in order to do this we had to adjust the way the variables are stored in lua. Here’s a brief overview over what’s changed:

Looks like a chemical reaction.

So, let me explain. Instead of npc.data._basegame, you will now have to use npc.data._settings to access the extra settings variables. Simple enough! There is a second change, though. It’s a little more subtle: Previously, if someone didn’t adjust the extra settings value in the editor, the field would not be saved to the file and the value would be nil. This can no longer be the case. The middle fire snake actually has a length of 4 according to the save file. If you relied on extra settings being nil anywhere, this needs to change. One example of NPCs relying on nil would be for cases where an extra settings field overwrote a NPC config default variable. Some basegame NPCs that did this now use a checkbox to toggle a boolean that controls whether the fields below should do anything in the code, or if the defaults should be used instead.

Unless the checkbox is checked, modifying the values below does nothing. Here‘s the source code for that file, if you wanna see how it was made!

If you would like to be prepared for the update when it comes out later this month, take a couple minutes out of your day to upload an alternative version of your NPC packs that have this change implemented to your NPC pack threads on the forums. It’s a quick adjustment that ensures your NPC packs will stay compatible forever, hooray!

Thanks for reading. I hope you’re looking forward to Beta 4!

~Enjl

I also have some ceral as an apology for breaking your packs!

I was so happy about the improved block collision performance I added a very special kind of tileset!

Leave a Reply

Your email address will not be published. Required fields are marked *