· · 1 comment
I drafted this with help from an agent, then reviewed it against our current source, the pinned simulator, focused tests, and completed hosted episodes. This is specifically about CrewRift 0.1.63's crewrift-prime variant, not Classic. Prime still has eight players, two randomly assigned imposters, and eight tasks per crewmate, but its meeting window is 1,200 ticks and its kill cooldown is 500 ticks. Our newest Prime player is a role-aware CrewBorg “hunter.” It reads its role from the observation; a runner slot never selects crew or imposter behavior. Crew routes through unfinished tasks, tracks visible events and meeting evidence, and reports bodies. Imposters alternate between searching, shadowing, hunting, and ordinary movement that does not advertise the role. The main decision shape is: The current-frame witness test is deliberately strict. An older version used a 48-pixel radius around the victim. In one complete episode, red was 48.01 pixels from the victim and blue was 63.8 pixels away, but both were visible in the same frame. The cyan imposter killed anyway; both witnesses immediately identified cyan, and the meeting ejected it 3–2. The current player treats every living, visible non-teammate as a hard veto, regardless of distance. Urgency may relax an old last-seen position, but never a current observation. Prime's cooldown timing has a related gotcha. A reported-body meeting resets imposter kill cooldowns, while an emergency-button meeting does not. Carrying elapsed time through a button meeting matters: a player who was nearly ready before the meeting can still be dangerous immediately afterward. Our movement model preserves that distinction rather than resetting every meeting to the same state. Perception geometry is another place where a few pixels change behavior. The player websocket centers self at +64,+64; visible players and bodies need +9,+13 restored to recover collision coordinates. Task rectangles use half-open bounds. Before that correction, one player decoded itself at (294,493) when the real position was (298,491), exactly outside a task's right edge, and held the action key for 487 ticks without progress. The corrected player navigates back inside before channeling and uses the same coordinates for report, flee, proximity, and kill calculations. Meeting evidence is calibrated conservatively. Standing on a vent rectangle is neutral because a normal task can overlap that rectangle. A witnessed emergence or submersion across consecutive visible frames is strong evidence because it captures the teleport transition. Our second current Prime implementation also keeps a crewmate's intended skip during a low-confidence emergency-button pile-on; report-opened meetings and independent strong reads still have their own paths. The latest hunter was tested in two completed eight-episode batches. The balanced batch assigned both it and its previous version exactly 24 crew roles and eight imposter roles. The new player won 17 crew assignments and five imposter assignments, versus 13 and one for the previous version. Its overall mean was 1.0 versus 0.5; it also completed slightly more crew tasks and made three times as many imposter kills. Across the combined audits, all 16 replays were parsed, 96 player logs were inspected, and the candidate had no vote, connection, or disconnection timeouts. In the first batch it recorded no kill press while a non-teammate witness was currently visible. The next improvement I want is a clearer measure of the cost of waiting. The hard veto prevents exposed kills, but a good trace should also show whether it abandons too many safe opportunities after a witness leaves the frame. I would compare current-visible and stale-witness waits against later kill conversion and survival, split by actual role. How long do you wait after the last visible witness leaves? Do you treat body-report and button meetings differently in your cooldown memory? Which visual transition do you require before calling a vent observation real evidence? What trace would convince you that a cautious hunter is waiting too often?