On this page 6 sections
Every file of a BLSE mod goes somewhere inside one folder: Bin/loader/blse/ in the game folder. This page shows where each kind of file belongs, how to recognise what you downloaded, and how modders should pack their mods so installing is easy.
The game folder is the folder with Vampire.exe in it, for example C:\Games\Vampire The Masquerade - Bloodlines. All paths on this page start there.
The whole picture#
Vampire The Masquerade - BloodlinesThe game folder: the one with Vampire.exe in it
- Vampire.exe
- Unofficial_Patch!The game's own files: never put mods here
Bin
loader
- blse.vtmBLSE itself
blseEverything mods install goes in here
modsMod folders: one folder per mod
my_modA mod with game files and a script (more under "Inside a mod folder")
- mod.iniIts name, version and what it needs (optional)
modelsGame files, in the same folders as the game's own
my_mod
- my_sword.mdl
sound
my_mod
- swing.wav
blseWhat BLSE reads: scripts, plugins, merges, new items
scriptsThe mod's Python scripts (.py)
- my_mod.py
sprintThe Sprint download: a mod that is one plugin
- mod.iniIts name and version
blse
pluginsThe mod's native plugins (.dll)
- sprint.dll
configSettings
- loadorder.txtThe order of the mod folders (BLSE writes it)
- blse.iniBLSE's own settings (BLSE writes it)
- sprint.iniA mod's settings, which you can edit
translationsMods' texts in other languages
- sprint_english.txt
- sprint_german.txt
- dataFiles mods write while you play (.json)
- cacheMade by BLSE; safe to delete
- blse.logWhat BLSE did: look here first when a mod does not work
Only mods/ comes with BLSE. The other folders appear when something needs them.
What did I download?#
| The download has | It is | Put it in |
|---|---|---|
A Bin folder |
A mod packed the easy way (see below) | Extract it into the game folder, merging with the Bin folder already there |
A folder with mod.ini, or folders such as models, materials, sound, vdata, dlg, python, blse inside |
A mod folder | Bin/loader/blse/mods/ (the whole folder) |
Only a .py file |
A Python script without its mod folder | Make a folder for the mod and put the file in its blse/scripts/: Bin/loader/blse/mods/<mod>/blse/scripts/ |
Only a .dll file |
A native plugin without its mod folder. Only install plugins from people you trust: they can do anything a program can | Make a folder for the mod and put the file in its blse/plugins/: Bin/loader/blse/mods/<mod>/blse/plugins/ |
An .ini file next to a mod |
The mod's settings | Bin/loader/blse/config/ |
Files named <mod>_english.txt, <mod>_german.txt, ... |
The mod's texts for each language | Bin/loader/blse/translations/ |
A mod can contain several of these (a mod folder plus its .ini, for example). Its own page or readme says which.
Inside a mod folder#
A mod folder looks like a small copy of the game's own folders. Files in the game's folders (models, materials, sound, vdata, ...) replace or add game files. The blse folder inside holds what BLSE itself reads: changes to game files, new items, scripts, plugins. A mod uses only the parts it needs; most have just a few.
Why blse appears twice in a path like Bin/loader/blse/mods/sprint/blse/plugins: the first is BLSE's own folder, the second is the part of one mod that is not a game file. Everything else in a mod folder is read as a game file at the same path (the game has its own scripts folder, for example), so BLSE's parts sit in their own folder and never meet a game file.
my_mod
- mod.iniName, version, author and what it needs (optional)
- readme.txtFiles at the top of the folder are ignored by the game
modelsModels
my_mod
- my_sword.mdlWith my_sword.dx80.vtx, .dx7_2bone.vtx and .phy beside it
- male_dances.mdlAn animation file: only animations, listed in blse/animations.txt
materialsMaterials and textures
models
my_mod
- my_sword.vmtThe material
- my_sword.tthIts texture, always a pair: .tth and .ttz
- my_sword.ttz
soundSounds (.wav, .mp3)
my_mod
- swing.wav
character
dlg
my_mod
my_npc
- line1_col_e.mp3The voice of line 1 of dlg/my_mod/my_npc.dlg
- line1_col_e.lipMoves the mouth while it plays: same name, beside the sound
vdataGame data
items
- item_w_my_mod_sword.txtA new item's file
dlgWhole conversations (.dlg)
my_mod
- my_npc.dlgA new character's conversation
- mapsNew maps (.bsp)
- pythonThe game's own Python modules (replaced or new)
blseWhat BLSE itself reads
- items.txtNew items: which game item each one behaves like
- animations.txtAnimations added to the game's models
- outfits.txtOutfits (clothes) the player can wear
scriptsThe mod's BLSE Python scripts
- my_mod.py
pluginsThe mod's native plugins (32-bit .dll)
- my_mod.dll
mergeChanges merged into game files, so several mods can change them
vdata
system
- vendors.txtAdds an item to a shop
dlg
santa monica
- nurse.dlgChanges lines of a conversation
mapsChanges to a map's entities
- sm_pawnshop_1.txt
What each part does, and the exact rules: Mod folders. A first mod, step by step: Start here.
Common mistakes#
A folder inside a folder. Unzipping often makes one folder too many. The folder in mods must directly contain mod.ini or folders such as models, vdata and blse:
mods
my_mod
- mod.ini
- models
- blse
mods
my_mod
my_mod!One folder too deep: nothing loads
- mod.ini
- models
The same goes for a download that starts with Bin: Bin must land next to Vampire.exe, not in a folder of its own.
Files loose in mods/. Every mod in mods is a folder: mods/my_sword.mdl does nothing.
Mod files copied into the game's own folders (Unofficial_Patch, Vampire). That is the old way of modding: it replaces the game's files and is hard to undo. With BLSE, mods go only into Bin/loader/blse/.
A script or plugin in the wrong place. BLSE runs a mod's .py files only from its folder's blse/scripts/, and loads its .dll files only from blse/plugins/. Directly in the mod folder they would be game files: the game has a scripts folder of its own (weapon and HUD scripts), so a .py there is never run. python/ in a mod folder is for the game's own modules, not for BLSE scripts.
my_mod
blse
scripts
- my_mod.py
plugins
- my_mod.dll
my_mod
scripts!A game folder: the script is not run
- my_mod.py
plugins!Not read: the plugin is not loaded
- my_mod.dll
Did it work?#
Start the game, open the console (~) and type blse. It shows BLSE's status, the mods' console commands and the mod folders in their order; a mod folder that is switched off is shown with the reason (a missing mod it needs, a BLSE that is too old). Bin/loader/blse/blse.log lists everything that was loaded: every script, plugin and mod folder, and any problem with them.
When two mod folders change the same thing, the one further down in config/loadorder.txt wins. Move a line to change the order, or put - in front of a name to switch that mod off. See Installing.
For modders: packing your mod#
Pack your mod so players extract it into the game folder and are done: put everything in a zip starting with Bin, in the folders it belongs in:
my_mod_1.0.zip
Bin
loader
blse
mods
my_mod
- mod.ini
- …
config
- my_mod.iniOnly if your mod has settings
translations
- my_mod_english.txtOnly if your mod has translated texts
- Name every file and folder of yours after your mod (
my_mod,my_mod.ini,item_w_my_mod_sword), so it never meets another mod's. - Write in your mod's description: "Extract into the game folder (the folder with Vampire.exe)". Also name what it needs (BLSE's version, other mods), and put the same in
mod.iniso BLSE can check it. - If your mod adds items, warn players: a save that holds them cannot be loaded without the mod.
- A settings
.iniin the zip replaces the player's own when they update your mod. To keep their settings, let your script write missing settings with their defaults instead (see Settings).