christos-antono/npctalk/npc-actions
Claude Code and agent skill by christos-antono/npctalk
- community
Checking that the SKILL.md file is still in the repository.
Make NPCs physically react to a conversation and follow spoken orders. Pick an action (punch, slap, hug, kneel and beg, flee, flip off, square up, nothing...) from what the player said and what the NPC replied, with TypeSafe's Jev returning a typed choice and a probability in ~0.1 s, per-action thresholds, a repeat cooldown, orders ("get on your knees") that override mood and make the LLM rewrite the line, and mapping action names onto the game's animations with checks at load. Use when NPCs should act out what they say, obey commands, or when actions picked by an LLM are too random, too timid or too frequent.
Install
npx vskill@latest install christos-antono/npctalk/npc-actionsSKILL.md
NPC actions
Two questions per exchange, both asked to TypeSafe's Jev (a typed-judgment model: it returns one choice from a fixed set, with a probability, in ~0.1 s; key TYPESAFE_API_KEY, https://docs.typesafe.ai):
- Before the reply (in parallel with the LLM): is the player giving an order? "Take your shirt off", "get on
your knees", "give me a hug", "run". If Jev picks an action with ≥ 0.6 probability, it's an order: the NPC does it, and the LLM writes the line again knowing "you're <doing it> right now", so they grumble or joke while they comply instead of refusing. Costs ~0.1 s more, only then.
- After the reply (in parallel with the voice): what does their mood call for? From the player's words
and the NPC's reply, pick the action, or none.
The catalog (examples/gta-v/mod/ActionCatalog.cs)
Each action has a name, a description Jev reads, and the probability Jev must reach before it happens:
| Action | Min. probability | Notes | |
|---|---|---|---|
| none | - | just talk: most exchanges | |
| slap, punch, facepalm, square_up, threaten_gun, hug, kiss | 0.45 | ||
| headbutt, shirt_off (men), pants_off (to underwear), bend_over, kneel_beg | 0.5 | ||
| shoot, run_away | 0.6 | need real certainty: they end the conversation | |
| middle_finger | 0.7 | Jev picks it a lot, so it needs more |
- Thresholds per action, not one global cut-off: tune the ones that fire too often upward.
- Cooldown: the same NPC doesn't repeat an action within 60 s unless ordered to.
- Descriptions are the prompt. Write when it applies ("only when the reply clearly means killing them right
now"), not just what it is.
- Gender rules (men only) and content rules (underwear stays on) live in code, not in the prompt.
Mapping to the game (NpcActions.cs)
- Each name maps to candidates: animation dictionary + clip, a task (flee, fight), or a clothing swap. Check
every candidate exists when the mod loads and log what was found (action anims:); fall back to the next.
- Play the action while the line is spoken, aimed at the player (or at whoever the scene says).
- A director or scripted scene can pin an action (
do: kneel_beg) to skip the picker.
Test it
npcvoice-check actions (GTA example) runs 25 exchanges through Jev, 10 of them orders, and checks each pick (25/25 expected). In game, dev mode's PgUp/PgDn pick an action and End makes the target do it, to check the animation without a conversation.
Without Jev
A second LLM call with a JSON schema works, but it's slower (0.3-1 s) and its "confidence" isn't calibrated, so thresholds are guesswork. Whatever picks, keep the shape: a fixed set, a probability, per-action thresholds, orders checked first.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/npc-actions/SKILL.md
Popularity
- Repository stars
- 169
- Repository forks
- 11
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/christos-antono/npctalk/npc-actions)