{"adoption": {"forks": 418, "observed_at": "2026-08-28T04:06:21.250229+00:00", "stars": 2165}, "canonical_url": "https://ross.abutalabs.com/products/ultimate-2d-controller", "card": {"archived": false, "artifact_type": "library", "description": "A great starting point for your 2D controller. Making use of all the hidden tricks like coyote, buffered actions, speedy apex, anti grav apex, etc", "domain": ["gaming-tools"], "enriched": true, "function": ["game-engine", "simulation"], "health_score": 20, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Matthew-J-Spencer/Ultimate-2D-Controller"], "name": "Matthew-J-Spencer/Ultimate-2D-Controller", "platform": ["game-engine", "cross-platform"], "pushed_at": "2023-10-08T14:35:58+00:00", "repo": "Matthew-J-Spencer/Ultimate-2D-Controller", "stars": 2165, "tags": ["unity", "2d-controller", "character-controller", "platformer", "csharp", "game-mechanics", "coyote-time", "input-buffering", "game-development"], "topics": [], "urls": [], "use_cases": ["build a 2D platformer character controller in Unity", "add coyote time and jump buffering to my game", "make responsive 2D movement with apex modifiers", "starting point for player movement code in Unity 2D", "implement anti-gravity apex and speedy apex jumps", "learn hidden tricks for smooth 2D game feel"], "what_it_is": "A Unity C# 2D character controller template implementing polished platformer movement tricks like coyote time, action buffering, and apex modifiers. It serves as a starting point for building responsive 2D player movement in Unity games.", "when_to_avoid": ["you need 3D character movement", "you want moving platforms, slopes, ledges, or dash features — those are in the paid Patreon version", "you're not using Unity or C#"], "when_to_choose": ["you're building a 2D platformer in Unity and want polished, game-feel-focused movement out of the box", "you want to learn standard techniques like coyote time and input buffering", "you need an MIT-licensed controller you can adapt for production"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ultimate-2d-controller", "repo": "Matthew-J-Spencer/Ultimate-2D-Controller", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "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:06:21.250229+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.250229+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:49:58.628594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9fba45cb33eff724d46eb18232ad62a39433716544469058b1afd161dfcb5a5", "fetched_at": "2026-08-28T04:06:21.250229+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Matthew-J-Spencer/Ultimate-2D-Controller"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1698, "days_push": 1060, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}