T2 FM - Unholy Vivid Innocence (Uncadonego's No Pressure (un)Contest 16-12-2009) - by Haplo
Stingm on 11/11/2018 at 01:20
Don't forget to play the sequels.
Xmodule999 on 4/12/2019 at 17:08
Where to download Unholy Vivid Innocence but in version 1.2?
Toulomne on 13/6/2021 at 04:44
Hi, I have been playing this mission and got to the part where you have to light 8 torches in a circle to open some piece necessary for the next puzzle. I have all the 8 torches lit but the little thing in the floor doesn't open...am I being really stupid in some way and I need to do something else besides light the torches or is this a bug? Playing version 1.3.
Edit: I used the fix mentioned on page 13, I guess this problem came up before and still exists in newest version, or I got a bad download that says 1.3 wrongly :(. Replacing NVScript.osm in the FM's directory, then loading up my save near the completed torch puzzle, turning a group of 3 off with the wand then back on again made it work. It's too bad it has such a game breaking bug because I was really enjoying the design of the mission to that point and it really spoiled my immersion having to address the bug then come back to it later. The puzzles were quite fun and managed to get through most of them but got stuck trying to find the dead keeper at the end, had to resort to the forum for that one. Kinda lucked out through a few things (like randomly finding the glyph key because I happened to right click there) and found maybe a bit more than half the optional stuff.
There is a second kind of glaring bug near the beginning: in the room with the dry water fountain, it is possible to lean sideways into the door that leads to the "ghosty sounds" maze area with the gem \ wand on the other side and simply frob the switch to open it from the far side (you're supposed to open that door from the inner side much later after using the flare to gain access to the lower part). All in all would have really liked the mission without the bugs, reminds me of a puzzle-y Bone Hoard, which I really love, but it's hard to appreciate it for its design in the unpolished state it was left in with the gamebreaking bugs; I know it's possible to just avoid leaning into the door and opening it, and on a second play-through now the torches would work after addressing the bug, but for me it's all about the first play-through and the process of discovery...if something spoils that unfortunately the mission is spoiled to a great extent and can't be played through for the first time with fresh eyes again!
Haplo on 23/6/2021 at 22:40
I'm glad you enjoyed the mission (to some extent at least).
- Regarding your first point, back in those days NewDark FM selector and Windows 10 didn't exist. Darkloader on Windows XP/7 had problems with reliably copying the OSM files to the main Thief directory and replacing the existing OSMs. Due to this it was common practice for the mission authors to rename the script modules and include them in the mission archive. This "gamebreaking" bug you refer to didn't exist when the mission was released. The setup and environment were different back then.
Unfortunately these old OSMs have problem executing on modern machines. If you had already started the puzzle with a "broken" script module, its state machine was likely in an unknown state when you tried to continue it with the working modules. That's why you had to restart the puzzle.
- As for your second point, I wouldn't call that a "glaring bug". A glaring bug is when a necessary object can't be picked up or when a switch doesn't open a door when it should. What you described is you purposefully using an engine exploit to circumvent a part of the mission. Assuring that these exploits can't be used in a mission is a very difficult undertaking specially in such a complex mission; it requires the author and the testers to try every exploit in every potential corner. Even multi-million dollar games with massive testing teams can't manage it. Just look on YouTube how people finish games like Prey or Doom Eternal within a few minutes using engine exploits.
At the end of the day please keep in mind that the fan missions are created by the authors and beta testers investing literally hundreds of hours of their own time, just for the love of the game and without expecting any financial return. Feedbacks are always welcome, but complaining that you purposefully used an engine exploit to circumvent the mission but it broke your immersion is neither fair nor constructive.
fortuni on 17/12/2021 at 08:11
dml for this exceptionally good crypt puzzler courtesy Glypher and with the authors blessing.
Fixes:
- doors: ordinary doors (open angles), secret doors (protection)
- statue (statue in Hypostlye remains in place until you frob the glyph)
- books (position, goals)
- quest items (make sceptre non-drop, stops the blade flying across room potentially into the void)
- blockers (mantling protection - now need to use crate to access the hole the storage room as you did with Olddark.)
Code:
DML1
//T2 FM: Unholy Vivid Innocence (Uncontest) by Ali Pouladi (Haplo) / Fixes: miss20.mis.dml
//blockers
Create -445 "Blocker1"
{
+ObjProp "CollisionType"
{
"" None
}
+ObjProp "PhysCanMant"
{
"" false
}
+ObjProp "Position"
{
"Location" 90.4, 202.65, 77
"Pitch" c000
}
-ObjProp "PhysType"
+ObjProp "PhysType"
{
"Type" OBB
}
+ObjProp "RenderType"
{
"" Not Rendered
}
+ObjProp "Material Tags"
{
"1: Tags" ""
}
}
Create -445 "Blocker2"
{
+ObjProp "CollisionType"
{
"" None
}
+ObjProp "PhysCanMant"
{
"" false
}
+ObjProp "Position"
{
"Location" 90.4, 206.35, 77
"Pitch" c000
}
-ObjProp "PhysType"
+ObjProp "PhysType"
{
"Type" OBB
}
+ObjProp "RenderType"
{
"" Not Rendered
}
+ObjProp "Material Tags"
{
"1: Tags" ""
}
}
//doors
+MetaProp 15 -2420
+MetaProp 22 -2420
+MetaProp 32 -2420
+MetaProp 64 -2420
+MetaProp 317 -2420
+MetaProp 318 -2420
+MetaProp 706 -2420
+MetaProp 755 -2420
+MetaProp 1025 -2420
ObjProp 113 "RotDoor"
{
"Open Angle" 271
}
ObjProp 117 "RotDoor"
{
"Open Angle" 271
}
ObjProp 135 "RotDoor"
{
"Open Angle" 271
}
ObjProp 161 "RotDoor"
{
"Open Angle" 89
}
ObjProp 162 "RotDoor"
{
"Open Angle" 271
}
ObjProp 214 "RotDoor"
{
"Open Angle" 271
}
ObjProp 230 "RotDoor"
{
"Open Angle" 271
}
ObjProp 266 "RotDoor"
{
"Open Angle" 271
}
ObjProp 755 "Locked"
{
"" true
}
-ObjProp 755 "PhysType"
+ObjProp 755 "PhysType"
{
"Type" OBB
}
ObjProp 841 "RotDoor"
{
"Open Angle" 271
}
ObjProp 943 "RotDoor"
{
"Open Angle" 271
}
+ObjProp 999 "Material Tags"
{
}
+MetaProp 1060 -2420
+ObjProp 1060 "DesignNote"
{
"" NVAmbientSoundTrapOn="NowUnlocked"; NVMetaTrapOn="NowUnlocked"; NVMetaTrapMeta="FrobInert"
}
+Link 1060 -314 "SoundDescription"
{
}
ObjProp 1060 "Scripts"
{
"Script 0" NVAmbientSoundTrap
"Script 3" NVMetaTrap
"Don't Inherit" true
}
//books
+ObjProp 127 "DesignNote"
{
"" NVRelayTrapOn="FrobWorldEnd"; NVRelayTrapDelay=200
}
ObjProp 127 "Scripts"
{
"Script 0" NVRelayTrap
"Script 1" ""
}
+ObjProp 186 "DesignNote"
{
"" NVRelayTrapOn="FrobWorldEnd"; NVRelayTrapDelay=200
}
ObjProp 186 "Scripts"
{
"Script 0" NVRelayTrap
"Script 1" ""
}
ObjProp 249 "Position"
{
"Location" 132.5, 183, 32.075
}
-ObjProp 249 "PhysType"
+ObjProp 249 "PhysType"
{
"Type" OBB
}
+ObjProp 605 "DesignNote"
{
"" NVRelayTrapDelay=1000
}
-ObjProp 605 "ScriptTiming"
-ObjProp 605 "TrapFlags"
ObjProp 605 "Scripts"
{
"Script 0" NVRelayTrap
"Don't Inherit" true
}
+ObjProp 606 "DesignNote"
{
"" NVRelayTrapDelay=1000
}
-ObjProp 606 "ScriptTiming"
-ObjProp 606 "TrapFlags"
ObjProp 606 "Scripts"
{
"Script 0" NVRelayTrap
"Don't Inherit" true
}
+ObjProp 608 "DesignNote"
{
"" NVRelayTrapDelay=1000
}
-ObjProp 608 "ScriptTiming"
-ObjProp 608 "TrapFlags"
ObjProp 608 "Scripts"
{
"Script 0" NVRelayTrap
"Don't Inherit" true
}
+ObjProp 610 "DesignNote"
{
"" NVRelayTrapOn="FrobWorldEnd"; NVRelayTrapDelay=200
}
ObjProp 610 "Scripts"
{
"Script 0" NVRelayTrap
"Script 1" ""
}
+ObjProp 614 "DesignNote"
{
"" NVRelayTrapOn="FrobWorldEnd"; NVRelayTrapDelay=200
}
ObjProp 614 "Scripts"
{
"Script 0" NVRelayTrap
"Script 1" ""
}
+ObjProp 1086 "DesignNote"
{
"" NVRelayTrapDelay=1000
}
-ObjProp 1086 "ScriptTiming"
-ObjProp 1086 "TrapFlags"
ObjProp 1086 "Scripts"
{
"Script 0" NVRelayTrap
"Don't Inherit" true
}
//AIs
+ObjProp 166 "InvRendType"
{
"Type" Alternate Bitmap
"Resource" assaca
}
+ObjProp 250 "InvRendType"
{
"Type" Alternate Bitmap
"Resource" assaca
}
//keys
+ObjProp 220 "StackCount"
{
}
+ObjProp 842 "StackCount"
{
}
+ObjProp 1087 "StackCount"
{
}
//quest items
+Receptron 227 "Stench"
{
Max None
Target 309
Agent -10
Effect "add_prop"
{
"Prop Name" PhysControl
}
}
++Receptron 227 "Stench"
{
Max None
Target 221
Agent -2425
Effect "add_prop"
{
"Prop Name" Material Tags
}
}
+StimSource 227 "Stench"
{
Intensity 1
Propagator "Radius"
}
+ObjProp 537 "NoDrop"
{
"" true
}
//invalid scaling
-ObjProp 541 "Scale"
-ObjProp 542 "Scale"
-ObjProp 543 "Scale"
Samantha1 on 22/8/2023 at 19:00
I´ve played this mission for the first time and utterly enjoyed it! :D I was always trying to avoid it due to it being an undead mission, but after replaying "a sorrowful farewell" I got curious about the prequels and thought "since it´s a mission from haplo it must be good!" :cheeky:
I have to admit that I needed to look up several things cause I was stuck a few times, but I enjoy riddle based missions like this alot.
I played it on normal and I assume that there appear several more haunts on expert difficulty? If yes, I think I´ll just stick with normal in my replay ;)
Now onto "Insanity's Crescendo" :thumb:
Haplo on 11/9/2023 at 11:33
Thank you for fixing and still playing this after all these years! It is still my favourite creation.
mungomango on 16/11/2023 at 21:21
I know I'm years out of date with playing this FM but still feel the need to write how much I enjoyed this mission Haplo. It's testament to how on the bull's eye you were creating it by how well it stands up even today. Great work!
Haplo on 22/11/2023 at 07:39
Quote Posted by mungomango
I know I'm years out of date with playing this FM but still feel the need to write how much I enjoyed this mission Haplo. It's testament to how on the bull's eye you were creating it by how well it stands up even today. Great work!
Thank you very much, I'm glad you enjoyed it! Among all the missions I have created, this one is favourite.