About this mod
A modders resource that includes 4 scripted battles ranging from simple to complex.
- Requirements
- Permissions and credits
If you want to get to the interior cell from in-game, click on the key on Arrille's desk (close to the wall). After you get to the central room, you can tcl through the wall to find a cheaty sword to help with testing (though it will do too much damage if your character is low level, since the boss stats increase with player level).
Here's the MMC tutorial with Danae, with the written summary below!
FYI: The first three fights are against single NPCs, and each uses a separate global leveling script to increase their stats according to player level when the cell is first loaded. The fourth fight is against a creature, so I instead used a leveled list with three different versions, then increased health, magicka, and fatigue in addition to that.
This fight is the simplest: a Nord warrior that uses an axe. The weapon is picked using a leveled list. I just added weapon enchantments for higher level versions of the axe, but you could add a stronger base weapon, more/better armor, potions, etc. using the same method.
Upon dropping below a certain health threshold, the barbarian enters a "rage". She says a scripted voice line, regains some of her health and gains a passive bonus that increases her Strength, makes her immune to paralysis, and gives her health regeneration. Additionally, a large frost spell will explode out from her, and at a certain player level, that spell will also paralyze for a few seconds (the main reason for the paralysis immunity). This is done by placing an unseen activator at the barbarian's feet, then using ExplodeSpell from that activator.
This one features a Dunmer rogue that flits around the battlefield and switches between melee and marksman modes. His melee weapon is a shortsword that drains Agility, which causes the player to stagger more often.
The rogue switches to marksman if the player is far away, and to melee if the player closes in. I did this by adding and removing weapons from the rogue's inventory depending on player distance because it seemed to be the most reliable method in testing.
The most involved part of this fight is the "teleportation". If the player stays close to the rogue for too long, the rogue will throw down a flashbang and reappear at a location farther from the player. If the player stays far away from the rogue for too long, he will instead reappear closer to the player.
The flashbang mechanic uses the same ExplodeSpell trick that I used for the barbarian, and applies a Sound and Blindness effect if it connects. I also added a section to the rogue's script that removes the flashbang effect from the rogue if he hits himself with it, because that's just not cool.
The first thing the rogue will do when he teleports away from the player is throw a knife with a short paralysis enchantment, after which he will immediately switch to normal knives. It's also worth noting that the rogue regains a bit of health each time he teleports.
Because the rogue's weapons are changed by adding and removing them via script, there is a final check when he dies to make sure that all of the appropriate weapons can be picked up as loot.
Although I'm listing this fight as third, it might be just as complicated if not more complicated than the fourth, and it has some of my favorite mechanics. The Redguard sorceress actually only uses two spells. You can easily add more, but you would probably need to remove the extra ones when it comes time for her to use the scripted spell. Also, shoutout to Darknut's amazing Apocrypha Assets!
The first spell that she uses is an elemental ranged blast that also applies a shield to her. This is a really simple trick that keeps your important caster bosses from wasting so much time on casting animations. If you want your casters to feel dangerous, they have to actually get their spells off.
All of the sorceress's main gimmicks revolve around timers. Three different things will happen every few seconds, at different intervals:
Paper Tornadoes. 0-4 paper tornadoes that slowly encroach on the player's position appear around the battlefield. They injure the player if they make contact, and disappear if they hurt the player a few times, if they last for a certain number of seconds, if the player is caught in a Singularity (more on that in a bit), or if the sorceress dies. Note: I did not use any of the collision-based functions for these tornadoes, since their collision is finicky.
Floating Books. 1-3 floating books appear above her head. Each book chooses a random spell, then either launches the spell at the player (fire, frost, shock, or poison) or launches it at the sorceress (healing). It is possible for the sorceress to get caught in the blast of one of the offensive spells, and for her to absorb the magicka of the healing spell.
Singularity. The sorceress begins firing a spell at the player that drains speed by a lot and applies 1 point of levitate. If the spell connects, a floating book surrounded by a red force field appears above the battlefield, and the player is pulled into the air toward it. If the player is pulled into contact with the force field, they are held in place and take collision damage. This allows the sorceress to pelt the player with spells, and likely causes falling damage when the effect ends. The sorceress regains a bit of health each time she connects with Singularity. Note: In the vanilla Morrowind engine, NPCs and creatures don't want to change their spell lists mid-fight. This can be circumvented by doing a quick "StopCombat" into "StartCombat, player" whenever you need to switch.
Considerations: There are a few pain points with this fight. While I love all of the gimmicks going on here, they don't all gel together perfectly. The paper tornadoes can interrupt the path of the sorceress's spells, and also break her line of sight, causing her to pathfind randomly. The player is sometimes pushed inside the Singularity's collision, causing the sorceress to lose aggro. Nothing game breaking, it just feels weird. Also, a bug occasionally happens with Singularity that causes an audio distortion, then makes the next attack against the player a critical hit. This doesn't happen terribly often, but if someone knows a way to prevent it, let me know.
This fight is probably the most cinematic. The player starts off by going through a tomb and activating a floating skull, causing the bonelord to appear. A forcefield appears behind the player, cutting off their escape, and magic prevents the player from teleporting away.
For the first phase, the bonelord simply tries to close in with melee attacks until the player kills it. Note: The bonelord's maximum health increases slightly after each resurrection.
The bonelord resurrects, floating in the middle of the room and casting ranged spells at the player. At the same time, two creatures appear at ground level and attack the player. The creatures that are summoned are random, but the possibilities are heavily skewed based on the player's level. While levitating, the player might need to jump or use marksman/ a reach weapon/ spells to hurt the bonelord, but it only levitates for a few seconds.
On the next resurrection, the bonelord gains a frost/paralysis spell (remember the StopCombat into StartCombat trick), and two skeleton archers appear on the balcony above. They can also cast illusion spells.
Kill the bonelord once more and it will again start floating in the middle of the room, this time casting a spell with an AoE poison effect. It will once again summon minions. These minions are also random, but the table is weighted a bit higher in relation to player level. Note that all of the minions are undead, and much like with how we used an explosion of frost damage with the Nord barbarian, we're using poison here because undead tend to be resistant/immune to it. This is the final phase, and if the skeleton archers are still alive when the bonelord dies, they are scripted to die, also. The other minions don't have that functionality because they are vanilla creatures, but you could easily make custom variants and add similar scripts to them.
Considerations: This fight uses the Resurrect function. You can also use Resurrect on NPC fights to make sure that all of the different phases happen appropriately, but that can sometimes feel a bit out of place. Resurrect is great for necromancers, but maybe not for a random bandit chief. I have
heard people say things about Resurrect resetting local variables, but I haven't encountered anything like that in my testing for any of my mods. Also, if the bonelord is killed while levitating, its body can phase through the floor when it finally drops. It might be advisable to not put any important items on the bonelord's body, or to make sure that it can't die while levitating.
And that's it for the fights! Again, these are just meant to be templates or idea generators, so you'll almost certainly need to tweak things to make them work in your own mods. Obviously I could go into far more detail about how all the scripting works, but that is a big maybe for down the road. I can answer questions in the comments or on the Morrowind Modding Discord, though. Hope someone finds this useful!