Running BlockAssist on a Remote Linux Desktop
This guide shows non-technical users how to set up and run BlockAssist on a remote Ubuntu Desktop droplet at DigitalOcean and stream it with Moonlight to any laptop, phone, tablet, or TV.
Note: this path is highly experimental and not officially supported. Feel free to adapt the steps and share any issues or improvements you discover.
Step 1: Creating your droplet
Sign in to DigitalOcean and click Create → Droplet.
Under Marketplace, choose Ubuntu Desktop (GNOME) 22.04 LTS.
Select a plan:
Minimum: 4 vCPU / 16 GB RAM
Recommended: 8 vCPU / 32 GB RAM for smoother world generation and local training
Add your SSH key, pick the nearest region, and click Create Droplet.
Note the droplet’s public IP, which you will use for SSH, VNC, and Moonlight.
Step 2: First-time desktop access
SSH to the droplet as root:
ssh root@<DROPLET_IP>
The first-login banner shows a random VNC password. Copy it.
Give the pre-installed gui user sudo rights:
sudo usermod -aG sudo gui
sudo reboot
Open any VNC client and connect to
<DROPLET_IP>:5901
using the password from step 1. You will only need VNC again if Sunshine stops working.
Step 3: Installing dependencies
You run these commands once. To record more episodes later, skip to Step 5.
In the VNC desktop, open Terminal and install the build tools:
sudo apt update
sudo apt install -y make build-essential gcc \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libncursesw5-dev xz-utils tk-dev \
libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev curl git
Clone BlockAssist:
git clone https://github.com/gensyn-ai/blockassist.git ~/blockassist
cd ~/blockassist
Python and Node
Let pyenv
and nvm
read the exact versions pinned in the repo.
# install pyenv
curl https://pyenv.run | bash
exec $SHELL
pyenv install $(cat .python-version)
pyenv global $(cat .python-version)
# install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
exec $SHELL
nvm install $(cat .nvmrc)
Project packages
pip install --upgrade pip
pip install -r requirements.txt readchar
corepack enable # enables Yarn
yarn install --frozen-lockfile
Step 4: Streaming with Sunshine and Moonlight
Install Sunshine:
wget -O sunshine.deb \
https://github.com/LizardByte/Sunshine/releases/download/v0.23.1/sunshine-ubuntu-22.04-amd64.deb
sudo apt install ./sunshine.deb
systemctl --user enable --now sunshine
Open its web UI (
http://localhost:47990
) in the VNC browser and set an admin password.Allow GameStream ports:
sudo ufw allow 47984/tcp 47989/tcp 48010/tcp
sudo ufw allow 47998:48002/udp 47990/tcp
On your local device install Moonlight, add the droplet’s IP, enter the PIN shown, and pair. You can now close the VNC client and use Moonlight for the rest of this guide.
Step 5: Running BlockAssist
In the Moonlight stream, open Terminal:
cd ~/blockassist
pyenv exec python run.py
When prompted, paste your Hugging Face write-enabled access token so your trained model is uploaded to the leaderboard.
A browser tab opens for Gensyn Testnet login. Finish sign-up or log-in, then return to Terminal.
Wait until two Minecraft windows appear, then press ENTER in Terminal three times. Pressing too early can cause a
no data
error.When the mission loads, click the Minecraft window, press ENTER, and play:
Break blocks (left-click) and place blocks (right-click).
Select tools or blocks with number keys 1-9.
Move with W A S D.
When you are done, press ESC, switch back to Terminal, and press ENTER until you see
Stopping episode recording
.Training starts automatically. Leave Moonlight open until
Training complete
appears.Check your stats on the BlockAssist Leaderboard. Allow a few minutes for them to appear.
Troubleshooting
Error while installing packages
In the Chat panel press Cmd + L, then type Help me fix this error and add Terminal context.
BlockAssist launches but will not run
In Chat type Look at my logs folder… and follow the suggestions.
Mouse will not turn or view is stuck
Make sure you are playing through Moonlight, not VNC.
Mission times out while loading
Upgrade the droplet to at least 8 vCPU / 32 GB RAM.
Last updated