One simulation runs in the browser, server, and RL environment
World of ClaudeCraft uses the same game core in 3 places: an offline browser world, an authoritative multiplayer server, and a headless reinforcement-learning environment. The simulation runs at a fixed 20 Hz and routes randomness through a seeded generator. Renderer and interface code talk through an IWorld boundary rather than reaching into one concrete host. That avoids maintaining a second simplified world for agents.
The player-facing scope is much larger than the architecture summary suggests. The README describes 9 classes, dungeons, raids, professions, guilds, arenas, a player market, achievements, native desktop and mobile shells, and 22 locales. Our clone contained 14,885 files and about 2,760,398 source lines. This is closer to a live game studio repository than a tutorial. Reading one subsystem can be rewarding, but nobody should expect to understand the whole tree during a weekend fork.
The 31-second build hides a 2.25 GB checkout
Our lab cloned commit 57025e0 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The repository occupied 2,253.5 MB before dependency installation, already larger than many complete development environments. Pnpm finished in 49 seconds and reported 1 installed package, while the resulting dependency area used 1,249 MB. That unusual package count comes directly from the lab record; we are not recasting it as a normal dependency inventory.
The production build succeeded in 31 seconds. That is an encouraging result for such a wide TypeScript project, although it covers compilation rather than a running multiplayer world. The scan found a Dockerfile, a Compose file, 6 CI workflows, and a tests directory. Build success says nothing about Postgres migrations, account flows, WebSocket behavior, the wiki service, native packages, or optional economy services under live load.
What happened when we ran it
Our test command did not finish before the 900-second limit. The tail showed a connection refusal at 127.0.0.1:3000, then reported surface_texture_ktx2.test.ts passing 24 tests in 48 ms. We cannot tell from those final lines which earlier test expected the local service, how much of the full suite completed, or whether starting another process would have resolved it. The result is a timeout, not a pass with one harmless warning.
Self-hosting starts with Compose and ends with operations
The shortest multiplayer path copies .env.example, sets a long Postgres password, and runs Docker Compose. Port 8787 serves accounts, characters, and the world. Remote deployments must put TLS in front, proxy WebSockets, and keep health and metrics endpoints away from the public edge. The documentation warns never to enable ALLOW_DEV_COMMANDS=1 in production because it exposes the cheat commands used by test bots.
Development outside Compose needs Node.js 26 and pnpm 10.34.5 according to the current contributor guide. Postgres 16 listens on a separate development port, while the game server and client run as separate processes. The example environment continues past a database password into wiki credentials, retention rules, email, media storage, and optional marketplace services. A private server can leave many integrations disabled, but its operator still owns updates, backups, abuse controls, and player data.
MIT covers the code, not every asset in a fork
The repository's source code is MIT licensed, yet the README carves out several media categories. Purchased CraftPix ability icons cannot be redistributed under the project grant. Some sound effects are noncommercial, commissioned store and prestige art reserves its rights, and third-party brand marks keep their owners' terms. The credits register is the source of truth, and the README says an unrecorded media asset should not be treated as free.
A public fork therefore needs an asset audit even though GitHub labels the repository MIT. The 2,253.5 MB checkout makes that more than a paperwork footnote because media is a meaningful part of what ships. Reusing simulation code is straightforward under MIT; redistributing the complete branded game is a different proposition. Replace excluded files, obtain matching licenses, and remove the World of ClaudeCraft and Levy Street branding before assuming a commercial fork is clean.
Optional Solana features still shape the product
Players can use the game without a wallet, according to the README. The hosted design nevertheless includes a Solana-linked $WOC balance, cosmetic holder status, daily rewards, a store currency, and a player marketplace. Version 0.40.1 release notes say the hosted Exchange moved live, while the self-host configuration keeps the market disabled unless an operator supplies its services and enables it.
That split means the code carries payment, wallet, marketplace, and legal surfaces even when a server leaves them dark. Security reports must be private, and the policy names authentication, tokens, anti-cheat, admin tools, payments, and wallets as sensitive areas. Teams that want a traditional MMO without crypto should confirm that disabled features stay absent from their interface and operating procedures.
Daily activity does not make pre-1.0 code settled
GitHub recorded 2,213 stars, 705 forks, and 407 combined issues and pull requests when fetched. The last push was August 29, 2026, and new reports and pull requests arrived that day. Release v0.40.1 was published August 26. Those dates show an active release process; the combined open count is not a defect count. The security policy still calls the project pre-1.0 and supports only the latest release plus the active release branch.
One current issue investigates memory retained after WebGL context loss and renderer rebuilds. The report presents production observations and a hypothesis rather than claiming a proven cause. It also shows the kind of client problem a live game encounters. World of ClaudeCraft is credible to play, but running or changing it responsibly requires more patience than its one-command hosting headline suggests, especially when our own test process was unfinished after 15 minutes.

