Spell Config Formats - pWn3d1337/Skyrim_SpellHotbar GitHub Wiki
Spellhotbar reads a lot of configuration (spell config & icons) from csv files
Format
All .csv in this mod use tab as seperator and UTF-8 as encoding, best use LibreOffice or Excel to edit. Any text editor will work if you are careful about tabs, Notepad++ for example can show them.
Image Config
Located in SKSE\Plugins\SpellHotbar\images
Every .csv in this folder will be parsed and a .png image with the same base filename is expected. The images are atlases and contain many stitched images to avoid loading many small files. Technically a .png with just 1 image is possible though.
image.csv format
Can be generated through stitch_icon_atlas.py Columns:
FormID
- form id of the spell, without load order index, as HEX number (0x), max 6 digits, leading 0s can be avoided. e.G0x10f7ed
,0x820
Plugin
- name of the plugin containing the form, e.GSkyrim.esm
u0
- texture coordinates of the sub imagev0
- texture coordinates of the sub imageu1
- texture coordinates of the sub imagev1
- texture coordinates of the sub imageName
- for human readability, not actually needed
The Images contain alpha borders for the images, which are generated by the python script. Theoretically it can be done manually though.
Spell config
Located in SKSE\Plugins\SpellHotbar\spelldata
Every .csv in this folder will be parsed
spelldata.csv format
Defines cooldowns and cast animations for spells. Also 'generated' as part of stitch_icon_atlas.py
Columns:
Name
- for human readability, not actually neededFormID
- form id of the spell, without load order index, as HEX number (0x), max 6 digits, leading 0s can be avoided. e.G0x10f7ed
,0x820
Plugin
- name of the plugin containing the form, e.GSkyrim.esm
Casteffect
- Visual fx attached to the hands while charging, see section below about definition of cast effects, can be empty (also not used for powers and shouts)GCD
- Global cooldown, keep -1 for default, can be used to extend if a power triggers some special anim that should lock the player out of using the bar for that time.Cooldown
- can be used to give Skills a cooldown (when cast through the bar). For greater powers (once per day) and shouts this is handled automatically, do not set a cooldown for those, You can specify the cooldown as 1s for 1 second, 1m for 1 minute or 1h for 1 hour, no suffix will be seconds. Cooldowns are tracked in gametime and reset when you wait or quick travel. When the Cooldown starts the time is converted to gametime depending on the current timescale. This will cause incorrect timings when you change your timescale afterwards.Casttime
- How long charging up the spell takes, leave -1 for reading the value from .esp, for spells with long casttimes this is set to 1.75 to not cause animation problems, very long cast times do not look good. As compensation the slow ritual spells have set a cooldown by default.Animation
- Which animation to use, this does not do anything in code besides setting a global variable to this value while the spell is beeing cast. The only place this variable is used is in DAR conditions, e.GValueEqualTo("SpellHotbar.esp" | 0x815, 2)
. By default up to 15 is used. The variable is a short and new numbers can be added (up to 32,767)
Cast Effect config
Located in SKSE\Plugins\SpellHotbar\effectdata
Every .csv in this folder will be parsed
To get a visual effect on the hands while charging a spell through the hotbar, a dummy spell and magic effect are cast on the player that has two hit effects that attach a nif to the players hands during the cast. To save a lot of hassle in creation, the spell and magiceffect are always the same and only the art objects get change. The duration of the effect is also dynamically changed to match the casttime (rounded). This means to add new effects only new Art Objects need to be created.
Columns:
Key
- this is required to identify the effect and the value that needs to be used in spelldata.csvFormID_L
- form id of the art object for the left hand without load order index, as HEX number (0x), max 6 digitsPlugin_L
- name of the plugin containing the art object, e.GSpellHotbar.esp
FormID_R
- form id of the art object for the right hand without load order index, as HEX number (0x), max 6 digitsPlugin_R
- name of the plugin containing the art object, e.GSpellHotbar.esp
The used Nifs for the ArtObjects are copies from vanilla effects with a simple nif change to attach them to the Player's hand
Attach a NiStringsExtraData
Node with 1 entry and and set it to NamedNode&NPC L Hand [LHnd]
or NamedNode&NPC R Hand [RHnd]