Skip to content

feat: add Ida Faber NPC variants#207

Merged
JOY (JOY) merged 1 commit into
devfrom
codex/ida-faber-npc-variants
May 24, 2026
Merged

feat: add Ida Faber NPC variants#207
JOY (JOY) merged 1 commit into
devfrom
codex/ida-faber-npc-variants

Conversation

@JOY
Copy link
Copy Markdown
Contributor

Summary

  • add three Ida Faber local visual variants to the Unity visual catalog
  • seed three matching permanent NPC Frames in Nakama with identity, stats, traits, soul, story, and memory
  • keep initial player body assignment stable on the legacy 10-frame pool while allowing the world NPC roster to expand to 13

Verification

  • npm.cmd run build in backend/nakama
  • npm.cmd test in backend/nakama
  • git diff --check
  • scanned touched files for em-dashes
  • Unity MCP: refreshed AssetDatabase, confirmed VisualPrefabCatalog.Count=21, confirmed variants 18-20 resolve to the imported prefabs, and verified each prefab has Animator plus SkinnedMeshRenderers

Notes

  • The imported Ida Faber asset folders and Unity package manifest changes remain local/user-owned and are not included in this PR. Do not commit paid Asset Store content to the public repo without an explicit asset-license decision.
  • Unity console import exceptions were observed from the GamerGirl pack's duplicated shader GUID and obsolete external material settings on Stand.obj; no C# compile errors remained after refresh.

@JOY JOY (JOY) force-pushed the codex/ida-faber-npc-variants branch from 061bc0f to 4d08a98 Compare May 24, 2026 13:42
@JOY
Copy link
Copy Markdown
Contributor Author

Local code-review fallback verdict: APPROVED.

Verification:

  • Rebased onto current origin/dev and resolved the CHANGELOG.md conflict.
  • Removed raw local Asset Store import folders from Git history before force-pushing. Unity/Assets/GamerGirl, Unity/Assets/IdaFaber, and Unity/Assets/Ida Faber are now ignored/local-only and are not tracked by the PR.
  • Confirmed visual prefab paths exist in the local Unity project for validation.
  • git diff --check origin/dev...HEAD: pass.
  • npm.cmd run build in backend/nakama: pass.
  • npm.cmd test in backend/nakama: pass.
  • npx.cmd --yes markdownlint-cli2 ...: pass.
  • Unity MCP refresh/compile: ready, 0 console errors, 0 warnings after clearing stale logs and recompiling.

Notes:

  • The PR intentionally keeps the imported character asset packs local-only because the repository is public and the asset directories are ignored.
  • Unity package changes are an upgrade/additive package state only: FunPlay MCP moves to v0.3.8, and Shader Graph is explicitly listed because imported URP/HDRP visual assets rely on it.

@JOY JOY (JOY) marked this pull request as ready for review May 24, 2026 13:44
@JOY JOY (JOY) merged commit 1984d51 into dev May 24, 2026
2 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4d08a98688

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment on lines +374 to +376
{ npc_id: "npc-neon-runner-1172", display_name: "Neon Runner 1172", archetype_id: "wasteland-courier", role: "Neon courier body", visual_variant: 18, visual_prefab_key: "generated_visual_18_idafaber_gamergirl", equipment_visual_id: 1 },
{ npc_id: "npc-vex-operative-2286", display_name: "Vex Operative 2286", archetype_id: "crossline-hunter", role: "Signal infiltrator body", visual_variant: 19, visual_prefab_key: "generated_visual_19_idafaber_vex", equipment_visual_id: 1 },
{ npc_id: "npc-redline-envoy-3398", display_name: "Redline Envoy 3398", archetype_id: "clinic-operator", role: "Redline liaison body", visual_variant: 20, visual_prefab_key: "generated_visual_20_idafaber_lucia", equipment_visual_id: 8 }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove NPC seeds that depend on local-only assets

These three permanent NPC seeds assign visual variants 18-20, but this commit does not add distributable generated prefabs for those variants (the new source asset folders are also gitignored), so a clean checkout without the paid local packs will spawn these NPCs with missing visuals and fall back to placeholder rendering. Because these NPCs are in the shared permanentNpcFramePool, the regression affects every environment that runs the seeded world data, not just local prototype machines.

Useful? React with 👍 / 👎.

function defaultBodyProfile(playerId: string, displayName: string, timestamp: string, seedSuffix?: string): any {
var assignmentSeed = playerId + ":" + (seedSuffix || "initial");
var sourceFrame = selectPermanentNpcFrame(assignmentSeed);
var sourceFrame = selectInitialPermanentNpcFrame(assignmentSeed);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep reincarnation frame selection on full pool

defaultBodyProfile now always calls selectInitialPermanentNpcFrame, and reincarnateBody reuses defaultBodyProfile for every new body. That means reincarnation is unintentionally capped to the first 10 legacy frames and can never select the newly added frames 11-13, even though the change intent is to stabilize only the initial assignment while expanding the world NPC roster.

Useful? React with 👍 / 👎.

"dependencies": {
"com.coplaydev.unity-mcp": "https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main",
"com.gamebooom.unity.mcp": "https://github.com/FunplayAI/funplay-unity-mcp.git#3ef233a8a86eb03a281873b778d79bbfb1e3e899",
"com.gamebooom.unity.mcp": "https://github.com/FunplayAI/funplay-unity-mcp.git#v0.3.8",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Pin Unity MCP dependency to immutable revision

Switching com.gamebooom.unity.mcp from a commit SHA to the mutable #v0.3.8 tag makes dependency resolution non-deterministic when lockfiles are regenerated or absent, because retagging can change the resolved code without any manifest diff. This is a regression from the previous immutable pin and can cause hard-to-reproduce editor/tooling behavior across contributors and CI.

Useful? React with 👍 / 👎.

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