I am not alone in wondering this—see the linked comment thread here, in which one commenter alleges it's possible to avert the death—has anyone confirmed whether it's possible to prevent the death of Maj. Jack Grillo at the start of Mission 2, Scuttling the U-529, Level 1, Secret Documents of the Kriegsmarine?

I recently made several attempts at it by bringing a stash of grenades into the level, but I was unable to fend off the enemies for long and they quickly confounded me, as I am no speedrunner.

  • If it is possible, I am interested to see video evidence that his death can at least be averted within the mission (I am aware that no branching storylines or secret cutscenes were programmed into the campaign, given the lack of anything on Google about it).
  • If it is not possible (even with cheats such as infinite health and increased damage), I am interested to see how this is implemented: does the game simply stall the gate-opening while respawning enemies until he dies? Does it summon all the enemies from the level and killing them all will softlock the level? Does a scripted death (à la Half Life's Apprehension security guard) occur anyway after a fixed time even if no enemy actors are available?
  • I don't have definitive evidence, but I played this game a lot when I was younger, and I remember that every time I did this mission, Grillo would just get one shot as soon as he opened the gate enough for us to pass. Kind of like the squad in mission 1, even knowing when and where the enemies will spawn I couldn't kill them before they killed my mates.
    – Unown K
    Commented May 30, 2022 at 8:10

2 Answers 2


Short answer is: No. It's scripted, he usually isn't even killed by AI - a sound of (fake) gunshots are played and he's forced into a death animation after a set time.

Long answer: I suppose it depends on what you mean by "possible". The game's levels are coded using the Morpheus scripting language, which anyone can modify. You could change the level to let him live by modifying m2l1.scr. There is an arbitrary 8 second wait while he opens the gate until he's allowed to take damage and AI are allowed to "see" him, but then the script kills him. Interestingly, there is a 3 second delay after his god mode is disabled and before he's killed in script. So he can technically be killed by AI, but that would be rare.

The function that kills him outright is literally called s1_failsafe (scene 1 failsafe), meaning he HAS to die.

    wait 1
    local.temp = spawn script_origin
    local.temp.origin = ( -1531 -2118 487)
    local.temp playsound kar98sniper_snd_fire
    wait 1.8
    local.temp playsound kar98sniper_snd_fire
    wait .2
    if (isAlive self)
        self playsound snd_bh_flesh
        self exec global/bullethit.scr (0 0 250) 500 0 1

"self" being Grillo. So some sniper shots are played, and if he's still alive, play the sound of him being hit by a bullet and then hit him with fake bullets to kill him off.

Now you could comment out some code to let him live, but then he would just stand around. The rest of the level isn't set up for friendly AI (i.e. following). Friendly AI is a separate system in itself.

Source: I've modded and built my own SP missions for MOHAA for decades, scrutinising both the original script and map files.

Edit 13/03/2023 - Extra info:

The s1_failsafe excerpt is from m1l2.scr. The script files are plain text. I use Sublime editor with MOHAA syntax highlighting (https://www.x-null.net/forums/threads/3155-MOHAA-Syntax-Highlighting-for-Sublime-Text?highlight=sublime) to create and modify MOHAA scripts. Most of the files are located within the pk3 archives inside the installation folder. You can open those with WinRAR or 7-zip.

To view the map files in the MOHAA map editor (MOHRadiant), I use a BSP decompiler (https://github.com/wfowler1/bsp-decompiler).

If you were to (only) comment out the s1_failsafe call, he would continue to run his open_gate_loop animation (where he pushes the gate) and because he is "glued" to the gate, the gate would also continue to move. So he'd do this for as long as he lives. If you kill all the guards, then he'll probably just be stuck in a loop pushing up against the outer wall or the guard house.

If you told him to stop pushing the gate, he'd just stand in an idle animation. He wouldn't even attack the guards, as his AI routines are disabled in the script straight after you or he kills the initial 3 guards standing by the gate and in the tower.

If you also gave him his AI back, he'd behave much like the enemy actors and use the navigation nodes to take cover and attack. He just wouldn't follow you like in previous missions. The friendly system is also built in the scripts, but has its own file (located in global/friendly.scr). It requires a system of path nodes to denote predefined routes he may take, as well as the follow logic.

Though it's worth noting that you'd also have to give him more health as they set his health to 1 (out of 100) so a single bullet from any gun would kill him while he's opening the gate.

And a fun fact - they initially were planning to have a sniper placed on the top of the large building in the distance behind Grillo. That sniper was the one to kill him. The logic is all there in the script still, right around the time they call the s1_failsafe function, they also would have called the routine to enable the sniper and give him perfect accuracy to make sure he wouldn't miss. They obviously couldn't get it to work properly in time for release, so they despawn the sniper in the script at the start of the level and used the current method instead.

$super_sniper remove

They even named him "super_sniper" lol.

Almost all the mission logic is handling in these scripts. You'd be very surprised with how much control they gave the level designers/scripters. It's one of the reasons why I love modding and building maps for the game still. You can even modify the scripts in-game, using a very crude notepad-esque window. Few games these days expose all these capabilities to modders unfortunately.

  • 1
    This excerpt is from a decompilation / disassembly you've done on the map personally? Commented Mar 13, 2023 at 14:14
  • Apologies, I only saw after I answered that you mentioned if it's scripted in the "not possible" option. I've edited the answer with more info that you may find interesting.
    – Smithy
    Commented Mar 13, 2023 at 17:57

It is possible with cheats.

By using the noclip cheat at the beginning of the level, you have to fly directly through the base and kill the enemies while Grillo is still alive and have not made it yet to the gate.

After that his AI will malfunction and he will just not move anymore, and you have yet to complete the remaining objectives to complete the mission.

  • Do you have any video evidence of this? (I ask because, if the previous answerer's reported decompilation is legitimate, then Grillo will suffer a scripted death anyway, if you only killed all the enemies to try to save him.) Commented Oct 13, 2023 at 19:03
  • Medal of Honor scripting language (.src files) is not compiled, it is directly interpreted and human readable with a text editor. You have to fly be as quick has you can in the radio room. because you do no enter a specific trigger zone Grillo Just stop. I haven't seen any video of it, but it is not to complex.
    – josehkly
    Commented Oct 13, 2023 at 19:53
  • @JamesTheAwesomeDude Certain game scripts require triggers in-game, which can be bypassed. Based on the type of scripting used I could see this being the case for MOHAA,
    – Joachim
    Commented Oct 13, 2023 at 21:25
  • Here is a clip: dai.ly/k3iy5ZGPQ6OzskzyBba
    – josehkly
    Commented Oct 14, 2023 at 10:07
  • @josehkly Technically Morpheus scripts are compiled in MOHAA. On level load the scripts are converted to bytecode and then the instructions executed by a VM. If you bypass the trigger and the entire start scene doesn't even begin, then sure, that's obvious, but I don't think that would answer the original question.
    – Smithy
    Commented Oct 16, 2023 at 15:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .