Expert blueprint for horror games: sawtooth tension pacing, Director macro-AI, sensory predator AI, sanity/stress FX, and scarcity loops. Use when building psychological/survival horror, dual-brain stalker AI (cheating Director + honest LoS/sound), flashlight/fog atmosphere, or safe-room saves. Keywords: horror_game, tension_pacing, director_system, sensory_perception, sanity_system, volumetric_fog, AI_reaction_time.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-genre-horror
Expert blueprint for horror games balancing tension, atmosphere, and player agency.
Use when:
PhysicsDirectSpaceState3D.intersect_ray() for fixed-physics sync.VisibleOnScreenNotifier3D to disable processing logic.Dictionary[StringName, Resource].Resource scripts to reduce memory overhead and allow direct Inspector editing.duplicate(true) on an item's Resource when adding to inventory; if items have mutable states (ammo/durability), you will overwrite the global resource otherwise.WorkerThreadPool to prevent auto-save freezes.StringName (&"chasing") for pointer-speed comparisons.is_equal_approx() or threshold checks for deterministic triggers.SCREEN_TEXTURE; strictly use sampler2D with hint_screen_texture.visibility_range for automatic HLOD efficiency.Tween for programmatic, clean energy manipulation.load(); strictly use ResourceLoader.load_threaded_request() to prevent frame stalls.Thread and Mutex to handle background saving without stalling the main game thread.Object metadata (set_meta) for performant, decoupled AI queries.| Phase | Skills | Purpose |
|-------|--------|---------|
| 1. Atmosphere | godot-3d-lighting, godot-audio-systems | Volumetric fog, dynamic shadows, spatial audio |
| 2. AI | godot-state-machine-advanced, godot-navigation-pathfinding, godot-raycasting-queries | Hunter AI, honest LoS/sound |
| 3. Player | godot-camera-systems, godot-genre-stealth, godot-physics-3d | Lean/shake, hiding, CharacterBody3D movement |
| 4. Scarcity | godot-inventory-system | Limited battery, ammo, health |
| 5. Logic / saves | this skill's Director scripts + godot-save-load-systems | Sawtooth pacing + threaded safe-room saves |
| Fantasy focus | Load | Do NOT load |
|---------------|------|-------------|
| Atmosphere / fog / flashlight only | fog_claus_intensifier.gd, flashlight_flicker.gd | Predator AI, LoS, noise, state machine |
| Stalker / dual-brain AI | director_pacing.gd, predator_stalking_ai.gd, monster_los_check.gd, spatial_noise_emitter.gd | Sanity shaders, inventory duplicator, scare loader |
| Sanity / stress FX | sanity_manager.gd, sanity_shader_manager.gd | Inventory scarcity scripts, async scare loader |
| Scarcity / inventory truth | inventory_data_storage.gd, item_state_duplicator.gd | Fog intensifier, sanity shaders |
| Hitch-free scare assets | async_scare_loader.gd | Full Director + sanity stack |
Controls pacing so players never stay at 100% tension.
> MANDATORY read: director_pacing.gd — do not paste a one-off tension enum. Wire Director events to *near-player* investigation targets, never instant on-player teleports during quiet phases.
Honest monster senses (vision + sound) that the Director may only *hint*, never hard-cheat.
> MANDATORY reads: predator_stalking_ai.gd for dual-brain orchestration; monster_los_check.gd + spatial_noise_emitter.gd for LoS/sound. Prefer PhysicsDirectSpaceState3D.intersect_ray() over Area overlap for vision.
Distorting the world based on fear.
> Load sanity_manager.gd + sanity_shader_manager.gd for value → shake/bus/shader pipelines. Keep thresholds on is_equal_approx / bands, never sanity == 0.0.
Horror needs peaks and valleys.
Use set_meta / groups — MANDATORY: predator_stalking_ai.gd + peer godot-genre-stealth. Do not paste hiding-spot tutorials inline.
Bus LPF / volume from fear — MANDATORY: sanity_manager.gd + peer godot-audio-systems.
Threaded checkpoint I/O — MANDATORY: peer godot-save-load-systems (Thread/Mutex / WorkerThreadPool). Never sync FileAccess on the main thread in a safe room.
> LLM-ignorance rule: If a general agent would not know it before reading, load the reference — never delete expert deltas.
> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
duplicate(true) so mutable item state never aliases globals.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take thedivergentai/godot-genre-horror from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.