Skip to content

Research pedestrian-style spline locomotion for world workers - #33

Draft
SimGamerJen wants to merge 59 commits into
agent/world-workers-alpha5-world-actions-uifrom
agent/world-workers-alpha6-pedestrian-research
Draft

SimGamerJen wants to merge 59 commits into
agent/world-workers-alpha5-world-actions-uifrom
agent/world-workers-alpha6-pedestrian-research

Conversation

@SimGamerJen

Copy link
Copy Markdown
Owner

Summary

Builds directly on the reconciled Alpha 5 / HelperProfiles 2.1.1.0 development baseline and starts the next world-worker movement investigation inspired by FS25's smooth native pedestrians.

Native pedestrian/runtime research

  • adds HP_WorldPedestrianProbe.lua
  • diagnostic-only runtime inspection of PedestrianSystem, likely mission/global instances, scenegraph pedestrian nodes, and available GIANTS spline APIs
  • command: hpWorld pedprobe [summary|system|globals|mission|spline|scene|all]
  • does not alter worker movement

Spline-guided movement prototype

  • adds HP_WorldSplinePath.lua
  • creates a temporary invisible GIANTS cubic spline at runtime using createSplineFromEditPoints
  • shapes the route so its initial tangent follows the worker's current facing before converging on the destination
  • continuously projects the worker onto the spline and feeds the validated curved locomotion controller a short (~1.05 m) look-ahead target
  • the existing curved locomotion controller remains sole owner of speed, yaw, pose and HumanGraphicsComponentState
  • temporary spline entities are deleted on completion/cancel/error/obstacle stop
  • existing COME HERE and FOLLOW are unchanged

Experimental commands

  • hpWorld smoothcome [slot] [standOffMetres]
  • hpWorld smoothgoto [slot] <x> <z>
  • hpWorld smoothstop [slot]

Why this approach

FS25 exposes runtime cubic spline creation plus world-space spline position/direction/distance queries. Native pedestrians are spline-driven. This prototype lets us test whether tangent-led spline execution gives HelperProfiles workers the same continuous-flow quality without replacing their identity/appearance/graphics stack.

First test focus

  1. Confirm both Alpha 6 startup markers load without Lua errors.
  2. Run hpWorld pedprobe and capture the log; then hpWorld pedprobe scene if the summary does not reveal the live PedestrianSystem instance.
  3. In clear open ground, place A several metres away and deliberately face A 45–90 degrees away from the player.
  4. Run hpWorld smoothcome A and visually compare its initial turn and route flow with ordinary hpWorld come A.
  5. Confirm the worker maintains a continuous walking gait, follows a smooth arc and eases into the final stand-off without waypoint-like stop/turn behaviour.
  6. Test hpWorld smoothstop A during movement.
  7. Do not test obstacle navigation as a success criterion yet; the existing short-range obstacle layer remains a safety stop only.

Release-baseline safety

This branch is based on the current reconciled Alpha 5 head, which is itself 0 commits behind main and retains HelperProfiles 2.1.1.0 Integration API v7, scoped preferred hiring, release metadata and management UI fixes. Alpha 6 changes only the two new modules and their loader entries.

Copy link
Copy Markdown
Owner Author

ModHub baseline reconciliation — 2026-09-08

Alpha 6 has been reconciled with the latest main ModHub-submission changes.

Verified release-side changes:

  • modDesc.xml replaced with the exact current main blob (1247f84540a3375a02f659de97f1df47e35a2c60), including the expanded localized ModHub description and versioned changelog text required by TestRunner.
  • icon_helperProfiles.dds replaced with the exact current main blob (7bdc835816a8fc315002a40c607568da5ece71cd).
  • legacy helperprofiles.dds is absent on Alpha 6, matching the current ModHub-ready tree.

Reconciliation commit: 60f1f943596d7c25eb69160411773a2f3f8ac60e (Merge ModHub submission updates into Alpha 6). This is a merge-style commit with both the prior Alpha 6 head and current main (80043d12291e034fe8e0214da5064162e00b8920) as parents, so the ModHub updates are now part of Alpha 6 ancestry rather than copied without history.

Post-merge comparison: Alpha 6 is 64 commits ahead of main and 0 behind. The remaining diff contains only world-worker development changes; modDesc.xml and icon_helperProfiles.dds no longer differ from main.

Copy link
Copy Markdown
Owner Author

First Alpha 6 live probe / spline test — 2026-09-12

The uploaded live log gives us two useful results.

Spline-path prototype

  • smoothcome C completed successfully over ~18.3 m in ~13 s.
  • The moving look-ahead remained ~1.05 m ahead and the path completed normally with no HelperProfiles Lua error.
  • This specific run was almost straight because C's starting yaw (0.133) already matched the bearing to the final stand-off point, so it was not yet a strong visual test of tangent-led turning.
  • The later normal come C required an almost 180-degree reversal and showed the existing bounded-yaw controller initially moving farther from the target while swinging round. That is a useful baseline for the next deliberately misaligned smoothcome comparison.
  • smoothgoto C 4 7, 1 3, 1 1 correctly returned target-too-far; smoothgoto uses absolute world X/Z coordinates, not local offsets.

Native pedestrian probe

  • A live g_currentMission.pedestrianSystem is confirmed on Witcombe.
  • It owns 14 pedestrians and 14 pedestrianNodes and is enabled.
  • The first probe incorrectly reported GIANTS spline globals as nil because it used rawget(_G, ...). The successful spline prototype proves those engine functions are resolvable/callable through the Lua environment.
  • The top-level system table does not expose its methods directly, so we need to inspect metatable / __index class data and sample live pedestrian records.

Follow-up committed

Added HP_WorldPedestrianProbeDeep.lua and loader support.

New commands:

  • hpWorld pedprobe deep
  • hpWorld pedprobe splineenv
  • hpWorld pedprobe pedestrians

The deep probe compares raw vs normal engine-global resolution, inspects metatable / class chains, and dumps a small sample of live pedestrian records/nodes.

Also reconciled Alpha 6 with the latest main ancestry and current ModHub metadata. modDesc.xml is now byte-identical to current main (descVersion=111, current French title capitalization). Final comparison: Alpha 6 is 68 commits ahead of main and 0 behind.

SimGamerJen and others added 30 commits September 15, 2026 10:36
Integrate tested AutoDrive V5 helper continuity, HelperPayroll external-session bridge, and API v7 helper-acquisition arbitration into the 2.1.1.0 HelperProfiles baseline.
Promote the validated 2.1.1.0 PublicLua compliance refactor and long-line cleanup while preserving AutoDrive V5 continuity, HelperPayroll integration, API v7 scoped hires, Courseplay and RemoteDispatcher behavior.
Bring the merged 2.1.1.0 TestRunner 0.9.21 compliance baseline into the active world-workers Alpha 6 branch while preserving its world-worker development history and changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant