DCO_Extensions
by JDripstein
1.0.6
ADDED
- Convoy follower closure. A group spread over several vehicles is one move order, and it completes on the LEADER's arrival - every other vehicle's move
ends with it, wherever it happens to be, which is why a column reached its waypoint strung out down the road. Once the leader has arrived, each trailing vehicle's driver is now ordered to a slot behind the leader, one convoy spacing apart. The order goes to the pilot seat specifically (addressing a passenger is how people end up debussing to walk), per vehicle, behind a re-issue gate, since per-tick re-targeting of drivers is what caused the 1.0.3 regression. Stands down in contact or whenever vehicle doctrine owns the crew.
- Obstacle detours for convoys. AI drivers steer along the road network, and props placed on a road are carved into the infantry navmesh at bake time but never modify the road graph - which is why infantry walk around a road checkpoint that vehicles drive straight into, and why a waypoint placed close to one leaves the driver no distance to resolve in. m_sConvoyObstacles lists trigger circles with a via point ("x z radius viaX viaZ; ..."): a mounted group entering a circle on its way somewhere is nudged to the via point, and its standing waypoint then re-asserts. Best effort by design - it routes the approach through the drivable gap, it cannot rescue a vehicle already against the blocks, and nothing at any layer can edit the road graph at runtime.- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 16:12:22 GMT
- Last Modified
- Tue, 11 Aug 2026 16:12:30 GMT
1.0.5
v1.0.5 FIXED - The Clear Buildings waypoint did not appear anywhere in the Game Master. Its editable prefab was hand-authored from the wrong reference: it set the fields vanilla's SearchAndDestroy waypoint sets inline, but omitted m_EntityType WAYPOINT, and it gave its m_UIInfo a fresh object id instead of reusing the one it was overriding. Without the entity type the editor cannot classify it, and with a new UIInfo id the name and icon override never applied. It is now built on the same component templates vanilla's own waypoints use, which carry the entity type, flags and auto-register settings rather than restating them. CHANGED - The Clear Buildings waypoint now sweeps only its own radius. DCO's clearer flag is a standing group property and its state machine picks the nearest claimable building to wherever the squad is standing, so a flagged squad cleared its way across a whole town on the walk to the objective and never arrived. The waypoint's completion radius is now the sweep area: the squad clears what you pointed at, then resumes its move. DCO's per-area building quota is also dropped for a scoped sweep, since the waypoint already bounds it. - The waypoint no longer depends on server settings. DCO gates clearing on m_bEnableCqbClear, and on m_bCqbClearMarkedOnly on top of that, so whether a Game Master's waypoint did anything depended on two values they cannot see in-game. A group carrying the waypoint now runs the state machine regardless. Both behaviours are switchable; turning them off restores 1.0.3 behaviour.
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 15:50:02 GMT
- Last Modified
- Tue, 11 Aug 2026 15:50:05 GMT
1.0.4
ADDED - The Clear Buildings waypoint now appears in the Game Master command bar. It was registered as a placeable entity in 1.0.3, which put it in the Edit-mode entity browser but not on the toolbar you get when a group is selected. Those are two separate registries and a custom waypoint has to be in both. - CQB sweeps cover upper floors. On a building with baked smart-action points DCO uses those and multi-storey already worked. With none, its fallback samples a ring at the building origin's height - the vertical component is literally zero, so the node set is planar by construction and no radius or sample count could ever reach an upper floor. The ring is now re-sampled per storey, with a vertical snap tolerance under one storey so an upper probe cannot answer with the ground floor beneath it. This adds floors to sweep, not the ability to climb: where the navmesh has no stair link the move fails and the sweep carries on, as an unreachable node does today. - The config file updates itself. A load that finds keys missing rewrites the file afterwards, preserving every value already set and adding new keys with their defaults and comments. Previously a new setting was invisible to any server with an existing config - it ran the compiled default with no way to discover the key short of reading the changelog. The log names what was added. An unparseable file is deliberately never rewritten, since that is nearly always a typo in an edit someone just made and overwriting it would destroy the rest of their settings. FIXED - A QRF Task Zone could make its groups impossible to order out of it. The zone marks every group whose leader is inside as a responder and stores the zone centre as a hold point. DCO then re-issues a move back to that centre whenever the group is more than m_fQRFHoldLeash (30m) away. That runs in the branch for when nobody needs help, so no contact is required, and unlike DCO's reinforcement path it does not check for a waypoint - so it fights a Force Move for as long as the mission runs. It is vehicle-aware, so it drives a convoy back rather than nudging infantry. Since zone radii are normally far larger than 30m, a group inside a zone keeps its hold point while being dragged back to it: it sets off, reverses at a fixed distance, and drives away from its objective, out of contact, at the same spot every time, with nothing in the log. The leash is now suppressed while a group is under an explicit order. Answering a QRF call is untouched - that branch never reads the hold point. - Procedural pathing no longer drives vehicles once a group has mounted. It routes a group to its goal in 25m cover-scored legs, so a driver is re-targeted every few seconds to a navmesh point that may sit off the road or behind him. DCO does guard this, but only as the move order arrives: a group already in its vehicles is safe, while a group ordered on foot that then mounts keeps pathing for the rest of the move. Mounted state is now re-checked every tick and the stale plan dropped. Infantry pathing is unchanged. Scope: this only applies once the group has contact, since procedural pathing self-disables below its danger threshold. It is not the fix for a convoy misbehaving on an uncontested route - see known issues. KNOWN ISSUES - Map markers appear on the player map, not the Game Master map. - No column discipline for convoys. Vehicles in one group each solve their own route to the destination, so where the road graph offers two comparable routes they diverge and the column splits. DCO's vehicle doctrine does not cover this: it writes role NONE out of combat and issues nothing, and it reasons per group, so several vehicles crewed from a single group are one entity to it. Spacing, speed matching and catch-up exist at no layer. - Squads stack directly in front of the breach rather than to one side of it. - DCO picks the interior navmesh node nearest the group as its entry point rather than an actual doorway, so on some buildings a squad forms up against a wall.
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 15:10:39 GMT
- Last Modified
- Tue, 11 Aug 2026 15:10:56 GMT
1.0.3
ADDED - Clear Buildings waypoint. A Game Master waypoint assigned to one group, which marks it as a CQB clearer so it sweeps buildings as it advances. DCO has the machinery for this - EDCO_ZoneRole.CLEAR and a per-group flag - but shipped no way for a GM to set it. A waypoint suits it better than a placeable zone: it is given to a group rather than catching whoever walks into it. Requires DCO's town clearing enabled. Does not auto-complete, deliberately: a completing waypoint would release the flag on arrival, before the squad had cleared anything. Remove it when the sweep is done. FIXED - Convoys drove to stale destinations while out of contact. DCO calls its contact drill every tick and performs its own contact check inside that method, so our override returned before ever reaching it. Every mounted group was re-ordered to its stored path destination whether or not anything was shooting at it, and that destination is the procedural path's end goal, which also bypasses road routing. Out of contact we now always hand back to DCO, which is what stands the group down and clears any support-fire boost it applied. CHANGED - Push-through no longer applies to mounted groups by default. A group on a GM waypoint keeps moving on its own: the waypoint is a persistent order, and DCO's halt only stops it issuing further path legs rather than cancelling it. So for waypointed groups the feature was re-asserting a move nobody needed, and it caused two regressions doing so. Still available per-group, and for groups moving under a DCO-issued order rather than a waypoint. - Advancing groups re-assert their move at most every 5 seconds, configurable. DCO's own throttle sits inside the method this path bypasses, so the order was previously re-issued on every tick - a suspect for drivers braking and reversing mid-corner.
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 14:03:25 GMT
- Last Modified
- Tue, 11 Aug 2026 14:03:27 GMT
1.0.2
FIXED - Map markers no longer disturb the AI commander. Drawing them called DCO_ObjectiveRegistry.BuildActive() on a 10 second timer, which is not a read: it clears and rebuilds DCO's entire auto-objective list as a side effect, on a cadence unrelated to the commander's own. Markers now read a snapshot captured from the commander as it works, so nothing outside DCO triggers a rebuild. Suspected cause of groups losing their orders and stalling in contact in 1.0.1. CHANGED - Markers redraw only when the commander publishes a new objective set, rather than every 10 seconds. In practice that is the commander's own 15 second tick, so the map stops churning between updates. - Marker symbols are now neutral. The previous build drew zones with the friendly symbol and objectives with the hostile one regardless of their actual faction, which presented a guess as fact. A task zone belongs to whoever is standing in it, so an unknown-identity symbol is the only honest one. KNOWN ISSUES - Markers still appear on the player map, not the Game Master map. - CQB sweeps are ground floor only on buildings without smart-action points. The interior-node fallback samples a flat ring at the building origin's height, so it cannot produce an upper-floor position at any radius. - Squads stack directly in front of the breach rather than to one side of it.
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 13:03:28 GMT
- Last Modified
- Tue, 11 Aug 2026 13:03:31 GMT
1.0.1
ADDED - Commander scoring is now tunable. DCO declares ten fields governing how the AI commander scores objectives and commits reserves, and reads none of them from config. All ten are now settable, including m_iCmdGroupsPerObjective, the real dispatch cap. DCO's own m_iCommanderMaxDispatch is dead code the commander never reads, which is why raising it has no effect. - The commander now leaves groups alone when they already have orders. It previously checked faction, contact, cooldown and range, but not whether the group was doing something, so a Force Move or a get-in order was replaced on the next tick and every tick after. DCO's own reinforcement system already skips groups with a waypoint; the same rule now applies to the commander. - Implemented EDCO_COA.ADVANCE, the push-through course of action. The value exists in DCO's enum but is referenced exactly once, in its own declaration: the tactical brain never selects it and the contact drill never handles it. A group can now keep moving to its objective while fighting, which is what convoys and deliberate assaults need. - Vehicle crews no longer run infantry actions-on-contact. DCO already guards its pathing, standoff and cover systems against mounted groups; the contact drill was missing the same guard, so convoys under fire performed foot-mobile flanking manoeuvres. - Task zones can be restricted to a single faction. They apply their role to any group whose leader is inside, with no faction check, so a friendly patrol clipping an ambush zone holds fire. Off by default. - DCO task zones and commander objectives now appear as map markers, including the auto-derived objectives that have no entity and were previously invisible by construction. - Config file at $profile:DCO_Extensions.json, written fully populated and commented on first start. Every fix has its own switch; turn one off and that behaviour reverts to stock DCO with no effect on anything else. CHANGED - Install no longer requires attaching anything to a mission. Everything runs from a game-mode hook and from modded classes, so the mod is active as soon as it is in the server's mod list. Previously the config and markers lived on ScriptComponents that had to be placed by hand. - Standoff is now a close-only constraint. The floor still refuses to let AI close past their weapon's minimum, but no longer reverses them out to reach it. DCO applies it as a minimum distance, which also pushes an AI outward when it is already closer, so in compounds and villages infantry backed out of a courtyard instead of holding and shooting. FIXED - Objective Zone placeables dispatch again. The prefab ships with no faction component and no faction attribute, so it registered with a null faction and the commander's reserve filter could never match a group to it. Placing one assigned nobody. The faction is now taken from a configured key, or inferred from whichever faction has the most groups inside the radius. - CQB squads no longer stack at a breach without entering. The transition to ENTER waited for the leader to reach the door, but stack slots are handed out in array order, so a leader assigned to a rear slot stood farther out than the transition allowed and the squad waited until a 30 second watchdog gave up. It now triggers on whichever member reaches the breach. - Fixed a crash on project open in Workbench, and the equivalent hard failure on a dedicated server. The settings singleton read its config on first access, and the engine constructs behaviour classes during script global initialisation, before the filesystem exists. Settings now return defaults only; loading is explicit and happens once the game is running. KNOWN ISSUES - Map markers appear on the player map, not the Game Master map. The two use different mechanisms and the GM map is not addressed in this release. - The CQB fix addresses the entry gate, not entry-point selection. DCO picks the interior navmesh node nearest the group rather than an actual doorway, so on some buildings the stack still forms against a solid wall. - With m_bCommanderRespectWaypoints on, a mission where every AI carries a waypoint leaves the commander with no candidates. This is working as intended, and is logged when m_bDebug is on.
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 12:39:48 GMT
- Last Modified
- Tue, 11 Aug 2026 12:39:50 GMT
1.0.0
- Game Version
- 1.7.0.54
- Created
- Tue, 11 Aug 2026 11:25:17 GMT
- Last Modified
- Tue, 11 Aug 2026 11:25:19 GMT