Skyrim

File information

Last updated

Original upload

Created by

Smolcasm

Uploaded by

Smolcasm

Virus scan

Safe to use

Tags for this mod

About this mod

Macromancy 3.5 is an update to Revylrie's Macromancy 3 - a spell pack that adds 7 new Alteration spells that allow you to alter the size of yourself or others, as well as scrolls and staves for these spells.

Requirements
Permissions and credits
Changelogs
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.

More Information

This mod is released as-is. I will make no promises of future updates, though I do hope to release some at some point in the future.

The first priority for any future update would be to further optimize the scripts; the latest version of Macromancy 2 lacks some of this mod's script fixes but incorporates several of its own, including a master script for the Macromancy spells to ensure they all use the same basic methodology, the use of RegisterForSingleUpdate instead of the inferior Wait function, and an offset variable to allow Fame to be kept at a baseline of 0 without neglecting the minimum size cap. While Macromancy 2's new scripts are well-documented, it is difficult to apply their features piecemeal to Macromancy 3.5's. Providing camera tweaks (perhaps those suggested on the Macromancy 3 page) via a custom .ini file would also be something I'd prefer to implement sooner rather than later.

Other script fixes I might consider would be further improving the calculations for absorbing a target's stats by shrinking them to death, removing - or at least curtailing the obtrustiveness of - the Macromancy Manager script (and replacing its functionality with ongoing magic effects where feasible), and implementing parameters for the use of SetScale in cases where SetNodeScale would not work (for example, if the target is not a humanoid adult, or if SKSE is not installed) - though it is worth noting that SetScale comes with a number of limitations and bugs that are difficult to address and even harder to work around. Indeed, no matter what I do, size-changing magic will never work perfectly in-game - just entertainingly enough to consider using in your playthrough.

Once I'm confident that Macromancy 3.5 wouldn't contribute very heavily to script load on any setup, I'd consider expanding the available spell list (there are workable ideas in the Macromancy 3 comment section), rebalancing the strengths and costs of the existing spells, and quashing any remaining bugs that don't involve the scripts. Unfortunately, it's unlikely that I'd be able to do any of this in the near future, and even more unlikely that I'd be able to replicate very many of the features of the more obscure Macromancy forks - particularly those with closed permissions.

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.