SKSE plugin and framework for swapping AnimObjects, using config files.
Base Object Swapper but for AnimObjects (eg. the bread in eating-bread animation or the tankard in drinking-from-tankard animation).
With this mod, you could...
- add random variations for each animation (different types of bread, tankards containing wine or ale)
- assign different models based on what's in your inventory (display ale tankard if you have ale)
and more!
How To Use
Distributed records should be written to an ini file containing the suffix "_ANIO", in the Data folder (for example, MyMod_ANIO.ini).
They should follow this general format:
[ANIO]
origEDID|swapEDID
;randomly select between each swapped AnimObject each time an idle is played
[ANIO]
origEDID|swap01EDID,swap02EDID
;swap AnimObjects conditionally
[ANIO|Conditions|Traits]
origEDID|swap01EDID,swap02EDID
EDID is the editorID of the AnimObject, ie. AnimObjectBread
origEDID is the base AnimObject you're trying to replace (eg. AnimObjectBread).
swapEDID is the replacement AnimObject you're replacing it with (eg. AnimObjectBaguette). EditorIDs must be unique, so I suggest prefixing with your mod or author tag, to avoid conflicts.
You can also specify multiple swapEDIDs - the swapped AnimObject will be randomly selected each time the idle is played.
Conditions
- Allows you to swap AnimObjects based on conditions (keyword/faction/race/location/inventory items)
- Conditional swaps take precedence over normal swaps
- Same format as SPID filters, with pattern matching
Supported filter types
- Keyword editorIDs.
These can be keywords present on the actor (ActorTypeNPC) or keywords present on an item in their inventory (WeapTypeSteel)
- Actorbase editorIDs (BalgruufTheGreater, Player)
- Cell editorIDs (WhiterunDragonsreach)
- Actor specific filters
FormIDs/EditorIDs of specific forms used by actors, like factions/race/spell
List of valid filter types
Formlist filter checks if any of the forms in list matches these filters.
- ObjectEditorIDs
Checks if the specific object is present in their inventory (eg. Torch or Kettle).
Templated/enchanted versions of weapons are supported, just specify their base (SteelSword matches EnchSteelSwordFire/Shock)
- Nif paths (MyMod\MySteelSword.nif)
Checks if any inventory item model contains this path.
Pattern Matching
Traits
- Gender : M/F
- Child : C
Traits can be combined (eg. M,C to get all male child NPCs)
Traits can be negated (eg. -C to get all adult NPCs)
Examples
;swap AnimObjectBread with one of the three swaps randomly
[ANIO]
AnimObjectBread|AnimObjectBaguette,AnimObjectBagel,AnimObjectBiscuit
;swap AnimObjectBread with AnimObjectDragonBread, just for the player
[ANIO|Player]
AnimObjectBread|AnimObjectDragonBread
;swap AnimObjectIron with AnimObjectSteelSword, if the actor has a steel sword OR a weapon with WeapTypeSteel keyword in their inventory
[ANIO|SteelSword,WeapTypeSteel]
AnimObjectIronSword|AnimObjectSteelSword
;swap AnimObjectIronSword with AnimObjectFlowerySteelSword if the actor is female AND has a steel sword in their inventory
[ANIO|SteelSword|F]
AnimObjectIronSword|AnimObjectFlowerySteelSword
Check po3_AnimObjectSwapper.log in My Documents/My Games/Skyrim Special Edition/SKSE, for more information about the process.
Credits
- Ryan (SniffleMan) for CommonLibSSE
- wSkeever and r/skyrimmods for help with testing
Instructions
Requirements
SKSE64
Visual C++ Redistributables 2022
Address Library for SKSE Plugins
Installation
Install with a mod manager, such as Mod Organizer.
AnimObject Swapper
FOMOD installer. Supports SE 1.5.97 Supports AE 1.6.353 and lower Supports AE 1.6.629 and higher