Install and first launch¶
All · 20 min · No code · Last tested: 2026-10-10 (stock Lyra 5.8, UE 5.8.1, VRM4U_5_8_20260912)
XenoCore is a Game Feature plugin for Lyra, delivered as C++ source plus content. You add it and the free VRM4U plugin to a Lyra project, open the project (Unreal compiles XenoCore the first time), and click Apply once. Nothing in Lyra is edited by hand.
Before you start, install Visual Studio 2022 with the Game development with C++ workload; see Requirements. The first open cannot finish without it.
1. Create a Lyra project¶
- In the Epic Games Launcher, open Fab Library, find Lyra Starter Game (free), and create a project from it for Unreal Engine 5.8.
- Put it on a short path, such as
C:\Projects\MyRPG. Long paths can break the C++ build on Windows.
You can also use a Lyra project you already have. XenoCore only adds settings; see What Apply changes for the list.
2. Add the plugin¶
From Fab: in the Epic Games Launcher's Fab Library, click Install to Engine on XenoCore
and choose 5.8. The launcher puts it in the engine's plugin folder,
C:\Program Files\Epic Games\UE_5.8\Engine\Plugins\Marketplace\XenoCore. XenoCore cannot run
from there, because it is built on Lyra's own game code, so move (cut, not copy) that XenoCore
folder into your project as below. Leaving a second copy in the engine folder makes Unreal find the
plugin twice.
From a zip download: unzip it and copy its XenoCore folder into the project.
Either way, it goes in the project's Plugins/GameFeatures folder, so you have:
MyRPG/
Lyra.uproject
Plugins/
GameFeatures/
ShooterCore/
XenoCore/ <- here
XenoCore.uplugin
It must be in Plugins/GameFeatures of the project, not in the engine's plugin folder: XenoCore
is C++ built on Lyra's own game module, so it compiles with the project.
You do not need to edit Lyra.uproject; the plugin switches itself on.
Add VRM4U (the VRoid party needs it)¶
The sample party is seven VRoid characters, and their skeletons, faces, toon materials and hair physics run on VRM4U, a free plugin by ruyo (MIT licence). XenoCore lists it as a dependency, so the project will not open without it.
- Download the VRM4U release for Unreal Engine 5.8 from its GitHub releases page
(github.com/ruyo/VRM4U): the file named
VRM4U_5_8_<date>.zip. XenoCore is tested withVRM4U_5_8_20260912.zip(last full install test: 2026-10-14, stock Lyra 5.8, UE 5.8.1). - Unzip it into the project folder (where
Lyra.uprojectis). The zip already contains aPlugins/VRM4Ufolder, so it lands in the right place:
MyRPG/
Plugins/
VRM4U/ <- here
GameFeatures/
XenoCore/
Let Lyra's editor build compile VRM4U¶
VRM4U is compiled from source with your project, and stock Lyra's editor target refuses the raw
object pointers VRM4U's headers use, so the first build fails with dozens of "Native pointer usage
in member declaration" errors unless you change one line first. Open Source/LyraEditor.Target.cs
in your project folder (any text editor) and change
NativePointerMemberBehaviorOverride = PointerMemberBehavior.Disallow;
to
NativePointerMemberBehaviorOverride = PointerMemberBehavior.AllowAndLog;
This relaxes a code-style check for the editor build only; it changes no behaviour and no data, and packaged games are not affected. XenoCore's own C++ passes the strict setting.
3. Open the project¶
Double-click Lyra.uproject. If Windows asks which engine to use, pick 5.8.
Unreal then says that modules are missing or built with a different engine version (it names
XenoCoreRuntime, XenoCoreEditor, and possibly VRM4U's modules) and asks whether to rebuild them.
Click Yes. This compiles XenoCore's C++ inside your project and takes several minutes the first
time; it is expected, because the plugin is delivered as source. If the build fails, Unreal offers
to open the log; see Troubleshooting > Build and editor.
If you would rather watch the build, right-click Lyra.uproject, choose Generate Visual Studio
project files, open the solution and build the LyraEditor target in Development Editor.
After the build, the first open compiles shaders and builds cached data, and can take a long time once (10 minutes or more); later opens take under a minute. Several things you may see on the way are Unreal's, Lyra's or Windows', not XenoCore's, and are harmless:
- "Wait for ZenServer?": Unreal's shared cache is doing maintenance. Click Yes.
- "New plugins are available": Unreal noticing VRM4U and XenoCore. Click Dismiss; both are already enabled.
- A Windows Firewall prompt for "Lyra": Windows asking about a program it has not seen before. XenoCore is single-player and needs no network; either answer is fine. While it is open, the editor behind it does not respond to clicks.
- Red and yellow AutomationTool text over the viewport ending in
Build FAILEDanderror CS0579: Duplicate 'System.Reflection...': Lyra's own build scripts failing a platform-SDK check. It does not affect the editor or play. - "Project file is out of date. Would you like to update it?": stock Lyra's
Lyra.uprojectlists three platform plugins (PlayFabParty, XInputDevice, GameInputWindows) slightly differently from the engine. Update or Not Now are both fine.
4. Apply the project settings¶
A few seconds after the editor opens, a notification appears in the bottom-right:
XenoCore needs N project setting(s) to run in this project. [Apply] [Not now]
- Click Apply.
- Click Restart Now on the notification that follows. If anything is unsaved, Unreal offers to save it first.
After the restart the editor opens on XenoCore's title screen map, L_XenoCore_FrontEnd.
If you clicked Not now, or the notification has gone, use Tools > XenoCore > Apply XenoCore Project Settings. It is safe to run any number of times.
5. Press Play¶
Press Play. The boot screens run, then the title screen. Choose New Game: you start on Gaur Plain with Kael and Mira. See Play the sample.
What Apply changes¶
Apply writes to the project's own Config/Default*.ini files, so every change is visible and
yours to edit. A setting you have already changed yourself is left alone and listed in the
Output Log under LogXenoSetup, with the value XenoCore expected.
| File | Setting | Why |
|---|---|---|
DefaultEngine.ini |
Game default map and editor startup map: L_XenoCore_FrontEnd |
Boot into XenoCore's title screen, not Lyra's. Changed only while they still name Lyra's maps |
DefaultEngine.ini |
Physical surface SurfaceType4 = Grass |
Grass footstep sounds and effects |
DefaultEngine.ini |
r.TSR.16BitVALU*=0 |
Avoids an engine warning when the editor opens |
DefaultEngine.ini |
CommonUI.SyncCursorToFocusedWidgetOnInputMethodChange=0 |
Gamepad focus in menus does not jump back and forth |
DefaultGame.ini |
Loading screen widget: W_XenoCore_LoadingScreen |
XenoCore's loading screen |
DefaultGame.ini |
CommonButtonAcceptKeyHandling=TriggerClick |
Enter and Space press the focused menu button |
DefaultGame.ini |
Footstep context map: SurfaceType4 -> SurfaceType.Grass |
Grass footsteps |
DefaultGame.ini |
Maps and folders to cook (title screen, Gym, Gaur Plain), boot movies to stage | A packaged game includes XenoCore's maps, UI and movies |
DefaultGame.ini |
Save-screen location names and story line | Save files name the place they were made |
DefaultInput.ini |
Input mode query and default input mode (InputMode.Game) |
Gameplay input stops while a menu is open |
DefaultInput.ini |
Gamepad View button removed from Back | View opens the quest tracker |
DefaultGameplayTags.ini |
Tag SurfaceType.Grass |
Grass footsteps |
To see what is still pending without changing anything, type XenoCore.ProjectSetup in the
editor's console (the Output Log's Cmd box); XenoCore.ProjectSetup apply writes the steps, the
same as the menu entry.
You now have¶
The plugin installed, the project set up, and the sample running.
Next: Play the sample