EmuVR – Arcade Room
Bring the arcade home. Create the perfect retro arcade atmosphere in EmuVR with this clean, customizable arcade room, designed as a blank canvas for building your dream arcade.
Transform your EmuVR space into a dedicated arcade room! This mod adds a simple arcade environment that’s perfect for showcasing your arcade cabinet collection or creating your own retro gaming hangout.
- Start with an empty Standard Room in EmuVR.
- Spawn the Arcade Room and all three light objects included with the mod.
- Save your room.
- Reload EmuVR to complete the setup.
Once reloaded, your new arcade room will be ready for you to customize with arcade cabinets, decorations, and other EmuVR props.
- ๐น ๐น General Requirements to Use UGC in EmuVR
- ๐ ๐ 1. EmuVR Installed and Updated You need the latest version of EmuVR installed. UGC support is built-in, but some features (like custom systems) may require newer builds or beta versions available via the EmuVR Discord.
- ๐น ๐น 2. Windows PC EmuVR currently runs on Windows only. UGC may use Windows paths or file formats like .fbx, .png, or .json.
- ๐ง ๐ง 3. VR or Desktop Mode You can use UGC in both VR and non-VR (desktop) modes. A VR headset is not required to load or place UGC content.
- ๐ง ๐ง 5. Required File Types Some UGC props include: .fbx 3D model .json Configuration file (e.g., system settings, media support) .png or .jpg Texture maps, labels, box art Optional: custom icons, sound effects, or shaders.
- ๐ง ๐ง 6. PC Hardware Capable of Handling High Poly Models Some UGC (especially cabinets, Virtual Boy, Steam Deck) can have very high polygon counts (100k 500k+). Recommended system specs: Quad-core CPU or better 8 GB RAM minimum Modern GPU (NVIDIA GTX 1060 / AMD RX 580 or better) SSD recommended for faster asset loading.
- ๐พ ๐พ 7. EmuVR Room Configured Make sure your EmuVR room is set up with enough space or custom layout to place larger UGC props like arcade cabinets or shelf displays.
- ๐น ๐น Optional But Recommended:
- ๐น ๐น Proper media assets in the Games\SystemName\ folders (labels, box art, discs).
- ๐ง ๐ง Use the UGC DevKit (available on the EmuVR Discord) if you want to create or modify your own UGC props.
๐ฅ Download Files
Simple arcade room.
Simple arcade room.
Simple arcade room.
Simple arcade room.
Arcade Stool
[ Temporary Custom Levels Stopgap ]
Here we'll learn how to load or create custom levels using our temporary method.
(Proper support for custom levels is coming in the next update.)
If you're a user who simply wants to load custom levels, you just need to understand this TL;DR:
Level UGCs will use specific filenames. Don't rename them!
You just need to add the UGC file, spawn it in your room, throw it anywhere, and save the room to any slot.
After reloading the save slot, it will replace or augment your room!
Some levels might need extra steps, or even come in a pack with with a combination of UGCs and a room save file. Just follow the instructions the creator will give you.
All right, if you want to know how this works or how to create your own levels, keep reading below!
---------------------------------------------
The next update, "part two", will bring proper support for custom levels.
Most of the foundation is actually already implemented, it's just not ready yet.
But in the meanwhile, to prevent the need for mods just to load levels or hide the furniture (which would break netplay and bring fragmentation again, even if you don't do netplay), I've decided to enable a temporary, hacky stopgap to this part one update to let us load current UGC as levels right now, with netplay support included.
This should give me some breathing room to finish the proper custom level support without the rush, while you guys can already have fun with the current EmuVR version.
This is not how custom levels will be created or loaded later with the next update, where they'll have proper lighting support and more features using their own UGC Kit section, so I'm not even calling this thing a "preview".
Let's just call it a stopgap, or an easter egg.
Here's how this works:
To enable this for any UGC file, you just need to rename the file to add [temp_level_stopgap] to the end. Yeah.
For example, Cool_House_c2b8d058.ugc becomes Cool_House_c2b8d058_[temp_level_stopgap].ugc
Then you just need to spawn this UGC in your room (it will stay miniature-sized for now), throw it literally anywhere, and save to any room slot.
After reloading the room save, this UGC will always be frozen at position 0,0,0, with its correct scale.
It won't be interactable either, meaning it won't show the red outline and you can't accidentally grab or move it, which would be annoying.
It will just be part of the level, static.
Note that this is a per-save slot thing, which means you won't need to keep using a same hardcoded slot forever for each level.
You can save, load and overwrite any slot normally, and even have different custom levels saved in each slot.
You can also add some extra tags to the filename to remove parts of the original room and set other properties, as needed for that custom level.
For example, Cool_House_c2b8d058_[temp_level_stopgap_12].ugc will remove the furniture and walls.
Here's what each tag removes:
1 All furniture
2 Walls and posters
3 Floor and ceiling
4 Door
5 Ceiling fan and light switch
6 Just the light switch
7 Window
8 Everything outside of the window
9 The sky, including the sun
0 This makes the locked object still be interactable. Useful for example for a locked lamp or a light switch, it just makes it easier to load at position 0,0,0.
a Doesn't reset the position/rotation to 0,0,0 (nor the scale to 1,1,1). Useful if this UGC wasn't made with that position in mind, still allowing you to use it right now without needing the creator to "fix" it. But you'll still have to edit the save JSON to position it precisely if needed. With this tag it will expand as usual when grabbed from inventory, no miniature.
b Allows the player to go below the default floor level. (Might be buggy.)
Notes:
If you remove the floor with 3 , make sure your level has its own floor with colliders, or else objects will just fall to the void and disappear.
There's an optimization in EmuVR where the "outside" (the backyard, neighborhood and weather) doesn't get rendered unless the window itself is visible to the camera. So note that removing it with 7 will then make the neighborhood always render even if it's behind walls, unless you add 8 to remove the "outside" as well. EDIT: Sadly I've just found a bug: Removing it is doing the opposite and the backyard never renders instead. So we can't really remove the window if we want the backyard for now.
There's always a performance boost by disabling the sun, so use 9 if your level is fully closed and doesn't have any windows to get any direct sun light anyway.
Important: If you're creating UGC, this is not about their internal named or IDs, don't add these tags there. This is just for filenames, which will also let any user change these "settings" as needed on the fly, with no need for new UGC files to be exported.
(Make sure to close EmuVR before renaming any UGC files!)
For another example, if you have a custom basement level that doesn't have any windows, doesn't need the original walls, ceiling, ceiling fan or the door, you could use this: Cool_Basement_c2b8d058_[temp_level_stopgap_12345789].ugc
This feature is also useful if you just want to easily lock a UGC to 0,0,0 without editing JSON files and disable interactions/highlighting on it, for example for these shelves: โ ugc-shareโ Aris' Room Renovation
Just rename the file as Aris_Room_Renovation_cc2caf44_[temp_level_stopgap].ugc and spawn it, then you won't need to edit JSON files.
Another use for this: Create a tiny random UGC that uses the 1 tag, which only purpose is to remove the furniture from the default bedroom when spawned.
You can also use the a tag as a way to just disable the red outlines and accidental grabbing for a UGC. It will be moveable the first time you spawn it, and then frozen forever (and undeletable) after reloading the save. Useful for example for big shelves and some furniture. (We'll have a proper way to freeze objects and disable their outlines in a future update.)
You can mix and match these tags on multiple UGC files together.
Here's an example using " @xStartoy ๐ซ๐ท 's Office & Room Expansion" which is made of several UGC: xStartoys_Office_Room_Expansion.zip
Check these tags and why they're used:
xSt-Room_ec308bda_[temp_level_stopgap_124].ugc --> The new room and expansion, which replaces the walls, furniture and the door, but not the floor and ceiling.
xSt-Room_Lights_6804e0a8_[temp_level_stopgap_0].ugc --> The expansion's lights, frozen at 0,0,0 and interactable.
xSt_Blinder_ec1b909e_[temp_level_stopgap_0].ugc --> Blinders, frozen at 0,0,0 and interactable.
xSt-Desk_fb36a0fb_[temp_level_stopgap].ugc --> Furniture frozen at 0,0,0 and non-interactable.
xSt-Mall_153b0244_[temp_level_stopgap].ugc --> Furniture frozen at 0,0,0 and non-interactable.
xSt-Shelf_dbb23336_[temp_level_stopgap].ugc --> Furniture frozen at 0,0,0 and non-interactable.
xSt-TV_Stand_487ddfe2_[temp_level_stopgap].ugc --> Furniture frozen at 0,0,0 and non-interactable.
Black_Couch_e9b55151_[temp_level_stopgap_a].ugc --> Furniture frozen at specific positions and non-interactable.
They were all made to be placed at position 0,0,0. (Except the couch.)
Just by spawning them, saving, and reloading the room, they'll all be locked at that position and not interactable or grabbable. No need for number tags on most of them.
No need to mess with json files.
The other included UGCs for doors and drawers didn't need tags, since they're not at 0,0,0 and need interactions.
* I've only tweaked the main room UGC above (with his permission) to split the lights into a separate UGC (to enable interactions), to tweak a couple of materials, some optimizations, and to add reflection probes for much improved lighting.
Otherwise it's basically the same original UGC. (I'm emphasizing this to make it clear that many old UGC could be used with this new feature stopgap without any modifications right now.)
He has also posted the unity package for anyone to tinker with, and here it is with the modifications above included: xStartoy_Room.unitypackage
(Disclaimer: There's more room for improvement and optimizations in this package but I didn't have time to review or correct everything, sorry! But it's already a great resource for people to start learning how to create levels. We'll revisit this and bring more examples later.)
Ironically, I can't really post a direct link to his original thread in this very tutorial, because the download pack includes old mod files to remove the furniture, which are now incompatible and would break the current update installation if people added them just like that now.
So instead I'll just link to another of his threads for now haha, and I'll edit this message if he ever updates the other thread: โ unknown
Hints for creators
The updated UGC Kit includes two new layers for collisions:
Use the "Walls" layer (9) for colliders in the walls, ceiling and floor, to block the player.
Use the "Obstacle" layer (25) for parts in your level where the player can walk through in VR mode, but in desktop mode it still prevents the player "head" from moving inside them. Think of this as a "furniture" layer. It's used for the bed and furniture in the default bedroom, as it would be inconvenient to not let the player easily walk over them in VR, but still weird to let the desktop mode "head" go into them.
Even if some "Wall" collider is just a small bump on the ground, it won't let you walk over it, like an invisible obstacle. (Yeah it seems these names are kinda swapped haha.)
Currently, players won't automatically move vertically while while walking over slopes or stairs, they'll have to move up and down manually.
We'll have a better locomotion system with the next update.
It's normal for wall meshes to have only the "inner" side, but in that case you'll still need to also add extra "outer" facing sides just to block the sun light (if you're not removing the sky and sun with tag 9 ). You can easily do that by creating quads or cubes and setting "Cast Shadows" as "Shadows Only" for their Mesh Renderer components (the material doesn't matter, they'll be invisible).
Performance:
Avoid adding many lights with shadows, especially point lights.
Try to keep the default values components come with, like lights, audio, reflections, etc, as they're actually tuned by the UGC Kit for best performance and compatibility.
Reflection probes:
How to place reflection probes: https://docs.unity3d.com/Manual/UsingReflectionProbes.html
They'll improve the overall lighting quality by a lot.
This update will already add a "fallback" reflection probe encompassing the entire level if you don't add any yourself, which is already much better than before, where objects outside of the original bedroom area would reflect the bright blue sky outside even if we're indoors, making everything very shiny.
But for best results, try to add "box" reflection probes yourself, aligned to your walls as closely as possible, for each compartment like rooms and corridors.
Don't add too many probes scattered around or they'll will affect performance. Try to add one large probe for each compartment.
Unfortunately, reflection boxes can't be rotated in Unity at all, so if your rooms and walls can't be axis aligned, reflections won't be the most accurate.
Reflection probes placement is an art in itself, just like UV mapping, low poly modeling, environment lighting, pixel art, etc: There are many limitations and tradeoffs, you'll have to think hard and make decisions to balance between quality and performance, and creativity can bring cool effects and nice results.
๐ฌ Player Comments 0
Share your thoughts on this gaming news!๐ง More Mods for EmuVR
EmuVR – Nintendo Gameboy/Gameboy Color Systems and Cartridges
Retro handheld fans, youโre in for a treat! This new mod brings a splash of…
The Legend of Zelda โ Figurine UGC Pack for EmuVR
Bring the magic of Hyrule into your EmuVR room with this handcrafted UGC set inspired…
EmuVR – Generic 90’s Laptop
Step back into the wired world of the 90s with this nostalgic Boxy Laptop UGC…
Game Boy Kiosk UGC โ EmuVR (Virtual Retro Room Mod)
Take your EmuVR setup back to the heyday of game stores with an immersive Game…

Leave a Reply