Environment Setup
Set up your development environment for creating and converting SLSB animation packs.
Required Software
Python
SLSB conversion tools require Python 3.10 or higher.
Windows
- Download from python.org
- Run the installer
- Important: Check “Add Python to PATH”
- Click “Install Now”
Verify installation:
python --version
Alternative: Using Scoop (Windows)
scoop install python
Conversion Tools
Getting the Development Essentials
- Download SLSB.Convert.Dev.Essentials from the Discord (pinned in #slsb-and-pack-dev channel)
- Extract to a short path without spaces (e.g.,
D:/SkyrimMods/SLSB.Convert.Dev.Essentials)
Required FNIS Tools
You’ll need FNIS tools for animation processing. Download these from Nexus Mods:
Required SLATE ActionLogs
Setting Up Dev Tools
After downloading, extract tools to your dev environment:
- Extract FNIS Behavior SE →
base_game_replica\Data- Take the “tools” folder from
FNIS Behavior SE 7.6 XXL\Data
- Take the “tools” folder from
- Extract FNIS Creature Pack →
base_game_replica\Data- Take the “tools” folder
- Extract Command Line FNIS →
base_game_replica\Data- Extract the “tools” folder
- Extract AnimStageLabels →
slate_action_logs- Take the “SLATE” folder contents from
SLAnimStageLabels\SKSE\Plugins
- Take the “SLATE” folder contents from
- Extract HentaiRim Tags →
slate_action_logs- Take the “SLATE” folder contents
Setting Up Your First Conversion
Step 1: Prepare the Dev Environment
Extract the downloaded SLSB.Convert.Dev.Essentials to a path without spaces:
D:/SkyrimMods/SLSB.Convert.Dev.Essentials/
Step 2: Add FNIS Tools
Follow the “Required FNIS Tools”, “Required SLATE ActionLogs”, and “Setting Up Dev Tools” sections above to add:
- FNIS Behavior tools
- FNIS Creature tools
- Command Line FNIS
- AnimStageLabels
- HentaiRim Tags
Step 3: Maintain Animation Hashes
Important: SLSB and SLP+ identify scenes by hash. To prevent users from losing animation toggles and customizations on updates:
- Download the latest
Automated.SLSB.Conversions.v_.7zfrom the mod page - Extract and search for
.jsonfiles - Copy all JSON files to
[dev_env]\updated_slsb_jsons/ - The converter will use these hashes for new conversions
This ensures users’ saved animation preferences persist across updates.
Step 4: Confirm Dev Environment Structure
The dev environment should now look like:
[SLSB.Convert.Dev.Essentials]/
│ execute_convert_full.cmd
│ execute_convert_test.cmd
│
├───SLAL_Packs/
├───SLSB_Outputs/
|
└───[dev_env]/
│ SexLab Scene Builder.exe
│ slsb-convert.py
│
├───base_game_replica/
│ └───Data/
│ └───tools/
│ ├───GenerateFNIS_for_Modders/
│ │ │ commandlinefnisformodders.exe
│ │ │ commandlinefnisformoddershook.dll
│ │ │ GenerateFNISforModders.exe
│ │ │ hkxcmd.exe
│ │ │
│ │ └───<other content>
| |
│ └───GenerateFNIS_for_Users/
│ └───<content>
│
├───slate_action_logs/
│ SLATE_ActionLog - 1OsmelMC.json
│ SLATE_ActionLog - 2SLEN Vampire.json
│ SLATE_ActionLog - 3Nymra.json
│ SLATE_ActionLog - ASL Creature.json
│ SLATE_ActionLog - ASL Human.json
│ SLATE_ActionLog - ASL SFX.json
│ SLATE_ActionLog - Hentairim Supplement Tags.json
│ SLATE_ActionLog - Hentairim tags.json
│
└───updated_slsb_jsons/
_1.0.txt
<Pack Names>.slsb.json
Step 5: Convert SLAL Packs
- Place SLAL packs in
SLAL_Packs/with proper structure (see included examples) - Run
execute_convert_full.cmd(on Windows) or equivalent script - Wait for conversion to complete
- Check
SLSB_Outputs/for generated.slrfiles
Step 5: Verify Conversions
The output directory should contain:
SLSB_Outputs/
└───conversions [yyyy.mm.dd_hh.mm.ss]
├───[Pack Name 1]
| ├───meshes
│ │ └───actors
│ │ └───[<actor>]
│ │ ├───animations
│ │ └───behaviors
│ └───SKSE
│ └───Sexlab
│ └───Registry
│ └───Source
└───[Pack Name 2]
├───meshes
│ └───actors
│ └───[<actor>]
│ ├───animations
│ └───behaviors
└───SKSE
└───Sexlab
└───Registry
└───Source
These converted packages are what you distribute to users or install as replacer mods on top of SLAL Animation packs. These include the following files:
- An SLSB Project JSON in
SKSE/SexLab/Registry/Source/<PackName>.slsb.json. This can be fed into SLSB tool for manual tweaking and SLR generation afterwards. This is not read by either the game or SexLab P+. - A SexLab Registry SLR file in
SKSE/SexLab/Registry/<PackName>.slr. This is read by SexLab P+ and tells it the various features of animation packs and each scene contained in it. - An edited FNIS AnimList in
meshes/actors/<character>/animations/FNIS_<PackName>_List.txt. This is fed into FNIS_for_Modders to generate a behaviour file. - Newly generated behaviour file in
meshes/actors/<character>/behaviors/FNIS_<PackName>_Behaviour.hkx. This is read by the game to play the animations required by SexLab P+.
Testing Environment
Game Setup
For testing conversions:
- Separate Profile: Create a dedicated MO2/Vortex profile for testing
- Minimal Setup: Only essential mods + SL P+ + your conversion
- Test Save: Keep a clean save for quick testing
Quick Test Process
- Install your conversion
- Launch game, load test save
- Open MCM → SexLab
- Check if animations appear
- Test with console commands or MatchMaker
Debugging
Enable Papyrus logging to catch errors:
skyrim.ini:
[Papyrus]
bEnableLogging=1
bEnableTrace=1
Check logs at:
Documents/My Games/Skyrim Special Edition/Logs/Script/
Batch Processing Multiple Packs
Automated Full Conversion
The toolkit provides batch scripts to convert multiple SLAL packs at once.
Windows
Double-click one of:
execute_convert_full.cmd- Full conversion of all packs inSLAL_Packs/execute_convert_test.cmd- Test conversion (limited, for testing script changes without behavior generation)
The script will:
- Process each pack in
SLAL_Packs/ - Place converted SLSB output in
SLSB_Outputs/ - Report completion and any errors
Troubleshooting Batch Conversions
| Issue | Cause | Solution |
|---|---|---|
| Script won’t run | File permissions | Right-click → “Run as Administrator” |
| “Python not found” | Python not in PATH | Install Python with “Add to PATH” checked |
| Pack not converted | Wrong folder structure | Ensure SLAL_Packs/PackName/SLAnims/json/ layout |
| Missing tools | Incomplete FNIS setup | Follow “Required FNIS Tools” section |
| Empty output | No JSON found | Check source packs contain json/ folder |
Quick Reference: File Paths
Critical paths to remember:
| File/Folder | Purpose | Example |
|---|---|---|
SLAL_Packs/ |
Input SLAL packs | SLAL_Packs/BillyyCreatures/SLAnims/json/ |
SLSB_Outputs/ |
Output .slr files | SLSB_Outputs/BillyyCreatures.slr |
updated_slsb_jsons/ |
Hash reference | Copy latest Automated.SLSB.Conversions JSONs here |
base_game_replica/Data/ |
FNIS tools | All FNIS tools go here |
slate_action_logs/ |
Animation labels | SLATE folder contents from AnimStageLabels & HentaiRim |
slsb-convert.py |
Conversion script | The main script handling the whole conversion logic |
Additional Resources
- Discord: #slsb-and-pack-dev for help
- Tutorial: MissCorruption’s Guide
- GitHub: SexLab Repository for source reference