{"id":45883979,"url":"https://github.com/CPunch/gopenfusion","last_synced_at":"2026-03-13T02:01:06.740Z","repository":{"id":126982610,"uuid":"610918182","full_name":"CPunch/gopenfusion","owner":"CPunch","description":"A toy implementation of a FusionFall landwalker server","archived":false,"fork":false,"pushed_at":"2024-03-03T19:14:41.000Z","size":232,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-15T08:38:48.355Z","etag":null,"topics":["docker","fusionfall","go","golang","mmo","mmorpg-server","reverse-engineering"],"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/CPunch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2023-03-07T18:39:51.000Z","updated_at":"2026-01-19T17:45:30.000Z","dependencies_parsed_at":"2023-12-05T03:31:21.471Z","dependency_job_id":"a02db0c6-b7fa-40b3-b78e-bae0cbf27fc7","html_url":"https://github.com/CPunch/gopenfusion","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CPunch/gopenfusion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPunch%2Fgopenfusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPunch%2Fgopenfusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPunch%2Fgopenfusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPunch%2Fgopenfusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CPunch","download_url":"https://codeload.github.com/CPunch/gopenfusion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPunch%2Fgopenfusion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30454982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"online","status_checked_at":"2026-03-13T02:00:07.565Z","response_time":60,"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":["docker","fusionfall","go","golang","mmo","mmorpg-server","reverse-engineering"],"created_at":"2026-02-27T15:00:27.364Z","updated_at":"2026-03-13T02:01:06.731Z","avatar_url":"https://github.com/CPunch.png","language":"Go","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# gopenfusion\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/CPunch/gopenfusion/actions/workflows/tests.yaml\"\u003e\u003cimg src=\"https://github.com/CPunch/gopenfusion/actions/workflows/tests.yaml/badge.svg?branch=main\" alt=\"Workflow\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/CPunch/gopenfusion/blob/main/LICENSE.md\"\u003e\u003cimg src=\"https://img.shields.io/github/license/CPunch/gopenfusion\" alt=\"License\"\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://asciinema.org/a/625524\" target=\"_blank\"\u003e\u003cimg src=\"https://asciinema.org/a/625524.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nA toy implementation of the [Fusionfall Packet Protocol](https://openpunk.com/pages/fusionfall-openfusion/) (see: `cnet/`) and accompanying services, written in Go.\n\n## Landwalker demo\n\nAn implementation of a landwalker server is located in `login/` \u0026\u0026 `shard/`. This includes a functional login server and a dummy shard (supporting the minimum amount of packets necessary). There is minimal support for NPCs, and minimal support for player interaction (chat \u0026 player movement being mostly it).\n\nStartup the environment using\n\n```sh\n$ chmod +x ./build.sh \u0026\u0026 ./build.sh\n$ docker compose up\n```\n\nThe environment consists of a shard service, login service, redis \u0026\u0026 postgres containers. redis is used to pass login metadata between the login and shard services, while postgres is just used to store player accounts and characters.\n\nlogin server is hosted at `127.0.0.1:23000`, just join from your [favorite client](https://github.com/OpenFusionProject/OpenFusion/releases/latest)\n\n## Generating structures\n\nDump and decompile the `Assembly - CSharp.dll` assembly from the fusionfall main.unity3d, using a tool like [ilspycmd](https://www.nuget.org/packages/ilspycmd/). The full output source can then be passed to `genstructs.py` script located in `tools/`, which will handle scraping constants and calculating structure padding. See the script for details on usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCPunch%2Fgopenfusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCPunch%2Fgopenfusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCPunch%2Fgopenfusion/lists"}