OK. Long story, and it's 4:30 AM here so after I post this I'm going to bed.
I have three ships in my mission that are relevant to this problem: the GTCv FriendlyCorvette, the HostileCorvette, and the GTNB NavBuoy. In case it matters, the HostileCorvette is a custom ship (a Karuna with beamz). The FriendlyCorvette is a Deimos.
So, in an earlier battle the FriendlyCorvette is disabled (it's actually disabled by a SEXP, sabotage-subsystem <all engines>). I know this supposedly protects and beam-protects the ship, so I've used a SEXP to unprotect it later.
The HostileCorvette jumps in, sends a few messages, and fires a warning shot (a beam) at the NavBuoy (which is placed close to where the FriendlyCorvette will be at that point). A while later, it fires all four forward beams at the FriendlyCorvette... except, it doesn't. I've only once gotten it to actually fire at the FriendlyCorvette, and that was by breaking another aspect of the mission.
I tried moving the nav buoy back behind the FriendlyCorvette by using set-object-position and get-object-x/y/z. From what I can tell, the HostileCorvette won't fire on the navbuoy after it's been moved.
I tried making another nav buoy behind where the FriendlyCorvette would be at that point. The first time, the HostileCorvette shot sucessfully, but the second time, it missed by a somewhat large margin. This might work if I work it a bit, try to get the FriendlyCorvette to be disabled in a predictable location, but it's hackish and not a guaranteed solution.
I tried beam-unprotecting the ship after it was disabled. No effect. I added in a regular unprotect SEXP and it still didn't work. (technically I tried this first but whatever)
I tried using repair-subsystem, then the four fire-beam SEXPs, then sabotage-subsystem so that when the beams are told to fire, the ship is no longer disabled, but it's never noticeable. No effect. I removed the sabotage-subsystem SEXP, so it remained repaired. No effect. I moved the repair-subsystem SEXP into its own event so it happened a few seconds before the beams fired. Finally, success. But wait- now I have a magically-repairing ship in the mission.
I still haven't got a workable solution.
This is fire-beam, guys! I was under the impression that it, y'know, FIRED A BEAM. It's supposed to be very low-level control of how the mission plays out. I still haven't checked whether fire-beam would fire at a disabled or otherwise protected ship in retail. If so, this is technically a bug. Regardless, I don't like how it works.
Anyway, since this is FRED discussion- Solutions? Suggestions?
I'm going to bed now- will check in the morning. Or afternoon. Depending on when I get up.