Macromancy 3.5 is a continuation of the original Macromancy 2 project by Vanax8991 (based on work by harbinger86) and improved upon in Revylrie’s Macromancy 3, where each spell got its own spell tome, the scripts, spell effects, and inventory art received some basic fixes, corresponding staves and scrolls were created for some of the spells, and Nazira – a character from the first Macromancy – reappeared as an Alteration trainer and vendor for the aforementioned items. Given Skyrim’s rather limited support for dynamically altering a character’s scale, this is indeed an impressive undertaking – but I couldn’t help noticing that hiding among the insurmountable limitations were a number of bugs that still could and needed to be fixed. My iteration of the mod aims to do just that.
Features of the Previous Version (3.2)
[*]Six Apprentice-level Alteration spells (Absorb Size, Give Size, Grow, Restore Size, Restore Size Other, Shrink) and one Adept-level Alteration spell (Mass Absorb Size), complete with spell tomes and leveled list distribution.
[*]Two lesser powers (Consume Dragon Soul, Consume Size) that become available upon reaching certain maximum size thresholds.
[*]Four staves (Absorb Size, Give Size, Mass Absorb Size, Restore Size Other) and three scrolls (Restore Size, Mass Absorb Size, Restore Size Other), also with leveled list distribution.
[*]A vendor and Expert-level Alteration trainer named Nazira, located in Winterhold’s Frozen Hearth.
The Macromancy 3 mod page offers more detailed information on the spells and their effects, as do their in-game descriptions.
Improvements Made In Macromancy 3.5
[*]The spell tomes, staves, and scrolls should each have their object bounds set properly now.
[*]The dysfunctional Mod Configuration Menu has been removed – even if it could work as intended, it wasn’t really that necessary anyway.
[*]Consume Dragon Soul / Consume Size no longer require you to have a whopping 10 dragon souls / maximum size to use them once you’ve unlocked them; the conditions have been altered and the math has been reworked such that it only requires a dragon soul or a maximum size of 2, respectively – it isn’t possible to trigger the effect without these minimum amounts anyway.
[*]The scripts have been optimized – for example, functions such as SetActorValue have aliases (SetAV) that, due to the inefficiency of Skyrim’s scripting engine, go through the extra step of calling their parent function (thus taking slightly longer to execute), so instances of “SetAV” and the like have been replaced with their native (and therefore slightly faster) counterparts. Extraneous If and While statements have also been merged or deleted where feasible.
[*]Current and maximum size is now represented by a single actor value – Fame. A feature of actor values that the previous authors overlooked is that each one can have a current and a maximum value; that is to say, there don’t need to be two separate actor values tracking an actor’s current and maximum size. As a result, Macromancy 3.5 no longer uses the Infamy actor value, and the scripts and magic effects have been altered accordingly.
[*]Consequently, the scripts have been rewritten to only use SetActorValue, DamageActorValue, and RestoreActorValue to modify your current and maximum size; this prevents actors from bypassing the minimum size cap (0.25) or failing to reach their maximum size even with Grow due to rounding errors that can be caused by the improper usage of ModActorValue and ForceActorValue – neither of these functions are necessary for Macromancy’s spell effects when the other functions (with the help of some clever math) can do the job just as well without the unintended side effects.
[*]Speaking of clever math, the magic resistance formulas have been rewritten to scale proportionally – this includes the magic resistance formulas used to determine your stat increases upon shrinking an actor to death. The previous equation was bizarre and could lead to a bug where Absorb Size and Give Size would have the opposite effect on an enemy with negative magic resistance; this has not only been fixed but fully accounted for in the new equation.
[*]The scripts for Grow and Shrink have been rewritten to accommodate the possibility of the caster and target being different entities. This would allow the same scripts to be used for “Grow Other” and “Shrink Other” spells, just like how Restore Size and Restore Size Other use the same script.
[*]Last but certainly not least, Macromancy 3.5 is available on both the LE and SE versions of Skyrim.
For the time being, the item pricing, magicka cost, enchantment strength, and other such numbers set by the previous release remain unchanged in this version. This is essentially just a bug-fixed version of Macromancy 3 – well, bug-fixed with the exceptions of engine limitations regarding scale (no, I can’t make an actor’s hitbox dynamically change with their size or adjust the camera to keep your character in frame as they grow), the constant polling of the Macromancy Manager script (while one poll every five seconds isn’t going to contribute much to script lag unless you have a bunch of other heavily-scripted mods, I’m sure I could come up with a better implementation), and Absorb Size and Give Size still failing to award Alteration experience for some reason (and the only workaround I can think of at present would cause their staves to erroneously award experience too).
Installation / Compatibility
Install this mod with your favorite mod manager, or manually if you’re so inclined.
Macromancy 3.5 requires SKSE in order to see the actors actually change size, and should work with any version of Skyrim and SKSE (though only the latest are supported). Bear in mind that the effect seems to be limited to adult humanoids, possibly owing to some undocumented limitation of SKSE’s SetNodeScale function – children, animals, and other creatures don’t visually appear to change size.
If you’re playing Skyrim: Special Edition, use the SSE version.
Macromancy 3.5 has a soft incompatibility with mods that use SetNodeScale or the Fame actor value, but they shouldn’t be too much of an impediment to this mod’s functionality.
Similarly, mods that alter the same leveled lists will conflict with Macromancy 3.5’s changes to the leveled lists – using Wrye Bash to create a Bashed Patch will resolve any such incompatibility. (In a future update, I might consider populating the leveled lists via a startup script instead so that the user won’t have to do this.)
Finally, mods that make extensive edits to the interior of The Frozen Hearth could conceivably cause Nazira not to appear, depending on your load order. I haven’t encountered any examples of such a thing happening; if it happens to you, try loading Macromancy 3.5 after any other mod that affects The Frozen Hearth.
This mod is released as-is. I will make no promises of future updates, though I do hope to expand the available spell list, rebalance the strengths and costs of the existing spells, quash the last few of the bugs, and make some final revisions to the existing scripts.
One significant change I might be willing to implement would be to use SetScale in place of SetNodeScale – this would eliminate the SKSE dependency, reduce/remove the need for a constantly-polling Macromancy Manager script to assign the player speed and power proportionate to their current size, and allow creatures other than adult humanoids to visibly change size when affected by a Macromancy spell. SetScale also has its limitations, such as a maximum size cap of 10; one possibility is that SetNodeScale could be repurposed to kick in solely to break this cap. No matter what I do, size-changing magic will never work perfectly in-game – just entertainingly enough to consider using in your playthrough.
Credit goes to harbinger86, Vanax8991, and Revylrie for creating the previous versions of this mod. Like them, I also grant you permission to do whatever you’d like with this mod provided that you’re not making money off of it, and that you credit us for making it if you share it outside of the Nexus.
Original URL: https://www.nexusmods.com/skyrim/mods/99180