A running scorecard of what exists, what has actually been confirmed in a live game, and what
still needs a play session before anyone should rely on it. Condensed from the project's internal
testing log β the log itself is a line-by-line debug diary and is not kept in the wiki, but every
status below traces back to it or to a code-level review.
Read the status, not just the checkmark. β
means someone watched it happen in-game. π§ means
the code is believed correct (often because a specific root cause was found and fixed) but nobody
has confirmed it since. π marks a known, currently-open issue. β¬ means the feature has no
behavior behind it yet β the item/asset may exist, the logic does not.
| |
|---|
| β
| Confirmed working in a live game |
| π§ | Implemented, believed correct, not yet confirmed in-game |
| π | Known issue, still open |
| β¬ | Not implemented |
Foundationsβ
| Area | Status | Notes |
|---|
| Atomic mod deploy | β
| Fixed the ZipException: invalid LOC header crash from the game hot-reloading a half-written jar. |
| Persistence across restarts | β
| NPCs keep name, needs, home and relationships. |
| Furniture scan on world join | β
| Beds and chests already in a house register themselves without being replaced. |
| Population growth | β
| No background auto-spawner; growth is a deliberate player action via ImmigrationContract. |
Houses, beds & doorsβ
| Area | Status | Notes |
|---|
| House validity check, bed/chest registration | β
| /simtale housecheck, debugbeds, debugchests all confirmed. |
| Bed assignment & shared beds for a second NPC | β
| No NPC has stolen another's bed in observed play. |
| Doors: open only when actually passing through | β
| |
| Doors: one registry entry per door, not per block | β
| |
| Doors: multi-door wall doesn't open every door at once | β
| |
| Doors: pathfinding actually routes through them | β
| |
| Doors: open/close race when two NPCs use the same door | π | Noticeably better after switching to a geometric "which side is the NPC headed to" check, but the close-while-opening conflict still reproduces. |
| House identified by its bed | π | Moving the bed may create a second house record. Not urgent, not yet fixed. |
| Area | Status | Notes |
|---|
| Sleep on a day/night schedule (not just tiredness) | β
| Two real regressions found and fixed this pass β see the dev log if you need the detail. |
| Sleeps through the whole night | β
| |
| Guard works nights, sleeps days | β¬ | Not implemented β Guards currently share the normal day schedule. |
Base sleep behavior (walk to bed, animation, Frozen, waking up) | β
| |
Hunger & feedingβ
| Area | Status | Notes |
|---|
| World/loot chests ignored, only house chests used | β
| |
| Farmer deposits into house chests under the same rule | β
| |
| Favorite/hated food affects mood | β
| |
| Being handed food while hungry (eats immediately vs. banks it as a gift) | β
| |
| Tier-based food choice (prepared food beats raw meat even if the raw is a favorite) | π§ | Implemented, never confirmed in-game. |
| Tie-break by taste when tiers match | π§ | Implemented, never confirmed. |
| Interrupts a task when hunger drops critically low | π§ | Implemented, never confirmed. |
| Gives up on an unreachable chest instead of looping | π§ | Implemented, never confirmed β this exact shape of bug once produced thousands of searches/second over an unreachable bed. |
| Eating heals HP by food tier | π§ | Implemented, never confirmed. |
| Area | Status | Notes |
|---|
| Farmer (plant, harvest, deposit, auto-replant, seed restock) | β
| Long debugging session, fully resolved and confirmed in-game. |
| Hunter / Miner expedition (NPC leaves, returns with a resource) | β
| Redesigned away from following a real animal/ore node, for safety. |
| Fisherman / Lumberjack | β
| Reviewed against the farmer's already-validated design; no structural bug found. |
| Guard: detects hostiles, patrols the village perimeter when idle | β
| |
| Guard: weapon category (melee vs. ranged) changes engagement distance & animation | π§ | Implemented this session, compiles and builds clean; not yet confirmed in-game. See Guard combat below. |
| Profession assignment false positives (maple wood β Explorer, rainbow trout β Hunter, hammerhead shark β Builder) | β
| Fixed by using more specific keywords instead of loose substrings. Verified by cross-referencing the game's real item list. |
Guard combatβ
The Guard's "combat" is still fundamentally decorative: it walks into range, plays a stand-in
animation, waits a fixed 3 seconds, and deletes the hostile β regardless of what weapon it holds.
Weapon category (this session's addition) changes distance and animation correctly, but the
outcome is still the same timer. Turning that into real damage pulled from the weapon and, for
ranged Guards, an actual projectile instead of a timer is tracked as its own follow-up piece of
work, not yet started.
Socializing, wandering & hobbiesβ
| Area | Status | Notes |
|---|
| Spontaneous NPC-to-NPC conversation | π | Never observed in play. The trigger (low social + proximity) needs investigating β it may simply not be firing. |
| NPCβNPC friendship persists across restart | π§ | Implemented, never confirmed. |
| Mood contagion between NPCs in conversation | π§ | Implemented, never confirmed. |
| Arguments (aggressive trait / enemies) hurt mood and friendship | π§ | Implemented, never confirmed. |
| Sleep pre-empts a conversation without stranding the other NPC | π§ | Implemented, never confirmed. |
| Anchored wandering (never drifts away from home indefinitely) | β
| |
Hobby trip (fishing/mining/gardening/reading) and its fun payoff | π§ | User describes it as "seems to work" β not confirmed rigorously enough to close out. |
| Hobby fallback when the scenario doesn't exist nearby (e.g. fishing hobby in a desert) | π§ | Implemented, never confirmed. |
| Shared hobby boosts friendship gain in conversation | β
| Verified in code (NPCSocialHelper.bondNpcs), real call site confirmed. |
| Gift matching a hobby (e.g. fishing rod β NPC who fishes) | β
| |
Relationships, marriage & familyβ
| Area | Status | Notes |
|---|
| Social interaction panel, marriage, pregnancy, birth | β
| Birth had a real bug (baby persisted but never synced to the mother's inventory until a restart) β fixed and confirmed. |
| Wedding ring as a gift/proposal | β
| Id matching had to be normalized (four different casings/prefixes existed for the same file); fixed. |
| Passing a baby between parents | β
| |
Player pregnancy path (PlayerPregnancyTickSystem) | β | Separate code path from NPC pregnancy, not exercised at all yet. |
| Area | Status | Notes |
|---|
/simtale setstage (force a growth stage) | β
| |
Parent/child recognize each other at birth (FamilyBonds) | β
| |
| Child cosmetic models | β
| 34 broken model paths fixed (missing path prefix). |
| Placing a held baby on the ground | β
| Root cause was two stacked bugs: an item interaction override swallowing the click, and one event listener registered with the wrong method (.register instead of .registerGlobal) β the only one in the project using the wrong call. /simtale forceplacebaby exists as a guaranteed fallback either way. |
Automatic stage transitions over time (GrowthTickSystem actually ticking) | β | Never watched through a full cycle. |
| Full baby β adult cycle observed once, start to finish | β | Not done yet. |
Death & the Grim Reaperβ
| Area | Status | Notes |
|---|
| Starvation never kills (by design β aging/illness are the intended causes of death, not implemented yet) | β
| |
| Death broadcast doesn't repeat forever | β
| |
| Grim Reaper spawns automatically near a body and completes the ritual | β
| Redesigned this pass: used to require a manual admin spawn and could get permanently stuck if none was available at the exact tick. |
| Pleading for your life with the right item cancels the reaping | π§ | Brand new, never tested in-game. |
| Graveyard record (dead NPC archived instead of deleted) | π§ | The record exists and is written; nothing yet reads it back except the revival panel below, which is itself untested end-to-end. |
| House/bed freed after death | β | Not tested. |
| What happens to a surviving spouse/children | β | Probably nothing yet β tracked as a future improvement, not a bug. |
Graveyard & resurrectionβ
Entirely new this pass and not yet exercised at all in a live game β every single item below is
open:
listing the graveyard panel, reviving (including the UUID remap this needs, since the engine won't
let a new entity reuse an old UUID), marriage/children/friendships surviving the remap, reviving
someone whose spouse is currently unloaded, recovering the old bed/house/chest ownership, and
guarding against reviving the same record twice.
Constructionβ
| Area | Status | Notes |
|---|
Placing a blueprint item (hologram preview, rotate, /build start/clear) | π§ | Redesigned twice during investigation (a prefab packaging bug, then an event-registration bug identical to the baby-placing one). Needs a full retest. |
| Structure spawns facing the right way | β
| |
| Native engine hologram ghost (vs. placeholder blocks) | β | Not confirmed. |
| NPC actually walking to a site and building | β | Not confirmed. |
| Cancelling mid-build leaves nothing orphaned | β | Not confirmed. |
Mood, chat & appearanceβ
| Area | Status | Notes |
|---|
Plumbob reflects mood, isMiserable | β
| |
| Facial expression re-fires periodically instead of freezing after one change | π§ | Was broken for a while by an unrelated tuning change; fixed, needs a fresh confirmation pass. |
| Mood decay/boredom tuning | β
| |
| AI chat (player β NPC), personality/mood/job-aware | β
| |
| Missing chat context (location, HP, nearby players, time, relationships) | β¬ | Tracked as a roadmap item, not a bug. |
| Graceful fallback when the AI backend is unreachable | β | Not confirmed. |
| Interaction panel visuals (needs bars, job/hobby icons, full like/dislike lists) | β
| |
| Female NPC mouth model, cosmetic variety | β
| |
Villagesβ
| Area | Status | Notes |
|---|
| Village forms by chaining nearby houses | β
| |
/simtale village matches what's actually built | β
| |
| Homeless NPC still leaves the village to work/eat (leash isn't too tight) | β
| |
| Village dissolves when its houses are destroyed | β | Not confirmed β nothing currently deletes a house record at all except the duplicate-cleanup scan, which is a separate gap. |
| Guard patrols the perimeter / stays put with no village | β
| Confirmed as part of this session's Guard work. |
Items, recipes & modelsβ
Several craftable items exist as objects (model, texture, recipe, translated name) with no
behavior wired to their use at all:
| Item | Status |
|---|
| Wedding ring, Baby, Pregnancy test, Immigration contract | β
has behavior |
| House blueprint, Innkeeper's ledger, Inspector's journal | π§ implemented later, needs retest |
| Quartermaster's glass, Town bell, Birthday cake | β¬ no behavior yet |
Held-item hand appearance for the newer items (fixed by matching the game's own root-node naming
convention) is β
visually confirmed; the behavior behind most of them is separate and tracked
above.
Known open issuesβ
- Fighting with your child, carrying a child, restricting child labor to safe jobs, the wood UI
theme, and the persisted chest registry (surviving a restart even for chests far from spawn) are
all implemented but have zero in-game confirmation β every item in each of those areas is
still open.
- An NPC with no water within 15 blocks and dropping hygiene has a documented backoff fix that has
not been re-confirmed.
- A once-seen "NPC frozen on the bed at midday, recovered on its own" report is consistent with a
scheduled sleep window ending normally, not a bug β flagged for anyone who sees it again to check
/simtale npcstate before assuming regression.
Source: this page is a condensed, external view of the project's own line-by-line testing log.
When code and this page disagree, trust the code β and then come fix this page.