For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 ISOdownload here

  • 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.


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:

  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 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).


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:


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 for support.

Last updated