{"adoption": {"forks": 155, "observed_at": "2026-08-28T04:03:37.720281+00:00", "stars": 1111}, "canonical_url": "https://ross.abutalabs.com/products/regoap", "card": {"archived": false, "artifact_type": "library", "description": "Generic C# GOAP (Goal Oriented Action Planning) library with Unity3d examples", "domain": ["artificial-intelligence", "simulation"], "enriched": true, "function": ["game-engine", "simulation", "machine-learning"], "health_score": 67, "homepage": null, "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["luxkun/ReGoap"], "name": "luxkun/ReGoap", "platform": ["cross-platform", "game-engine"], "pushed_at": "2026-04-21T19:42:00+00:00", "repo": "luxkun/ReGoap", "stars": 1111, "tags": ["goap", "goal-oriented-action-planning", "npc-ai", "unity", "godot", "csharp", "gamedev", "a-star-planning", "game-development"], "topics": ["unity", "goap", "ai", "gamedev"], "urls": [], "use_cases": ["implement NPC AI with goal-oriented action planning in Unity", "create emergent enemy behavior without hardcoded state machines", "build simulation agents that replan when world state changes", "define agent goals and actions with preconditions and effects in C#", "use GOAP planning in Godot games", "model inventory and resource-driven NPC decisions like crafting or gathering"], "what_it_is": "ReGoap is a generic C# GOAP (Goal Oriented Action Planning) library with adapters for Unity and Godot. It provides an engine-agnostic planner core that uses A* search to build action sequences for agents based on goals, actions, memory, and sensors.", "when_to_avoid": ["you need simple scripted enemy behavior that a state machine handles fine", "you want a visual behavior tree editor or node-based AI authoring", "your project is not in C# or does not use Unity/Godot", "you need machine-learning-driven agents rather than symbolic planning"], "when_to_choose": ["you want flexible, emergent NPC behavior instead of behavior trees or switch-based AI", "you need a reusable, engine-agnostic GOAP core with Unity or Godot integration", "your agents must replan dynamically in response to world changes", "you need comparator-based conditions for counts, thresholds, and inventory logic"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/regoap", "repo": "luxkun/ReGoap", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.720281+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.494553+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4da194dc26906b8be13f30694ec8fd6c924c9717902ed0e0e80e8e053d73101c", "fetched_at": "2026-08-28T04:03:37.720281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/luxkun/ReGoap"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3575, "days_push": 134, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}