The Watchmen are basically the guards of the Clockwork City, except they're supposed to incapacitate you very quickly and chuck you in prison rather than give you a few options including possibly fighting them, as I understand it.

I don't fix the mod. I fix OpenMW itself to be able to work with the plugin. What plugin I uploaded earlier works around of some script issues, but I'd like to prevent similar issues from happening ever again when any modmaker messes up a script and so that you could use the original SSE plugin with no intervention from the user's side to keep things working.

While some of the script fixes there are no longer necessary in the current upstream OpenMW (which you can check out in nightly builds), such as the falling pipe and Interiors of Illusion puzzle basically working when that plugin is used, they don't actually mean much for the original SSE plugin because same scripts still don't compile due to single-line else if not being parsed as elseif issue, and Zini, our benevolent dictator, is busy in real life and unable to dedicate time to solving it. Hopefully soon™.

Stray special characters before begin statement is a special case. With the change, in 0.46.0 two scripts will guaranteedly work again regardless of whether the else if changeset gets merged. But they're pretty minor.

Anyway, I realized that it's likely unnecessary to keep a copy of the whole SSE esp for no reason and pray OpenMW-CS doesn't do something weird, so here's a significantly smaller plugin patch that resolves most of the known upstream incompatibilities with SSE. If all goes well, at least three edits won't be necessary in 0.46.0, then there are two edits are technically redundant since Morrowind shares the issues and one edit is something that should be relatively not difficult to avoid by an engine-side fix. That leaves only one edit engine-side counterpart of which I'm not sure how to approach (the one with the quote mark in hanged man quest script).

Note that though this will resolve some major issues in 0.45.0 and earlier, Magnus Vault Interiors of Illusion puzzle will stay broken and pipe fall script will not re-enable your controls so you'll have to do that manually. While it's possible to use workarounds, I don't want to.

Issues avoided:
1. else if instead of elseif in pipe fall script, interiors of illusion script, some GDR spider script (again, solution pending) breaking script compilation
2. stray quote mark breaking hanged man script which allowed the mod to use the activator head as a "middleman" in the conversations of the actual NPC and the player
3. sotha_famercontain1 has the variable restored so the script can work in OpenMW at least (OCD tingling)
4. cabal_3_2 incorrect sound file path, the sound record itself is not used anywhere, the file is used directly (OCD tingling)
5. stray explicit reference call in sotha_watchgate breaking the usage of the global variable (I'm thinking how to fix this from the engine side, I'm thinking)

Some more notes.
Issues listed in TechNoirMK's start post:
1. Fixed in 0.46.0
2/3. Fixed in 0.45.0
4. Fixed in 0.46.0
5. Projectiles hit the fabricants fine.
6. The box is also present in Morrowind.
7. Should be fixed in 0.46.0.

There's something wrong with Watchmen' armor (lower parts of greaves or boots), I can't tell why does it happen. Their behavior seems to be fine, albeit there's some weirdness in idle animations and voice lines.

To clarify -- in my testing, SayDone needs to be removed from pocket_linecontrol for the Pocket Cabal fight to work. The portions of the script that follow it don't run, even after the speech is over. My initial guess, though don't quote me on this, is that the button variable doesn't apply by the time SayDone would be true, so at the point where SayDone == true, button is neither 1 nor 0, so the script never evaluates the If SayDone == true lines at a point where SayDone == true, and thus never runs anything that follows.

Fixed global variable stray explicit reference issue locally. It will allow the scripted gate in Watchmen Headquarters to work properly.
This leaves me with just one avoidable script compilation error left (other than stuff after else).

'else if' operator no longer breaks compilation and stuff after else is simply ignored like in vanilla, so the pipe fall script and interiors of illusion script will finally just work.

So the three compatibility issues I'm aware of that are left and should be resolved some day are these:
1. Stray quote mark breaks hanged man script, which locks the player out of his quest.
2. SayDone returns 0 on the frame Say is called, which breaks Cabal fight.
3. Watchmen boots are messed up.

'else if' operator no longer breaks compilation and stuff after else is simply ignored like in vanilla, so the pipe fall script and interiors of illusion script will finally just work.

So the three compatibility issues I'm aware of that are left and should be resolved are these:
1. Stray quote mark breaks hanged man script, which locks the player out of his quest.
2. SayDone returns 0 on the frame Say is called, which breaks Cabal fight.
3. Watchmen boots are messed up.

Sounds about right, yes. Not really sure what can be done about the first, and not really sure if something should be done about the second, but then, I'm not a programmer just yet, heh. I suppose our best option for the second case is to, once again, replicate vanilla's shoddy slapdash implementation and offer a better method for dealing with voicelines via LUA implementation in the future.