This library serves as a basic set of common building blocks/patterns for use in building Vortex game extensions.
Install the library into your project with npm install --save-dev vortex-ext-common, then import the components you want to use.
Please note that we strongly recommend using TypeScript for Vortex extensions in general, and especially with this library. Support will only be given for TypeScript usage scenarios.
The library provides many components for any game to use, but we strongly recommend relying on the tsdoc since that will be updated in line with any API changes. You can find more detailed docs at agc93.github.io/vortex-common/.
The docs are not fully complete, but we will be updating the missing components with proper tsdoc in the next couple of patches.
The library includes a handful of basic utility functions to cut down on boilerplate in extensions and simplify some of the more arcane Vortex APIs. Check the docs for full details.
Specifically for Unreal Engine games, we provide some common building blocks that are usually common to most Unreal Engine-based games (i.e. using .pak files).
Be very sure that the UE game you're building for is just using the usual "
.pakfiles in '~mods'" pattern
UnrealGameHelperThis is the basic helper class for building your game extension. Instantiate it with your game's game ID, then you can use its members to simplify your extension's registration code:
let unreal = new UnrealGameHelper(GAME_ID);
let relModPath = path.join('Game', 'Content', 'Paks', '~mods');
context.registerGame({
...
setup: (discovery) => unreal.prepareForModding(discovery, relModPath);
...
});
context.registerInstaller(
'my-awesome-installer',
50,
unreal.testSupportedContent,
unreal.installContent
);
LoadOrderHelperA simple helper class to encapsulate common operations when using the new Vortex 1.4+ FBLO API with UE4 games. As always, check the docs for full details.
AdvancedInstallerAn experimental new installer that includes interactive file choice during installation and a highly extensible and configurable design to make game-specific functionality easier to integrate. Check the docs for more details.
toInstructions to toAttributeInstructions. Fixes for inconsistent installer logic. (thanks Picky!)isActiveGame so overloads should work againgetCategoryName and rework getModName to support IMod attributes.getModType, add mergeStateArray and rework getModName orderinggetModType export.AdvancedInstaller/AdvancedInstallerBuilder for a generic UE4 multi-file installerEventHandler for easier event registration (experimental and incomplete)LoadingSpinner componentsupported value.requiredFiles and they will be aggregated in the final supported resultdid-deploy event handlingsetTitle to DidDeployEventDelegate so handlers can update the progress textGenerated using TypeDoc