AStore++ - Basic Importer

BasicImporter is an Unreal Engine plugin that provides a unified, extensible framework for importing external data formats — JSON, CSV, and XML — into usable in-engine data. It converts raw file contents into either persistent `UDataAsset` objects (saved to disk, cooked into builds) or lightweight transient containers (held in memory, garbage-collected when unreferenced).

The plugin is built around three central ideas:

- A universal intermediate representation (`FBIDataNode`) that decouples parsing from consumption. Every parser produces the same tree structure; every consumer reads from it.

- A factory/registry architecture (`FBIParserRegistry`) that maps file extensions to parser implementations. Adding support for a new format requires writing one class and one registration call — zero modifications to existing code.

- An asynchronous pipeline (`FBIAsyncReadTask` + `FBIStreamReader`) that reads files in 64KB chunks on a worker thread and marshals results back to the game thread. Large files (50MB+) can be imported without causing frame hitches.

The plugin targets Unreal Engine 4.26 through 5.7, using version-compatibility macros to abstract API differences (package saving, asset paths) across engine generations.

  • The plugin is split into two modules to enforce a clean separation between runtime logic and editor-only functionality.

    • The Runtime module contains everything needed to parse files and create data objects at runtime — modding, live configuration, DLC loading. It has no dependency on editor modules.

    • The Editor module depends on `BasicImporter` (publicly) and adds the `UnrealEd`, `AssetTools`, and `ContentBrowser` integrations that enable drag-drop file import in the Unreal Editor.