{"id":15161518,"url":"https://github.com/atomicptr/godot-tscn-parser","last_synced_at":"2025-10-24T22:30:45.948Z","repository":{"id":57567335,"uuid":"327706505","full_name":"atomicptr/godot-tscn-parser","owner":"atomicptr","description":"Go library for parsing the Godot TSCN file format.","archived":false,"fork":false,"pushed_at":"2021-10-24T13:51:40.000Z","size":164,"stargazers_count":9,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T20:42:29.053Z","etag":null,"topics":["go","godot","godot-engine","godotengine","golang","tools","tres","tscn"],"latest_commit_sha":null,"homepage":"","language":"Go","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/atomicptr.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}},"created_at":"2021-01-07T19:30:26.000Z","updated_at":"2025-06-15T15:08:07.000Z","dependencies_parsed_at":"2022-09-15T05:23:02.384Z","dependency_job_id":null,"html_url":"https://github.com/atomicptr/godot-tscn-parser","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/atomicptr/godot-tscn-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicptr%2Fgodot-tscn-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicptr%2Fgodot-tscn-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicptr%2Fgodot-tscn-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicptr%2Fgodot-tscn-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomicptr","download_url":"https://codeload.github.com/atomicptr/godot-tscn-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicptr%2Fgodot-tscn-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280878370,"owners_count":26406641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["go","godot","godot-engine","godotengine","golang","tools","tres","tscn"],"created_at":"2024-09-27T00:23:06.602Z","updated_at":"2025-10-24T22:30:45.660Z","avatar_url":"https://github.com/atomicptr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godot TSCN Parser\n\n[![Travis CI](https://api.travis-ci.com/atomicptr/godot-tscn-parser.svg?branch=master)](https://travis-ci.com/atomicptr/godot-tscn-parser)\n[![Go Report Card](https://goreportcard.com/badge/github.com/atomicptr/godot-tscn-parser)](https://goreportcard.com/report/github.com/atomicptr/godot-tscn-parser)\n[![Coverage Status](https://coveralls.io/repos/github/atomicptr/godot-tscn-parser/badge.svg?branch=master)](https://coveralls.io/github/atomicptr/godot-tscn-parser?branch=master)\n\nGo library for parsing\nthe [Godot TSCN file format](https://docs.godotengine.org/en/stable/development/file_formats/tscn.html).\n\nPowered by the great [participle](https://github.com/alecthomas/participle) parser library.\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/atomicptr/godot-tscn-parser/pkg/tscn\"\n)\n\nfunc main() {\n\t// open the file\n\tf, err := os.Open(\"./path/to/my/scene.tscn\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer f.Close()\n\n\t// parse the scene, this accepts an io.Reader\n\tscene, err := tscn.ParseScene(f)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// get the node \"Sprite\" which is a child of \"Player\" which is a child of\n\t// of the root node\n\tplayerSpriteNode, err := scene.GetNode(\"Player/Sprite\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// access a field, keep in mind that TSCN files only store non default values\n\tposition := playerSpriteNode.Fields[\"position\"]\n\tfmt.Printf(\"Player/Sprite is at position %v\\n\", position)\n}\n```\n\n## FAQ\n\n### My TSCN file isn't working, can you fix it?\n\nPlease open an issue with your TSCN file.\n\nOr even better, open a pull request which adds the file to test/fixtures.\n\n### Why can't I read a certain value?\n\nGodot does not store default values in TSCN files. Which means you'll only see stuff you've added or changed yourself in\nthese files.\n\n### What are \"Volatile Nodes\"?\n\nIf you have an instanced scene in your scene, and you mark it as editable (and actually edit something), you might find\nnodes with the type \"VolatileNode\" in your tree. Since Godot doesn't store unchanged things, these nodes are a band aid\nfor this library to render a proper tree structure. You can basically ignore them.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomicptr%2Fgodot-tscn-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomicptr%2Fgodot-tscn-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomicptr%2Fgodot-tscn-parser/lists"}