About this mod
SKSE plugin that allows adding, removing, and replacing items and leveled lists to containers at runtime à la SPID
- Requirements
- Permissions and credits
- Changelogs
SKSE plugin that allows adding, removing, and replacing items and leveled lists to containers at runtime à la SPID. Uses distributions defined in _CID.ini files found in the root folders of mods, similar to other distributors.
NOTE: A container is any object whose inventory can be accessed by the player--this includes chests, end tables, NPCs, etc.
Usage
_CID.ini files consist of key-value pairs where the key is the FormID and Plugin Name OR EditorID of the container to distribute to and the value is a Distribution String.
Distribution String:
- <DISTR> := <identifier>|<count>
- <identifier> := FormID~PluginName OR EditorID
- FormID~PluginName example: 0x3301~Skyrim.esm
- FormID~PluginName example: 0x3301~Skyrim.esm
- <count> := a natural number
Distribution strings can be used to define ADD, REMOVE, REMOVE ALL, REPLACE, and REPLACE ALL statements:
ADD syntax:
- <ADD> := <DISTR>
- Example: 0x9e2af~Skyrim.esm|50
- Example: 0x9e2af~Skyrim.esm|50
REMOVE syntax:
- <REMOVE> := -<DISTR>
- A leading - identifies a REMOVE statement
- Example: -BearCavePelt|50
REMOVE ALL syntax:
- <REMOVE ALL> := -<identifier>
- Excluding a count will cause CID to remove all of the given item from the given container
- Example: -BearCavePelt
REPLACE syntax:
- <REPLACE> := <DISTR>^<DISTR>
- The left hand side of the ^ symbol is replaced with the right hand side
- Example: 0xa2711~Skyrim.esm|50^0x9e2af~Skyrim.esm|50
REPLACE ALL syntax:
- <REPLACE ALL> := <identifer>^<DISTR>
- Excluding a count from the left hand side will cause CID to replace all of the given item with the item and count from the right hand side
- Example: BearCavePelt^0xa2711~Skyrim.esm|50
- <REPLACE ALL> := <identifer>^<identifer>
- Excluding a count from the both sides will cause CID to replace all of the given item with the same number of the item from the right hand side
- Example: BearCavePelt^0xa2711~Skyrim.esm
INI Syntax:
- <identifier> = <ADD>
- <identifier> = <REMOVE>
- <identifier> = <REMOVE ALL>
- <identifier> = <REPLACE>
- <identifier> = <REPLACE ALL>
Where <identifier> to the left of the equals sign is the FormID and Plugin Name or EditorID of the container to distribute to.
A conflict is when two or more _CID.ini files attempt to distribute the same item to the same container (possibly with different counts). In these cases, the _CID.ini file with the largest name (by lexicographic order) is selected and its changes are applied, ignoring the conflicting changes from other _CID.ini files.
To-Do List:
Allow removing all or swapping all of a given item (currently, a count has to be specified)
Source code: GitHub
Built with CommonLibSSE NG. Should work for all versions of Skyrim (SE, AE, and VR).
Compatibility
- Compatible with everything
- Always safe to install/update/uninstall
Check out my other mods
Credits
- powerofthree for powerofthree
- CharmedBaryon, fudgyduff, and everyone involved in Skyrim reverse engineering
- colinswrath for fielding my dumbass questions about SKSE development
- Skyrim RE Discord server for helping with all sorts of stuff