Learn. Survive. Connect.
ALIS is an open-source Unreal Engine 5 survival game set in a post-apocalyptic real-world city. Scavenge, learn practical skills through gameplay, and survive in believable locations built from real geography.
A runnable public prototype is available as a packaged release.
Download it from the
latest GitHub release
and follow the included INSTALL.txt.
You do not need a source checkout to run the packaged build. Building the complete project from source additionally requires asset payloads that are not stored in this Git tree.
This repository is the public code and documentation home for ALIS -- source code, architecture docs, build and release workflows, and modular plugin structure. Exactly what is published and what stays out of the public tree is listed in What This Repository Contains.
- Site: https://fall.is/
- Vision: VISION.md
- Social contract: ALIS_PACT.md
- Licensing and component boundaries: docs/legal/README.md
- Start here: testing, feedback, and contribution
ALIS is a public Unreal Engine project that exposes modular plugin source across boot, foundation, systems, user interface, gameplay, world, and feature layers.
The repository includes public architecture, data, build, testing, and workflow documentation, together with module-level readmes and automation paths that reflect the real project structure.
These materials provide a direct view of how the project is organized, how responsibilities are separated, and how technical decisions are represented in code and documentation.
Concrete systems implemented as plugins in this repository:
- Inventory - server-authoritative inventory with equip, use, drop, weight, volume, and depth stacking
- Vitals - server-side metabolism tick, threshold states, condition regen and drain
- Dialogue - universal data-driven dialogue for NPCs, objects, and terminals
- Mind - inner-voice thought guidance system
- Interaction - player interaction with world objects via trace and prompt
- Object Capabilities - composable capability components: lockable, loot container, pickup
- GAS - Gameplay Ability System integration layer
- Character - base character plugin for gameplay modes
- Motion - skeleton-agnostic motion primitives
- Settings - typed settings persistence consumed by gameplay and UI
- Loading - 6-phase content loading pipeline with loading screens
Each system has its own plugin README with architecture and entry points.
Editor-side plugins that make the JSON-first workflow practical at scale:
- Definition Generator - universal JSON-to-DataAsset generation; resource plugins ship a runtime class plus JSON schema with an
x-alis-generatorextension, the generator handles parsing, field mapping, incremental builds, and orphan cleanup - Placement Editor - dockable panel for spawning template actors and DataAssets, with two-level filtering driven by
ALIS.Cap.<Name>gameplay tags andItem.Type, evaluated on AssetRegistry metadata so filters never trigger asset loads - Asset Sync - automatic JSON path updates and redirector cleanup when assets are renamed in the Content Browser, so text references stay consistent without manual fix-up
- Editor Core - shared delegates and interfaces (e.g.
FDefinitionEvents::OnDefinitionRegenerated) so editor plugins compose without depending on each other (DIP)
Pipeline split is intentional: SYNC (mechanical path updates) -> GENERATION (JSON to DataAsset) -> PROPAGATION (cascading actor updates in placed scenes). Each step is its own plugin and communicates via broadcast events.
Entry points: Plugins/Editor/ProjectDefinitionGenerator/README.md, Plugins/Editor/ProjectPlacementEditor/README.md, Plugins/Editor/ProjectAssetSync/README.md, Plugins/Editor/ProjectEditorCore/README.md.
The public codebase is organized around explicit technical decisions:
- C++ as the main systems and architecture layer
- text-first workflows for data, configuration, and many iteration paths
- JSON-driven definitions and layouts where binary authoring would slow automation
- universal generators instead of plugin-by-plugin custom authoring pipelines
- modular plugins with clear ownership boundaries
- contract-first integration across plugins
- signed release artifacts with public verification
- public documentation next to code wherever possible
- a public mirror strategy that supports long-term open and decentralized workflows
Architectural themes visible in this repo:
- boot and plugin lifecycle are separated from runtime content loading
- foundation plugins define contracts and shared infrastructure, not gameplay logic
- UI is framework-driven, JSON-driven, and descriptor-driven rather than hardcoded per screen
- the data pipeline is split intentionally into sync, generation, and propagation
- feature plugins are expected to remain optional, bounded, and soft-coupled
- world plugins own world data, while shared world code owns reusable tooling
Top-level public structure:
Source/- Unreal targets and shared game module entry points (Alis,AlisClient,AlisEditor,AlisServer)Plugins/Boot/- early boot and plugin lifecycle managementPlugins/Editor/- editor-side generation, sync, and propagation tools for data-driven workflowsPlugins/Foundation/- contracts, shared types, service location, low-level utilitiesPlugins/Systems/- reusable runtime services such as loading, save, settings, and motion systemsPlugins/UI/- UI framework plus feature-facing UI pluginsPlugins/Gameplay/- gameplay framework and shared runtime gameplay patternsPlugins/Features/- optional domain capabilities such as inventory, combat, and dialoguePlugins/World/- shared world tools and world-specific implementationsdocs/- public architecture, build, UI, testing, and reference docsscripts/- automation for build, test, release packaging, signing, verification, and mirroring
Plugin tier entry points:
- Boot tier: Plugins/Boot/README.md
- Foundation tier: Plugins/Foundation/README.md
- Systems tier: Plugins/Systems/README.md
- UI tier: Plugins/UI/README.md
- Gameplay framework: Plugins/Gameplay/ProjectGameplay/README.md
- Features tier: Plugins/Features/README.md
- World utilities: Plugins/World/ProjectWorld/README.md
If you want the best overview first:
- Project-wide docs router: docs/README.md
- Public build and release router: docs/build/README.md
- Scripts and automation router: scripts/README.md
If you want architecture first:
- Architecture router: docs/architecture/README.md
- Source-of-truth architecture map: docs/architecture/source_of_truth.md
- Data architecture and pipeline: docs/data/README.md
- Boot lifecycle and orchestration: Plugins/Boot/Orchestrator/README.md
- Foundation contracts and shared services: Plugins/Foundation/ProjectCore/README.md
If you want gameplay and UI entry points:
- UI router: docs/ui/README.md
- UI hot reload and JSON-first workflow: docs/ui/hot_reload.md
- UI framework plugin: Plugins/UI/ProjectUI/README.md
- Gameplay framework: Plugins/Gameplay/ProjectGameplay/README.md
- Feature tier overview: Plugins/Features/README.md
- Inventory design vision: Plugins/Features/ProjectInventory/docs/design_vision.md
If you want generation and agent-friendly pipelines:
- Data architecture: docs/data/README.md
- Universal JSON-to-DataAsset generation: Plugins/Editor/ProjectDefinitionGenerator/README.md
- Definition propagation into placed actors: Plugins/Editor/ProjectPlacementEditor/README.md
- Object definitions from JSON: Plugins/Resources/ProjectObject/README.md
If you want build, test, and release workflows:
- Build router: docs/build/README.md
- Testing router: docs/testing/README.md
- Packaging, signing, and verification: scripts/ue/package/README.md
- Public mirror flow: scripts/git/mirror/README.md
Published here:
- engine-side and gameplay C++ code
- modular plugin source across boot, foundation, systems, UI, gameplay, world, and feature layers
- public-facing architecture, build, testing, and workflow documentation
- build, test, packaging, signing, verification, and mirror automation
- text-based design and runtime data workflows
- the canonical
Alis.uproject, so the public repo reflects the real plugin layout
Not stored in this Git source tree:
- cooked builds and packaged binaries, which are distributed separately through GitHub Releases
- project asset payloads that are not yet published
- third-party payloads whose licenses do not permit public redistribution
- secrets, credentials, and operator-specific machine configuration
ALIS public releases are intended to be verifiable, not just downloadable.
Relevant entry points:
- Packaging guide: docs/build/packaging_guide.md
- Packaging scripts: scripts/ue/package/README.md
- Trust page and public key: https://fall.is/trust/
Before contributing, read:
- Contribution guide: CONTRIBUTING.md
- License policy: LICENSE
- Project pact: ALIS_PACT.md
- Trademark policy: TRADEMARKS.md