Dark Messiah of Might & Magic Single Player

Dark Messiah of Might & Magic Single Player

Otillräckligt med betyg
DM - Higher Corpse Limit & Ballista-Cutscene FoV Bug Fix
Av 𝓝𝓸𝓿𝓮𝓷𝓲𝓷𝓮
Tired of the low corpse limit, the ballista-cutscene ruining your FoV and there not being any proper fixes for this?
   
Utmärkelse
Favorit
Favoritmarkerad
Avfavoritmarkerad
Introduction
The Two Problems
- FoV-Bug: After shooting the cyclops with the ballista in l01_a, the player's FoV gets locked to 80, which persists for quite a part of the game.
- Corpse Limit: The maximum amount of concurrent corpses varies between 2 to 4 in all levels, limiting immersion and tactical approaches.

The Status Quo
As of 2025 the following suboptimal workarounds exist.

FoV-Bug:
This Guide addresses the FoV problem and suggests choosing skills of the bow tree to overwrite the locked FoV via zooming.
This Guide suggests using the console variables bound to movement keys instead.

Corpse-Limit:
This Guide offers entire asset replacements and suggests using a Hex Editor on the .VPK files as an alternative.
This Mod[www.nexusmods.com] on Nexusmods offers asset replacements aswell.

The Technical Side
FoV-Bug:
The bug locking the player's FoV after shooting the cyclops is not actually related to the ballista but is an oversight in the cutscene's zoom handling. The cutscene performs two Zoom functionality calls. One to move the camera to the cyclops initially, then a second one to focus on the cyclops covering its eye and collapsing. The oversight lies in the lack of UnZoom calls for both zooms.
This logic is part of the compiled l01_a.bsp file.

Why the workarounds are suboptimal:
- Skilling into bows early can be a waste of skillpoints for people who want to play their optimal or favorite build.
- Binding the console variables to movement keys can have annoying side-effects and requires sv_cheats 1 to be set in this scenario.

Corpse-Limit:
The maximum corpse amount per level is controlled via the "MaxRagdollCount" argument of the "game_ragdoll_manager" entity, that is baked into the compiled .bsp files.

Why the workarounds are suboptimal:
- Offering the entire .VPKs as a download is not only legally questionable but also overkill and a very error-prone way of tackling the issue.
- The variable's value is a String and given it only uses 1 Byte, that number can only be set to "9" at maximum in a simple Hex-Editor change.

The Overdue Conclusion
Both issues lie within the respective .bsp files, but editing those is not a good idea and a limited option. The Source engine Dark Messiah is based on does offer a solution for this issue however. Namely the so called .lmp or "Lump" files, which are descriptive text files that allow the game to "patch" a map's logic without recompiling it.
This is what we can use to tackle both problems.

The downside of those files is their lack of interoperability with each other. Only one (the last) Lump file will be read and used for the map. Therefore this fix will be incompatible with other mods that modify these files, if said mods are not covered here. The fixes have to be incorporated in such projects.
Solution
This guide offers mods (edited .lmp files) to fix the FoV-Bug and to increase every map's Corpse-Limit to 10. These fixes are compatible with everything that does not come with .lmp files for the default maps.
Note that these changes only take effect when the map is started, thus they will not work on previous savegames until a new map is loaded.

Due to the technical limitations of those Lump files, I have created 4 versions of these fixes. The "Unlimited Edition" mod is quite popular, but not everyone might want to use it. Therefore the following variants exist:

FoV-Bug Fix only. (No corpse limit increase).[drive.google.com]
1) Vanilla (Uses the original game's l01_a_l_0.lmp file with the bug fix applied).
2) Unlimited Edition (Uses the mod's l01_a_l_0.lmp file with the bug fix applied).

FoV-Bug Fix & Increased Corpse-Limit (Both tweaks).[drive.google.com]
3) Vanilla (Uses all of the original game's .lmp files with the bug fix applied to l01_a and corpse limit increased for all maps).
4) Unlimited Edition (Uses all of the mod's .lmp files with the bug fix applied to l01_a and corpse limit increased for all maps).

Choose only one!

There are two common ways of making mods work on Dark Messiah.
One is editing the gameinfo.txt file. Instructions can be found in This Guide or the Unlimited Edition Guide.

The other, recommended method is using the new Mod Launcher, which can be found in This Guide.

Installation Instructions:
- Mod Launcher: Extract the desired top folder from the .rar file into ..\steamapps\common\Dark Messiah Might and Magic Single Player\_mods
Make sure the fix is loaded after the Unlimited Edition if that version is chosen.

- No Mod Launcher: Extract the desired mod's ../content/maps folder from the .rar file into ..\steamapps\common\Dark Messiah Might and Magic Single Player\custom
The files will have to be replaced if they already exist.
Preview
Bonus
Miscellaneous other bonus files are listed below.

Higher Corpse Limit Addon - Restore Original Holy Weapon Placement[drive.google.com] This file can be installed on top of the Higher Corpse Limit mod for the Unlimited Edition to undo its swap of the Holy Sword and Holy Staff placements.
15 kommentarer
SilverSet 9 jul @ 8:19 
Just checked that fov hex method, works perfectly now!
𝓝𝓸𝓿𝓮𝓷𝓲𝓷𝓮  [skapare] 7 jul @ 16:35 
Regarding the Strings: The corpse limit only requires changing the "MaxRagdollCount" "2" attribute of the entity that uses "classname" "game_ragdoll_manager". (To 10 for instance).
Note that l09_d does not have this entity in its .lmp part since no NPCs or corpses are present in this level. Manually adding the entire entity (copying it from another map) does work though and allows for using the corpse limit (via spawned NPCs for example) there aswell.

Example (from my l04_b_l_0.lmp)
{
"origin" "-474 -3684 -1041"
"MaxRagdollCount" "10"
"trapsecret" "0"
"combinability" "1"
"classname" "game_ragdoll_manager"
"id" "2024562"
}

For the Ballista-Cutscene FoV-Bug Fix, I recommend comparing my respective l01_a_l_0.lmp file to the Unlimited Edition's same file. I have added 2 UnZoom calls where they are missing.
𝓝𝓸𝓿𝓮𝓷𝓲𝓷𝓮  [skapare] 7 jul @ 16:34 
Hey there.

As for the bow zoom, I suppose the bow always reverts the FoV back to the game's hardcoded default value of 85. This guide shows where to Hex-Edit this value and I suppose changing it will make the bow default back to it aswell: https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=1903318856 I have not tested this myself however. It is no map logic apparently, so the .lmp files do not cover this.
King David™ 5 jul @ 13:29 
Silver put me on this guide and this is good detective work! You can create mapadds with the advanced SDK that let you modify the lumps and people can just load it in

Can you be specific on what in the lump you modified? Like the actual string values that changed etc.
SilverSet 4 jul @ 5:57 
I just thought of another idea, concerning fov. When you use zoom with bows your fov drops to 85 no matter what. It's possible to bind something like w "+forward;fov 100;viewmodel_fov 100" to restore the fov back, but it doesn't feel smooth. Is there anything that can be done here?
SilverSet 21 jun @ 9:49 
Thank you for this. I will do another run soon, so I will check if there are any issues to report.
𝓝𝓸𝓿𝓮𝓷𝓲𝓷𝓮  [skapare] 21 jun @ 9:40 
Added an addon to the Higher Corpse Limit mod for the Unlimited Edition. This swaps the sword and staff back. Just install the files over the existing mod.
SilverSet 14 jun @ 10:47 
It's a bit off-topic, but I thought if that would be possible to make a very simple change to l09_a map. The first map of the 7th chapter.

There is a pickaxe located near the locked chest, just before you drop down to get your inventory bag. It never really made sense to be there, so I was thinking if putting it somewhere else would be better, like inside the secret cave area with the Lightning Shield at the beginning of the map.

As I said, a very simple change, but that could make that map segment a little bit more replayable and logical.
SilverSet 13 jun @ 4:07 
True, but it probably won't be anytime soon though, and depending on how modding team will act, your mod might get into the Restoration mod too.
𝓝𝓸𝓿𝓮𝓷𝓲𝓷𝓮  [skapare] 13 jun @ 4:03 
Thanks for the feedback!

Yeah, this fix is pretty late to the party and I wager the new "Restoration mod" will take over anyway, but the exact causes or solutions had not been public before so this guide provides a baseline for them to incorporate the changes later on.

As far as I could tell the Restoration mod also features a way to dynamically add or remove parts of the .lmp logic in maps, which would be a cure to the only downside these files really have. (Lack of interoperability).