{"id":23100848,"url":"https://github.com/inbestigator/godact","last_synced_at":"2026-03-03T15:33:12.661Z","repository":{"id":259252487,"uuid":"876807393","full_name":"Inbestigator/godact","owner":"Inbestigator","description":"Convert React components to Godot scenes.","archived":false,"fork":false,"pushed_at":"2025-04-15T05:22:53.000Z","size":185,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-05T20:15:39.683Z","etag":null,"topics":["godot","react","react-renderer"],"latest_commit_sha":null,"homepage":"https://jsr.io/@gdx/godact","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Inbestigator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-22T15:31:33.000Z","updated_at":"2025-04-30T01:49:44.000Z","dependencies_parsed_at":"2025-01-31T02:26:25.922Z","dependency_job_id":"8aa1b620-3c37-4956-8512-99ab604b5c9e","html_url":"https://github.com/Inbestigator/godact","commit_stats":null,"previous_names":["inbestigator/godact"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Inbestigator/godact","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inbestigator%2Fgodact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inbestigator%2Fgodact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inbestigator%2Fgodact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inbestigator%2Fgodact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Inbestigator","download_url":"https://codeload.github.com/Inbestigator/godact/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inbestigator%2Fgodact/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30050466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T15:26:47.567Z","status":"ssl_error","status_checked_at":"2026-03-03T15:26:17.132Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["godot","react","react-renderer"],"created_at":"2024-12-16T23:39:00.617Z","updated_at":"2026-03-03T15:33:12.643Z","avatar_url":"https://github.com/Inbestigator.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godact\n\nConvert React components to Godot scenes and transpile Typescript/Javascript\ncode to GDScript.\n\nYou can now make an entire Godot game without touching the Godot editor, other\nthan to run it! https://github.com/Inbestigator/flappy-bird\n\nDue to the sheer number of Godot nodes (\u003e200)\n\n- **By request**: If you really want a specific node, you can either add it in,\n  or request it\n  \u003e To request a node, please open an\n  \u003e [issue](https://github.com/inbestigator/godact/issues/new) with the label\n  \u003e `node request`\n- **Others**: The rest of the registry will slowly be filled in\n\n```tsx\nimport {\n  CharacterBody2D,\n  CollisionShape2D,\n  createCircleShape2D,\n  createGodactScene,\n  createTexture2D,\n  Sprite2D,\n} from \"@gdx/godact\";\n\nfunction Player() {\n  return (\n    \u003cCharacterBody2D script=\"./player.ts\" name=\"Player\"\u003e\n      \u003cSprite2D\n        name=\"Sprite2D\"\n        texture={createTexture2D({ path: \"res://icon.svg\" })}\n      /\u003e\n      \u003cCollisionShape2D shape={createCircleShape2D()} /\u003e\n    \u003c/CharacterBody2D\u003e\n  );\n}\n\ncreateGodactScene(\u003cPlayer /\u003e, \"./player.tscn\");\n```\n\n\u003cdetails\u003e\n\n\u003csummary\u003ePlayer logic\u003c/summary\u003e\n\n```ts\n// player.ts\n\"extends CharacterBody2D\";\n\nimport { GDMethods } from \"@gdx/godact/methods\";\n\nconst SPEED = 300.0;\nconst JUMP_VELOCITY = -400.0;\n\nexport function _physics_process(delta: number) {\n  if (!GDMethods.is_on_floor()) {\n    GDMethods.velocity = GDMethods.Vector2(\n      GDMethods.get_gravity().x * delta,\n      GDMethods.get_gravity().y * delta,\n    );\n  }\n\n  if (\n    GDMethods.Input.is_action_just_pressed(\"ui_accept\") \u0026\u0026\n    GDMethods.is_on_floor()\n  ) {\n    GDMethods.velocity.y = JUMP_VELOCITY;\n  }\n\n  const direction = GDMethods.Input.get_axis(\"ui_left\", \"ui_right\");\n  if (direction) {\n    GDMethods.velocity.x = direction * SPEED;\n  } else {\n    GDMethods.velocity.x = GDMethods.move_toward(\n      GDMethods.velocity.x,\n      0,\n      SPEED * delta * (GDMethods.is_on_floor() ? 2 : 1),\n    );\n  }\n\n  GDMethods.move_and_slide();\n}\n```\n\n\u003cdetails\u003e\n\n\u003csummary\u003eTranspiled GDScript code\u003c/summary\u003e\n\n```ts\nextends CharacterBody2D\nvar SPEED = 300\nvar JUMP_VELOCITY = -400\nfunc _physics_process(delta):\n    if !is_on_floor():\n        velocity = Vector2(get_gravity().x * delta, get_gravity().y * delta)\n    if Input.is_action_just_pressed(\"ui_accept\") and is_on_floor():\n        velocity.y = JUMP_VELOCITY\n    var direction = Input.get_axis(\"ui_left\", \"ui_right\")\n    if direction:\n        velocity.x = direction * SPEED\n    else:\n        velocity.x = move_toward(velocity.x, 0, SPEED * delta * (2 if is_on_floor() else 1))\n    move_and_slide()\n```\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\nComponent status:\n\n- 1: Component created\n- 2: Started implementing props\n- 3: Minimal props in\n- 4: Ready\n- 5: Exported and available in lib\n\n| Node             | Category  | Component status | Props todo    |\n| ---------------- | --------- | ---------------- | ------------- |\n| Node             | Base      | N/A              | `multiplayer` |\n| CanvasItem       | Base      | N/A              |               |\n| Node2D           | Primitive | 5                |               |\n| Control          | Primitive | 5                |               |\n| TileMapLayer     | Visual    | 5                |               |\n| Sprite2D         | Visual    | 5                |               |\n| Line2D           | Visual    | 5                |               |\n| AnimatedSprite2D | Visual    | 5                |               |\n| Camera2D         | Visual    | 5                |               |\n| CollisionShape2D | Physics   | 5                |               |\n| CharacterBody2D  | Physics   | 5                |               |\n| RigidBody2D      | Physics   | 5                |               |\n| StaticBody2D     | Physics   | 5                |               |\n| AnimatableBody2D | Physics   | 5                |               |\n| Area2D           | Physics   | 5                |               |\n| PhysicalBone2D   | Physics   | 5                |               |\n| Button           | Controls  | 3, 5             | `shortcut`    |\n| TextEdit         | Controls  | 5                |               |\n| Label            | Controls  | 5                |               |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finbestigator%2Fgodact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finbestigator%2Fgodact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finbestigator%2Fgodact/lists"}