World Explorer
World Explorer is a GUI tool designed for visually exploring and manipulating the state of worlds. It is available in the MUD TypeScript templates starting with version 2.2.
Usage
If you are running locally a MUD TypeScript template version 2.2 or later, the URL for World Explorer is http://localhost:13690 (opens in a new tab).
CLI options
To use the explorer with different command-line options, use this process:
-
In the mprocs screen, go down to the explorer process.
-
Type
x
to stop the default explorer. -
In a different command-line window, go to
packages/contract
. -
Run the explorer using
pnpm explorer <options>
.
The World Explorer accepts the following CLI options:
Option | Description | Default value |
---|---|---|
--worldAddress | The address of the world to explore | None |
--worldsFile | Path to a worlds configuration file (used to resolve world address) | worlds.json |
--indexerDatabase | Path to your SQLite indexer database | indexer.db |
--chainId | The chain ID of the network | 31337 |
--port | The port on which to run the World Explorer | 13690 |
--dev | Run in development mode | false |
Installation (pre-2.2 MUD)
-
Install the Indexer and World Explorer packages in the project root.
pnpm install @latticexyz/store-indexer@latest -w pnpm install @latticexyz/explorer@latest -w
-
Edit
mprocs.yaml
to add theindexer
andexplorer
processes.mprocs.yamlprocs: client: cwd: packages/client shell: pnpm run dev contracts: cwd: packages/contracts shell: pnpm mud dev-contracts --rpc http://127.0.0.1:8545 anvil: cwd: packages/contracts shell: anvil --base-fee 0 --block-time 2 indexer: cwd: packages/contracts shell: rimraf $SQLITE_FILENAME && pnpm sqlite-indexer env: RPC_HTTP_URL: "http://127.0.0.1:8545" FOLLOW_BLOCK_TAG: "latest" SQLITE_FILENAME: "indexer.db" explorer: cwd: packages/contracts shell: pnpm explorer
-
Restart
pnpm dev
. -
Browse to World Explorer (opens in a new tab).
Contributing
To contribute to World Explorer, first get familiar with the MUD contribution guidelines (opens in a new tab). Then, set up the development environment for World Explorer:
-
Create a local development setup:
git clone https://github.com/latticexyz/mud.git cd mud pnpm install pnpm build
-
Change to the example directory.
cd examples/local-explorer/
-
Edit the explorer line in
mprocs.yaml
mprocs.yamlprocs: client: cwd: packages/client shell: pnpm run dev contracts: cwd: packages/contracts shell: pnpm mud dev-contracts --rpc http://127.0.0.1:8545 anvil: cwd: packages/contracts shell: anvil --base-fee 0 --block-time 2 indexer: cwd: packages/contracts shell: rimraf $SQLITE_FILENAME && pnpm sqlite-indexer env: RPC_HTTP_URL: "http://127.0.0.1:8545" FOLLOW_BLOCK_TAG: "latest" SQLITE_FILENAME: "indexer.db" explorer: cwd: packages/contracts shell: pnpm explorer --env development
-
Install the libraries and run the application.
pnpm install pnpm dev
-
In a separate command-line window, go to
mud/package/explorer
and modify that package. The code should rebuild automatically after you save changes.If you want to modidy the user interface code, it is at
src/app/worlds/\[worldAddress\]
.