Comprehensive reference for all Argonath Systems modules.
Argonath Systems is organized into layers, with each module having specific responsibilities and dependencies.
Foundation modules that provide core abstractions and SDK.
Purpose: Core platform abstractions and interfaces
Package: com.hytale.argonath.platform.core
Key Components:
Platform - Central platform interfacePlatformProvider - Platform discovery serviceModuleRegistry - Module registration systemEventBus - Cross-module event systemLogger - Platform loggingDependencies: None (foundation module)
When to Use:
Example:
import com.hytale.argonath.platform.core.Platform;
Platform platform = Platform.getInstance();
platform.getLogger().info("Hello from platform!");
Purpose: Development SDK and utilities for mod developers
Package: com.hytale.argonath.platform.sdk
Key Components:
ModInitializer - Mod entry point interfaceCommandRegistry - Command registration APIConfigLoader - Configuration utilitiesResourceManager - Resource loadingServiceProvider - Dependency injectionDependencies:
platform-coreWhen to Use:
Example:
public class MyMod implements ModInitializer {
@Override
public void onInitialize() {
// Mod initialization
}
}
Purpose: Hytale game integration adapter
Package: com.hytale.argonath.adapter.hytale
Key Components:
HytaleEventAdapter - Maps Hytale events to platform eventsHytalePlayerAdapter - Player abstractionHytaleWorldAdapter - World abstractionHytaleEntityAdapter - Entity abstractionDependencies:
platform-coreplatform-sdkWhen to Use:
Purpose: Generic mod API adapter (for other platforms)
Package: com.hytale.argonath.adapter.modapi
Key Components:
Dependencies:
platform-coreplatform-sdkWhen to Use:
Purpose: Core framework utilities and base classes
Package: com.hytale.argonath.framework.core
Key Components:
Builder<T> - Generic builder pattern baseRegistry<T> - Generic registry implementationComponent - Component systemLifecycle - Component lifecycle managementValidator - Validation utilitiesDependencies:
platform-coreplatform-sdkWhen to Use:
Example:
public class QuestRegistry extends Registry<Quest> {
// Inherits registration logic
}
Purpose: Safe accessor patterns for game objects
Package: com.hytale.argonath.framework.accessor
Key Components:
Accessor<T> - Safe object access interfaceLazyAccessor<T> - Lazy-loaded accessorCachedAccessor<T> - Cached accessorMutableAccessor<T> - Mutable accessorDependencies:
framework-coreWhen to Use:
Example:
Accessor<Player> playerAccessor = Accessor.of(() -> getPlayer());
if (playerAccessor.isPresent()) {
playerAccessor.get().sendMessage("Hello!");
}
Purpose: Configuration management system
Package: com.hytale.argonath.framework.config
Key Components:
Config - Configuration interfaceConfigLoader - JSON/YAML config loadingConfigNode - Configuration tree nodeConfigSerializer - Config serialization@ConfigProperty - Property annotationDependencies:
framework-coreframework-accessorWhen to Use:
Example:
@ConfigClass("my-mod")
public class MyConfig {
@ConfigProperty("feature.enabled")
private boolean featureEnabled = true;
}
Config config = ConfigLoader.load(MyConfig.class);
Purpose: Data persistence and storage
Package: com.hytale.argonath.framework.storage
Key Components:
Storage<K, V> - Key-value storage interfacePlayerStorage - Per-player data storageWorldStorage - Per-world data storageDatabaseAdapter - Database integrationSerializer<T> - Object serializationDependencies:
framework-coreframework-configWhen to Use:
Example:
PlayerStorage<QuestProgress> storage =
PlayerStorage.create("quests", QuestProgress.class);
storage.save(player, questProgress);
QuestProgress loaded = storage.load(player);
Purpose: Text formatting and styling
Package: com.hytale.argonath.framework.text
Key Components:
Text - Styled text builderTextColor - Color utilitiesTextStyle - Style formattingTextComponent - Rich text componentsPlaceholderResolver - Dynamic text replacementDependencies:
framework-coreWhen to Use:
Example:
Text.builder()
.append("Warning: ", TextColor.RED, TextStyle.BOLD)
.append("Low health!", TextColor.YELLOW)
.build()
.send(player);
Purpose: Condition evaluation system
Package: com.hytale.argonath.framework.condition
Key Components:
Condition - Condition interfaceConditionBuilder - Fluent condition creationConditionEvaluator - Condition evaluation engineCompositeCondition - AND/OR/NOT logicDependencies:
framework-coreframework-accessorWhen to Use:
Example:
Condition condition = Condition.and(
Condition.level(5),
Condition.hasItem("gold_coin", 100),
Condition.questCompleted("tutorial")
);
if (condition.test(player)) {
// Allow action
}
Purpose: Objective tracking system
Package: com.hytale.argonath.framework.objective
Key Components:
Objective - Objective interfaceObjectiveType - Built-in objective typesObjectiveProgress - Progress trackingObjectiveBuilder - Fluent creationDependencies:
framework-coreframework-conditionframework-storageWhen to Use:
Example:
Objective killGoblins = Objective.builder()
.type(ObjectiveType.KILL_ENTITY)
.target("goblin")
.count(10)
.description("Kill 10 goblins")
.build();
Purpose: NPC management and dialog system
Package: com.hytale.argonath.framework.npc
Key Components:
NPC - NPC entityNPCBuilder - Fluent NPC creationDialogNode - Dialog tree nodeDialogChoice - Player dialog choicesNPCRegistry - NPC registrationInteractionHandler - NPC interaction logicDependencies:
framework-coreframework-conditionframework-text-stylingWhen to Use:
Example:
NPC elder = NPCBuilder.create("village_elder")
.name("Elder Marcus")
.model("elder")
.addDialog(
DialogNode.builder()
.text("Welcome, traveler!")
.option("Hello!", "greeting")
.build()
)
.build();
Purpose: Complete quest system
Package: com.hytale.argonath.framework.quest
Key Components:
Quest - Quest definitionQuestBuilder - Fluent quest creationQuestRegistry - Quest registrationQuestProgress - Player quest progressQuestManager - Quest lifecycleQuestReward - Reward systemQuestChain - Quest dependenciesDependencies:
framework-coreframework-conditionframework-objectiveframework-npcframework-storageWhen to Use:
Example:
Quest quest = QuestBuilder.create("my_quest")
.name("Epic Adventure")
.description("A grand quest!")
.addObjective(killGoblins)
.addReward(reward -> reward.gold(100))
.build();
Purpose: UI framework and components
Package: com.hytale.argonath.framework.ui
Key Components:
UIComponent - Base UI componentWindow - Window/panel containerButton, Label, TextField - UI widgetsLayout - Layout managersUIRegistry - UI registrationEventHandler - UI event handlingDependencies:
framework-coreframework-text-stylingadapter-hytaleWhen to Use:
Example:
Window questWindow = Window.builder()
.title("Active Quests")
.size(400, 300)
.addChild(Label.of("My Quest"))
.addChild(Button.of("Close", this::close))
.build();
Purpose: Visual quest tracking mod
Package: com.hytale.argonath.mod.questtracker
Key Components:
Dependencies:
framework-questframework-uiWhen to Use:
┌─────────────────┐
│ platform-core │ (Foundation)
└────────┬────────┘
│
┌────────▼────────┐
│ platform-sdk │
└────────┬────────┘
│
┌────┴────────────────────────┐
│ │
┌───▼──────────┐ ┌─────────▼──────────┐
│adapter-hytale│ │ framework-core │
└──────────────┘ └─────────┬───────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───────▼─────┐ ┌────▼────┐ ┌────▼────────┐
│framework- │ │framework│ │framework- │
│accessor │ │-config │ │text-styling │
└─────────────┘ └────┬────┘ └─────────────┘
│
┌─────────▼──────────┐
│framework-storage │
└────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───────▼────────┐ ┌─▼────────┐ ┌──▼───────────┐
│framework- │ │framework-│ │framework-npc │
│condition │ │objective │ └──────────────┘
└────────────────┘ └──────────┘
│ │
└──────┬──────┘
│
┌───────▼──────────┐
│framework-quest │
└──────────────────┘
│
┌───────▼──────────┐
│mod-quest-tracker │
└──────────────────┘
Required:
- platform-core + platform-sdk
- adapter-hytale
- framework-core
- framework-quest (includes all quest dependencies)
Optional:
- framework-ui (for custom UIs)
- mod-quest-tracker (visual tracking)
Required:
- platform-core + platform-sdk
- adapter-hytale
- framework-core
- framework-ui
Optional:
- framework-text-styling (rich text)
Required:
- platform-core + platform-sdk
- adapter-hytale
- framework-core
- framework-storage
Optional:
- framework-config (configuration)
Minimal:
- platform-core (compileOnly)
- platform-sdk (compileOnly)
Add as needed:
- framework-core (common utilities)
All modules within the same major version are compatible:
| Version | Compatible | Notes |
|---|---|---|
| 1.0.x | ✅ All 1.0.x | Patch updates |
| 1.x.0 | ✅ All 1.x | Minor features |
| 2.x | ❌ With 1.x | Breaking changes |
| Module | Status | Stability |
|---|---|---|
| platform-core | ✅ Stable | Production |
| platform-sdk | ✅ Stable | Production |
| adapter-hytale | ✅ Stable | Production |
| framework-core | ✅ Stable | Production |
| framework-quest | ✅ Stable | Production |
| framework-ui | 🚧 Beta | Testing |
| All others | ✅ Stable | Production |
| Next: Core Concepts | Architecture Overview |