AC

absildylan/cs2-skills

Developer tools
7 stars Quality 67 Trend 29Apache-2.0

Reusable AI skills and workflows for Counter-Strike 2 modding and Source 2 asset creation.

Overview

Some stuff may be wrong, i just know it worked for me : - models ported from CS:GO/sketchfab (animated models) to CS2 - custom AG2 animations for 1st & 3rd persons - using NPCs with AG2 animations AI-agent skill packages for current Counter-Strike 2 community-server runtime, asset research, and authoring. This is an unofficial community project. It is not affiliated with or endorsed by Valve. The repository contains original documentation and source tooling, not extracted game resources. Do not commit or redistribute Valve-extracted resources, compiled game assets, or third-party work without permission. Use cs2-server-npc-runtime for NPC gameplay and lifecycle independently of its animation backend. Add cs2-ag2-npc-runtime when an existing model entity such as prop_dynamic_override needs AG2 materialization or typed animation control. Use cs2-animgraph2-authoring for weapon or item first/third-person graph roots, and cs2-player-model-porting for player geometry, rigs, and physics.

README

Before you do your things

Some stuff may be wrong, i just know it worked for me :

  • models ported from CS:GO/sketchfab (animated models) to CS2
  • custom AG2 animations for 1st & 3rd persons
  • using NPCs with AG2 animations

So enjoy if it works for you !

CS2 Agent Skills

AI-agent skill packages for current Counter-Strike 2 community-server runtime, asset research, and authoring.

This is an unofficial community project. It is not affiliated with or endorsed by Valve. The repository contains original documentation and source tooling, not extracted game resources. Do not commit or redistribute Valve-extracted resources, compiled game assets, or third-party work without permission.

Skills

Skill Scope
cs2-server-npc-runtime Server-authoritative NPC gameplay with or without AG2: identity, lifecycle, AI, navigation, collision movement, combat, cleanup, scheduling, hot reload, and validation
cs2-ag2-npc-runtime Existing AG2 NPC presentation: compiled graph inspection, controller materialization, typed parameters, fallback classification, Linux signature recovery, and Workshop closure
cs2-animgraph2-authoring Weapon/item presentation: VNMClip/VNMGraph authoring, private first/third-person roots, proxy routing, prediction, and item Workshop delivery
cs2-player-model-porting Player-character assets: skeleton retargeting, skinning, geometry, materials, ModelDoc, first-person body geometry, hitboxes, ragdolls, and player-model Workshop closure
source2-particle-authoring Native CS2 particle creation and revision: layered VPCF systems, art direction, typed inputs, dependencies, and validation handoff
source2-particle-schema Provenance-pinned particle classes, inherited fields, providers, enums, metadata, and defaults
source2-particle-behavior Particle emission, motion, lifetime, providers, children, and rendering with explicit evidence boundaries
source2-particle-control-points Typed control-point contracts, endpoint beams, attachment drivers, distance parameters, and child-system bindings
source2-particle-materials Particle textures, flipbooks, trails, VTEX/MKS/VMAT sources, material bindings, and dependency closure
source2-particle-validation Native compilation, compiled-property readback, dependency checks, and official-tool visual acceptance
source2-particle-reference-research Bounded local VPK discovery, targeted extraction and inspection, and separate CS2/Deadlock observations

Use cs2-server-npc-runtime for NPC gameplay and lifecycle independently of its animation backend. Add cs2-ag2-npc-runtime when an existing model entity such as prop_dynamic_override needs AG2 materialization or typed animation control. Use cs2-animgraph2-authoring for weapon or item first/third-person graph roots, and cs2-player-model-porting for player geometry, rigs, and physics.

Use source2-particle-authoring for a new effect or a practical VPCF revision. Use the particle specialists for exact schema lookup, behavior diagnosis, control-point contracts, appearance assets, native acceptance, or local reference research. Install the particle skills together when a workflow spans these areas; a skill installation does not fetch its companion skills.

Bundled Particle Tooling

The particle skills include offline schema and control-point catalogues, bounded observation and VPK query helpers, original texture generators, and a native compiler orchestration helper. Their portable Python tests use synthetic inputs and do not require a game installation or VRF. Native compilation and visual acceptance require the user’s installed tools and separate evidence.

Start with the authoring workflow, use the schema catalogue for exact typed inputs, and record each acceptance layer with the validation workflow. Reflected defaults, local archive observations, compilation, and runtime appearance establish different claims; preserve their game/build provenance and limits.

After installing the particle skills, start with source2-particle-authoring and describe the result in ordinary language. For example:

Use $source2-particle-authoring to create a CS2 shockwave beneath a character's
feet. It should expand into a broken icy ring with outward shards and fade
completely within 0.8 seconds. Make its size adjustable and explain how the
game caller supplies position and facing. Deliver editable assets and verify
them with the available native tools.

The authoring workflow selects the relevant specialist references. The JSON catalogues are queried on demand; they do not need to be loaded in full. The particle evidence map explains what the bundled data and native checks actually establish.

Bundled NPC Runtime Blueprint

cs2-server-npc-runtime/examples/ServerNpcRuntimeSkeleton.cs is a compilable, framework-neutral, asset-free C# design scaffold—not an operational ModSharp plugin. It demonstrates full entity identity, bounded state transitions, impact latching, fail-isolated ports, active cleanup, world-forget semantics, and a presentation snapshot. It contains no ModSharp API guesses, model paths, signatures, or game assets.

The companion references explain how to adapt the ports to the exact framework version and hand only the presentation snapshot to an AG2 or verified named-sequence adapter. No example bundles native CS2/Deadlock assets. A path-only native control still requires the user to supply a lawful complete resource closure and does not grant redistribution rights.

Bundled ModSharp AG2 Example

cs2-ag2-npc-runtime/examples/modsharp-ag2-npc-example is the concrete framework example for spawning an AG2 model entity, registering Linux signatures through ModSharp gamedata, probing Bool/Float/ID parameter types, and applying typed values on the game thread.

Use that project when the target framework is ModSharp instead of generating a framework-neutral approximation of its EKV, spawn, hook, gamedata, or entity APIs. Other frameworks should adapt the documented engine ABI and safety contract to their own public interfaces rather than copying ModSharp types.

The example contains no compiled game resources. Its native model paths are local positive controls only. The example module source is separately MIT-licensed, as permitted by ModSharp’s third-party module exception; ModSharp itself retains its own license.

Bundled AnimGraph2 Tooling

cs2-ag2-npc-runtime/scripts/summarize_vnmgraph.py turns a locally decompiled VNMGraph into a parameter/clip contract report. It ships no game data.

cs2-animgraph2-authoring/scripts/ includes a manifest-driven clip pipeline validated against the recorded reference baseline. Other current weapons or items require fresh reference inspection and are not assumed compatible:

VPK discovery/extraction -> exact Blender 1P/3P rigs -> complete DMX export
-> current-template VNMClip generation -> ordered ResourceCompiler build

The example uses Five-SeveN references only to demonstrate the schema and is a clip-tool smoke test, not a complete item diagnostic suite. Paths, skeletons, translation contracts, actions, output namespaces, and compile order are all manifest data. Local Valve-derived references stay under .local/ and are never part of the repository or compiled handoff. Since 2026-09-03 the exporter converts clips to the compiler frame (raw VRF 19.1 references otherwise render off-screen) and can carry a weapon skeleton’s joints as the clip’s secondary animation (secondary_skeleton_dmx). The example’s artifact policy is deliberately blocked: compilation can be tested locally, but an artifact handoff is allowed only after a concrete redistribution basis covers every generated and transitive input and a separate basis covers preserved VNMClip template fields.

See the skill’s portable-tooling.md for commands and the example manifest.

Installation Notice

This repository is distributed under the Apache License 2.0. Installation does not change the provenance or licensing requirements of third-party inputs or locally extracted Valve-derived references, which are not relicensed by this repository.

Install With Codex

Ask Codex to install a GitHub skill path with $skill-installer:

$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/cs2-server-npc-runtime
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/cs2-ag2-npc-runtime
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/cs2-animgraph2-authoring
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/cs2-player-model-porting
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-authoring
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-schema
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-behavior
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-control-points
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-materials
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-validation
$skill-installer install https://github.com/AbsilDylan/cs2-skills/tree/main/source2-particle-reference-research

Install every folder when a workflow can span player assets, item graphs, NPC runtime control, and native particle effects. Individual installations do not resolve cross-skill handoffs automatically.

Manual installation also works: copy each skill directory into $CODEX_HOME/skills (or ~/.codex/skills when CODEX_HOME is unset). The agents/openai.yaml files provide optional Codex interface metadata; SKILL.md remains the portable runtime contract.

Install With Claude Code

Install the repository as a Claude Code marketplace:

/plugin marketplace add AbsilDylan/cs2-skills
/plugin install cs2-skills@absildylan-cs2-skills

Claude Code namespaces plugin skills. They can be invoked explicitly as:

/cs2-skills:cs2-server-npc-runtime
/cs2-skills:cs2-ag2-npc-runtime
/cs2-skills:cs2-animgraph2-authoring
/cs2-skills:cs2-player-model-porting
/cs2-skills:source2-particle-authoring
/cs2-skills:source2-particle-schema
/cs2-skills:source2-particle-behavior
/cs2-skills:source2-particle-control-points
/cs2-skills:source2-particle-materials
/cs2-skills:source2-particle-validation
/cs2-skills:source2-particle-reference-research

Alternatively, copy individual skill folders into .claude/skills/ for one project or ~/.claude/skills/ for one user. Claude.ai accepts one skill folder per ZIP; the Claude API accepts a ZIP or individual files through its Skills API. These surfaces do not synchronize skills with each other, and neither requires a claude.yaml file.

Validate

Run the dependency-free repository validator before publishing:

python -B tools/validate_skills.py
python -B -m unittest discover -s tools/tests -v
python -B -m unittest discover -s cs2-ag2-npc-runtime/tests -v
python -B -m unittest discover -s cs2-animgraph2-authoring/tests -v
python -B -m unittest discover -s source2-particle-control-points/scripts -p "test_*.py" -v
python -B -m unittest discover -s source2-particle-reference-research/scripts -p "test_*.py" -v
python -B -m unittest discover -s source2-particle-schema/scripts -p "test_*.py" -v
python -B -m unittest discover -s source2-particle-validation/scripts -p "test_*.py" -v
python -B -m unittest discover -s source2-particle-materials/scripts -p "test_*.py" -v
python -B source2-particle-schema/scripts/schema_catalog.py verify
python -B source2-particle-control-points/scripts/cp_contracts.py --verify
python -B source2-particle-reference-research/scripts/audit_observations.py
python -B tools/validate_skills.py
dotnet run --project cs2-server-npc-runtime/tests/ServerNpcRuntimeSkeleton.Tests.csproj -c Release --artifacts-path  --disable-build-servers
npx --yes --package=@anthropic-ai/[email protected] -- claude plugin validate . --strict

It validates portable frontmatter, descriptions, direct reference links, OpenAI metadata, Claude marketplace paths, repository safety, and the schema of the routing fixtures under evals/. Those fixtures do not themselves invoke a model; use them as a forward-evaluation corpus. The final command runs Claude Code’s official marketplace validator at the version pinned by CI.

Compatibility Evidence

All native offsets, signatures, graph layouts, tool behavior, and stock assets are build-scoped evidence rather than permanent APIs.

Area Recorded evidence Portability status
Server NPC navigation/runtime Managed architecture, framework-neutral scaffold, and offline NAV-artifact contract; no current native CNavMesh ABI, signature profile, or runtime receipt is bundled Prefer offline NAV artifacts; any native NAV read bridge requires exact binary provenance, bounded reads, isolated canary validation, and fail-closed behavior
NPC Linux typed bridge ModSharp gamedata example plus recovery procedure in linux-parameter-bridge.md; signatures were observed on 2026-08-31 and no raw RVA is used Revalidate strict uniqueness, factory distances, function entries, and live Bool/Float/ID probes after every CS2 update; Vector/Target remain unsupported
AnimGraph2 clip tooling Blender 4.1.1 and the dated CS2 tools profile in portable-tooling.md Windows CS2 toolchain; other Blender/tool versions unverified
Clip DMX frame Compiler frame rule (root-level bones permuted and rotated versus raw VRF 19.1 axes) observed in game on build 2000899, 2026-09-03; exporter converts by default (reference_dmx_frame) Proven for first-person clips with a static root bone; third-person locomotion untested
Secondary weapon animation Stock clips carry m_secondaryAnimations; the original 56 + 28-track sample compiled on build 2000899 That sample remains compile-proven only. A separate M134 integration received owner acceptance after secondary-root and world-model repairs; see weapon presentation evidence
Player-owned weapon presentation Build-scoped M249/M134 evidence covers private agent selection, separate scene/DMX parents, unified held/holster placement, charge tokens, muzzle VData and sound ownership Historical native hashes and validation limits are recorded in the presentation reference; revalidate on another build/proxy. No exhaustive clean-client matrix is claimed
Weapon identity weapon_type = VData m_szAnimClass else m_szName (shared graph controller code, build 2000899) Subclass resolution on a clean client still to be observed
Player-model porting Contract-driven guidance without a bundled dated runtime receipt Must derive and record a current official target before each port
Native particle workflows Provenance-pinned schema and control-point catalogues, portable helper tests, and separately recorded compiler/readback observations Match the installed game’s schema and tools; offline lookup and compilation do not prove runtime behavior or visual fidelity

Do not label an output current, packaged, or runtime-proven unless its machine-readable report records the exact inputs, tools, artifact hashes, and validation layer.

Licensing

Unless otherwise noted, the repository-authored content is licensed under the Apache License 2.0. This grant applies only to material the copyright holder is entitled to license. Every third-party input processed or referenced by a skill retains its own provenance, copyright, and redistribution terms.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add absildylan/cs2-skills
New to MCP? Start with the mcpskill.org guide →