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 "
.pak
files in '~mods'" pattern
UnrealGameHelper
This 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
);
LoadOrderHelper
A 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.
AdvancedInstaller
An 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