BLSE0.6

Overview

Where mod files go

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#

Folders
  • 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.

Folders
  • 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:

✓Right
  • mods
    • my_mod
      • mod.ini
      • models
      • blse
✕Wrong
  • 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.

✓Right
  • my_mod
    • blse
      • scripts
        • my_mod.py
      • plugins
        • my_mod.dll
✕Wrong
  • 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:

Folders
  • 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.ini so BLSE can check it.
  • If your mod adds items, warn players: a save that holds them cannot be loaded without the mod.
  • A settings .ini in 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).