buildingplan: add "Do now" option for planned buildings - #5954
Merged
Merged
Conversation
Adds a toggle to the planner overlay that flags the construction job of each subsequently placed building with do_now, and a toggle on the planned-building inspector overlay to flag or unflag individual buildings. The flag lives on the job, which exists as soon as the building is designated, so it takes effect whenever the job is unsuspended and persists with the save. Closes DFHack#2353.
3 tasks
The b=4 slot in the planner panel's left column is the same row the favorites divider paints across, which erased the label entirely. Relocate to the top of the options block's right column (b=3, l=24), which is always free and always visible.
The prioritize overlay already exposes job.flags.do_now as "Make top priority" for active construction jobs. Gate the inspector toggle to suspended jobs (or a disabled prioritize overlay) so the same flag is never controlled from two places at once.
The prioritize overlay already exposes job.flags.do_now as "Make top priority" for construction jobs, so a second control in the building status panel would be redundant.
ab9rf
approved these changes
Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements #2353: a
do_job_nowoption at building designation time.n) in the planner overlay, in the optionsblock above "Building safety" — while on, every subsequently placed
building's construction job gets
flags.do_nowset. The state persistsin
buildingplan.jsonlike other planner options.buildingplan.setDoNow/getDoNowhelpers; the flag lives on thejob (which exists at designation time), so it works whether the job is
suspended by buildingplan, suspendmanager, or not at all, and persists
with the save — no separate tracking state needed.
Works for both buildings and constructions, since both go through the
planner. Manual material selection is also covered — the flag is applied
after
addPlannedBuildingregardless of how items were chosen.Relationship to
prioritizeThe
prioritizeoverlay already exposes the same flag as "Make toppriority" for buildings with an active construction job. This feature
covers the earlier phase (designation through item collection) where the
job is still suspended and prioritize cannot reach it. A per-building
inspector toggle was considered and dropped to avoid two controls for the
same flag on one screen.
Notes for reviewers
do_nowsemantics (verified during the job-assignment RE documented inDFHack/df_misc#90): it adds a flat +20,000,000 to every unit's bid on the
job's posting, so flagged buildings outbid essentially everything else —
that is the intended "drop everything and build this" behavior, matching
how the lever
Pullbutton already uses the flag.Test plan
test/plugins/buildingplan.lua— 3 tests, 15 checks, all passin-game on 53.16 (flag round-trip, invalid-input handling, flag
survives registration +
doCycle)within seconds
n: Do now: On/Offrow renders in theplanner options block (initial placement at
b=4collided with thefavorites divider row and was invisible; now at
b=3, l=24)