Snake's Pit of ASM (and Other Stuff)


Modular EXP
This replaces what was Double EXP, which was extremely limited.

What does this do for you? You can define a multiplier or a divisor for EXP based on many conditions, including character, class, enemy’s class, weapon wielded, chapter, and event ID.

How to: Make EXP bend to your will


#inctext lyn "ModularEXP/ModularEXP.elf" "ModularEXP/Hooks.elf"
#define ModularEXPEntry(Character,Chapter,EventID,Multiplier,Divisor) "BYTE Character Chapter EventID Multiplier Divisor 0x00 0x00 0x00"

This table is how you will control EXP by chapter, character, and event ID. For each entry of this table, go ahead and fill those out like so, and specify how much you would like to mulyiply and divide by.
For example…


Here we have an example usage.
The first entry will give Franz doubled EXP in chapter 2.
The second will give Ephraim halved EXP in chapter 8
The third will give Colm tripled EXP in chapter 4 only when event ID 0x12 is set,
The fourth will give seth two-thirds EXP in all chapters.
The fourth will give all units doubled EXP in chapter 5.
The last entry is simply a terminator.

Note that you CAN use fractions by multiplying and dividing together, and also remember that multiplying or dividing by 1 will have no effect.

That was part 1, the second part is a csv that’s indexed by class ID. Go ahead and incorporate Modular EXP Class Table.csv and it’s .nmm.

The first and second columns are the class multipliers and divisors these will always apply. Have a class that’s gaining too much EXP? Add a correctional multiplier and/or divisor.

The next 2 columns are the granting multipliers and divisors. These are the same thing as before except they apply when they grant EXP. If you want enemy soldiers to grant more EXP from combat, for example, add a multiplier here.

The rest of the columns are for weapon types. These will apply when this class is using this weapon type, and they do stack with all other multipliers and divisors. Want great knights to have 4/5 EXP when using axes for some reason? Just apply those to this part.

That’s it. Let me know of course if you find any bugs or problems of if you have any suggestions.

Some other notes

EXP per combat cannot exceed 100 EXP because of level up shenanigans. This routine will cap all EXP gains to 100.

Do not divide by 0. This should go without saying, but I accidentally did it during testing. Bad things happen. :stuck_out_tongue_closed_eyes:

This should be included AFTER the skill system because it conflicts with Paragon. It’ll simply overwrite Paragon’s hook. This shouldn’t be an issue for too long since I plan on integrating my ASM with the skill system to help with these irritating conflicts.


Poison Rework
Tired of how inconsequential poison is? This should allow you to both define it how you wish and make it more meaningful.

This ASM does three things.

  1. Poison applied is additive. This means that any poison applied stacks with any poison that the unit previously had. For example, if a unit has 2 poison and is hit with a weapon that applies 4, the unit will then have 6 poison.
  2. The damage that poison deals each turn equals how much poison the unit has before ticking down. If a unit has 7 poison, it will take 7 damage, then the next turn it will take 6, and so on.
  3. You can define how much poison each weapon should apply including how much poison gas traps apply in each chapter)
How to: Make poison actually do something. I know. Crazy, right?

Again, no installer is necessary. Just download the folder in the Dropbox and use:

#inctext lyn "PoisonRework/PoisonRework.elf" "PoisonRework/Hooks.elf"

Secondly, you’ll also need to incorporate both the Poison Rework Gas Trap Table and the Set Poison Item Table with your csvs. The former is indexed by chapter. It just tells the routine how much poison to apply from gas traps in each chapter. The latter table is indexed by item and tells the routine how much poison to apply per item. You still must use the poison weapon effect in the item table normally for an item to apply poison.

That’s it. The only other thing is that poison will max out at 15 due to RAM space restrictions.

Now go and spread your lethal poison to all corners of Magvel! (or whatever)


Make poison great again.


I feel like Poison should increment after DoT ticks instead of decrement. Or there should be at least a separate Poison that does do that if you feel like there’s a poison that is naturally able to be recovered from without an antidote.

Otherwise, I would think you’d get sicker and weaker if it’s left alone to ravage your body. Plus it makes it waaaay more dangerous. (Bonus points if you can make it so Poisoned units cannot have their HP healed.)

Outside of that, this is super neat.


2 updates:

Fixed a bug in Poison Rework where it would sometimes apply 0 poison and forever deal 0 damage each turn.

I’ve also almost completely overhauled Level Up ASM (no empy level ups) because that shit was BAD. I’ve fixed a bunch of minute bugs in it and heavily optimized it. It still conflicts with the skill system, but I’m planning on fixing that in all of my projects at the same time soon.

Also I haven’t forgotten about this. I’ve just been super busy lately. Are you still wanting this, @chronoquairium ?


Yeah, I’m still hoping for that.