Skip to content

Compatibility

Evaluator · reference · No code

What XenoCore runs on, what it depends on, and what it does not support.

Engine

Unreal Engine 5.8 (developed against the Epic Games Launcher build 5.8.1)
Plugin engine version 5.8.0 in XenoCore.uplugin
Host project Your own Lyra Starter Game project for 5.8 (free on Fab). XenoCore is a Lyra Game Feature plugin built against Lyra's C++ (LyraGame); it is tested against unmodified Lyra 5.8. See Install.
Binaries None. XenoCore is delivered as C++ source and compiles inside your project the first time it opens, which needs Visual Studio 2022. Both modules are limited to Win64 (PlatformAllowList).
Earlier engines Not supported. The content is saved with 5.8, and an older engine cannot load assets saved by a newer one.

See Requirements for the toolchain and hardware.

Platforms

Platform Status
Windows 64-bit Developed and tested here, editor and packaged game. The only platform XenoCore's modules are built for (PlatformAllowList: Win64).
macOS, Linux Not supported. Both modules are Win64-only, and the VRoid sample characters rely on the VRM4U plugin, whose assimp library is provided for Windows x64 only.
Consoles, mobile Not supported.

Game type

Players Single-player only. Party members are AI-controlled characters on one machine. Nothing is replicated or predicted for multiplayer, and some systems depend on that (for example XenoCore sends its own inventory messages because Lyra's only fire through replication).
Input Gamepad and keyboard with mouse. See Controls.
Saving Local save slots through the engine's save-game system. See Save and front end.

Multiplayer is not a setting you can turn on

Adding multiplayer would mean replicating the party, targeting, arts, inventory messages and save state. Treat it as a new project built on XenoCore's ideas, not an option.

Plugin dependencies

XenoCore.uplugin enables these engine and Lyra plugins. They must stay enabled.

Plugin Why XenoCore needs it
GameplayAbilities Arts, auto-attack, reactions, statuses and stats
DataValidation The save-time checks on XenoCore's data assets
ModularGameplay, ModularGameplayActors Components added to Lyra's actors
GameplayMessageRouter Gameplay messages
AsyncMixin Lyra's asynchronous loading helpers
CommonUI, CommonGame, CommonLoadingScreen, UIExtension Menus, HUD layers, loading screen
EnhancedInput All input
AnimationWarping Stride warping in the locomotion layers
GameplayCameras The exploration and art cameras
StateTree, GameplayStateTree Enemy and party AI
PCG Procedural placement in the sample world
Niagara Effects: hit sparks, damage numbers, chest beams, footsteps
NiagaraUIRenderer Effects drawn in the UI: the Party Gauge burst, quest-complete, level-up and party-join bursts
Water Water in the sample maps
DataRegistry Not used directly. Every number a Gameplay Effect or art scales by (FScalableFloat) carries a Data Registry field, so XenoCore's effects and arts reference the plugin; GameplayAbilities depends on it too
Metasound Sound assets
VRM4U The VRoid sample party: import, toon materials, spring bones and facial expressions, at runtime as well as import. A free third-party plugin (MIT licence) you download and add to Plugins/VRM4U; see Install

Your project's plugin list

You do not edit Lyra.uproject: XenoCore switches itself on (EnabledByDefault) and enables the plugins above through its own XenoCore.uplugin. Lyra's own sample game features (ShooterCore and the rest) can stay; nothing in XenoCore references them, and XenoCore's maps run their own Experience.

VRM4U

XenoCore is tested with the public VRM4U_5_8_20260912 release. Use a release built for UE 5.8; its assimp library is included, and a packaged game links it.

Versioning

Current version 1.1.0 (VersionName in XenoCore.uplugin, shown on the XenoCore entry in Edit › Plugins)
Scheme Semantic Versioning: MAJOR.MINOR.PATCH. A major release may break your content, your saves or the C++ and Blueprint API, and its changelog says what to re-check. A minor release adds features without breaking them. A patch release only fixes bugs.
Changelog Changelog lists every release.

Upgrading

Your own content. Keep everything you make in your own folder (for example Content/MyGame/) and your own C++ module, never inside Plugins/GameFeatures/XenoCore. An update replaces the plugin folder as a whole, so anything you changed inside it is lost. To change a shipped asset, duplicate it into your folder (or make a child of it) and point your content at the copy; subclass XenoCore's C++ bases instead of editing them. Keep the project in source control, so an update is a diff you can review.

Taking an update. Close the editor, replace the XenoCore folder with the new one, open the project and let it compile, then run Tools › XenoCore › Apply XenoCore Project Settings again (it adds any setting the new release needs and leaves yours alone). Read the changelog first.

Saves. Every save file records a save-data version. A save written by an older XenoCore loads in a newer one: each new version says how older files are brought forward, and so far every step has needed no conversion (the new fields simply start empty). A save written by a newer XenoCore cannot be loaded by an older one: on the Load screen that slot cannot be selected (it can still be deleted), rather than being read with fields the older code does not understand. Versions 1.0.0 and 1.1.0 write save-data version 5.

Engine versions. XenoCore 1.1.0 supports Unreal Engine 5.8 only. When a new engine version comes out, XenoCore is re-tested against it and a new upload is published for that version; until then, moving your project to the new engine is at your own risk, because Lyra itself changes between engine versions and XenoCore depends on Lyra's C++.