I’ve been playing with the Creation Kit! I even made something. Here’s me complaining about what a pain it was to implement a simple spell. If you’re wondering when the next Skyrate’s Life is going up… soonish. I haven’t forgotten!
Once again, Skyrim has sunk its bloody great teeth into me, but this time it’s even worse – the Creation Kit is here, and it brings with it the Steam Workshop. The workshop simplifies the process of sharing and downloading mods. This is good, because it means quick, easy access to thousands of mods, and steam-style automatic updates. This is bad, because… I needed this time for doing things! Things other than playing with dozens of mods and mucking about in the creation kit, that is.
Seemingly offtopic tangent: I’ve been following a webcomic-interactive adventure-type thing recently. It’s called Prequel, and features the continuing ‘adventures’ of Katia Managan, a basically inept but immensely likeable Khajiit who arrives in pre-Oblivion Cyrodil to try and make a new start. It’s beautiful, wonderfully written and features lovely animated GIFs and interactive flash bits. Kazerad’s put a lot of effort into this. You should definitely read it! Don’t be put off when things look like they’re spiralling downward though, push on through – he’s got a story to tell here.
Why is this only seemingly offtopic then? Because Katia uses ‘Eye of Fear’ (one of the Khajiit racial powers) on a regular basis and with varying degrees of success. For some reason, Eye of Fear didn’t make it into Skyrim.
The Creation Kit appears.
I decided to add Eye of Fear back into the game as a way of learning a bit about the Creation Kit. It seemed a simple enough task to begin with. Here’s how it went…
Spells, Spell Effects and Sounds: Learning to implement a simple Skyrim racial Power in 30 ‘easy’ steps!
1. Load up Creation Kit, load Skyrim.esm master file, save a new plugin, check that the new plugin is set as the active file. So far, so Morrowind.
2. Find Spell under Magic. Powers are a subcategory. No big deal, about 5 minutes.
3. Right click, New. Become confused about how spell effects are determined. Cancel, right click and edit on existing powers in a bid to work out how this works. Open Creation Kit wiki and read about the Spell dialogue. Open UESP wiki and try to find out what the ‘Fear’ effect is called in Skyrim. Turns out it’s called ‘Fear’. About twenty minutes.
4. Be completely unable to find an effect called ‘Fear’ in the list of CK spell effects. Work out that the effects you have access to vary depending on the delivery method (Aimed, Self, Actor Target, etc). STILL be unable to find anything useful. Look up a spell using the fear effect on the UESP. Track down ‘Rout’ under Spell -> Spell. It does what you want, but you have to cast it using your hands instead of the Z key, and it throws a dirty great big particle effect at the enemy. Discover that this effect is called InfluenceConfDownFFAimedArea, and there’s one without the area effect called InfluenceConfDownFFAimed. Another 20 minutes.
5. Add InfluenceConfDownFFAimed to new power. Set cost to 0 and equip type to ‘Voice’ to allow firing it with Z key – in theory. About 5 or 10 minutes.
6. Work out how to add this to the Khajiit racials. Bark up the wrong tree for a while looking at Actor -> Presets. Finally discover Character -> Race. Add new spell to Specials. 10 minutes?
7. Load game. Load Khajiit character. Be surprised that it is in the powers list! Be surprised that it fires when you press Z! Note that it still fires a silly particle effect. You want to STRIKE FEAR into enemies with your Eye of Fear, not… fire balls of strange energy out of your eye. 5 minutes.
8. Discover that all basic magical effects are listed under Magic -> Magic Effect. Duplicate InfluenceConfDownFFAimed and begin modifying it to suit your purposes! Look up Magic Effect dialog on the CK wiki. Switch it from Aimed to Target Actor, which the Wiki says causes an instant effect on whichever actor is under the crosshairs. Set it to work against Undead and Daedra too why not. Update the Eye of Fear power to use this new spell effect. 20 minutes or so.
9. Load game. Load character. Fire Eye of Fear into wall – nothing happens. Try to fire Eye of Fear at character – “You can only use powers once per day”. Bad; no feedback to tell player that s/he’s used (and wasted) the power unless it strikes a valid target.
10. Go back into the custom spell effect (APSKhajiitInfluenceConfDownFFAimed) created earlier, and set up sounds to play for Aimed, Ready and Release states. Eventually work out that you can listen to those sounds under Audio -> Sound Descriptor. Assign an appropriate sound to On Hit as well. Let’s say at least half an hour.
11. Load game. Load character. Run downstairs and display HORRIFYING EYE to innocent bystander (and in the game). He runs in fear, everyone attacks you. Only the On Hit sound plays. Reload. Use Eye on Wall. Nothing. No sound at all. Use Eye on Civilian – “You can only use powers once per day”. Argh. No casting sounds at all.
12. Look at other powers in the CK. This involves looking at a power, determining what the name of each effect it uses is and then looking them up in Spell Effects. Some have no sound effects on them at all. Some do have sounds assigned. Some appear to trigger their sounds in attached scripts. Gah. Find that doomSerpentParalyseEffect has no scripts and has sounds assigned! Another half hour.
13. Load game. Load character. Console! coc doomstonenortherncoast01. tgm. Console off, approach doomstone and get Serpent Stone ability. Select and fire it. Sounds play! Also, it turns out that you can use powers as much as you like if god mode is enabled. That would have made earlier testing somewhat easier…
14. Decide that spell sounds don’t play if the delivery type is Target Actor, and set it to Aimed instead. Discover EmptyProjectile and use that to avoid massive balls of effects flying about when the power is used. To come to this realisation and make the appropriate edits, another 15 minutes or so.
15. Load game. Load character. Fire at civilian! Noticeable delay between firing and effect appearing on actor, much larger chance to miss due to invisible projectile travel time. No sound apart from On Hit. Commence screaming.
16. Belatedly realise that the sound effects used for doomSerpentParalyseEffect are completely different from the sounds you heard in-game. Spend ages looking at various powers and their magic effects before realising that you can assign sounds to projectiles and explosions too. AT LEAST 30 minutes.
17. Create new projectile based on EmptyProjectile. Up the speed considerably. Reduce the impact force. Add desired sound.
18. Load game, load character. Grow tired of loading. Test. Hear just the very, very beginning of the sound before the particle zooms off and smashes into the target. Notice that the On Hit sound loops endlessly until the end of the effect.
19. Look up Spell Effect -> FXPersist on the CK wiki. Disable On Hit sound, because you want a visible On Hit particle effect to be present on the target until it runs out and therefore can’t disable FXPersist which is what loops both the sounds and the visuals.
20. Spend ages looking at the wiki for the bit that says ‘here’s how you add on cast sound effects to powers’. Find nothing. Add a cool looking Cone Effect projectile to the spell instead. 30-40 minutes.
21. Load game, character. Test. It looks pretty cool, but still no cast sounds and it fears everyone within the cone’s area which isn’t really what you want. Back to the invisible custom EmptyProjectile.
22. Turn various things on and off in case they are suppressing sounds for some strange, broken reason. Add an area of effect and explosion with the sound assigned to the explosion with no luck. Think about using a script to play the sound. Look at some scripts attached to other spells. Boggle. At least an hour.
23. Switch the equip type from Voice to EitherHand and test. No effect. Switch it from ‘Power’ to ‘Spell’. Test this – it’s possible to fling the spell like a fireball, and the sounds play. Of course, it no longer behaves like a power and it requires you to equip it into one hand. Reset settings. Ooh, half an hour?
24. Discover that you can add nice fullscreen visual effects to spells! Finally, some visual feedback to tell the player that the spell was fired without using projectiles.
25. Read the Papyrus primer. Pore over the command reference. Examine existing scripts. Copy and paste bits of scripts. Finally get enough fragments in the correct order to get something that compiles. Wonder why you can’t pass the sound you want to use to the script despite all that. Certainly no less than an hour and a half.
26. FINALLY work out that scripts don’t get their sound references from Audio -> Sound Descriptor but from Audio -> Sound Marker. Create a new sound marker pointing to the sound you want to use, and feed it to the script.
27. Test it. The required sound PLAYS! But only if you successfully cast it on a valid target (if you miss, no sound), and it plays from the location of the target – the further away it is, the quieter the sound. Not optimal.
28. Spend ages studying the command reference. Finally conclude that ActiveMagicEffect scripts only trigger after the magic effect becomes… effective on a target. There doesn’t seem to be any way to trigger a sound effect on cast, which means that if you carelessly fire your once a day power into a wall the script won’t activate and you’ll have no sound to tell you you’ve done it. Another hour.
29. Cautiously, hesitantly make a manual edit to the script to get it to play the sound from the player’s position, not the target’s. Grin like a maniac when the script compiles! I love this moment, when a scripting system that was totally incomprehensible to you mere hours ago suddenly clicks, and you are able to do something without copying someone else.
30. Test some more. Realise that apart from the sound not activating if you miss, you’re basically happy with it. Clean up all the random, unnecessary stuff you did so that only the necessary edits remain. Package it up, and upload! Feel slightly proud.
Total: Umpteen and three quarter hours.
That was significantly harder than anticipated. If Bethesda had actually made the sound fields in the spell dialog DO what it says they do then it would have been done inside of an hour! But then, I wouldn’t have had any reason to work out Papyrus, so there’s that I suppose.
You can find the module on the Steam Workshop here. It will conflict with other modules modifying RACE: KhajiitRace and KhajiitVampireRace, but if you load this one last they should all play nicely together. This plugin does nothing to the two race entries but add one new spell to ‘specials’.
- Do the sound fields fail to work for ANYTHING with equip type Voice, or just powers?
- Is there any way to play a sound if the spell hits nothing and fizzles?
- Alternatively, is there any way to play a sound On Cast (release) outside of the sound fields built in to the spell effect dialogue (which doesn’t work for this type of spell)?
- Should I release the Cone Effect version of the spell? It’s kinda fun, but potentially overpowered and violates my ‘no particle effect’ rule. Hmm.
What next? I have some ideas, but I’d like to play around with some things that other people have put together too. We’ll see!