Skip to content

OFP Bug Fixes

github-actions[bot] edited this page Oct 28, 2026 · 3 revisions

Bug Fixes

Fixes for bugs in code OFP shares with SCP, newest first. Fixes to OFP's own features are covered by those features. See also Engine Features and QtFRED Features.

Fix What it fixes PR
Color tag warnings in the editors' briefing preview QtFRED draws a preview of briefing text with the retail color tags, and popped up "Invalid text color tag" for any $ sequence that isn't one, such as SCPUI markup written as <$slashspan>. The mod's own UI may read those sequences differently, so in the editors the message now goes to the log instead. The game still warns as before. #163
QtFRED Attack ship type initial order Opening Initial Orders on a ship with an ai-chase-ship-type order raised "Unhandled AI_GOAL_X #define 27", the error checker reported it as an invalid goal type, and the order couldn't be created in QtFRED at all (only the engine, FRED2 and saving had been updated). QtFRED now lists Attack ship type with a ship type target, loads and saves it, and checks it. #92
QtFRED Initial Status with several ships Clicking OK in the Initial Status editor with several ships selected could crash QtFRED. OK also overwrote the ships' own values: where they differed, velocity, hull and shields were set to 101, and every ship got the current ship's guardian threshold and team color. Values the ships don't share now show blank instead of "-" and are kept on OK, and a picked team color only goes to classes that use team colors. #88
QtFRED Mission Goals editor reset goal names A goal added or renamed in the Mission Goals editor wasn't offered in goal-name dropdowns, and when another objective referred to it (such as with is-goal-true-delay), editing any other argument of that SEXP reset the name to the first saved goal. The editor now offers its unsaved goals, as the Events editor already did for events. #84
QtFRED selection groups overlapped QtFRED stored group N as the number N instead of one bit per group as FRED2 does, so selecting group 3 also picked up groups 1 and 2, and setting group 3 emptied them. A ship that had never been put in a group counted as a member of every group, and Set Group couldn't be undone. Each group is its own bit now, ungrouped ships are in none, and Set Group is undoable. #83
QtFRED unreadable text on colored annotation rows Rows given an annotation color in SEXP trees (such as the Events editor) kept the theme's text color, which could vanish on the background, like white text on yellow in the dark theme. The text now switches to a color that reads against the row. Comment-only annotations no longer turn their row white, and removing a color clears it. #80
QtFRED minimized by warning dialogs Every warning or error dialog (such as a model warning while loading) minimized the whole QtFRED window. The dialog now just appears on top of the editor. #78
QtFRED crash on close in Lua shutdown Closing QtFRED could crash with an access violation while shutting down Lua: QtFRED never closed the script system itself, so it was closed during program exit, after data its cleanup needed could already be gone. QtFRED now closes it during shutdown, as the game does. #75
QtFRED Lock Marked Objects could be bypassed Objects made unselectable with Edit > Lock Marked Objects (now Select > Lock Marked Objects) could still be marked by Select All in the Scene Browser, group selection, Mark Wing and next/previous object, and then moved with a drag. Marking and selecting now skip them. #74
QtFRED transform toolbar changed all three axes Editing one transform toolbar box (X, Y or Z, or heading, pitch or bank) wrote all three boxes to every marked object, so lining several ships up on one Y also gave them the same X and Z, and the boxes' one-decimal rounding nudged the axes nobody touched. Clicking into a box and back out also moved the selection. Only the edited axis changes now, only when a value is typed, and the boxes show two decimals. #73
QtFRED toolbar boxes stayed highlighted Text selected in a transform toolbar box (or the FOV box) stayed highlighted after clicking into the viewport, even when the box changed or was disabled, so two boxes could look focused at once. #73
Editors ignored Unified Scanning Behavior for subsystem scanning With $Unify scanning behavior on, a capital ship flagged toggle-subsystem-scanning was missing from the ship list for cap-subsys-cargo-known-delay, though its subsystems scan in game; the editors still used the classic rule, where the flag inverts the capital-ship default. qtFRED's Initial Status dialog also counted every flagged ship as scannable. Both now follow the game's rule. #67
QtFRED list and dropdown type-ahead stopped cycling Tapping a letter in a list or dropdown jumps to the next item starting with it, but tapping it quickly stopped moving: Qt searched for the repeated letters ("ff") instead of the next F. It now keeps cycling however fast the letter is tapped. #65
QtFRED ship arrival distance limited to two digits The Ship Editor's arrival distance field only accepted 0 to 99, so a ship could get stuck at its target's minimum distance (for example 39) with no way to type a larger value. It now takes any distance from the target's minimum up, like the Wing Editor, and raises the distance to the new minimum when the arrival location changes. #63, #70
QtFRED help pages missing from the built help The Custom Data concept page was linked from other help pages but never registered, so those links went nowhere; a stale duplicate help project file that the build never used was removed. #62
QtFRED wing arrival distance reset to 0 Choosing a wing's arrival target in the Wing Editor reset its arrival distance to 0 whenever it was above the target's minimum, while the box still showed the old value, so saving failed with "Arrival distance for wing ... must be greater than 0". The distance is now kept, and only raised to the target's minimum if it is too close. #61
QtFRED duplicate wing names Form Wing never checked the name, so two wings could share one, and empty names or names already used by a ship, prop, waypoint path or jump node were accepted. The name is now checked before the wing is formed. #60
QtFRED Additional Ship Properties fields jumping around The destroy time, escort priority and kamikaze damage fields appeared and disappeared as their flags were toggled, shifting the layout and tab order. They now stay in place and are disabled until their flag is checked (#57). #59
QtFRED object labels offset from their objects Ship and object name labels were drawn away from the objects they belonged to, because the labels were projected with a different field of view than the one used to render the scene (#55). FRED2 and QtFRED now share one editor FOV define. #58
QtFRED message name warnings while typing The Events editor checked a message name on every keystroke, so typing a name like "Helprin" was interrupted by a warning at "Help" (a built-in message). A clashing name is now outlined in red while typing, and the warning only appears if you leave the field that way (#50). #54
QtFRED autosave recovery crash Accepting "An autosave file for this mission is newer" asserted ("We have full path, but no separator!?"). After a recovery, Save also wrote into the autosave folder instead of the mission file. The recovered mission now keeps its own file name and asks before replacing the original. #49
QtFRED Space after New/Insert Event added another event The New and Insert Event buttons kept keyboard focus, so pressing Space inserted yet another event instead of editing the new event's name (#45). #48
QtFRED typed value lost when clicking away A number typed into the SEXP operator search was discarded if the search was closed by clicking elsewhere instead of pressing Enter (#46). #48
QtFRED event name reset to the first event An event added or renamed in the Events editor, then used as an argument (e.g. in is-event-true-delay), was replaced with the first saved event when another argument of the same operator was edited, and wasn't offered in the event lists (#47). #48
QtFRED campaign graph drawing leftovers Moving mission cards or arrows in the Campaign Editor graph left fragments of ports, lines and arrowheads behind until the view was fully redrawn. #44
QtFRED campaign editor close crash Closing the Campaign Editor, or QtFRED with it open, could assert or crash ("Called object is not of the correct type") when a mission was selected in the graph. Closing QtFRED now also asks about unsaved campaign changes. #44
QtFRED crash on exit Closing QtFRED could crash after editing an arrival or departure cue, or with the Briefing or Debriefing editor still open, because undo history and open dialogs were cleaned up after the SEXP data they referred to was already freed. #40
QtFRED event repeat count of -1 lost An event repeat count of -1 (repeat forever) was reset to 1 whenever the Events editor opened, so pressing OK saved it as 1, and a -1 entered in the Advanced view never reached the Tree or Graph views. #41
QtFRED unreadable hint text in dark mode Placeholder hints in input fields (search and filter boxes, the Events editor message text and validation results, and others) were nearly invisible in dark mode, and the Mission Specs squadron logo field showed its filename in black. #42
QtFRED Save As didn't switch to the new file After Save As, the window title (and Recent Files) still showed the old mission name even though you were now editing the new file, and a new mission stayed "Untitled" after its first save. Cancelling Save As also made the next Save ask for a filename again, and saving after Load Template could overwrite the previously open mission. #35
QtFRED transform bar X/Y/Z fields unusable The position/orientation spin boxes below the viewport lost focus the moment they got it, so values couldn't be typed in and Up/Down acted on the viewport. Enter now applies and returns to the viewport; arrow steps still apply live. #31
QtFRED docked ships not moving together Dragging, rotating or nudging a docked ship (or moving it from the Orient or Wing editors) left its docked partners behind. Cancelling a drag, turning a ship in the Orient editor without moving it, and undocking with "move ships when undocking" did the same, and undoing a dock or undock in Initial Status left ships further along the dock chain where docking had moved them. Flying an object with the camera controls can now be undone too. #29, #76
QtFRED Initial Status dockee point list empty In Ship Initial Status, selecting a dockpoint left the dockee-point dropdown empty (or listing the wrong ship's points) until the dockee dropdown was changed by hand. #29
QtFRED sexp tree Space-to-edit going dead After escaping an inline node edit, confirming it unchanged, or pressing Space on a non-editable node, Space, double-click editing, Ctrl+S and the clipboard shortcuts silently stopped working in every sexp tree until some later edit changed text. #27
QtFRED Enter key in dialogs Pressing Enter in a dialog field clicked the default button, which applied and closed OK/Cancel editors or pressed an unrelated first button (such as Prev in the Ship editor, Add in Background, or Reset to Default in Preferences). Enter now does nothing in editor dialogs unless a button has focus; small pickers and prompts still accept on Enter. #26
QtFRED Weapons dialog Secondary tab On a ship with no primary banks (such as a turret-only ship), the Secondary tab showed a greyed-out page and couldn't be edited. #24
QtFRED briefing icons vanish after an instant stage change Icons that moved between stages disappeared after a cut, a multi-stage jump, or a stage with a zero camera time, until the camera was moved. A zero move time gave them NaN positions. #21

Clone this wiki locally