> For the complete documentation index, see [llms.txt](https://pixelbot-docs.gitbook.io/pixelbot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pixelbot-docs.gitbook.io/pixelbot/configuration/virtualmachine.md).

# 1. Virtual Machine

The game has to run inside a Virtual Machine — this keeps the bot and any anticheat completely separate. This page walks you through creating that VM using a well-tested community project.

> The setup takes about **20-30 minutes** end-to-end. Most of it is Windows installing itself — you only click a few things.

***

## Before you start

Make sure you have:

* **Windows 10 Pro or Windows 11 Pro** on your host PC (Home edition does not work). The VM itself will always run Windows 10.
* **Windows language: English (US)** on both host and VM — other languages (e.g. Turkish) can cause installation issues
* **PC with an NVIDIA, Intel or AMD GPU**
* **Latest GPU driver** downloaded straight from the manufacturer's site (NVIDIA.com or Intel.com), not from Windows Update
* **Virtualization enabled** in the BIOS (most PCs built in the last 5 years have it on by default)
* **At least 200 GB free disk space** and **10 GB of RAM** to spare
* **A Windows 10 ISO** — [download here](https://drive.google.com/file/d/1NFAf0-JpN8vwtmG2XMYYUSHATXioPqAB/view?usp=sharing)
* **A powered monitor or an HDMI dummy dongle** connected to the GPU

> 💡 Not sure about virtualization? Search "System Information" in Windows and look for "Virtualization-based security". If it shows "Running", you're good.

***

## What you'll install

We use a community project called **Easy-GPU-PV** by jamesstringer90 to create the VM with GPU sharing. It's the most reliable option for Black Desert.

| Tool            | Where it runs | What it does                     |
| --------------- | ------------- | -------------------------------- |
| **Easy-GPU-PV** | Your host PC  | Creates the VM with GPU sharing. |
| **Sunshine**    | Inside the VM | Streams the game from the VM.    |
| **Moonlight**   | Your host PC  | Shows the VM on your monitor.    |

Parsec is supported as an alternative to Sunshine + Moonlight if you prefer it — see [Streaming & Input](/pixelbot/configuration/streaming.md).

***

## Step 1 — Create the VM

1. Download the Easy-GPU-PV repository as a ZIP: 👉 <https://github.com/jamesstringer90/Easy-GPU-PV> (Green **Code** button → **Download ZIP**)
2. Extract it anywhere on your PC. Keep the whole folder together.
3. Open **PowerShell ISE as Administrator** and run:

   ```
   Set-ExecutionPolicy unrestricted
   ```
4. Open `PreChecks.ps1` in PowerShell ISE and run it (green play button). It checks your system and shows your GPU name — write it down, you'll need it.
5. Open `CopyFilesToVM.ps1` in PowerShell ISE. At the top of the file, edit these fields:

   | Field                             | What to put                                              |
   | --------------------------------- | -------------------------------------------------------- |
   | `VMName`                          | A name for the VM (e.g. `BDO`)                           |
   | `SourcePath`                      | Full path to the Windows 10 ISO you downloaded           |
   | `SizeBytes`                       | `150gb` (enough for BDO + updates)                       |
   | `MemoryAmount`                    | `6GB` (or more if you have lots of RAM)                  |
   | `CPUCores`                        | `4` (or more if you have 8+ cores)                       |
   | `GPUName`                         | `AUTO`                                                   |
   | `GPUResourceAllocationPercentage` | `30` (raise it only if VM graphics stutter)              |
   | `Username`                        | A name for the VM user (must be different from `VMName`) |
   | `Password`                        | Any password (cannot be empty)                           |
   | `Autologon`                       | `true`                                                   |

   Leave everything else as it is.
6. Run `CopyFilesToVM.ps1`. It takes 10-20 minutes. When it finishes, your VM exists and Windows is installed inside.

> ⚠️ If the script errors with *"Cannot bind argument to parameter 'Path'"*, your ISO file path is wrong. Double-check the full path and that the file actually exists.

***

## Step 2 — Set up streaming

At this point you have a working VM, but nothing to see it with. Follow the [Sunshine Setup](/pixelbot/configuration/sunshine.md) guide to install the streaming software.

If you'd rather use Parsec, install it inside the VM and on your PC — no extra setup needed from this docs (go straight to [Streaming & Input](/pixelbot/configuration/streaming.md)).

***

## Keeping the VM up to date

Whenever you update your GPU drivers on the host PC:

1. Reboot the host.
2. Open PowerShell as Administrator in the Easy-GPU-PV folder.
3. Run:

   ```
   .\Update-VMGpuPartitionDriver.ps1 -VMName "YOUR_VM_NAME" -GPUName "AUTO"
   ```

***

## Troubleshooting

| Problem                              | What to do                                                                                           |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| Script says ISO path is null         | Check the `SourcePath` field — it must be the full path to the `.iso` file, and the file must exist. |
| VM seems stuck                       | Be patient — the first Windows installation takes 10-20 minutes.                                     |
| GPU error inside the VM              | Reboot the host, then re-run `Update-VMGpuPartitionDriver.ps1`.                                      |
| "User is not an administrator" error | Your `VMName` and `Username` are the same. Make them different and re-run.                           |
| Script won't start                   | Run `Set-ExecutionPolicy unrestricted` in PowerShell as Admin.                                       |

***

## Need Help?

Join our [Discord](https://discord.gg/3pMUfYXjra) for support.
