In comparison to fighting with UnrealEd2, prodding at the Deus Ex scripting is a breeze, because I'm familiar with programming and UnrealScript is literally Just Another Scripting Language. One or two domain-specific oddities, but it's, yeah, it's a comfortable C-syntax-family scripting language.
A throwaway remark about the gun turrets in a mapping tutorial — you can't set their hacking difficulty level, they're always 0.5 (of a maximum of 1.0 — i.e. 50% of the maximum hacking difficulty) set me wandering through the files to find out why, which is easy enough — for sensical if tedious reasons they secretly, actually always consist of two objects, a static scenery object turret that can be placed in in the editor, and the gun that swivels on top of it and only actually displays in-game. The turret's properties are tweakable in the map editor; but the gun implements all the in-game hackable functionality! Because it doesn't display in the editor, its properties, including hackStrength, aren't editable there!
This is trivial to fix. (Presumably they just never found it worthwhile to make the hacking difficulty of turrets individually tweakable; mostly the levels assume you'll find an associated security console, hack that, and thereby turn them off.) I created a custom class that extends the AutoTurret class and added a hackStrength property to it that's tweakable in the editor; when a level containing any custom turret is loaded by the game engine, the last thing each of the turrets does after it (and its associated gun) is created is simply overwrite its gun's hackStrength with the edited value. It's purely there to proxy the edited value to the actually hackable object at runtime; it took all of two minutes, it's the first UnrealScript I ever wrote, and it worked first time.
(I still don't have any actual point to any of this.)