
ECHO: Core is the shared foundation for the modular ECHO ecosystem. It owns the public API layer and service registry that let Ashfall, Terminal, DataCore, MissionCore, WorldCore, NetCore, HoloMap, Index, Lens, Armory, Convoy, Industrial, Nexus, Stationfall, Blackbox, and other ECHO modules talk through stable contracts.
Core is intentionally light at the gameplay layer. It does not add a standalone campaign, machine chain, or survival loop by itself. Instead, it provides safe defaults, no-op services, player profile and discovery attachments, and optional service accessors so modules can load in different pack shapes without crashing when a sibling addon is absent.
For pack authors and addon developers, Core is the compatibility spine: shared pack mode, diagnostics, faction contracts, route records, hazard telemetry, recovery hooks, mission/index/network bridges, Terminal placement/reward contracts, and Nexus/intel handoff services all start here.
EchoServiceRegistry and EchoCoreServices for no-op-safe optional integration between ECHO modules.EchoCoreServices, keep direct gameplay ownership inside the owning module, and rely on Core fallbacks when optional sibling modules are missing.docs/curseforge/echocore-banner.pngdocs/curseforge/echocore-features.pngdocs/curseforge/echocore-source.pngECHO: Core is the stable API and runtime contract module for the ECHO family. The module id is echocore, the Maven group is com.knoxhack.echocore, and the current module version is 1.1.0.
Core intentionally has no ordinary texture or model resource tree. Its images live under docs/curseforge for publishing and documentation. Runtime metadata is generated from src/main/templates/META-INF/neoforge.mods.toml.
src/main/java/com/knoxhack/echocore/EchoCore.java registers attachments, player-login sync, and Core GameTests.src/main/java/com/knoxhack/echocore/api/EchoCoreServices.java is the main service facade used by the rest of the stack.src/main/java/com/knoxhack/echocore/api/EchoServiceRegistry.java stores optional service implementations by contract type.src/main/java/com/knoxhack/echocore/registry/ModAttachments.java registers Core player attachment data.src/main/java/com/knoxhack/echocore/discovery/EchoDiscoveryData.java stores player discovery state.src/main/java/com/knoxhack/echocore/api/network contains shared network-facing service contracts and debug hooks.src/main/java/com/knoxhack/echocore/api/index contains shared Index contracts.src/main/java/com/knoxhack/echocore/api/config contains config registry and validation contracts.src/main/java/com/knoxhack/echocore/api/mission contains mission, objective, reward, runtime, and registry contracts.src/main/java/com/knoxhack/echocore/test/ModGameTests.java protects the Core no-op and integration contract behavior.Core exposes contracts for:
IDataService, IDataKey, IDataView, IPlayerDataView, IWorldDataView, and ITeamDataView.EchoProfileService, EchoProfile, EchoProgressLedger, and discovery sync.IMissionService, IMissionRegistry, mission content registrars, objective reporting, and reward claims.IIndexService, entry providers, recipe providers, search, overlay, and Terminal bridge contracts.INetworkService, INetworkBridge, packet debug hooks, and discovery toasts.Modules should register their concrete services during setup and call Core through the facade:
EchoCoreServices.registerMissionService(myMissionService);
EchoCoreServices.registerRouteRecordService(myRouteProvider);
EchoCoreServices.registerDiagnosticService(myDiagnosticProvider);
Callers should prefer no-op-safe Core accessors over direct sibling imports:
if (EchoCoreServices.missionCoreAvailable()) {
EchoCoreServices.recordMissionObjective(player, type, target, amount, context);
}
This keeps optional addon combinations loadable and prevents missing-module crashes.
From the root ECHO checkout:
cd C:\Github\Echo
.\gradlew.bat :echocore:build --warning-mode all
.\gradlew.bat :echocore:gameTestServer
When changing public contracts, also build the full workspace:
.\gradlew.bat buildEchoWorkspace -PechoAddonSet=all --warning-mode all