Skip to content

Prototype standalone world workers for 2.2.0.0 alpha1 - #17

Draft
SimGamerJen wants to merge 8 commits into
mainfrom
agent/world-workers-alpha1
Draft

Prototype standalone world workers for 2.2.0.0 alpha1#17
SimGamerJen wants to merge 8 commits into
mainfrom
agent/world-workers-alpha1

Conversation

@SimGamerJen

Copy link
Copy Markdown
Owner

Summary

Starts the HelperProfiles 2.2 development cycle with a deliberately narrow standalone world-worker prototype, while leaving the 2.1.0.0 ModHub baseline untouched.

What this alpha adds

  • per-save static world placement state keyed by permanent A-T / helper01-helper20 identity
  • standalone HumanGraphicsComponent runtime instances rather than fake players or AI jobs
  • AvatarSwitcher-bound PlayerStyle reuse where available, with helper-style fallback
  • static NPC/idle animation parameters
  • terrain-aligned placement approximately two metres in front of the local player
  • persistence across save reloads
  • temporary runtime despawn while the same helper is active on an AI job, followed by automatic restoration at the saved world position when the job ends
  • hpWorld console commands for isolated engine testing

Test commands

hpWorld help
hpWorld status
hpWorld place [slot]
hpWorld move [slot]
hpWorld remove [slot]
hpWorld refresh [slot]

The slot argument accepts A-T, helper01-helper20, or 1-20. Omitting it uses the currently selected HelperProfiles worker.

Intentionally not included yet

  • management-screen controls
  • walking/pathfinding
  • schedules or behaviours beyond static idle
  • interactions/dialogue
  • multiplayer/network replication

See docs/WORLD_WORKERS_ALPHA1.md for the initial in-game test sequence and expected alpha risks.

Do not merge until standalone human rendering, appearance loading, persistence and AI-job suppression have been validated in FS25.

Copy link
Copy Markdown
Owner Author

Alpha1 test result: hpWorld status loaded correctly, but hpWorld place A returned local-player-unavailable. Root cause was the prototype relying on g_localPlayer / g_currentMission.player. Current FS25 PlayerSystem owns live Player instances and marks the local one with isOwner. Patched the branch to resolve the owner from g_currentMission.playerSystem.players (with SP index fallback) and to use Player:getMapPositionAndLookYaw() as the primary placement source. Added diagnostic placement-source logging for the next test.

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