Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Successfully running Roblox (Microsoft Store version) on my Windows 11 VM

Featured Replies

Ok after much trial and error I have finally got the UWP Roblox version to run on my Win11 VM, running on a Intel 11700k cpu. My 2080ti GPU, NVME SSD & MB NIC are bond to VFIO also.

 

Please understand I am by no means an expect and it’s been the hard work of others that have got me this far, It’s been nothing but guessing and trial and error on my end….lol

Basically, when opening UWP Roblox, it starts but then closes after 20secs with no error etc. So, I applied XML edits that removed the “Virtual Machine” flag from  Task manger but still same issue.

 

So after scouring through the Unraid forums and google I found information regarding <qemu:commandline> XML commands found here

https://github.com/zhaodice/qemu-anti-detection/issues/56  Basically, if the “model=0” was applied to the (added) <qemu:commandline> commands within the XML it allowed Roblox to work but with severe performance losses all round making the VM unusable.

 

Further scouring lead, me to

which allowed me to change the “model” without the <qemu:commandline> commands section. So, a big SHOUT!!! out to @mackid1993 who’s hard efforts got me the result I required once again.

 

What I ended up doing was changing the </cpu> section of the xml based on the information provided from running the “virsh capabilities” cmd within the unraid console which revealed “<model>Skylake-Client-noTSX-IBRS</model>” but “-noTSX-IBRS” section resulted in severe VM performance loss also.

 

Changing it to  <model fallback='allow'>Skylake-Client</model> has resulted in everything working better than it has ever before in my VM, seriously no joke, everything just works better now, I’m now seeing the AAA games really pushing the GPU now instead of the CPU maxing out. I have no idea why this is the case but it’s working.

 

So, I’m sharing what has worked for me in the hope it helps others @bmartino1

 

My original ,cpu> xml section was:

  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
  </cpu> 

 

Which now is the following:

  <cpu mode='custom' match='exact' check='none'>
    <model fallback='allow'>Skylake-Client</model>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <feature policy='disable' name='hypervisor'/>
    <feature policy='require' name='vmx'/>
  </cpu> 

 

The <feature policy='disable' name='hypervisor'/> from what I understand removed the Virtual Machine Flag seen in Task Manger and is required for Roblox to work

 

<feature policy='require' name='vmx'/> This allows virtualization to be run within the VM, I require this to run “Bluestacks android emulator”

 

Hope this helps others!

Edited by wacko37

Solved by wacko37

  • 2 weeks later...
  • Author

Further testing of this VM setup has brought about other issues as I'm now having severe stability issues on the VM when gaming with this "custom" CPU passthrough method.

 

I have discussed this issue on another thread

 

I'm not exactly sure why but after 20+ mins of solid gaming without any issues the VM starts to lag hard, it never locks up totally but FPS drop to 10 FPS. Sometimes the VM recovers after few minutes but it quickly drops to 10fps again, other times the FPS drop and then starts bouncing between 10 to 60fps ( have set a global limit of 60fps ) but it never fully recovers in any games until a fully shutdown and reboot of the VM.

 

There seems to be no specific reason for it, as the VM was working absolutely perfectly with heavy loads before the FPS drops. Changing settings within the game has zero effect on this outcome or how the VM runs in general. I've mainly been using GTA5 to test but it doesn't matter the game at all.

 

I reverted back to the standard CPU “host-passthrough” mode applied by default in Unraid to test. I can see the moments where the VM starts to struggle but it always recovers quickly and FPS come back up, settings within the game most definitely have an effect on stability in this type of CPU passthrough.

 

I'm stuck in a conundrum, with default CPU mode = host-passthrough my VM is stable and works a treat but Roblox crashes after 20sec without error.

On the other hand, with CPU mode = custom Roblox works ok but my VM has delayed stability issues causing lagging in any game.

 

I have very limited understanding of what these CPU modes are actually doing to allow Roblox to work.  

 

Is there anyone here with the expertise/knowledge that could help explain or even fix this issue I’m now faced with. I truly believe somehow its possible to retain “host-passthrough” mode and apply some sort of tweak that would appease Roblox.

  • 1 month later...
  • Author
  • Solution

Hi Community, back again but this time it’s very good news.

 

Basically, I’ve gone full circle and now back on (<cpu mode='custom') I’ve been running this setup for 3-4 weeks now and everything is working perfectly with zero instability across all games. When the VM is idle the resource usage almost nothing….. FINALLY a perfect VM!!!

Roblox is working via the Windows Store app as mention above, so the kids are over the moon.

 

Long story short, “Unraid Share Mode: VirtioFS Mode” was the culprit here and was causing the system to randomly lock up. Once removed all my issues were resolved and as mentioned the VM idle resources are back to near zero.

I’m glad in a way, as its forced me to learn more about the XML view by adding necessary features and pinning “emulatorpin” & “iothreadpin” which have also helped drastically with stability.

 

I have attached my XML and will now be marking this thread as resolved.

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>Windows 11</name>
  <uuid>351920c1-41b7-abf6-86a9-df25e7703fa5</uuid>
  <description>Windows 11 - Gaming VM</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm"/>
  </metadata>
  <memory unit='KiB'>10485760</memory>
  <currentMemory unit='KiB'>10485760</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <iothreads>2</iothreads>
  <cputune>
    <vcpupin vcpu='0' cpuset='5'/>
    <vcpupin vcpu='1' cpuset='13'/>
    <vcpupin vcpu='2' cpuset='6'/>
    <vcpupin vcpu='3' cpuset='14'/>
    <vcpupin vcpu='4' cpuset='7'/>
    <vcpupin vcpu='5' cpuset='15'/>
    <emulatorpin cpuset='2-4,10-12'/>
    <iothreadpin iothread='1' cpuset='2-4,10-12'/>
    <iothreadpin iothread='2' cpuset='2-4,10-12'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-7.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/d566211d-a3fe-da18-b5e2-8ec98fd0e29e_VARS-pure-efi-tpm.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vpindex state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='custom' match='exact' check='full'>
    <model fallback='allow'>Skylake-Client</model>
    <topology sockets='1' dies='1' cores='3' threads='2'/>
    <feature policy='disable' name='hle'/>
    <feature policy='disable' name='rtm'/>
    <feature policy='disable' name='mpx'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='hypervisor'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/ISOs/Win11_23H2_EnglishInternational_x64v2.iso'/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/ISOs/virtio-win-0.1.248-1.iso'/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x15'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x16'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x17'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x18'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x19'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x1a'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:19:a0:d0'/>
      <source bridge='br0.1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <tpm model='tpm-tis'>
      <backend type='emulator' version='2.0' persistent_state='yes'/>
    </tpm>
    <audio id='1' type='none'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x2'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0e' slot='0x00' function='0x0'/>
      </source>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

 

Edited by wacko37
Put XML in code format

Where do you put this XML stuff?

  • Author
3 hours ago, Air69 said:

Where do you put this XML stuff?

When you create/edit a VM, the is a option on the top right corner that says "XML View" select that.

 

Sadly it's not a simple as copy and pasting my XML from above. You will need to edit to suit your hardware/setup.

12 hours ago, wacko37 said:

When you create/edit a VM, the is a option on the top right corner that says "XML View" select that.

 

Sadly it's not a simple as copy and pasting my XML from above. You will need to edit to suit your hardware/setup.

Thanks, also which VM are you using? I was using VMware workstation pro would this work? 

  • Author
4 minutes ago, Air69 said:

Thanks, also which VM are you using? I was using VMware workstation pro would this work? 

Sadly o have no experience with VMware workstation pro, I'm using the default VM manger within Unraid.

  • 4 weeks later...

can you tell me what you added and edited, the above config is based on your machine i dont know what code can be used to apply to my machine, do you have discord or email or social media site where we can chat i have a project that needs to be related, i will pay if you agree to help

  • Author
19 hours ago, Cris2323 said:

can you tell me what you added and edited, the above config is based on your machine i dont know what code can be used to apply to my machine, do you have discord or email or social media site where we can chat i have a project that needs to be related, i will pay if you agree to help

Everything I can help you with is mentioned in my posts above. 

 

In short changing the CPU mode to custom from host-passthrough allowed Microsoft version of Roblox to work for me.

 

Is your CPU is AMD? If so I'm sorry I have no knowledge using AMD.

does it work with roblox website?

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.