All skills
thedivergentai avatar

/godot-genre-shooter

@9d6e91e

Expert blueprint for TPS/hybrid shooters: soft-lock aim assist, cover validation rays, SpringArm TPS camera, and genre routing to FPS sibling for viewmodel/hitscan feel. Use for third-person/cover shooters and hybrids. Keywords: TPS, soft_lock, cover, SpringArm3D, hybrid shooter, aim assist β€” not FPS-only movement.

Use this Skill: https://skilld.dev/gh/thedivergentai/gd-agentic-skills/godot-genre-shooter

This session only. Nothing lands on disk.

SKILL.md

β‰ˆ85 tokens always: the name and description. β‰ˆ2.4k when used: this file. β‰ˆ1.8k more on demand in 3 files.

Core Loop

Engage β†’ Aim (soft-lock/cover) β†’ Fire β†’ Confirm β†’ Acquire Next

NEVER Do (TPS / hybrid)

  • NEVER put FPS viewmodel/bob/look recipes in this skill β€” route to shooter-fps.
  • NEVER use _process() for hit registration β€” _physics_process + space-state queries.
  • NEVER trust the client for authoritative hits β€” server validate / rewind.
  • NEVER use Area3D overlap for bullets β€” ray / shape queries.
  • NEVER hardcode weapon stats in logic β€” WeaponData Resources.
  • NEVER skip excluding the shooter's RID on queries.
  • NEVER use TCP for shooter net sync β€” ENet/UDP.

MANDATORY scripts (non-FPS paths)

Read before implementing the matching system:

  1. soft_lock_aim_assist.gd β€” controller/hybrid assist & sticky aim
  2. cover_validator_rays.gd β€” cover / peek validity rays
  3. tps_camera_spring_arm.gd β€” SpringArm3D TPS camera collision

Also available: advanced_weapon_controller.gd (shared weapon controller β€” prefer FPS skill for FPS feel), shooter_patterns.gd, projectile.gd, weapon_recoil_pattern.gd (spray Resource), lag_compensator.gd (server rewind).

Decision trees

Camera / stance

Need Action
Over-shoulder TPS tps_camera_spring_arm.gd
Cover check before peek-fire cover_validator_rays.gd
Soft-lock / assist soft_lock_aim_assist.gd
True FPS digsite β†’ godot-genre-shooter-fps

Fire mode

Need Action
Hitscan / projectile theory Shared WeaponData + space-state; FPS implementation details in shooter-fps
Pooled projectiles projectile.gd / patterns script
Explosion radius ShapeCast3D pattern in shooter_patterns.gd

Net

Need Action
Client juice Predict tracers locally
Damage Server authoritative; show no-reg on mismatch
Net rewind / lag comp lag_compensator.gd + advanced-meta-systems.md
Learnable spray weapon_recoil_pattern.gd

Weapon selection (short)

Hitscan for rifles/SMGs; physical projectiles for rockets/arrows; balance in WeaponData Resources (.tres), never hardcoded on nodes.

Archetype ROF Damage Implementation
SMG High Low Hitscan + tight vertical spray
Sniper Low High Hitscan + tracer
Shotgun Burst Medium Multi-pellet spread, <10m
Rocket Slow High projectile.gd + shape AoE

Gunplay theory β†’ tps-gunplay-core.md. Net rewind β†’ advanced-meta-systems.md.

Recoil and feel (WHY)

Apply kick to camera rotation and spread bloom, not weapon mesh alone. Learnable spray via weapon_recoil_pattern.gd. Layer gunfire: mechanical + shot + reverb tail on separate 3D players.

Multiplayer (short)

Client predicts VFX/tracers; server validates hits (rpc + rewind). Never trust client damage. ENet/UDP, not TCP. Server wins on mismatch β€” show no-reg feedback.

Reference

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.

Official Documentation

  • Ray-casting β€” PhysicsDirectSpaceState3D.intersect_ray hitscan queries, exceptions, and collision masks for frame-rate-independent fire.
  • Physics introduction β€” layers/masks, _physics_process timing, and body types that keep hit registration deterministic.
  • PhysicsDirectSpaceState3D β€” direct intersect_ray / intersect_shape for high-frequency shots without RayCast3D node overhead.
  • PhysicsRayQueryParameters3D β€” from/to, exclude RIDs, and collision_mask for shooter-owned hitscan queries.
  • CharacterBody3D β€” move_and_collide projectile bodies with gravity, bounce, and lifetime.
  • SpringArm β€” collision-aware TPS camera boom and shoulder offset without clipping into cover.
  • Using decals β€” perspective-correct bullet holes and impact marks instead of Sprite3D billboards.
  • Controllers, gamepads, and joysticks β€” stick look input that aim-assist friction/magnetism modulates.
  • High-level multiplayer β€” RPC authority and unreliable modes for fire events with server-validated hits.
  • Camera3D β€” FOV punch, aim rays from -global_basis.z, and h_offset for TPS shoulder swap.
  • PhysicsShapeQueryParameters3D β€” sphere/shape queries for rocket/grenade AoE without Area3D spam.
  • AudioStreamPlayer3D β€” layered shot/mechanical/tail players for punchy spatial gunfire.

Related Skills

Prerequisites
  • godot-physics-3d β€” CharacterBody3D/RigidBody3D, collision layers, and direct space queries that hitscan and projectiles depend on.
  • godot-input-handling β€” look/fire/reload action maps and gamepad stick curves before aim assist and recoil kick.
  • godot-camera-systems β€” FPS/TPS camera rigs, FOV, and SpringArm patterns that weapon kick and soft-lock rotate.
  • godot-project-foundations β€” Resource-based WeaponData, scene structure, and import defaults before balancing archetypes.
Complements
  • godot-combat-system β€” damage events, hit zones, and health pipelines that consume shooter take_damage results.
  • godot-raycasting-queries β€” reusable ray/shape query helpers for cover checks, LOS, and hitscan without duplicating query setup.
  • godot-audio-systems β€” bus routing and 3D attenuation for mechanical + shot + reverb-tail gunfire layers.
  • godot-multiplayer-networking β€” ENet peers, RPC modes, and authority so fire is predicted client-side and damage is server-validated.
  • godot-adapt-single-to-multiplayer β€” prediction, reconciliation, and lag-compensation shells around hitscan validation.
  • godot-particles β€” muzzle flash, tracers, and impact bursts that sell gunplay without blocking the fire path.
Downstream / consumers
  • godot-monte-carlo-balancer β€” simulate TTK, spray patterns, and weapon asymmetry matrices so archetype damage/recoil stay competitive.
  • godot-genre-shooter-fps β€” FPS-specialized movement and viewmodel polish that builds on this genre gunplay lattice.
  • godot-genre-battle-royale β€” large-scale matches that reuse hitscan/projectile combat inside drop/zone loops.
Master
  • godot-master β€” library router and mirrored module entry for cross-skill discovery.

Source: SKILL.md on GitHub

1 warning17d4 checks Β· Risk SAFE
  • Gen Agent Trust Hub17d

    The skill provides a comprehensive set of Godot script templates and architectural guidance for implementing third-person shooter mechanics. No security risks or malicious behaviors were detected.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW Β· No issues

  • Runlayer7mo

    3/3 files flagged

Signed by skilld at 9d6e91e. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 weeks ago.

Activeupdated 2 months ago

README badge

README badge for thedivergentai/gd-agentic-skills/godot-genre-shooter