file: docs/pages/index.mdx meta: { "layout": "landing" } import { HomePage } from "vocs/components";
Eternum Cover
{" "} Eternum Logo Eternum is a decentralized, open-source, and community-driven 4x MMO game built on the Dojo framework. Get started Play Now
--- file: docs/pages/blitz/achievements.mdx meta: {} # 🏆 Achievements & Rewards *WIP* --- file: docs/pages/blitz/key-concepts.mdx meta: { "title": "Key Concepts", "description": "The foundational mechanics of Blitz" } # 🔑 Key Concepts Blitz Key Concepts DRAFTING NOTE: Requires review. This section outlines the core mechanics and systems that form the foundation of Blitz's fast-paced, competitive gameplay. ## Blitz Brackets Blitz operates on a three-tier competitive system: ### Recruit Bracket * **'Bronze tier'** game mode for introduction, familiarisation and no-pressure gameplay * **Free entry** - no cost to participate * **Prizes**: Common Relic Chests only * **Frequency**: Can be played consistently and frequently throughout the year ### Warrior Bracket * **'Silver tier'** game mode for competitive games * **Held three times weekly**, one for each key time zone * **Entry cost**: x $LORDS to enter, supplies a prize pool * **Prize distribution**: Top 15% of players share the prize pool (supplemented by DAO funds) * **Rewards**: Common, Rare and Epic Relic Chests * **Special reward**: Top 5% of players in each round win tradable NFT invites to the Elite bracket ### Elite Bracket * **'Gold tier'** games for the highest level of competition * **Held at the end of the series** (likely a single game or three games for each time zone) * **Entry requirement**: NFT invite from a Warrior game (no additional $LORDS cost) * **Prize pool**: Largest $LORDS prize pool of the series * **Rewards**: Common, Rare and Epic Relic Chests, plus additional cosmetic & title prizes for top players ## Blitz Series While Recruit games can be played consistently throughout the year, games with stakes (Warrior/Elite) are organized into 'series'. Series A is the first set of Blitz games. Each series takes place between other game seasons to bridge the gap in gameplay. ## Game Phases ### Entry Phase * Starts x days prior to event start * Players register and pay the x $LORDS entry fee (if Warrior) or use invite NFT (if Elite) * Players wait until the round begins ### Settling / Preparation Phase * Starts 30 minutes prior to start * Entries are closed * The world is populated and players can spectate, but no actions can be taken until the Game Phase ### Game Phase * Active gameplay period ### Prize Phase * Prizes distributed by contract ## Realms * **Three Realms per Player**: Each player starts with three Realms, evenly spaced apart in a triangle * **No Specific Resources**: All Realms in Blitz are functionally the same - no specific resource types * **Free Building**: Players are free to construct any resource building they wish but are restricted by build space and population * **No Progression Path**: Realms do not upgrade from Settlements → Cities → Kingdoms → Empires * **No Wonders**: Wonder bonuses are not present in Blitz * **No Villages**: Village system is not available in Blitz ## Materials * **Simplified Resources**: 9 core resources (Food simplified to just Wheat) * **Essence**: New resource found by exploring the map and interacting with world structures * **Labor and Donkeys**: Present in the game as normal * **Troops**: 3 types, 3 tiers as normal * **No Bridging**: Players may only bridge relics into the game (not out) * **Donkey Cost**: Donkeys only cost food to produce (no $LORDS cost) ## Buildings * **Construction**: Standard building system available * **Building Types**: * **The Keep**: Central structure automatically constructed when settling * **Resource Buildings**: Specific buildings for each of the 9 resources * **Economic Buildings**: Includes Farms, Worker Huts, Storehouses * **Military Buildings**: Nine different buildings for producing three tiers of each troop type * **Placement & Population**: Buildings require buildable hexes and population capacity ## Production * **Production Types**: * **Food**: Wheat can be produced without inputs * **Resources**: Require combinations of other resources * **Labor**: Produced by burning resources in the Keep * **Troops**: Essential for exploration and warfare, with higher tiers requiring lower tier troops as inputs * **Donkeys**: One-time-use transport, consumed after a single journey * **Increased Rates**: All production rates are increased for the fast-paced Blitz format * **Altered Recipes**: Production and building recipes are modified for Blitz ## World Map * **Exploration System**: Players must explore unrevealed hexes to claim hyperstructures and attack neighbors * **No Resource Discovery**: Players will no longer find resources when exploring (non-bridgeable) * **Essence Discovery**: Players primarily find Essence when exploring, along with small stacks of donkeys, T1 troops and labor * **Relic Discovery**: Rare powerful relics can be found when exploring or in Camp inventories * **Biomes**: 16 unique biome types affecting combat effectiveness and troop movement * **Movement & Stamina**: Armies move using stamina (regenerating at +60 per Blitz Day), with costs varying by biome and troop type * **Time Scale**: Blitz Days are 5 minutes each, so 36 Blitz Days total in a 3-hour game ## Military Blitz Military * **Army Composition**: Armies consist of a single troop type and tier (Knights, Crossbowmen, or Paladins) * **Troop Tiers**: T1, T2, and T3 troops with increasing combat strength * **Combat Factors**: Battles resolved based on army damage, stamina modifiers, and biome effects * **Army Types**: * **Field Armies**: Deploy onto the world map for exploration and conquest * **Guard Armies**: Deployed to defense slots to protect structures * **Stamina System**: Armies recover +60 stamina daily * **Biome Effects**: Each troop type has advantages (+30% damage), disadvantages (-30% damage), or no change (0%) in specific biomes * **No P2P Transfers**: No direct transfers or trade between players * **Reinforcement Movement**: Players can't transport troops by donkey to hyperstructures - reinforcements must be moved across the map from a Realm ## Scoring System Leaderboard placing is determined by Total Score, which combines three scoring systems: ### Economy Score A measure of the scale and success of a player's economy. Score is determined by: * Total production rate * Buildings constructed * Production diversity * Donkeys burned in use * Population ### Military Score A measure of the scale and success of a player's military. Score is determined by: * Number of troops deployed * Casualties inflicted * Bandit battles won * World structures controlled * Player battles won * Realms captured ### Objective Score A measure of the player's ability to explore the map and claim hyperstructures. Score is determined by: * Number of tiles explored * Hyperstructures claimed * Hyperstructure points accumulated ## Victory Conditions Blitz uses a scoring-based system rather than victory points. The top 15% of players with the highest Total Score at the end of the three hours share in the $LORDS prize pool. This pool includes $LORDS secured for Series A of Blitz by BIP, as well as a percentage of the cumulative entry fees that players pay to enter the game. ## Game Duration Each Blitz game runs for exactly **3 hours**. Blitz Days are 5 minutes each, resulting in 36 Blitz Days total per game. --- file: docs/pages/blitz/prize-pool.mdx meta: {} import { table } from "@/components/styles"; # 💰 Prize Pool *WIP* --- file: docs/pages/blitz/victory.mdx meta: {} import { table } from "@/components/styles"; # 👑 Victory & Scoring *WIP* --- file: docs/pages/blitz/world-physics.mdx meta: {} import { Biomes } from "@/components/Biomes"; # 🌪️ World Physics Blitz World Physics In Blitz, every action is governed by onchain physics—immutable rules encoded directly onto the blockchain, ensuring fairness, transparency, and absolute consistency for all Lords. Here, code is law; no exceptions exist outside the boundaries set by these protocols. ## Game Duration Each Blitz game runs for exactly **2 hours**. Eternum Days are reduced to 5 minutes each, resulting in 24 Eternum Days total per game. ## Time Time within a Blitz game is measured in Eternum Days, and each is precisely 5 minutes in length. One day ends and the next begins every 5 minutes. ## Materials In Blitz, materials such as food, resources, troops and donkeys are isolated within each round. There is no bridging of materials in and out of the game (other than relics). All materials have an associated weight, which determines the amount that can be stored and the number of donkeys required to move the goods from place to place. Note: This document will use 'materials' to refer to all tangible assets - i.e. food, resources, essence, labor, troops, and donkeys. This is not to be confused with 'resources', which specifically refers to the 9 resources in Blitz. ## Cost of Production With the exception of food, nothing in Blitz is produced for free; every unit of production demands an input—food, labor, resources, or some combination thereof. Lords must consider these costs and effectively balance production to ensure they can maximize their score within the 2-hour game window. ## Travel Transporting materials takes time… and donkeys. Every transfer of materials between locations relies exclusively on these speedy and dependable creatures. Donkeys move through an immutable 'donkey network' and are not visible or interruptable until they arrive at their destination. They are consumed upon completing their journey, making continuous acquisition vital for maintaining supply chains. Troops can also be moved between Realms using donkeys, but to dominate your enemies and ensure security of your lands, troops must be deployed to an army. After deployment, they cannot be taken back into the inventory. Once troops are deployed to the world map, their mobility is governed by stamina, limiting the distance they can travel and the number of actions they can perform. Travelling between hexes or initiating an attack expends valuable stamina points, which are partially replensished each Eternum Day. ## Hexes Blitz unfolds on a procedurally-generated, hexagonal-tile world map. This represents the physical space of the world and defines spawn locations, biome distribution, and distances between Realms and other world structures. This is the layer in which armies explore, fight, raid and capture, and is explorable in the 'World' view. Zooming in, each Realm hex is broken up into smaller hexes which define the local area and building placement (hexes within hexes!). Here in the 'Local' view, Lords can plan out their building placement and closely manage their population, supply chain, and production. ## Biomes Each hexagonal tile on the world map possesses a distinct biome. Each troop type responds uniquely to these varied terrains, gaining or losing combat efficiency and stamina based on their affinity with different biomes. Successful Lords must master biome knowledge to exploit strategic advantages or avoid costly missteps. ## The Blitz Arena The map on which Blitz takes place is designed to position Lords as equally as possible while also providing a dynamic battlefield that scales appropriately. Each player starts the game with three Realms, evenly spaced apart in a triangle and positioned between three complete and revealed Hyperstructures. Player Realms and Hyperstructures are placed in a specific pattern to ensure that all Lords have a comparable number of neighbors and equal access to Hyperstructures. The primary objective of Blitz is to capture and hold as many Hyperstructures as possible to accumulate Objective Points and secure a position at the top of the leaderboard. --- file: docs/pages/blitz/world-structures.mdx meta: {} # 🏗️ World Structures DRAFTING NOTE: Requires review. World structures in Blitz are pre-built locations scattered across the map that players can claim by eliminating resident bandit forces. There is no construction process - hyperstructures are immediately functional once claimed. ## Hyperstructures In Blitz, hyperstructures are **fully constructed** and positioned around the map, ready to be claimed by eliminating resident bandit forces. There is no construction process - hyperstructures are immediately functional once claimed. ### Hyperstructure Layout The map features a strategic layout of hyperstructures: * **Central Hyperstructure**: Located at the center of the map (A) * **Ring System**: Hyperstructures are arranged in expanding rings around the center * **Dynamic Scaling**: As more players join, new rings of hyperstructures are spawned to maintain balance ### Hyperstructure Spawning The system spawns hyperstructures dynamically based on player count: * **First Ring (B)**: 6 hyperstructures around the center, supporting 6 players * **Second Ring (C)**: 18 additional hyperstructures, supporting 18 more players * **Expanding Rings**: The system continues to add rings as needed for any number of players ### Claiming Hyperstructures To claim a hyperstructure: 1. **Explore the Map**: Navigate to the hyperstructure location 2. **Defeat Bandits**: Eliminate the resident bandit forces protecting the structure 3. **Establish Control**: Deploy guard armies to maintain control 4. **Earn Points**: Accumulate hyperstructure points for your Objective Score ### Strategic Value Hyperstructures provide: * **Objective Score**: Points for claiming and controlling structures * **Strategic Position**: Key locations for military operations * **Resource Production**: Some hyperstructures may provide resource bonuses * **Defensive Positions**: Strong defensive locations on the map ## Camps Camps are discoverable locations scattered throughout the Blitz world map that provide significant strategic advantages. ### Camp Features * **Initial Occupation**: Initially occupied by weak to moderate bandit forces * **Village-like Functionality**: Act similarly to villages with randomized buildings on spawn * **Resource Storage**: Contain randomized amounts of donkeys, labor, essence, and resources * **Production Bonus**: Provide resource and military production bonuses when claimed ### Camp Benefits When claimed, camps offer: * **Resource Production**: Additional production capacity for the controlling player * **Military Support**: Enhanced military production capabilities * **Strategic Position**: Forward operating bases for military operations * **Resource Boost**: Immediate access to stored resources ### Claiming Camps To claim a camp: 1. **Discover Location**: Explore to find the camp 2. **Defeat Defenders**: Eliminate the bandit forces 3. **Establish Control**: Deploy guard armies for protection 4. **Utilize Benefits**: Access the camp's production and resource capabilities ## Essence Wells Essence Wells are specialized structures that provide a steady supply of Essence, the key resource in Blitz. ### Essence Well Functionality * **Steady Production**: Produce a continuous supply of Essence to the controlling player * **Resource Independence**: Supplant the need to continue exploring for more Essence * **Weak Protection**: Protected by bandit forces that must be defeated * **Strategic Value**: Key resource production points on the map ### Essence Production Essence Wells provide: * **Continuous Supply**: Steady Essence production without additional exploration * **Resource Efficiency**: More efficient than manual exploration for Essence gathering * **Strategic Control**: Important locations to control for resource dominance ### Claiming Essence Wells To claim an Essence Well: 1. **Locate the Well**: Explore to find the Essence Well 2. **Defeat Bandits**: Eliminate the protecting bandit forces 3. **Establish Control**: Deploy guard armies for protection 4. **Harvest Essence**: Begin receiving steady Essence production ## Map Exploration Rewards When exploring the Blitz world map, players can discover: ### Essence Discovery * **Primary Resource**: Essence is the main resource found during exploration * **Key Material**: Required for upgrading Realms and constructing military buildings/producing troops ### Additional Discoveries * **Small Stacks**: Donkeys, T1 troops, and labor to boost capabilities * **Rare Relics**: Powerful relics (rare) found when exploring or in Camp inventories * **Consumables**: Items that can be used by armies (e.g., stamina and damage boosters) ### Exploration Mechanics * **Inventory Capture**: All items found by exploring armies are captured within their inventories * **Transport Required**: Items must be transported back to a Realm for use (except consumables) * **No Resource Discovery**: Players no longer find traditional resources when exploring (non-bridgeable) ## Strategic Considerations ### Hyperstructure Control * **Early Claiming**: Claim hyperstructures quickly to maximize Objective Score * **Defensive Positioning**: Use hyperstructures as defensive strongholds * **Military Coordination**: Coordinate attacks to capture enemy-controlled hyperstructures ### Camp Utilization * **Resource Expansion**: Use camps to expand your resource production capacity * **Forward Bases**: Establish camps as forward operating bases for military operations * **Resource Boost**: Leverage camp resources for immediate military or economic advantage ### Essence Well Management * **Resource Security**: Control Essence Wells to ensure steady Essence supply * **Production Optimization**: Use Essence Wells to optimize your production efficiency * **Strategic Defense**: Defend Essence Wells as critical resource production points ### Exploration Strategy * **Balanced Approach**: Balance exploration with military and economic development * **Resource Management**: Efficiently transport discovered resources back to your Realms * **Relic Utilization**: Use discovered relics strategically for maximum advantage Remember, in Blitz every world structure provides opportunities to increase your Total Score across all three scoring categories: Economy, Military, and Objective! --- file: docs/pages/development/client.mdx meta: {} # React Client ## Run the dev server From the root of the project, run: Easy method: ```bash ./scripts/client.sh ``` Manual method: ```bash pnpm i && pnpm dev ``` The client requires environment variables to be set. See the [Environment Variables](client/.env.sample) page for more information. ## Project Structure ### Elements * Small reusable react UI components ### Components * Stateful react components composed of Elements. This is where all the onchain state should be stored. ### Modules * Collection of components composed into Modules ### Containers * Locations where Modules are composed into a full page ### Layouts * Collection of containers composed into a full layout ## useDojo Hook The `useDojo` hook is a core part of the Dojo framework that provides access to essential game functionality, account management, and network interactions. ### Usage ```tsx import { useDojo } from "@/hooks/context/dojo-context"; function GameComponent() { const { account, network, masterAccount } = useDojo(); // ... your game logic } ``` ### Features #### Account Management The hook provides comprehensive wallet and account management capabilities: * **Burner Wallet Creation**: Create temporary wallets for players * **Account Selection**: Switch between different burner wallets * **Account Listing**: View all available burner wallets * **Master Account Access**: Access to the game's master account * **Deployment Status**: Track wallet deployment status #### Network Integration Access to network configuration and setup results for interacting with the Starknet blockchain. #### Game Setup Provides access to all initialized game systems, components, and world configurations. ### Requirements The hook must be used within a `DojoProvider` component and requires the following environment variables: * `VITE_PUBLIC_MASTER_ADDRESS` * `VITE_PUBLIC_MASTER_PRIVATE_KEY` * `VITE_PUBLIC_ACCOUNT_CLASS_HASH` ### Return Value The hook returns an object containing: * `setup`: Complete Dojo context including game systems and components * `account`: Account management functions and state * `network`: Network configuration and setup results * `masterAccount`: The master account instance ### Example ```tsx function GameUI() { const { account } = useDojo(); return (

Current Account: {account.account.address}

); } ``` ## Eternum provider Wrapper around the DojoProvider, which itself is a wrapper around a generic Starknet provider, an API to easy interact with your contract’s API via the RPC. Each layer of abstraction adds its own set of functionalities, with the Eternum Provider mainly providing easy access to all the system calls that our systems expose (create\_army, etc…) ## Offchain messages You can use offchain messages to store information in the indexer, but it is not persisted onchain. Some examples of use cases for this are in-game messages. Refer to [this code](https://github.com/BibliothecaDAO/eternum/blob/1490dfcf513d72f51e5a84138be743d774338caf/client/src/ui/modules/chat/InputField.tsx#L50) for an example of how to use offchain messages # State Management with Recs Recs allow you to query the state of the world and subscribe to changes in the world. It is the recommended way to manage state in the client. ```tsx const structureAtPosition = runQuery([HasValue(Position, { x, y }), Has(Structure)]); ``` This line of code will run a query against the local state of the browser and return all the structures that are at the position `{ x, y }`. This does not execute any call to Torii as the local state is already synced with the latest updates. This part of the code in `client/src/dojo/setup.ts` is where the local state is initialized and synced. ## Subscribing to changes To subscribe to changes in the world, you can use the `useEntityQuery` hook. This hook will return the entity that matches the query and update it if it changes. ```tsx const allRealms = useEntityQuery([Has(Realm)]); ``` ## Getting the value of your components After you have run a query, you can get the value of your components using the `getComponentValue` function. ```tsx const realm = getComponentValue(Realm, entityId); ``` The entityId is the poseidon hash of all the keys of the component you want to get. This can be an easier way to get your component than using a query if you already know all the keys. ### Getting a component from an entity If you have an entityId, you can get a component from it using the `getComponent` function. ```tsx const realm = getComponentValue(Realm, getEntityIdFromKeys([entityId])); ``` The previous line of code is equivalent to: ```tsx const entity = runQuery([Has(Realm), HasValue(Keys, [entityId])]); const realm = getComponentValue(Realm, Array.from(entity)[0]); ``` # Extending the client ## Adding a new component You will need to add your component to the `contractComponents.ts` file. This will ensure that the component is synced with the state of the world and will provide the types for the component. ## Adding a new system You will need to add your system logic to the `sdk/packages/eternum/src/provider/index.ts` file and then use it in the `createSystemCalls.ts` file. This will ensure that the system is called with the correct arguments and will provide the types for the system. ## Optimistic updates You can use optimistic updates to update the local state without waiting for the transaction to be included in a block. This is useful to provide a better user experience by updating the UI immediately. ```ts private _optimisticDestroy = (entityId: ID, col: number, row: number) => { const overrideId = uuid(); const realmPosition = getComponentValue(this.setup.components.Position, getEntityIdFromKeys([BigInt(entityId)])); const { x: outercol, y: outerrow } = realmPosition || { x: 0, y: 0 }; const entity = getEntityIdFromKeys([outercol, outerrow, col, row].map((v) => BigInt(v))); this.setup.components.Building.addOverride(overrideId, { entity, value: { outer_col: outercol, outer_row: outerrow, inner_col: col, inner_row: row, category: "None", produced_resource_type: 0, bonus_percent: 0, entity_id: 0, outer_entity_id: 0, }, }); return overrideId; }; ``` You can use the `uuid` function to generate a unique overrideId. Remember to return the overrideId so you can later delete it after the transaction is included in a block. It's good practice to remove the override, however because of a delay between the transaction being included in a block and Torii syncing, you might have a split second where the override is removed and the Recs being updated. This will cause your component (i.e. a building) to appear then disappear for a second before reappearing. --- file: docs/pages/development/collaborators.mdx meta: {} import Collaborators from "@/components/Collaborators"; # Collaborators --- file: docs/pages/development/contracts.mdx meta: {} # Contracts ## Rules of thumb * Note that every field you add in a model will raise the storage cost of each transaction that modifies the model. * Try to make models as small as possible, and re-use existing models as much as possible, every model and system that you add raises the size of the CASM, and there is a limit to the size of a declared contract on Starknet. * Keep systems stateless. Store your game state in models. * When implementing a new game logic, you will need to keep in mind that the game already has physics implemented, such as weight, position, movement, speed, etc. If creating something that needs to have any of this logic, re-use components so everything stays logical. ## Models ### Keys Use the `ID` type alias for keys that require a unique identifier. ### Model design entity\_id: u32 ### Implementations Where possible make traits for the models so they are stateless for unit testing. Always use generate trait where possible to minimise code. ```rust #[generate_trait] ``` ### Adding a model ```rust #[derive(Copy, Drop, Serde)] #[dojo::model] pub struct Structure { #[key] entity_id: ID, category: StructureCategory, created_at: u64 } ``` To test this model, you need to add it to the `contracts/src/utils/testing/world.cairo` file so it can be instantiated in the tests. ## Event models If you need some data to be available in the client, but it doesn't need to be stored onchain, you can use an event model. ```rust #[derive(Introspect, Copy, Drop, Serde)] #[dojo::event] #[dojo::model] pub struct ExampleEvent { #[key] id: ID, #[key] event_id: EventType, my_data_field: u8 } ``` ## Adding a system Design systems like this in the directory * SystemName * system\_name.cairo * tests.cairo `system.cairo` should include the implementation of the system like this. Things to note: * Interface at top of File * use of `super::IBuildingContract` to minimise imports and make it clear where the interface is defined. ```rust #[dojo::interface] trait IBuildingContract { fn create( entity_id: ID, building_coord: s1_eternum::models::position::Coord, building_category: s1_eternum::models::resource::production::building::BuildingCategory, produce_resource_type: Option ); } #[dojo::contract] mod production_systems { use s1_eternum::alias::ID; use s1_eternum::models::{ resource::resource::{Resource, ResourceCost}, owner::Owner, hyperstructure::HyperStructure, order::Orders, position::{Coord, Position, PositionTrait, Direction}, buildings::{BuildingCategory, Building, BuildingImpl}, production::{Production, ProductionRateTrait}, realm::{Realm, RealmImpl} }; #[abi(embed_v0)] impl BuildingContractImpl of super::IBuildingContract { fn create( world: IWorldDispatcher, entity_id: ID, building_coord: Coord, building_category: BuildingCategory, produce_resource_type: Option, ) { } } } ``` To test this system, you need to add it to the `contracts/src/utils/testing/world.cairo` file so it can be instantiated in the tests. --- file: docs/pages/development/getting-started.mdx meta: { "layout": "docs" } # Getting Started Eternum Development ## Prerequisites * [Dojo onchain game engine](https://book.dojoengine.org) v1.0.4 * [Node.js](https://nodejs.org/) * [pnpm](https://pnpm.io/) v9.12.3 * [Bun](https://bun.sh/) ## Setup Install Dojo via: ```bash curl -L https://install.dojoengine.org | bash ``` Eternum uses a pnpm workspace and bun for scripts to allow easy npm packages to be created. Install pnpm: ```bash npm install -g pnpm ``` Install project dependencies: ```bash pnpm install ``` Build shared packages: ```bash pnpm run build:packages ``` ## Development Scripts ### Development * `pnpm dev` - Start game development server * `pnpm dev:docs` - Start documentation development server * `pnpm dev:landing` - Start landing page development server ### Building * `pnpm build` - Build game client * `pnpm build:docs` - Build documentation * `pnpm build:landing` - Build landing page * `pnpm build:packages` - Build shared packages ### Testing & Linting * `pnpm test` - Run all tests * `pnpm lint` - Run linting * `pnpm format` - Format code * `pnpm format:check` - Check code formatting ## Contract Deployment Eternum supports multiple deployment environments: | Environment | Description | | ----------- | --------------------------- | | Local | For development and testing | | Slot | Staging environment | | Sepolia | Public testnet | | Mainnet | Production environment | ### Deploying to Local Before deploying to any environment, confirm that you have a `.env.{environment}` file in the `contracts/common` directory, as well as in the `client/apps/game` directory. To deploy and run the game locally: ```bash # Start local game contracts pnpm run contract:start:local ``` ### Deploying to Sepolia To deploy the contracts to Sepolia testnet, run these commands in order: 1. Deploy game contracts: ```bash pnpm run game:migrate:sepolia ``` 2. Deploy season pass contracts: ```bash pnpm run seasonpass:deploy:sepolia ``` 3. Deploy season resources contracts: ```bash pnpm run seasonresources:deploy:sepolia ``` 4. Update TOML configuration: ```bash pnpm run toml:update:sepolia ``` 5. Start the indexer: ```bash pnpm run indexer:start:sepolia ``` 6. Deploy game configuration: ```bash pnpm run config:deploy:sepolia ``` ## Environment Variables For local development, create a file called `.env.local` in the client repository and add the following: ```bash VITE_PUBLIC_MASTER_ADDRESS="0x127fd5f1fe78a71f8bcd1fec63e3fe2f0486b6ecd5c86a0466c3a21fa5cfcec" VITE_PUBLIC_MASTER_PRIVATE_KEY="0xc5b2fcab997346f3ea1c00b002ecf6f382c5f9c9659a3894eb783c5320f912" VITE_PUBLIC_ACCOUNT_CLASS_HASH="0x07dc7899aa655b0aae51eadff6d801a58e97dd99cf4666ee59e704249e51adf2" VITE_PUBLIC_FEE_TOKEN_ADDRESS=0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 VITE_PUBLIC_TORII="http://127.0.0.1:8080" VITE_PUBLIC_NODE_URL="http://127.0.0.1:5050" VITE_PUBLIC_GAME_VERSION="v1.0.0-rc0" VITE_PUBLIC_GRAPHICS_DEV=false VITE_PUBLIC_TORII_RELAY="/ip4/127.0.0.1/udp/9091/webrtc-direct/certhash/uEiDry6d-bDv3UdIS6L9VMugoiZnfwqOeXyFWm6jgKf7aTw" VITE_SOCIAL_LINK=http://bit.ly/3Zz1mpp VITE_PUBLIC_CHAIN=local VITE_PUBLIC_SLOT="eternum-prod" VITE_PUBLIC_VRF_PROVIDER_ADDRESS="0x0" VITE_PUBLIC_CLIENT_FEE_RECIPIENT=0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd48676005a5770a50d433c5 VITE_PUBLIC_MOBILE_VERSION_URL=https://next-m.eternum.realms.world ``` This file is subject to change, please keep an eye on the repository for potential updates. ## Project Structure * [Client](https://github.com/BibliothecaDAO/eternum/tree/main/client) - React apps built with Vite * [Game](https://github.com/BibliothecaDAO/eternum/tree/main/client/apps/game) - Main game client with Three.js interface * [Landing](https://github.com/BibliothecaDAO/eternum/tree/main/client/apps/landing) - Landing page * [Game Docs](https://github.com/BibliothecaDAO/eternum/tree/main/client/apps/game-docs) - Game documentation * [Balancing](https://github.com/BibliothecaDAO/eternum/tree/main/client/apps/balancing) - Game balancing tools * [Contracts](https://github.com/BibliothecaDAO/eternum/tree/main/contracts) - Cairo/Dojo smart contracts * Game contracts * Season Pass contracts * Season Resources contracts * [Packages](https://github.com/BibliothecaDAO/eternum/tree/main/packages) - Shared libraries * [Core](https://github.com/BibliothecaDAO/eternum/tree/main/packages/core) - Eternum SDK * [React](https://github.com/BibliothecaDAO/eternum/tree/main/packages/react) - React hooks and components * [Config](https://github.com/BibliothecaDAO/eternum/tree/main/config) - Configuration and deployment scripts ## Core Dependencies * [@dojoengine/react](https://www.npmjs.com/package/@dojoengine/react) - React integration for Dojo * [@dojoengine/recs](https://www.npmjs.com/package/@dojoengine/recs) - Entity Component System * [@cartridge/controller](https://www.npmjs.com/package/@cartridge/controller) - Game controller integration * [Starknet.js](https://www.npmjs.com/package/starknet) v6.23.1 - StarkNet interaction * [Vite](https://vitejs.dev/) - Frontend build tool ## Stack Eternum Technology Stack * [Contracts](/development/contracts): built using the Dojo framework. This leverages the ECS model, allowing us to build quick and ship fast. It revolves around 3 units: Entities, Components (called Models in Dojo) and Systems (more about this in the Dojo book). * [Client](/development/client): our client is built using React with Typescript. We leverage Dojo by using DojoJS * [Eternum SDK](/development/sdk): our SDK contains most notably the getter and setter of the configuration of Eternum, the EternumProvider and most of the constants/types of the world that needed to be transcribed to Typescript. * [Torii](https://book.dojoengine.org/toolchain/torii): Dojo's indexer, optimized for that particular framework and well integrated into the stack. From our client, we have a gRPC subscription set up through DojoJS and recs to events. Events are fired in the contracts as a way for the indexer to know what's going on in the world. Every time an entity is created, updated, or deleted, an event is fired which updated Torii's record of the world. * [DojoJS and recs](https://github.com/dojoengine/dojo.js?tab=readme-ov-file#contributing-to-dojojs): DojoJS is the SDK that allows easy integration of a Dojo app into your client/node backend. Recs are DojoJS's way of exposing the state of the world to the client. This is done via queries to the Recs state using a simple query language, which doesn't support complex queries yet (e.g. joins, gt, lt, etc...). --- file: docs/pages/development/index.mdx meta: { "layout": "docs" } # Development * [Getting Started](/development/getting-started) * [Client](/development/client) * [Contracts](/development/contracts) * [SDK](/development/sdk) * [Collaborators](/development/collaborators) --- file: docs/pages/development/llm.mdx meta: { "title": "LLM" } # LLM These docs are experted at [https://docs.eternum.realms.world/llm.txt](https://docs.eternum.realms.world/llm.txt) for consumption by the LLM. --- file: docs/pages/development/sdk.mdx meta: {} # SDK ## Compiling From the root of the project, run: ```bash pnpm i && pnpm run build:packages ``` ## Structure This SDK contains most notably the getter and setter of the configuration of Eternum, the EternumProvider and most of the constants/types of the world that needed to be transcribed to Typescript. Everything considered as client agnostic should be in there. The main reason for this separation is to be able to re-use this logic in any other project that uses Typescript, e.g. new mobile client, data analytics app, etc. --- file: docs/pages/eternum/achievements.mdx meta: {} # Achievements & Quests *WIP* --- file: docs/pages/eternum/agents.mdx meta: {} # Agents *WIP, update next week !* --- file: docs/pages/eternum/key-concepts.mdx meta: { "title": "Key Concepts", "description": "The foundational mechanics of Eternum" } # 🔑 Key Concepts Eternum Key Concepts This section outlines the core mechanics and systems that form the foundation of Eternum's gameplay. ## Realms * **Limited Assets**: 8,000 unique and irreplaceable Realms serve as the foundation of Eternum, each has the ability to freely mint a Season Pass. * **Settling**: Players must burn a Season Pass to settle their Realm in the game world. * **Starting Materials**: Each newly settled Realm begins with a set of starting materials. * **Progression Path**: Realms can upgrade from Settlements → Cities → Kingdoms → Empires, unlocking additional buildable hexes and defensive army slots. * **Resource Production**: Each Realm can produce 1-7 different resources based on the original Realms NFT metadata. * **Wonders**: Realms with Wonders have a 20% production bonus and share this bonus with all Realms and Villages in a 12 tile radius. * **Hardcore Gameplay**: If a Realm’s defenses crumble, it can be claimed by another player—transferring gameplay rights to the conqueror. ## Villages * **Accessible Entry**: Villages can be established around settled Realms, offering a simple entry system for new players * **Scaling**: Up to 6 Villages per Realm, allowing for 48,000 Villages in Season 1 * **Limited Production**: Produce materials at 50% the rate of Realms and only have access to 1 resource type each * **Parent Realm**: Each Village is tied to a parent Realm and will pay bridging fees if moving materials out of the game * **Troop Restrictions**: Villages may only receive tokenized troops from their parent Realm, they cannot buy or be sent troops from any other source * **Simple Progression**: Villages have a limited upgrade path from Settlement to City * **Casual Gameplay**: Villages can be raided, but can’t be claimed by other players. ## Materials * **Materials Categories**: * **Food**: (Wheat, Fish) - essential for production, troop movement, and construction. * **Resources**: 22 different resource types, distributed based on rarity across both Realms and Villages. * **Troops**: Units with unique properties that can be assigned to armies. * **Donkeys**: Required for moving materials around the world, essential for logistics. * **Labor**: A new material in S1, allows players to build and produce in 'simple mode', acquired through burning resources. * **Ancient Fragments**: Found in game, critical for the construction of Hyperstructures. * **ERC20 Compatibility**: All materials (except Labor) can be traded freely and bridged out as ERC20 tokens through Realms. ## Buildings * **Construction Modes**: Two building systems available - Standard (resource-efficient) and Simple (labor-focused). * **Building Types**: * **The Keep**: Central structure automatically constructed when settling, provides baseline population capacity. * **Resource Buildings**: Specific buildings for each of the 22 resources, only requiring food to construct. * **Economic Buildings**: Includes Farms, Fishing Villages, Worker Huts, Storehouses, and Markets. * **Military Buildings**: Nine different buildings for producing three tiers of each troop type. * **Placement & Population**: Buildings require buildable hexes and population capacity, with more unlocked as Realms and Villages are upgraded. ## Production * **Production Modes**: Like buildings, production can be done in Standard (resource-intensive) or Simple (food and labor) mode. * **Production Types**: * **Food**: The only resources (Wheat, Fish) that can be produced without inputs. * **Resources**: Require combinations of other resources (standard) or labor (simple). * **Labor**: Produced by burning resources in the Keep, used for simple mode construction and production. * **Troops**: Essential for exploration and warfare, with higher tiers requiring lower tier troops as inputs. * **Donkeys**: One-time-use transport, consumed after a single journey. ## World Map * **Exploration System**: The world begins shrouded in mystery, with only the six Banks visible at season start; adjacent hexes are revealed when settling, and armies can explore to reveal new areas. * **Biomes**: 16 unique biome types procedurally generated across the map, each affecting combat effectiveness and troop movement. * **Movement & Stamina**: Armies move using stamina (regenerating at +20 per Eternum Day), with costs varying by biome and troop type; Knights, Crossbowmen, and Paladins each have different maximum stamina capacities. * **Exploration Mechanics**: Exploring costs 30 stamina per hex and reveals that area permanently to all Lords; exploring armies may discover resources or encounter world structures and agent armies. ## Military Eternum Military * **Army Composition**: Armies consist of a single troop type and tier (Knights, Crossbowmen, or Paladins). * **Troop Tiers**: T1, T2, and T3 troops with increasing combat strength. * **Combat Factors**: Battles resolved based on army damage, stamina modifiers, and biome effects. * **Army Types**: * **Field Armies**: Deploy onto the world map for exploration and conquest. * **Guard Armies**: Deployed to defense slots to protect structures. * **Stamina System**: Armies recover +20 stamina daily, with 30+ stamina needed for full combat effectiveness. * **Biome Effects**: Each troop type has advantages (+30% damage), disadvantages (-30% damage), or no change (0%) in specific biomes. * **Raiding Mechanics**: Armies can attempt to steal resources from structures without defeating defenders. * Success depends on the raiding army's damage relative to the combined guard armies. * Undefended structures can be raided without casualties. ## Tribes Tribes are player-formed organizations enabling cooperation and coordination. They can be made public (open to all) or private (invitation only) and allow players access to tribe-only features. Tribes are an early form of social structures within Eternum and rely on player-driven interactions including arrangements of alliances and declarations of war. ## Victory Conditions Eternum's seasonal gameplay culminates in victory through the accumulation of victory points earned through the construction and ownership of Hyperstructures. However, there are various achievement paths, with players earning recognition and rewards for various actions within the Season. --- file: docs/pages/eternum/prize-pool.mdx meta: {} import { table } from "@/components/styles"; # 💰 Prize Pool ## Overview In Season 1 of Eternum, there are four prize categories with a total of: * 1,000,000 $LORDS tokens * 100,000 $STRK tokens > **Note:** All Season 1 prizes will be distributed manually by the development team (except for the agent rewards which > are collected directly in-game). Future seasons will implement automated distribution through game contracts, aligning > with decentralized gaming principles. ## Prize Categories ### 1. Victory Prizes **Total: 300,000 $LORDS + 50,000 $STRK** These prizes are awarded to top-performing tribes based on victory points. Additionally, 2.5% of all $LORDS bridging volume is collected as a fee and added to the prize pool, further increasing the total rewards available. #### How to Earn Victory Points Players can earn victory points by: * Contributing resources and labor to hyperstructure construction * Holding shares in completed hyperstructures to accumulate emitted victory points #### Distribution Once a player triggers the end of the game (or the game contract breaks), a snapshot of tribes, their members, and the victory point leaderboard is taken. Tribes will then be ranked by the cumulative number of victory points of their players. The top 10 tribes receive prizes based on this allocation:
Rank Allocation
1st Place 30%
2nd Place 18%
3rd Place 12%
4th Place 9%
5th Place 7%
6th Place 6%
7th & 8th Place 5% each
9th & 10th Place 4% each
#### Individual Distribution Within each tribe: * Tribe Leader: 30% of tribal allocation (regardless of their victory points) * Other Members: 70% split proportionally based on victory points contribution to the tribal total ### 2. Achievement Prizes **Total: 300,000 $LORDS** Players earn achievement points by completing quests—tracked inside your Cartridge profile, and accessible via your Cartridge wallet in-game. At the end of the season, this prize pool will be split proportionally amongst all players based on the number of achievement points they have accumulated. > **Note:** Achievement details, requirements, and point allocations will be withheld until the game begins to prevent > planned farming and extractive behaviors. Check the [Achievements section](/eternum/achievements) for updates when > this information becomes available. ### 3. Daydreams Agent Prizes **Total: 250,000 $LORDS + 25,000 $STRK** #### Agent Rewards Each agent on the world map carries 10-35 $LORDS, obtainable through: * Collaboration (persuasion via chat) * Combat victory #### Special Achievement 25,000 $STRK will be distributed to the first 100 players who complete the 'Nexus-6' achievement by defeating 10 agent armies. ### 4. Eternum Arts & Emissaries Prizes **Total: 150,000 $LORDS + 25,000 $STRK** Awarded to players or groups making exceptional cultural, artistic, or creative contributions to Eternum. These awards can be given during or after the game at the developers' discretion. > **Note:** For more information, join our [Discord community](https://discord.gg/KJff5Ecp). ## Unused Prize Distribution If any prizes remain unallocated at the end of the game and prize distribution phase: * Unused $LORDS will be distributed through the veLORDS protocol * Unused $STRK will be retained by developers for future use --- file: docs/pages/eternum/tribes.mdx meta: {} # 👥 Tribes Tribes are player-formed organizations enabling cooperation and coordination. They can be made public (open to all) or private (invitation only) and allow players access to tribe-only features. Tribes are an early form of social structures within Eternum and rely on player-driven interactions including arrangements of alliances and declarations of war. ## Formation & Membership * Any player can create a tribe * Set tribe name * Set to public or private * If private, send invites to player
Create Guild Flow to create tribe
--- file: docs/pages/eternum/victory.mdx meta: {} import { ETERNUM_CONFIG } from "@/utils/config"; import { HyperstructureInitializationShardsTable, HyperstructureConstructionCostTable, HyperstructurePointsTable, getTotalHyperstructureCompletionPoints, HYPERSTRUCTURE_POINT_MULTIPLIER, } from "@/components/HyperstructureTable"; import { formatNumberWithCommas } from "@/utils/formatting"; # 👑 Victory Troops Moving Across Eternum ## Victory Points Ultimate victory in Eternum is measured by Victory Points (VP), earned exclusively through Hyperstructures. When a single player’s total VP reaches the season-defined threshold, they unlock the ability to End Season, immediately halting all further gameplay actions and cementing the final standings. Thus, the race to build, seize, and defend Hyperstructures is the decisive path that ultimately closes the chapter on each season of Eternum. ## Activating Foundations Each Hyperstructure is unique, requiring varying quantities of all 22 resources (and Labor) for completion. To activate a Hyperstructure Foundation, all **{ formatNumberWithCommas(ETERNUM_CONFIG().hyperstructures.hyperstructureInitializationShardsCost.amount)} Ancient Fragments** must be deposited into the structures's balance, and then the owner of the mine must explicitly activate the foundation to begin construction. Upon activation, the exact quantity required for each resource is randomly determined within predefined minimum and maximum ranges shown below: *Note: In addition to these resources, all Hyperstructures require a fixed contribution of 50,000,000 units of labor to complete construction.* ## Construction Victory Points The Lord initiating the Hyperstructure construction determines whether contributions can be made by all Lords (public) or restricted to members of their tribe (private). Contributions may be made directly from Realms or Villages without requiring donkeys for transport. As Lords contribute to the Hyperstructure, they are awarded with a proportional allocation of Victory Points. A total of **{formatNumberWithCommas(getTotalHyperstructureCompletionPoints())}** are available to claim throughout the construction process. ## Accumulation Victory Points Separately, and in addition to the victory points awarded at completion, the owner of the Hyperstructure begins to accumulate **{formatNumberWithCommas(Number(ETERNUM_CONFIG().hyperstructures.hyperstructurePointsPerCycle)/HYPERSTRUCTURE_POINT_MULTIPLIER)} victory points** for every second the structure remains under their control. These accumulating victory points can be shared among multiple Lords through a customizable share split, allowing the owner to distribute glory and reward cooperation. If a Hyperstructure is claimed by another Lord, future accumulated victory points are redirected to the new owner, who may similarly decide on sharing arrangements. ## Total Victory Victory points earned through construction contributions or accumulation cannot be lost once awarded. The first player to reach **{formatNumberWithCommas(Number(ETERNUM_CONFIG().hyperstructures.hyperstructurePointsForWin)/HYPERSTRUCTURE_POINT_MULTIPLIER)} total victory points** unlocks the ability to select the ‘End Season’ option, concluding the current game season. --- file: docs/pages/eternum/world-physics.mdx meta: {} import { Biomes } from "@/components/Biomes"; # 🌪️ World Physics Troops Moving Across Eternum In Eternum, every action is governed by onchain physics—immutable rules encoded directly onto the blockchain, ensuring fairness, transparency, and absolute consistency for all Lords. Here, code is law; no exceptions exist outside the boundaries set by these protocols. ## Seasons Welcome to Season 1. Eternum, in its current form, comes and goes in seasonal launches. Each season marks a special time of iteration and advancement in this new form of onchain gaming and may be likened to the movement of tides. Once a season launches, the tide flows out and the Lords arrive to build their castles in the sand. Nothing, not even the developers, can stop or alter the course of a season once launched, and players are free to take any action that the rules of the game allow. Once a Lord accumulates the requisite Victory Points, they unlock the ability to end the season—signalling the tide to come back in and put an end to the Lords' fun… until next season. ## Time Time within a season is measured in Eternum Days, and each is precisely one hour in length. One day ends and the next begins at the top of every real-world hour. ## Materials In the world of Eternum, everything holds tangible, tokenized value—be it food, labor, resources, troops, or even the trusty donkeys required for transport. These fungible tokens are generated within Eternum, but can be bridged in and out of the game through Realms or Banks and traded on external marketplaces. All materials have an associated weight, which determines the amount that can be stored and the number of donkeys required to move the goods from place to place. Note: This document will use 'materials' to refer to all tangible assets - i.e. food, resources, ancient fragments, labor, troops, and donkeys. This is not to be confused with 'resources', which specifically refers to the 22 resources ranging from wood through to dragonhide. Tokens such as $LORDS and $STRK are not considered materials. ## Cost of Production With the exception of food, nothing in Eternum is produced for free; every unit of production demands an input—food, labor, resources, or some combination thereof. Lords must consider these costs and effectively balance trade to ensure they can survive the season. ## Travel Transporting materials across the vast lands of Eternum takes time… and donkeys. Every transfer of materials between locations relies exclusively on these speedy and dependable creatures. These donkeys are single-use, consumed upon completing their journey, making continuous acquisition vital for maintaining trade routes and strategic flexibility. Moving tokenized troops through the donkey network may be fast, but to dominate your enemies and ensure security of your lands, troops must be deployed to an army. Once troops are deployed, they cannot be retokenized, and are doomed to their fate within this season of Eternum. Once troops are deployed to the world map, their mobility is governed by stamina, limiting the distance they can travel and the number of actions they can perform. Travelling between hexes or initiating an attack expends valuable stamina points, but they are partially replenished each Eternum Day. ## Hexes Eternum unfolds across an infinite, procedurally-generated, hexagonal-tile world map. This represents the physical space of the world and defines spawn locations, biome distribution, and distances between Realms, Villages, and other world structures. This is the layer in which armies explore, fight, raid and capture, and is explorable in the 'World' view. Zooming in, each Realm or Village hex is broken up into smaller hexes which define the local area and building placement (hexes within hexes!). Here in the 'Local' view, Lords can plan out their building placement and closely manage their population, supply chain, and production. ## Biomes Each hexagonal tile on the world map possesses a distinct biome. Each troop type responds uniquely to these varied terrains, gaining or losing combat efficiency and stamina based on their affinity with different biomes. Successful Lords must master biome knowledge to exploit strategic advantages or avoid costly missteps. ## The Known World Initial scouting reports have revealed some key details about the world: * Six ancient Banks have been located, distributed evenly in a ring around the central point. These structures are perfectly situated and designed to facilitate trade in this new world. Sufficiently prepared Lords may be able to capture these lucrative structures, but will likely make themselves a target in the process. * An unknown number of Hyperstructure Foundations are scattered around the unexplored world. These are rare, key locations that must be claimed by Lords in order to rebuild the ancient Hyperstructures that are critical to achieving victory. They are more likely to be found in the central regions of the map, and as each subsequent Hyperstructure Foundation is discovered, the likelihood of finding another one in the world diminishes. * Hundreds of mines are also strewn across the landscape. Prospectors have theorized that these mines are hotspots for finding ancient fragments needed to reconstruct key sections of the Hyperstructures. * Bandits roam throughout the lands and have established lairs in each of the key locations described above. The newly arrived Lords will need to overcome these lawless brigands to bring order and control back to Eternum. * Mysterious hooded figures lurk in the mist, offering to play a strange card game with any who wish to try their luck. --- file: docs/pages/eternum/world-structures.mdx meta: {} # 💠 World Structures ## Hyperstructures Hyperstructures are colossal edifices constructed atop ancient foundations hidden across Eternum, representing monumental achievements and symbols of dominance in the game world. Lords must uncover and claim Hyperstructure Foundations through exploration and combat, then invest substantial quantities of resources, labor, and ancient fragments to reconstruct these majestic towers. Successfully completing and controlling Hyperstructures is the primary path to victory in Eternum, making them ultimate strategic targets for ambitious Lords and powerful tribes alike. ### Hyperstructure Foundations These ancient, indestructible platforms are primarily scattered within the ring of Banks that surround the centre of the map. There is a chance of discovering a Hyperstructure Foundation each time an army explores an unrevealed hex, calculated using the following formula: ``` Discovery Chance = (0.975^x × y) - (z × 0.001) ``` Where: * **x** = the number of hexes from the centre of the map * **y** = the base chance of finding a Hyperstructure Foundation on the central hex (4%) * **z** = the number of Hyperstructure Foundations already discovered For example, if you're exploring a hex 100 tiles from the center and 5 foundations have already been discovered: ``` Discovery Chance = (0.975^100 × 4) - (5 × 0.001) = (0.079 × 4) - 0.005 = 0.316 - 0.005 = 0.311 or 31.1% ``` The result of this function means that Hyperstructure Foundations are generally only able to be found within 300 tiles of the centre of the map. As more are found, the chance of finding another diminishes and makes it even less likely to find one further from the centre. Lords are therefore incentivised to explore early in the season to discover these key components for victory. Hyperstructure Foundations and Hyperstructures both have four defense slots to deter attacks from rival Lords. However, like other world structures they are not able to maintain any field armies. ## Fragment Mines Fragment Mines are rare, ancient nodes scattered throughout the unexplored hexes of Eternum. They produce valuable ancient fragments, a vital resource needed for constructing Hyperstructures. Once discovered by an exploring field army, a Fragment Mine must first be claimed by defeating its resident bandit forces. Only then can Lords begin extracting the mysterious shards hidden within. Each mine contains a finite number of ancient fragments and will permanently cease production when depleted. The chance of discovering a Fragment Mine when exploring an unrevealed hex is static at 1 in 150, or 0.67%. Mines can contain between 300,000 and 3 million ancient fragments in incremental amounts (i.e. 300k, 600k, 900k…). It will take some time for the full amount of ancient fragments to be produced by the structure, and the more that the mine contains, the longer it will take. Lords will need to ensure that their mines are adequately defended from rivals, however they only have one defense slot to support a guard army. ## Quest Tiles *WIP, update next week !* --- file: docs/pages/overview/bridging.mdx meta: {} import { Callout } from "vocs/components"; # Bridging in Materials *WIP, update next week !* --- file: docs/pages/overview/controller.mdx meta: {} import { importantNote } from "@/components/styles"; *** title: Cartridge Controller description: Using the Cartridge Controller in Eternum *** # Cartridge Controller The Cartridge Controller is a gaming-focused smart contract wallet that makes Web3 gaming accessible and transactionless via Session Keys. You must have a controller to play Eternum. To find out more about the controller, read their documentation [here](https://docs.cartridge.gg/controller/overview). Controller ## Using the Controller in Eternum If you are playing with a Village, you can play Eternum purely using the controller, However, to use Season Passes and **$LORDS**, you will need to transfer them to your controller from Starknet using your ArgentX or Braavos wallet. To use the controller, you can either log in or sign up when starting Eternum. To create a controller, simply input a username and sign up. Controller There are multiple ways to securely sign up: * **Passkey**: Passkeys are a modern and secure way to authenticate users without passwords. They use public key cryptography and are stored by platform authenticators such as Face ID, Touch ID, or password managers like Bitwarden or 1Password. * **Metamask**: Connect using your MetaMask wallet. * **Rabby**: Connect using your Rabby wallet. * **Discord**: Connect using your Discord account. * **Wallet Connect**: Connect using a wide range of wallets.

⚠️ IMPORTANT NOTE

If you are choosing Passkey on a Windows PC that does not have Bluetooth functionality, you will need to use a password manager to set up your controller. There is a known issue in which Windows will ask for a Windows Hello or external security key (USB) that wasn't used in the controller setup, preventing you from being able to sign in.

Once this is complete, you will be able to 'Create Session'. This enables all of the game functions in a transactionless session. ## Transfer Season Pass to Controller Transfer a season pass to your controller easily [here](https://empire.realms.world/season-passes). Connect your controller by selecting the controller icon located at the top of the page and select the passes to transfer.
Controller Icon
## Controller Key Features ### Simple and Secure * Passwordless authentication using Passkeys for one-click onboarding * Self-custodial embedded wallets that put players in control * Built-in security features to protect player assets ### Designed for Seamless Gameplay: * Session keys eliminate transaction popups during gameplay * Secure transaction delegation lets games submit actions on behalf of players * Free transactions through the Cartridge Paymaster so players focus on playing ### Supported Platforms and Passkey Backup Passkeys are well-supported across modern platforms. You can use them with device authenticators directly or pair them with a mobile device using the QR flow. For those without device authenticators, several password managers like Bitwarden (free), 1Password, and Dashlane support Passkeys. #### Backing Up Your Passkey * Apple devices: Passkeys are backed up along with your keychain in iCloud. * Android devices: Passkeys are backed up with your Google account. * Windows devices: Passkeys are created and managed as part of your Windows account. #### Using Controller Across Devices Currently, Controller availability across devices depends on how the Passkey was created. Some platforms automatically synchronize them across devices for seamless use. For cross-platform usage (e.g., Apple and Android), synchronization might not be available. For now, we recommend using a Password Manager or the QR flow to support this configuration. Multi-credential support is coming soon to enhance device compatibility. Should you have any issues with the controller or require support, you can join the Cartridge Discord [here](https://discord.gg/cartridge). --- file: docs/pages/overview/disclaimer.mdx meta: {} import { formatNumberWithSpaces } from "@/utils/formatting"; import { ETERNUM_CONFIG } from "@/utils/config"; import { Callout } from "vocs/components"; import { HYPERSTRUCTURE_POINT_MULTIPLIER } from "@/components/HyperstructureTable"; # Disclaimer and Risk Acknowledgment Important Disclaimer – Please Read Carefully
By participating in Eternum, you fully acknowledge and accept the following terms and conditions.
## Immutable Contracts Eternum is governed entirely by **immutable** smart contracts. Once deployed, the game’s rules and mechanics **cannot be altered, updated, or reversed** by the developers, the DAO, or any other party. These smart contracts have **not** been audited. Players should fully understand the implications of interacting with the system and assess the risks involved. ## Risk of Loss All transactions and gameplay actions in Eternum are **final**. There are no mechanisms for refunds, reversals, or compensation. You acknowledge the **risk of loss of funds** and accept that you bear sole responsibility for any financial impact incurred. A season of Eternum concludes when a single player achieves the required **{formatNumberWithSpaces(Number(ETERNUM_CONFIG().hyperstructures.hyperstructurePointsForWin)/HYPERSTRUCTURE_POINT_MULTIPLIER)}** Victory Points and clicks the "End Season" button. At this point: ### ⚠️ SEASON END CRITICAL INFORMATION When the season ends, **ALL in-game actions are DISABLED** except: * transfer materials * deposit resource arrivals * retrieve LP positions * cancel market orders * bridge materials out of the game 1. **7-Days Withdrawal Window (starts immediately when "End Season" is clicked)** * Starting from the exact moment the season ends, you have **7 days** to bridge out **ALL $LORDS** tokens and bridgeable materials from your Realms' balance 2. **After 7 Days** * Any remaining **$LORDS** tokens and **Materials** will be **permanently locked** * These assets **CANNOT** be recovered under any circumstances 3. **Score Registration** * Players have **4 days** to register their scores * Registration is **MANDATORY** to be eligible for prizes * While registration has a deadline, prize claiming does not Please refer to the documentation for detailed instructions on the bridging process during active gameplay. ## No Recourse By participating in Eternum, you waive all rights to claims or recourse against the developers, the DAO, or any other associated entities for any losses or disputes arising from your participation in the game. ## Acknowledgment of Terms Participation in Eternum constitutes your agreement to these terms, as well as all other terms and conditions outlined in the game’s documentation. --- file: docs/pages/overview/entry.mdx meta: { "title": "Game Entry & Participation", "description": "How to join and participate in Eternum seasons" } # Game Entry & Participation ## Season Access ### Realms NFT Holder Entry Season entry Realms NFT holders have the exclusive benefit of free entry into each season of Eternum through the minting of Season Passes. Each Season Pass is unique to the Realm it was minted from and allows the Season Pass holder to initiate a settling transaction to enter the game. To do this, Lords must first transfer the Season Pass to their Cartridge Wallet. * Mint your pass [here](https://empire.realms.world/mint) ### Non-Realm Holder Entry #### Marketplace Should a Realm NFT holder decide not to use their Season Pass, they can transfer it or sell it on the [Season Pass Marketplace](https://empire.realms.world/trade), providing avenues for non-Realm holders to acquire Season Passes to participate in the game. #### Villages Villages are modest outposts that can be established around settled Realms, offering an accessible entry point into Eternum. Villages have some restrictions, but offer a low-cost taste of Eternum gameplay to newcomers while also acting as an avenue for established players to expand their production. Each Realm can support up to six surrounding Villages, allowing for up to 48,000 Villages in Season 1. For detailed information about Villages, including settling mechanics, resource production, and progression paths, visit our [Villages guide](/eternum/realm-and-villages/villages). ### Continuous Play As long as you maintain in-game Realm or Village ownership, you can actively participate without additional entry fees. Engage in the market using **$LORDS** tokens and enjoy uninterrupted gameplay until the end of the season. ### Realm Control Mechanics ⚔️ **Takeover System** Settled Realms can be conquered within a Season, transferring control to the conqueror. Gameplay rights are restored at the start of the next Season, as the Realm NFT owner will be able to mint a new Season Pass for the new Season. 🛡️ **Village Security** Unlike Realms, Villages cannot be conquered by other players, making them an ideal choice for casual players seeking a lower-risk gameplay experience. Villages can still participate in most gameplay activities - producing resources, training troops, and engaging in trade - but at 50% the rate of Realms. This security, combined with their accessibility and limited progression path from Settlement to City, makes Villages perfect for new players looking to learn the game mechanics without the constant threat of conquest. --- file: docs/pages/overview/introduction.mdx meta: { "title": "Introduction to Eternum", "description": "Understanding the World of Eternum" } # Welcome to Eternum Eternum Landscape ## The Lords Have Arrived Across treacherous open seas and endless horizons, the legendary Galleon has finally arrived upon the lands of Eternum, bearing the brave and ambitious souls known as Lords. Having journeyed for years, driven by dreams of power, glory, and untold riches, these Lords have finally set foot upon their destination—a mysterious landscape ripe with ancient secrets and unclaimed territories. Now, as the mists clear, each Lord must forge their own path in this land of promise and peril. ## Establish Your Foothold In Eternum, your task begins by settling a Realm or Village—a seat of power from which your destiny unfolds. Select your strategic position upon the vast, unexplored, procedurally generated world map and secure vital materials to fuel your expansion. Grow your influence through shrewd economic choices, military strategy, and diplomatic maneuvering, nurturing your humble settlement into a mighty empire. Yet, strength alone is insufficient, for Eternum is fraught with dangers—bandits roam unchecked and rival Lords covet your lands. Armies must be raised, resources guarded, and alliances carefully chosen. Only through wise leadership and vigilant defense can your Realm flourish and endure. ## Find Your Glory Scattered throughout Eternum are the foundations of ancient Hyperstructures—colossal relics from an ancient civilization far surpassing all known powers. Some unknown, cataclysmic event once destroyed all of these structures and plunged the land into darkness and disorder. Lords who successfully reclaim, rebuild, and control these Hyperstructures will assert their dominance over the vast continent, with one player eventually claiming ultimate victory. However, Eternum's expansive world offers glory beyond mere conquest; whether through trade mastery, military prowess, diplomatic excellence, or simply the joy of exploration, every Lord has the freedom to find their own path to greatness. ## Core Pillars Eternum is built on three core pillars: * **Player‑Driven Economy** – Every resource harvested and trade executed originates from player choices. Collective actions shape supply, demand, and market prices across Eternum. * **Strategic Depth** – Success hinges on efficient production, calculated territorial expansion, and well‑timed military engagements. Foresight and adaptability separate thriving empires from conquered realms. * **Community Governance** – Power grows through tribes, alliances, and diplomatic pacts. Coordinated groups can tip regional conflicts and shift the balance of power continent‑wide. ## Game Features Eternum Game Features Eternum offers high-stakes gameplay across defined seasons, set on an infinite, procedurally generated hexagonal map. Players can pursue total victory or explore freely, with a focus on diplomacy, resource management, and tactical decisions. ### Game Progression * **Early Game**: Establish your Realm, build infrastructure, and secure resources. * **Mid Game**: Expand influence, forge alliances, and develop military capabilities. * **End Game**: Engage in epic battles, large-scale diplomacy, and resource warfare. ### Core Elements * **Seasons** – Freestanding campaigns with fresh rules and victory conditions; in-game assets can be bridged forward, however, allowing committed Lords to carry hard‑won progress between chapters. * **World Map** – An infinite, procedurally generated hex grid dotted with Banks, Fragment Mines, and Hyperstructure Foundations, facilitating exploration and conflict. * **Resources & Economy** – 22 tokenized resources—plus food, labor, donkeys, and troops—are traded with a player owned and operated economy. * **Military Power** – Raise armies and battle strategically—considering stamina, troop tiers and biome effects, to seize territory and capture the Realms of your rivals. * **Social Structure** – Forge tribes and alliances to pool resources, coordinate conquests, and shape regional politics through diplomacy or decisive force. ## Vision Explore our [detailed vision document](https://github.com/BibliothecaDAO/world-guide/blob/main/realms-world-guide-v1.0.0.pdf) ## Eternum as a Platform Eternum lays the foundation for future development with open architecture, community extensions, and a focus on innovation. It serves as a benchmark for onchain gaming capabilities. --- file: docs/pages/overview/key-concepts.mdx meta: { "title": "Key Concepts", "description": "The foundational mechanics of Eternum" } # 🔑 Key Concepts Eternum Key Concepts This section outlines the core mechanics and systems that form the foundation of Eternum's gameplay. ## Realms * **Limited Assets**: 8,000 unique and irreplaceable Realms serve as the foundation of Eternum, each has the ability to freely mint a Season Pass. * **Settling**: Players must burn a Season Pass to settle their Realm in the game world. * **Starting Materials**: Each newly settled Realm begins with a set of starting materials. * **Progression Path**: Realms can upgrade from Settlements → Cities → Kingdoms → Empires, unlocking additional buildable hexes and defensive army slots. * **Resource Production**: Each Realm can produce 1-7 different resources based on the original Realms NFT metadata. * **Wonders**: Realms with Wonders have a 20% production bonus and share this bonus with all Realms and Villages in a 12 tile radius. * **Hardcore Gameplay**: If a Realm’s defenses crumble, it can be claimed by another player—transferring gameplay rights to the conqueror. ## Villages * **Accessible Entry**: Villages can be established around settled Realms, offering a simple entry system for new players * **Scaling**: Up to 6 Villages per Realm, allowing for 48,000 Villages in Season 1 * **Limited Production**: Produce materials at 50% the rate of Realms and only have access to 1 resource type each * **Parent Realm**: Each Village is tied to a parent Realm and will pay bridging fees if moving materials out of the game * **Troop Restrictions**: Villages may only receive tokenized troops from their parent Realm, they cannot buy or be sent troops from any other source * **Simple Progression**: Villages have a limited upgrade path from Settlement to City * **Casual Gameplay**: Villages can be raided, but can’t be claimed by other players. ## Materials * **Materials Categories**: * **Food**: (Wheat, Fish) - essential for production, troop movement, and construction. * **Resources**: 22 different resource types, distributed based on rarity across both Realms and Villages. * **Troops**: Units with unique properties that can be assigned to armies. * **Donkeys**: Required for moving materials around the world, essential for logistics. * **Labor**: A new material in S1, allows players to build and produce in 'simple mode', acquired through burning resources. * **Ancient Fragments**: Found in game, critical for the construction of Hyperstructures. * **ERC20 Compatibility**: All materials (except Labor) can be traded freely and bridged out as ERC20 tokens through Realms. ## Buildings * **Construction Modes**: Two building systems available - Standard (resource-efficient) and Simple (labor-focused). * **Building Types**: * **The Keep**: Central structure automatically constructed when settling, provides baseline population capacity. * **Resource Buildings**: Specific buildings for each of the 22 resources, only requiring food to construct. * **Economic Buildings**: Includes Farms, Fishing Villages, Worker Huts, Storehouses, and Markets. * **Military Buildings**: Nine different buildings for producing three tiers of each troop type. * **Placement & Population**: Buildings require buildable hexes and population capacity, with more unlocked as Realms and Villages are upgraded. ## Production * **Production Modes**: Like buildings, production can be done in Standard (resource-intensive) or Simple (food and labor) mode. * **Production Types**: * **Food**: The only resources (Wheat, Fish) that can be produced without inputs. * **Resources**: Require combinations of other resources (standard) or labor (simple). * **Labor**: Produced by burning resources in the Keep, used for simple mode construction and production. * **Troops**: Essential for exploration and warfare, with higher tiers requiring lower tier troops as inputs. * **Donkeys**: One-time-use transport, consumed after a single journey. ## World Map * **Exploration System**: The world begins shrouded in mystery, with only the six Banks visible at season start; adjacent hexes are revealed when settling, and armies can explore to reveal new areas. * **Biomes**: 16 unique biome types procedurally generated across the map, each affecting combat effectiveness and troop movement. * **Movement & Stamina**: Armies move using stamina (regenerating at +20 per Eternum Day), with costs varying by biome and troop type; Knights, Crossbowmen, and Paladins each have different maximum stamina capacities. * **Exploration Mechanics**: Exploring costs 30 stamina per hex and reveals that area permanently to all Lords; exploring armies may discover resources or encounter world structures and agent armies. ## Military Eternum Military * **Army Composition**: Armies consist of a single troop type and tier (Knights, Crossbowmen, or Paladins). * **Troop Tiers**: T1, T2, and T3 troops with increasing combat strength. * **Combat Factors**: Battles resolved based on army damage, stamina modifiers, and biome effects. * **Army Types**: * **Field Armies**: Deploy onto the world map for exploration and conquest. * **Guard Armies**: Deployed to defense slots to protect structures. * **Stamina System**: Armies recover +20 stamina daily, with 30+ stamina needed for full combat effectiveness. * **Biome Effects**: Each troop type has advantages (+30% damage), disadvantages (-30% damage), or no change (0%) in specific biomes. * **Raiding Mechanics**: Armies can attempt to steal resources from structures without defeating defenders. * Success depends on the raiding army's damage relative to the combined guard armies. * Undefended structures can be raided without casualties. ## Tribes Tribes are player-formed organizations enabling cooperation and coordination. They can be made public (open to all) or private (invitation only) and allow players access to tribe-only features. Tribes are an early form of social structures within Eternum and rely on player-driven interactions including arrangements of alliances and declarations of war. ## Victory Conditions Eternum's seasonal gameplay culminates in victory through the accumulation of victory points earned through the construction and ownership of Hyperstructures. However, there are various achievement paths, with players earning recognition and rewards for various actions within the Season. --- file: docs/pages/overview/links.mdx meta: { "title": "Quick Links", "description": "Essential links for Eternum" } # Quick Links ## Play & Learn * [Play Eternum](https://eternum.realms.world/) - Start your journey * [GitHub](https://github.com/BibliothecaDAO/eternum) - Explore the code * [Season Pass](https://empire.realms.world/) - Mint your season pass * [Season Pass Marketplace](https://element.market/starknet) - Buy your Season Pass on Element * [Realms Marketplace](https://market.realms.world/) Buy a Realm NFT ## Community * [Realms World](https://realms.world/) - The DAO behind Eternum * [Discord](https://discord.gg/realmsworld) - Join our discord * [Twitter](https://x.com/LootRealms) - Follow the community * [Twitter](https://x.com/RealmsEternum) - Follow for Eternum updates --- file: docs/pages/overview/lords.mdx meta: {} # $LORDS Token ![LORDS Token](/images/resources/37.png) $LORDS is the native token of the Realms Autonomous World. It serves as the primary currency within the Eternum ecosystem, enabling economic activity and resource movement throughout the game. ## Token Details * **Name**: LORDS * **Network**: Starknet * **Contract Address**: [0x0124aeb495b947201f5fac96fd1138e326ad86195b98df6dec9009158a533b49](https://starkscan.co/token/0x0124aeb495b947201f5fac96fd1138e326ad86195b98df6dec9009158a533b49) * **Total Supply**: 300,000,000 LORDS ## $LORDS in Eternum * **Trading Currency**: $LORDS serves as the primary currency for trading within Eternum's Automated Market Maker (AMM) and the peer-to-peer Orderbook, allowing Lords to facilitate trades and manage their economic interactions. * **Transport System**: $LORDS are essential for producing donkeys, the backbone of Eternum's transport system, effectively acting as the "gas" token required for facilitating all in-game logistics and resource transfers. ## How to get $LORDS ### In Eternum Within Eternum, Lords can obtain $LORDS through various methods: * Selling surplus materials through the in-game AMM or Orderbook * Defeating or negotiating with AI agents * Discovering special quest tiles scattered throughout the Eternum world * Achieving objectives in other Realms Ecosystem games ### On Starknet Outside of gameplay, $LORDS can be acquired on the Starknet network through decentralized exchanges (DEXs). #### Recommended Exchanges | Exchange | Compatibility | Notes | | --------------------------------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | [Ekubo](https://app.ekubo.org/?outputCurrency=LORDS\&amount=1\&inputCurrency=ETH) | ✅ Supports Cartridge Controller | Swap directly with your game wallet | | [Avnu](https://app.avnu.fi/en/eth-lords) | ❌ No Cartridge Controller support | Requires an [Argent](https://x.com/argentHQ) or [Braavos](https://x.com/myBraavos) wallet first, then transfer to your controller | #### Step-by-Step Guide For new users, follow this [comprehensive guide](https://x.com/lordcumberlord/status/1920650310621495350) that covers: 1. Setting up a Braavos wallet 2. Bridging ETH to Starknet via Orbiter 3. Swapping ETH for STRK and LORDS 4. Creating a Cartridge Controller (if needed) 5. Transferring LORDS to your game wallet --- file: docs/pages/overview/resource-addresses.mdx meta: {} import { ResourceAddresses } from "@/components/ResourceAddresses"; # Resource Addresses --- file: docs/pages/blitz/materials/automation.mdx meta: {} DRAFTING NOTE: WHOLE SECTION REQUIRES REVIEW AND REMOVAL OF AI DRIBBLE. # Resource Automation Resource automation allows players to set up continuous production processes and automated transfers within and between their Realms. This system helps manage resource generation and distribution efficiently without constant manual intervention. ## Overview The automation system works by processing two types of "orders" that you define: 1. **Production Orders**: Automate resource production within your Realms 2. **Transfer Orders**: Automate resource transfers between your structures (Realms, Hyperstructures, etc.) Both types of orders specify what you want to automate, the method or conditions, target amounts or schedules, and priorities. **Key Features:** * **Order-Based**: Define specific production and transfer tasks. * **Priority System**: Control the sequence of execution for multiple orders. * **Multiple Automation Types**: Choose between production automation and transfer automation. * **Entity-Specific**: Automation is configured on a per-entity basis. * **Browser Dependent**: Automation processes run in your browser; the game tab must remain open for automation to function. * **10-Minute Cycles**: All automation is processed every 10 minutes. ## How It Works The automation system periodically checks and processes active orders for each entity. 1. **Processing Interval**: All orders are evaluated every 10 minutes. 2. **Order Prioritization**: For each entity, orders are sorted by their priority number (1 being the highest). 3. **Pause Functionality**: You can pause all automation for any entity, which will skip all orders for that entity. 4. **Order Processing**: The system processes different order types: ### Production Order Processing * **Balance Check**: Before executing, the system checks if the realm has sufficient input resources or labor. * **Recipe-Based Production**: Production follows predefined recipes from the game's configuration. * **Cycle Calculation**: Determines the maximum number of production cycles possible based on available inputs. * **Transaction**: If conditions are met, a blockchain transaction is initiated to perform the production. ### Transfer Order Processing * **Schedule Check**: For recurring transfers, checks if enough time has passed since the last transfer. * **Threshold Check**: For conditional transfers, checks if resource levels meet the specified conditions. * **Resource Availability**: Verifies the source entity has sufficient resources for the transfer. * **Transaction**: If conditions are met, initiates a transfer transaction between entities. ## Production Types There are three types of production automation: 1. **Standard (Resource-to-Resource)**: * Converts one or more input resources into a different output resource. * Example: Using Wood and Stone to produce Tools. 2. **Simple (Labor-to-Resource)**: * Utilizes Labor from the realm to produce a specific resource. * Example: Using Labor to harvest Food. 3. **Resource-to-Labor**: * Converts a specified resource into Labor for the realm. * Example: Burning Food to generate Labor. ## Production Order Modes Production orders can operate in two different modes: 1. **Produce Once**: * Produces resources until the target amount is reached, then stops. * Shows progress as "Produced / Target" (e.g., "1,500 / 5,000"). * Can be set to "Infinite" to produce continuously without a limit. 2. **Maintain Balance**: * Keeps resource balance at the target level. * Production triggers when balance drops below target minus buffer percentage. * Example: Target 10,000 with 10% buffer = production starts when balance drops below 9,000. * Useful for maintaining steady resource levels. ## Transfer Types Transfer automation allows you to automatically move resources between your entities. There are three transfer modes: 1. **Recurring Transfers**: * Transfers resources at regular intervals. * Minimum interval: 10 minutes (due to automation cycle). * Example: Transfer 1,000 Food from Realm A to Village B every 2 hours. * *\[GIF placeholder: Setting up a recurring transfer]* 2. **Maintain Stock Transfers**: * Transfers when the destination entity falls below a threshold. * Example: Transfer 500 Wood to Village when it has less than 1,000 Wood. * Helps keep important entities well-supplied. * *\[GIF placeholder: Setting up a maintain stock transfer]* 3. **Depletion Transfers**: * Transfers when the source entity exceeds a threshold. * Example: Transfer excess Stone when Realm has more than 5,000 Stone. * Prevents resource overflow and distributes surplus. * *\[GIF placeholder: Setting up a depletion transfer]* ## Managing Automation Orders (UI) You can manage automation orders through the "Automation" tab within any entity's interface, or through the global "All Automations" view. ### Production Automation Production automation is managed within individual realm interfaces. *\[GIF placeholder: Navigating to realm automation tab]* #### Adding a New Production Order 1. Click the "Add New Automation" button. 2. Configure the following: * **Order Mode**: * `Produce Once`: Produce up to target amount then stop * `Maintain Balance`: Keep resource balance at target level * **Production Type**: * `Standard (Resource-based)` * `Simple (Labor-based)` * `Resource to Labor` * **Priority (1-9)**: * Set the execution priority. `1` is the highest priority, `9` is the lowest. * **Resource to Produce / Resource Input for Labor**: * Select the resource you want to produce or consume. * The UI shows required input resources for Resource-to-Resource recipes. * **Target Amount**: * For "Produce Once": Set total quantity to produce, or check "Infinite" for continuous production. * For "Maintain Balance": Set the balance level to maintain. * **Buffer Percentage** (Maintain Balance only): * Production starts when balance drops below target minus buffer percentage. 3. Click "Add Automation". *\[GIF placeholder: Creating a production automation order]* ### Transfer Automation Transfer automation allows you to move resources between any of your entities. *\[GIF placeholder: Accessing transfer automation]* #### Adding a New Transfer Order 1. **Select Source Entity**: * Choose entity type (Your Realms, Your Villages, etc.) * Search and select the specific source entity 2. **Configure Transfer**: * **Transfer Mode**: * `Recurring`: Transfer at regular intervals * `Maintain Stock`: Transfer when destination is low * `Depletion Transfer`: Transfer when source is high * **Destination Entity**: * Choose entity type and select specific destination * **Resources to Transfer**: * Add multiple resources with specific amounts * **Schedule/Conditions**: * For Recurring: Set interval in minutes (minimum 10 minutes) * For conditional transfers: Set threshold amounts 3. Click "Add Transfer Automation". *\[GIF placeholder: Creating a transfer automation order]* #### Transfer Interval Guidelines * **Minimum Interval**: 10 minutes (matches automation processing cycle) * **Common Intervals**: * 10m, 30m, 1h, 2h, 6h, 24h (preset buttons available) * Custom intervals can be set in minutes * **Effective Timing**: Transfers occur when automation cycles align with your interval ### Viewing and Managing Orders #### Individual Entity View Each entity shows its automation orders in a table with: * **Priority**: Order execution priority * **Mode**: "Once", "Maintain", or transfer mode ("Recurring", "Stock", "Depletion") * **Resource**: Visual representation of resource flow * **Target/Balance**: Target amounts or transfer schedules * **Produced**: Amount produced (production orders only) * **Type**: Order type (production or transfer) * **Actions**: Remove button *\[GIF placeholder: Viewing automation orders in entity interface]* #### Global Automation View The "All Automations" view shows orders from all entities: * **Realm Filter**: Filter by specific realm or view all * **Order Status**: Visual indicators for completed, paused, or active orders * **Countdown Timer**: Shows time until next automation cycle * **Bulk Actions**: Pause/resume or delete orders *\[GIF placeholder: Using the global automation view]* ### Pausing Automation You can pause automation at different levels: 1. **Individual Entity**: Pause all automation for a specific entity 2. **Individual Order**: Remove specific orders 3. **Global Control**: Manage all orders from the global view *\[GIF placeholder: Pausing and resuming automation]* ## Important Considerations ### General Requirements * **Browser Must Be Open**: Automation processing occurs in your browser. If you close the game tab or your browser, automation will stop. * **10-Minute Processing Cycle**: All automation is processed every 10 minutes. This affects timing for all orders. * **Transaction Costs**: Each successful automation cycle that results in production or transfer will involve a blockchain transaction, which incurs network transaction fees. * **Processing Time**: Due to the 10-minute processing interval and potential network conditions, there might be a delay before an order is executed or its results are visible. ### Production Automation Considerations * **Resource Availability**: Production orders will only execute if the required input resources are available in the realm at the time of processing. * **Recipe Dependencies**: Production follows predefined game recipes. You cannot produce resources that don't have valid recipes. * **Storage Limits**: Produced resources will increase your realm's balance and may cause resource loss if storage is full. ### Transfer Automation Considerations * **Entity Ownership**: You can only set up transfers between entities you own. * **Transfer Timing**: * Minimum effective interval is 10 minutes due to processing cycle * Intervals shorter than 10 minutes will effectively transfer every 10 minutes * Non-10-minute multiples may have irregular timing based on when transfers align with processing cycles * **Resource Availability**: Transfers will only execute if the source entity has sufficient resources at processing time. * **Multiple Resources**: You can transfer multiple different resources in a single transfer order. * **Conditional Logic**: Maintain Stock and Depletion transfers check conditions each cycle and only transfer when thresholds are met. ### Best Practices 1. **Start Simple**: Begin with basic production orders or simple recurring transfers to understand the system. 2. **Monitor Initially**: Watch your first few automation cycles to ensure orders work as expected. 3. **Use Priorities**: Set appropriate priorities when you have multiple orders to control execution sequence. 4. **Plan for Delays**: Account for the 10-minute processing cycle when planning time-sensitive operations. 5. **Check Resource Flows**: Regularly verify that your automated transfers are maintaining desired resource distributions. *\[GIF placeholder: Monitoring automation performance and adjusting orders]* --- file: docs/pages/blitz/materials/bridging.mdx meta: {} # 🌉 Bridging Bridging in Blitz is limited to the bridging of relics into the game. This is to prevent players from gaining advantage through the import of materials previously extracted from Eternum seasons, while still encouraging the use of consumables for engaging and competitive gameplay. There is no bridging out of Blitz sessions, once relics are bridged in they cannot be taken out of the session. ## Bridging Relics DRAFTING NOTE: Provide breakdown on bridging relics. Players should be required to bridge during the settling phase. --- file: docs/pages/blitz/materials/production.mdx meta: {} import { StandardTroopProduction, SimpleTroopProduction, SimpleResourceProduction, StandardResourceProduction, LaborProduction, DonkeyProduction, } from "@/components/ResourceProduction"; # ⚒️ Production ## Standard vs. Simple As is the case for building construction, Lords can choose between standard and simple production systems when deciding how they wish to produce their materials. This can be done by selecting the appropriate panel when making an order in the production screen. ![Simple Mode Production](/gifs/labor-production.gif) *Note: Production works a little differently in Blitz compared to other game modes. Instead of streaming resources unit by unit and producing an output for as long as you have the requisite inputs, Lords must now commit the full material requirements to the production order upfront. The output is then produced at a given rate per second.* ### Standard Mode The classic production system—every resource and troop production order requires food and a combination of other resources as inputs. As with buildings, standard mode is the more complex but efficient way to produce materials. ### Simple Mode Simple mode reduces the input requirements to food and labor. This is, once again, less efficient in both time and resources—but it allows Lords to produce resources on their Realm even if they don't have access to the input resources required in standard mode. ## Materials Production ### Food Wheat is the only food source in Blitz and it can be produced without inputs. Once a Farm has been constructed, it can produce Wheat indefinitely. ### Resources The 9 resources found in Blitz are the backbone of the economy. Producing one resource requires the input of two other resources (standard mode), or labor (simple mode). Resources are also the main components in building construction and troop production - so mastery of these assets is key to success and security. DRAFTING NOTE: Tables require review. ### Labor Labor is the primary input for buildings and production in simple mode, but is also required in standard mode for building construction and Realm upgrades. Labor is produced by permanently burning resources in the Keep. This creates a steady stream of labor at a fixed rate. Each of the 9 resources can be burned to produce labor at varying efficiency, dependent on rarity. The amount of resources burned per second to produce labor at the fixed rate is as follows: DRAFTING NOTE: Table requires review. ### Troops Troops are essential for exploration, defending your lands and conquering your enemies. Every Lord will be required to produce troops to ensure they remain a relevant force throughout the game. Three troop tiers are available, each requiring a combination of food, rare resources, and troops of the previous tier as input for production. Note: Only T1 troops can be produced in both standard and simple mode. T2 and T3 troops can only be produced in standard mode. DRAFTING NOTE: Tables require review. ### Donkeys The humble steeds that move all materials around the world must themselves be produced in a market building. Donkeys are one-time-use and consumed after a single journey, so Lords will need to produce a steady supply of donkeys to ensure that they can sustain their supply chains and logistics. Once the market has been constructed, donkeys only require a steady stream of food to produce. DRAFTING NOTE: Table requires review. --- file: docs/pages/blitz/materials/resources.mdx meta: {} import RarityResourceTable from "@/components/RarityResourceTable"; import ResourceIcon from "@/components/ResourceIcon"; import TroopsLimitTable from "@/components/TroopsLimitTable"; import { ResourcesIds } from "@bibliothecadao/types"; # 🪵 Materials ## Materials Overview Materials encompass all transportable assets in Blitz, including: * **Food**: Essential wheat that fuels production and troop movement * **Resources**: 9 distinct resource types that can be produced on Realms * **Troops**: Military units (Knights, Crossbowmen, Paladins) that can be assigned to armies * **Donkeys**: One-time-use transport units required for moving materials across the world * **Labor**: A special material that enables construction and production * **Essence**: A new strategic resource found through exploration and required for upgrades While all materials can be transported within the game, **no materials can be bridged out** of Blitz. Players may only bridge relics into the game. ## Resources Resources are the foundation of **Blitz**'s economy. The 9 simplified resources play vital roles in the game's ecosystem, from basic production to advanced military operations. ![Produce from building](/gifs/produce-from-building-click.gif) ## Material Categories ### Basic Materials #### Food
Food is the cornerstone of your realm's economy: * **Simplified System**: Only Wheat is available (no Fish) * **Basic Production**: Produced without additional resource inputs * **Essential Resource**: Required for most production chains * **Troop Maintenance**: Essential for maintaining troops and construction
### Strategic Materials #### Military
Military units have unique properties: * **Deployment Only**: Cannot be converted back to tradeable form once deployed to an army * **Army Transfer**: Can be transferred between armies if located on adjacent hexes and of the same type and tier * **Essence Requirement**: All troop production requires Essence
#### Transport (Donkeys)
Essential for logistics: * **Food Cost Only**: Donkeys only cost food to produce (no $LORDS cost) * **Single Use**: Consumed after a single journey * **Required Transport**: Essential for moving materials around the world
### Special Materials #### **$LORDS** Currency
**$LORDS** is Blitz's economic backbone: * **Entry Fees**: Used for Warrior bracket entry fees * **Prize Pools**: Distributed as prizes to top performers * **No Donkey Production**: Not required for donkey production in Blitz #### Labor
Labor is a fundamental production material: * **Universal Production**: Can be produced by any Realm * **Construction Required**: Required to construct most buildings * **Resource Burning**: Produced by burning resources, with rarer resources yielding more labor * **Essence Integration**: May require Essence for some production #### Essence **Essence** is the key strategic resource in Blitz: * **Exploration Required**: Found by exploring the map and interacting with world structures * **Upgrade Requirement**: Required for all Realm upgrades and building construction * **Troop Production**: Essential for producing all troop types * **Strategic Value**: Control of Essence sources provides competitive advantage * **No Production**: Cannot be produced, only found through exploration ## Blitz-Specific Mechanics ### No Bridging Out * **Internal Only**: All materials remain within the Blitz game world * **No External Trade**: Cannot bridge materials out as ERC20 tokens * **Relic Bridging**: Players may only bridge relics into the game * **Scoring Focus**: Materials contribute to scoring rather than external value ### Simplified Resources * **9 Resources**: Simplified resource system for fast-paced gameplay * **No Fish**: Food simplified to just Wheat * **Balanced System**: Resources designed for 3-hour competitive games * **Strategic Choices**: Choose production based on immediate needs ### Increased Production Rates * **Faster Production**: All production rates increased for fast-paced gameplay * **Altered Recipes**: Production and building recipes modified for Blitz balance * **Efficient Scaling**: Optimized for 3-hour competitive sessions * **Strategic Timing**: Production timing crucial for competitive success ## Strategic Considerations ### Essence Management * **Early Acquisition**: Secure Essence sources quickly * **Exploration Priority**: Focus exploration on Essence discovery * **Strategic Control**: Control Essence Wells for steady production * **Upgrade Planning**: Plan upgrades around Essence availability ### Resource Optimization * **Production Efficiency**: Optimize production for maximum scoring * **Strategic Building**: Choose buildings based on immediate needs * **Resource Conversion**: Convert resources to scoring opportunities * **Balanced Development**: Balance all resource types for maximum efficiency ### Competitive Strategy * **Early Game**: Establish basic production quickly * **Mid Game**: Scale up production based on strategic needs * **Late Game**: Optimize for maximum scoring * **Resource Control**: Control key resource sources for competitive advantage Remember, in Blitz's fast-paced environment, efficient resource management is crucial for maximizing your Total Score and competitive performance! --- file: docs/pages/blitz/materials/storage.mdx meta: {} import { WeightTable } from "@/components/WeightTable"; import { formatNumberWithCommas } from "@/utils/formatting"; import { divideByPrecision } from "@/utils/resources"; import { CapacityConfig, ResourcesIds } from "@bibliothecadao/types"; import { ETERNUM_CONFIG } from "@/utils/config"; # 🏺 Storage Your available storage limits the amount of materials your Realm can hold. Each Realm begins with a base capacity of **{formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.Storehouse]/1000)} kg**. You'll need to construct storehouses to expand your storage capabilities. ## Weight and Storehouses ### Material Weights Materials have different weights that affect storage: DRAFTING NOTE: Review and add essence. ### Storehouses Storehouse Each storehouse adds {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.Storehouse]/1000 )}kg of storage capacity. Lords must be careful not to exceed the storage capacity of their Realms, as any produced materials that cannot be stored will be permanently lost. ## World Structure Storage All world structures have set storage capacities **(that cannot be expanded through the use of storehouses)**. These capacities are as follows: DRAFTING NOTE: Review table. | Structure Type | Storage Capacity | | -------------- | ------------------------------------------------------------------------------------------------------------ | | Hyperstructure | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.HyperstructureStructure]/1000)} kg | | Essence Rift | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.EssenceRiftStructure]/1000)} kg | | Camp | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.CampStructure]/1000)} kg | --- file: docs/pages/blitz/materials/transfers-and-trade.mdx meta: {} import { importantNote } from "@/components/styles"; # 📜 Transfers **Blitz has no trade system.** Blitz focuses on individual competitive performance without economic trading mechanics. As such, there are no Banks, no P2P transfers, and no AMM/Orderbook through which Lords may trade. ## Transferring Materials Throughout the game, Lords will face the need to transfer materials from place to place around the world map, whether it be to their own Realms, or other structures like Hyperstructures, Essence Rifts and Camps. Lords have two primary options for initiating transfers: * **Detailed Transfer**: Players can use the comprehensive transfer menu accessible from the Trade tab. This allows transfers of multiple types of materials simultaneously, to any of their own structures on the map. ![Detailed Transfer](/gifs/transfer-all.gif) * **Quick Transfer**: Alternatively, Lords can swiftly transfer resources between their own structures using the resources sidebar, ideal for managing internal logistics and maintaining supply chains. ![Quick Transfer](/gifs/transfer-own.gif) ## The Donkey Network When a transfer is initiated, donkeys travel through the invisible and immutable donkey network. This is the key infrastructure upon which all material transport takes place. One donkey is capable of carrying up to 50 kg of materials, so the number of donkeys required for a transfer depends on the total weight of the materials being moved. Once a transfer is initiated, it cannot be cancelled, and the journey will take some time depending on the distance to the destination structure. Upon arrival, transferred materials and donkeys must be manually claimed via the 'Resource Arrivals' tab before they become available for use. ### Blitz Restrictions While troops can be transferred between Realms as normal, donkeys cannot be used to transport troops between Realms and Hyperstructures, Essence Rifts or Camps. This is to reduce the defensive advantage that a player can leverage by being able to move troops quickly into guard armies on these structures once claimed. All players must therefore deploy armies from Realms and move them across the map to contest these critical points. --- file: docs/pages/blitz/military/armies.mdx meta: {} import { RealmDefenseSlotsTable, WorldStructureDefenseSlotsTable } from "@/components/DefendingArmies"; import { ETERNUM_CONFIG } from "@/utils/config"; import { formatNumberWithCommas } from "@/utils/formatting"; # ⚔️ Armies Blitz World Map Individual armies consist of a single troop type and tier. Each hex can host only one army, so Lords must carefully manage their positioning and engagement opportunities. Each Realm has a limited number of guard and field armies. The number of armies can be increased by upgrading the Realm level as explained in the [Realms](/blitz/realms/realm) section. Each military building constructed also increases total field armies by 1 (up to a maximum of **+{ETERNUM_CONFIG().troop.limit.explorerMaxPartyCount-4}**). Lords can deploy armies from the Military tab in the Local view. The maximum size of an army is **{formatNumberWithCommas(ETERNUM_CONFIG().troop.limit.explorerAndGuardMaxTroopCount)}**. ## Field Armies Field armies are used to project force on the world map, explore unknown territories, claim hyperstructures, defeat bandit forces, and engage in combat with other players. These armies are deployed onto one of the six hexes surrounding their parent Realm on the world map. If all hexes adjacent to the Realm are occupied, a field army cannot be deployed. Once deployed, these armies occupy a hex and traverse the world map based on the conditions outlined in the [World Map & Movement](/blitz/worldmap-movement/movement) section. Lords may direct their field armies to attack another army or structure on any adjacent hex by selecting the army with left-click, then right-clicking the target hex. When attacking a structure, the field army will engage in combat against any guard armies present.
Create Army Flow to create field army in the client
## Guard Armies Guard armies do not appear on the world map; instead, they occupy defense slots visible in the Military tab of the Local view. When in the World view, Lords can observe the defensive capabilities of any structure by selecting a hex and opening the Details tab. Unlike Realms, world structures have a static number of defence slots: DRAFTING NOTE: Review table.
Create Army Flow to create guard in the client
DRAFTING NOTE: Review reinforcement delay to 10 minutes. When attacked, guard armies are targeted sequentially starting from the outermost occupied slot. If a guard army is destroyed, the slot that it occupied becomes unavailable for reinforcement for **{Math.floor(ETERNUM_CONFIG().troop.limit.guardResurrectionDelay / 3600)} minutes**. Once all guard armies are defeated, the structure becomes vulnerable to being claimed by an adjacent field army. Lords can also direct their guard armies to launch attacks against adjacent hexes by selecting their structure on the worldmap, then right-clicking the target hex.
Attack field army Attack field army with structure
--- file: docs/pages/blitz/military/damage.mdx meta: {} # 💥 Damage import { DamageCalculation } from "@/components/DamageCalculation"; ## Damage Overview Damage is defined as the number of casualties dealt by one army against the other in an instance of combat. When combat is initiated (i.e. one army attacks another), damage for both the attacking and defending army is calculated based on the number of troops, troop tier, stamina, and biome bonuses. Damage is then simultaneously inflicted by both sides. Battles can last multiple rounds (requiring multiple combat instances) depending on the relative strength and number of troops involved. Armies with higher-tier troops deal significantly more damage. However, careful management of troop numbers, stamina, and biome positioning can enable lower-tier armies to overcome stronger opponents. DRAFTING NOTE: Review the damage calculation. Likely to reduce damage for Blitz. --- file: docs/pages/blitz/military/raiding.mdx meta: {} # 💰 Raiding DRAFTING NOTE: Suggest we just remove raiding from Blitz, there's no point in it. --- file: docs/pages/blitz/military/stamina-and-biomes.mdx meta: {} import { Biomes } from "@/components/Biomes"; import { BiomeCombat } from "@/components/BiomeCombat"; # 🌪️ Stamina & Biomes ## Stamina Stamina is a vital resource governing the mobility and effectiveness of armies. Each deployed army possesses a maximum stamina value determined by its troop type and tier. Field armies expend stamina when moving, exploring unknown hexes, or engaging in combat against other armies and structures. Guard armies only expend stamina when attacking armies in hexes adjacent to their structure. During combat, stamina impacts army combat effectiveness: ### Attacking Army The attacking army is the army initiating an instance of combat. Attacks require a minimum of **30 stamina**, so armies with less than 30 stamina cannot initiate an attack. Each additional stamina point above this threshold grants a **1%** damage bonus, up to a maximum of **+30%** damage at **60 stamina**. Additional stamina spend is not optional, so attacking armies will use all available stamina up to a maximum of **60** for any one attack. If the attacking army destroys the defending army, they gain **+30 stamina**. ### Defending Army The defending army is the army being attacked in an instance of combat. Defending armies rely on having stamina available to maintain full combat effectiveness. When attacked, defending armies incur a **1%** damage reduction for every stamina point below **30**. For example, if an army is attacked while they have **10 stamina**, they would deal **-20%** damage to the attacking army. The maximum penalty is **-30%** damage if stamina is completely depleted. Successfully defending an attack does not deplete stamina. Lords should manage their armies' stamina carefully, ensuring they retain enough reserves to remain effective against unexpected attacks. ## Biomes (Combat Effects) The combat effectiveness of different troop types is impacted by the biome on which the defending army is located when the combat instance is started. Armies can gain either a combat advantage (**+30%** damage), disadvantage (**-30%** damage), or no effect, depending on their affinity with a particular biome. To summarise these combat modifiers for each troop type: ⚔️️ ️️️**Knights** excel in forests, leveraging cover and mobility, but suffer reduced effectiveness in deserts, beaches, and snow-covered regions where their heavy armour and weapons can make it difficult to move on the soft ground cover. Knights are equally advantaged, disadvantaged or not affected across all biome types. 🏹 **Crossbowmen** benefit from open seas and unstable terrains (such as beaches and snow), where they can remain static and make the most of their ranged capabilities. However, they will be disadvantaged in flat, open terrain with no cover or opportunity for concealment. Crossbowmen are the least advantaged, but also the least disadvantaged by biome modifiers of the three troop types. 🛡 ️**Paladins** dominate open, flat terrain where mounted units thrive, but are hindered in dense forests and on open water where their mounted capabilities are negated. They are the most advantaged, but also the most disadvantaged troop type. In combination with the biome effects on stamina use, Paladins are less versatile than other Knights or Crossbowmen, but are devastatingly effective in the right situations. **Note: The scorched biome applies +30% damage to all troop types, representing the additional casualties sustained from battling in an inhospitable environment.** --- file: docs/pages/blitz/military/troop-tiers.mdx meta: {} import { TroopTiers, TroopTierDamageStats } from "@/components/TroopTiers"; import { MaxStaminaTable } from "@/components/TroopMovementTable"; # 🛡️ Troop Tiers Troops come in three distinct tiers: T1, T2, and T3. Tier 1 (T1) represents basic troops, while T2 and T3 troops are more advanced, offering significantly increased combat strength and stamina. T1 troops have the lowest cost and can be produced in simple mode. Higher-tier troops require rare resources, essence and lower-tier troops as inputs: * Two T1 troops combine to produce one T2 troop * Two T2 troops combine to produce one T3 troop Each troop tier provides escalating advantages in terms of damage output and stamina. --- file: docs/pages/blitz/realms/buildings.mdx meta: {} import BuildingCard from "../../../components/BuildingCard"; import { formatNumberWithCommas } from "@/utils/formatting"; import { CapacityConfig } from "@bibliothecadao/types"; import { ETERNUM_CONFIG } from "@/utils/config"; # 🪓 Buildings ## Standard vs. Simple Blitz offers two building systems. Lords can switch between standard and simple building modes at any time by clicking the toggle at the top of the construction tab. ![Simple Mode Production](/gifs/simple-mode.gif) *Note: Some buildings only require labor to construct. Farms and Wood Mills have the same construction cost in both standard and simple building modes.* ### Standard Mode This is the classic building experience. Construction requires a combination of labor and a particular set of resources as building materials. Standard mode is more complex as it involves a greater variety and amount of materials in storage, however it is far more efficient overall. ### Simple Mode This mode allows players to utilize labor as the singular input for construction. Simple mode greatly improves accessibility and simplifies gameplay overall, but is much less efficient in both time and materials. ## Placement & Population ### Placement The construction tab can be accessed in the Local view. Buildings can be constructed on any buildable hex of a Realm, provided the owner has the requisite materials and population capacity. Buildable hexes are defined by the upgrade level (i.e. Settlement, City, Kingdom, or Empire) and are visible as hexes with patches of bare, prepared earth. ![Building Placement](/gifs/construction.gif) ### Population **Population** is the total population used to construct the current buildings on a Realm, while the **population capacity** is the maximum available population with which to construct buildings. Worker Huts can be built to increase population capacity, while all other buildings require population capacity to be available in order to construct. Lords must balance their construction to ensure there is enough population capacity available to construct their desired production buildings. ## Building Types ### The Keep All Realms start the game with a structure in the centre of the buildable hexes, known as the Keep. This structure represents the central point of governance of the Realm, and facilitates key functions such as Realm upgrades and labor production. This building cannot be destroyed and provides a baseline population capacity of 5. ### Resource Buildings There is a specific resource building for each of the 9 resources in Blitz, so Lords will require separate resource buildings if they wish to produce more than one type of resource.
### Economic Buildings These buildings define the utility of a Realm, including food production, donkey production, population capacity, and storage capacity. All of these buildings can be constructed in either standard or simple mode, but have varying costs and population requirements:
### Military Buildings Military buildings are essential for developing armies to defend territories and project might. There are three 'tiers' of each of the three troop types, but a different building is required to produce each troop tier. As such, there are a total of 9 military buildings in the game. Note: Only T1 troop buildings can be constructed in both standard and simple mode. T2 and T3 military buildings are only available for construction in standard mode.
### Same Building Cost Increase Building multiple buildings of the same type on a single Realm will cost progressively more each time. The cost increase is calculated using the following formula: ``` Cost = Base Cost + (Base Cost × 0.1 × (N-1)²) ``` Where: * **Base Cost** is the initial cost of the building (from the tables above) * **N** is the number of the same buildings already constructed For example, if you build a second building of the same type (N=2), the cost will be: ``` Cost = Base Cost + (Base Cost × 0.1 × (2-1)²) = Base Cost + (Base Cost × 0.1 × 1) = Base Cost × 1.1 ``` Note: Buildings need to be exactly the same type for this rule to apply. For example, building a Coal Mine after a Wood Mill (both being resource buildings) would not be subject to this cost increase. --- file: docs/pages/blitz/realms/realm.mdx meta: {} import { StartingResources, StructureType } from "@/components/StartingResources"; import { StartingMilitary } from "@/components/StartingMilitary"; import { RealmDefenseSlotsTable } from "@/components/DefendingArmies"; import { BuildableHexes } from "@/components/BuildableHexes"; import { RealmLeveling } from "@/components/RealmLeveling"; import { importantNote } from "@/components/styles"; # 🏰 Realms In Blitz, each Lord starts the game commanding three Realms, evenly spaced in a triangular formation. These Realms are functionally identical and are not related to the 8,000 Realm NFTs that are the basis of Eternum. They can produce any of the nine resources available in Blitz and are equally capable in all aspects of the game, limited only by the skill and strategy of their Lord. ## Realm Details ### Settling Realms are settled at the start of the 30-minute 'Settling Phase' prior to the start of the game. Lords who are registered to play are drawn at random from the pool and assigned spawn positions sequentially according to the settling algorithm. Once assigned a map position, Lords are required to confirm their participation in the session by initiating a 'Settle' transaction, which will place their three Realms in their drawn position. This must be done in the 30-minute Settling Phase to ensure presence and readiness to play the game. Lords who fail to confirm settling during this phase will not have their Realms placed and will forfeit participation in the session. Their allocated spawn position will remain empty throughout the game. ### Starting Resources DRAFTING NOTE: Insert table. Include starting military units as they all start in inventory (none deployed). ### Realm Progression Realms can grow from a Settlement into a City, then to a Kingdom, and finally an Empire. Each upgrade level unlocks additional buildable hexes and defensive army slots, allowing for the expansion of your economy and strengthening of your defences. Each progression requires specific materials, outlined in the table below: DRAFTING NOTE: Review RealmLeveling table, to be aligned with scope. Others should be the same as Eternum. --- file: docs/pages/blitz/worldmap-movement/movement.mdx meta: {} import TroopMovementTable from "@/components/TroopMovementTable"; import { BiomeStamina } from "@/components/BiomeStamina"; # 🧭 Movement & Exploration Troops Moving Across Eternum ## Stamina Stamina is expended whenever an army moves between hexes, explores previously unrevealed areas, or launches an attack against enemy forces. Each of these actions has a specific stamina cost, making strategic planning essential to maximizing an army's effectiveness. Armies regenerate stamina at a consistent rate of +60 stamina per Eternum Day. Each troop type possesses different maximum stamina capacities, outlined in the table below: Lords should remain cautious about fully depleting the stamina of their armies, as forces with low stamina may find themselves severely disadvantaged if attacked by enemy forces. ## Movement
Moving Army Moving armies in the client
Armies in Eternum can move freely into any adjacent, unoccupied hex. A hex is considered occupied if it contains a Realm, another army, or a world structure such as a Hyperstructure, Camp, or essence Rift. Armies may also move to more distant hexes, provided there is a continuous path of adjacent, unoccupied hexes leading to the destination, and the army has sufficient stamina available for the entire journey. The amount of stamina consumed when moving into a hex depends on both the biome of that hex and the type of troops within the army. The table below details biome-specific stamina costs for each troop type: ## Exploring Exploring your surroundings is a necessary part of Blitz as it allows Lords to reveal paths to objectives, find valuable essence or other bonuses, and uncover beneficial world structures. When an army is positioned adjacent to an unexplored hex, Lords may choose to send that army forth to uncover what lies hidden. Exploring an unknown hex always costs 30 stamina and will reveal that hex to all Lords. If the newly explored hex contains a world structure, the exploring army will automatically be pushed back to the hex from which they started without any additional stamina penalty. During exploration, armies gather any valuables they encounter, receiving the goods directly into their inventory. The reward chances for any explored hex are as follows: DRAFTING NOTE: Require table of materials that can be found and their stack size. If an army becomes overencumbered, they will not be able to collect any materials found when exploring. Instead, the materials will remain on that tile and will be able to be collected by another army with enough capacity. Armies can return to a structure to offload the materials, or drop them to free up space. Note that any materials discarded in the field will be permanently lost (burned).
Explore Explore in the client
## Troop Transfers Lords may transfer troops from one army to another, provided that they are on adjacent hexes, the same troop type, and the same tier. To transfer troops from one army to another, or to a structure, the player first needs to select its army on the worldmap using left-click, then right-click on the target and select the Transfer -> Transfer Troops tab. Transferring troops from one army to another with lower stamina makes no change to the stamina of either army. Transferring from an army with lower stamina to an army with higher stamina will reduce the higher-stamina army to equal that of the lower stamina army.
Transfer Troops Transfer troops in the client
--- file: docs/pages/blitz/worldmap-movement/worldmap.mdx meta: {} import { importantNote } from "@/components/styles"; # 🗺️ The World Map Eternum World Map ## An Unexplored World At the beginning of each Blitz game, the world lies largely unexplored. The only exceptions are the settled Realms and the array of Hyperstructures which can be seen in the World view, arranged in expanding rings around the center of the map. The six hexes adjacent to these structures are also revealed, but beyond these instances, the world remains cloaked by the mist, waiting for ambitious Lords to send forth their armies to explore. Once a hex is explored, the state of the hex (i.e. the biome and whether it contains a world structure) is permanently revealed to all Lords. ## Map Layout ### Hyperstructure Positioning The number of registered Lords for a game of Blitz determines the size of the map and the number of Hyperstructures available for Lords to compete over. A single Hyperstructure marks the center of the map, around which other concentric Hyperstructure 'rings' are spawned every 18 hexes until all players are accommodated. The number of Hyperstructure rings is determined by: ``` r = √(P/6) ``` Where: * **P** is the number of players (Lords) registered to play in the session * **r** is the number of Hyperstructure rings * If **r** is not an integer, then it is rounded up to the nearest integer The number of Hyperstructures in a ring is determined by: ``` Hr = 6r ``` Where: * **Hr** is the number of Hyperstructures in ring **r** * **r** is the ring number (1, 2, 3, etc.) ### Realm Positioning Once the size of the map and the number of Hyperstructures are determined, player positions are determined within the bounds of the Hyperstructure rings. While the order in which players are placed is randomised, the positioning is sequential and follows a rotational pattern to distribute Lords as evenly as possible and attempt to ensure equal opportunity in accessing the Hyperstructure objectives. The map structure and placement sequence is visualised below: DRAFTING NOTE: Insert gif of settling algorithm. The Realms of each participating Lord are positioned six hexes apart in a triangle formation. Each Realm is also located within eight hexes of a Hyperstructure, and eight hexes from the nearest Realm belonging to another Lord (assuming all available player positions are filled).

⚠️ IMPORTANT NOTE

There is no immunity period in Blitz. All Realms are able to be attacked and claimed from the moment the game begins.

## Biomes Each hex is assigned one of 16 biome types, each with unique aesthetics and strategic implications. These biomes are procedurally generated across the world map following specific rules that dictate their distribution, with certain biomes naturally occurring more or less frequently than others. Biomes impact both combat effectiveness and troop movement. Each troop type—Knights, Crossbowmen, and Paladins—can potentially be advantaged or disadvantaged in battle depending on the biome in which combat takes place; this is explained in more detail in the [Military](/blitz/military/stamina-and-biomes) section. Additionally, biomes have the potential to enhance or impede army maneuvers, as the various biomes impact the stamina consumption of each troop type differently as they move between hexes—this is explained further in the [Movement & Exploration](/blitz/worldmap-movement/movement) section below. --- file: docs/pages/eternum/military/armies.mdx meta: {} import { RealmDefenseSlotsTable, WorldStructureDefenseSlotsTable } from "@/components/DefendingArmies"; import { ETERNUM_CONFIG } from "@/utils/config"; import { formatNumberWithCommas } from "@/utils/formatting"; # ⚔️ Armies Eternum World Map In Season 1, individual armies consist of a single troop type and tier—streamlining combat strategy and simplifying interactions on the world map. Each hex can host only one army, so Lords must carefully manage their positioning and engagement opportunities. Each Realm and Village has a limited number of guard and field armies The number of armies can be increased by upgrading the Realm / Village level as explained in the [Realms](/eternum/realm-and-villages/realm) section. Each military building constructed on a Realm or Village also increases total field armies by 1 (up to a maximum of **+{ETERNUM_CONFIG().troop.limit.explorerMaxPartyCount-4}**). Lords can deploy armies from the Military tab in the Local view. The maximum size of an army is **{formatNumberWithCommas(ETERNUM_CONFIG().troop.limit.explorerAndGuardMaxTroopCount)}**. ### Field Armies Field armies are used to project force on the world map, explore unknown territories, patrol borders, defend key areas, or march against your enemies. These armies are deployed onto one of the six hexes surrounding their parent Realm on the world map. If all hexes adjacent to the Realm are occupied, a field army cannot be deployed. Once deployed, these armies occupy a hex and traverse the world map based on the conditions outlined in the World Map & Movement section. Lords may direct their field armies to attack another army or structure on any adjacent hex by selecting the army with left-click, then right-clicking the target hex. When attacking a structure, the field army will engage in combat against any guard armies present.
Create Army Flow to create field army in the client
### Guard Armies Guard armies do not appear on the world map; instead, they occupy defense slots visible in the Military tab of the Local view. When in the World view, Lords can observe the defensive capabilities of any structure by selecting a hex and opening up the Details tab. Unlike Realms and Villages, world structures have a static number of defence slots:
Create Army Flow to create guard in the client
When attacked, guard armies are targeted sequentially starting from the outermost occupied slot. If a guard army is destroyed, the slot that it occupied becomes unavailable for reinforcement for **{Math.floor(ETERNUM_CONFIG().troop.limit.guardResurrectionDelay / 3600)} hours**. Once all guard armies are defeated, the structure becomes vulnerable to being claimed by an adjacent field army (with the exception of Villages, which cannot be claimed). Lords can also direct their guard armies to launch attacks against adjacent hexes by selecting their structure on the worldmap, then right-clicking the target hex.
Attack field army Attack field army with structure
--- file: docs/pages/eternum/military/damage.mdx meta: {} # 💥 Damage import { DamageCalculation } from "@/components/DamageCalculation"; ## Damage Overview Damage is defined as the number of casualties dealt by one army against the other in an instance of combat. When combat is initiated (i.e. one army attacks another), damage for both the attacking and defending army is calculated based on the number of troops, troop tier, stamina, and biome bonuses. Damage is then simultaneously inflicted by both sides. Battles can last multiple rounds (requiring multiple combat instances) depending on the relative strength and number of troops involved. Armies with higher-tier troops deal significantly more damage. However, careful management of troop numbers, stamina, and biome positioning can enable lower-tier armies to overcome stronger opponents. --- file: docs/pages/eternum/military/raiding.mdx meta: {} import { ETERNUM_CONFIG } from "@/utils/config"; import { resource } from "@/components/styles"; import { RaidableResources } from "@/components/RaidableResources"; import { importantNote } from "@/components/styles"; # 💰 Raiding Raiding allows field armies to attempt theft of valuable resources directly from an adjacent target structure, without first having to battle through enemy guard armies. Lords can direct their armies to complete this action by selecting the 'raid' action when attacking an enemy structure. ![Raiding interface showing an army preparing to raid a structure](/screenshots/raiding.png) ## Raid Requirements Before attempting a raid, your army must meet the following requirements: * Have at least **{ETERNUM_CONFIG().troop.stamina.staminaAttackReq}** stamina * Be adjacent to the target structure * Structure must contain raidable resources ## Raidable Materials Raidable materials are stolen based on rarity, with the most valuable taken first. Rarer materials are prioritized during raids:

⚠️ IMPORTANT NOTE

No materials are safe from pillagers, $LORDS tokens can be raided as well

## Raid Success The success chance of a raid is determined by the following conditions: | Condition | Raid Success Chance | | -------------------------------------------------------------------------- | --------------------------------------------- | | Raiding army's total damage \< **50%** of combined guard armies' damage | **0%** | | Raiding army's total damage > **200%** of combined guard armies' damage | **100%** | | Raiding army's damage between **50%** and **200%** of guard armies' damage | Scales proportionally from **0%** to **100%** | | No guard armies present | **100%** (automatic success) | Upon a successful raid, resources are transferred directly to the raiding army's inventory up to its carrying capacity. It is only possible to steal food, resources, and ancient fragments from a raid, tokens such as $LORDS and $STRK can only be stolen from another player by claiming a Realm into which tokens have been bridged or transferred. ## Damage in Raids At the conclusion of a raid, regardless of whether it was successful or not, damage is calculated for both the raiding army and the guard armies. This damage is significantly reduced by a raid damage modifier, simulating the concept of a pillaging and looting event as opposed to a full-scale battle. The raid damage modifier reduces damage to **{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of that which would be applied in an attack action. Damage from a raiding action is calculated according to the following rules: * The raiding army troop total is split evenly across each guard army. * A standard combat damage calculation is then applied to each combat instance. * Each damage number is multiplied by the raid damage modifier before casualties are applied. ### Example: Consider **1000** raiders attacking a structure with two occupied guard slots: * Slot 1: **400** troops * Slot 2: **600** troops The raiding army is split into two groups of **500** troops, each attacking one guard slot. Assume that the damage calculations result in the following: * Raiding army deals **180** damage to Slot 1 and **150** damage to Slot 2 = **330** total damage * Guard armies deal **120** damage from Slot 1 and **200** damage from Slot 2 = **320** total damage. Applying the raid damage modifier, actual losses become: * Guards: Slot 1 loses **36** troops (**{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of 180), Slot 2 loses **30** troops (**{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of 150). * Raiders: Lose **64** troops total (**{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of 320). ## Raid Outcomes After a raid attempt, one of two outcomes will occur: 1. **Successful Raid** * Resources are transferred to your army's inventory * Resources are limited by your army's carrying capacity * Both armies suffer reduced casualties (**{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of normal combat damage) * Your army's stamina is reduced by **{ETERNUM_CONFIG().troop.stamina.staminaAttackReq}** 2. **Failed Raid** * No resources are stolen * Both armies still suffer reduced casualties (**{ETERNUM_CONFIG().troop.damage.damageRaidPercentNum/100}%** of normal combat damage) * Your army's stamina is still reduced by **{ETERNUM_CONFIG().troop.stamina.staminaAttackReq}** The outcome is determined by comparing your army's total damage output against the combined damage output of all guard armies present. If no guard armies are present, the raid automatically succeeds. --- file: docs/pages/eternum/military/stamina-and-biomes.mdx meta: {} import { BiomeCombat } from "@/components/BiomeCombat"; # ⚡ Stamina & Biome Effects ## Stamina Stamina is a vital resource governing the mobility and effectiveness of armies. Each deployed army possesses a maximum stamina value determined by its troop type and tier as explained above. Field armies expend stamina when moving, exploring unknown hexes, or engaging in combat against other armies and structures. Guard armies only expend stamina when attacking armies in hexes adjacent to their structure. During combat, stamina impacts army combat effectiveness: ### Attacking Army (the army initiating combat) Attacks require a minimum of **30 stamina**, so armies with less than 30 stamina cannot initiate an attack. Each additional stamina point above this threshold grants a **1%** damage bonus, up to a maximum of **+30%** damage at **60 stamina**. Additional stamina spend is not optional, so attacking armies will use all available stamina up to a maximum of **60** for any one attack. If the attacking army destroys the defending army, they gain **+30 stamina**. ### Defending Army (the army being attacked) Defending armies rely on having stamina available to maintain full combat effectiveness. When attacked, defending armies incur a **1%** damage reduction for every stamina point below **30**. For example, if an army is attacked while they have **10 stamina**, they would deal **-20%** damage to the attacking army. The maximum penalty is **-30%** damage if stamina is completely depleted. Successfully defending an attack does not deplete stamina. Lords should manage their armies' stamina carefully, ensuring they retain enough reserves to remain effective against unexpected attacks. ## Biomes (Combat Effects) The combat effectiveness of different troop types is impacted by the biome on which the defending army is located when engaging in battle. Armies can gain either a combat advantage (**+30%** damage), disadvantage (**-30%** damage), or no effect, depending on their affinity with a particular biome. To summarise these combat modifiers for each troop type: ⚔️️ ️️️**Knights** excel in forests, leveraging cover and mobility, but suffer reduced effectiveness in deserts, beaches, and snow-covered regions where their heavy armour and weapons can make it difficult to move on the soft ground cover. Knights are equally advantaged, disadvantaged or not affected across all biome types. 🏹 **Crossbowmen** benefit from open seas and unstable terrains (such as beaches and snow), where they can remain static and make the most of their ranged capabilities. However, they will be disadvantaged in flat, open terrain with no cover or opportunity for concealment. Crossbowmen are the least advantaged, but also the least disadvantaged by biome modifiers of the three troop types. 🛡 ️**Paladins** dominate open, flat terrain where mounted units thrive, but are hindered in dense forests and on open water where their mounted capabilities are negated. They are the most advantaged, but also the most disadvantaged troop type. In combination with the biome effects on stamina use, Paladins are less versatile than other Knights or Crossbowmen, but are devastatingly effective in the right situations. **Note: The scorched biome applies +30% damage to all troop types, representing the additional casualties sustained from battling in an inhospitable environment.** --- file: docs/pages/eternum/military/troop-tiers.mdx meta: {} import { TroopTiers, TroopTierDamageStats } from "@/components/TroopTiers"; import { MaxStaminaTable } from "@/components/TroopMovementTable"; # 🛡️ Troop Tiers Troops in Eternum come in three distinct tiers: T1, T2, and T3. Tier 1 (T1) represents basic troops, while T2 and T3 troops are more advanced, offering significantly increased combat strength and stamina. Higher-tier troops are produced by constructing specialized buildings that require rare resources and lower-tier troops as inputs: * Two T1 troops combine to produce one T2 troop * Two T2 troops combine to produce one T3 troop Each troop tier provides escalating advantages in terms of damage output and stamina. --- file: docs/pages/eternum/realm-and-villages/buildings.mdx meta: {} import BuildingCard from "../../../components/BuildingCard"; import { formatNumberWithCommas } from "@/utils/formatting"; import { CapacityConfig } from "@bibliothecadao/types"; import { ETERNUM_CONFIG } from "@/utils/config"; # 🪓 Buildings ## Standard vs. Simple Season 1 offers two building systems. Lords can switch between standard and simple building modes at any time by clicking the toggle at the top of the construction tab. ![Simple Mode Production](/gifs/simple-mode.gif) Note: Some buildings only require food to construct. Farms, Fishing Villages and Resource Buildings have the same construction cost in both standard and simple building modes. ### Standard Mode This is the classic Eternum experience. Construction requires a combination of labor and a particular set of resources as building materials. Standard mode is more complex as it involves a greater number of materials in storage, however it is far more efficient overall. This building mode is generally designed for those with multiple Realms and/or Villages working with economies of scale. ### Simple Mode This mode allows players to utilize Labor, a new material for Season 1, as the singular input for construction. Simple mode greatly improves accessibility and simplifies gameplay overall, but is much less efficient in both time and materials. This would be the preferred system for players with smaller holdings and limited access to a variety of resources. ## Placement & Population ### Placement The construction tab can be accessed in the Local view. Buildings can be constructed on any buildable hex of a Realm or Village, provided the owner has the requisite materials and population capacity. Buildable hexes are defined by the upgrade level (i.e. Settlement, City, Kingdom, or Empire) and are visible as hexes with patches of bare, prepared earth. Most buildings can be constructed in either simple or standard mode, which toggled at the top of the construction tab. ![Building Placement](/gifs/construction.gif) ### Population Population is the total population utilised by the currently constructed production buildings on a Realm or Village, while the population capacity is the maximum available population with which to construct production buildings. Worker Huts can be built to increase population capacity, while all other buildings require population capacity to be available in order to construct. Lords must balance their construction to ensure there is enough population capacity available to construct their desired production buildings. ## Building Types ### The Keep Settling any Realm or Village will automatically construct a structure in the centre of your buildable hexes, known as the Keep. This structure represents your seat of power and the central point of governance, and facilitates key functions such as Realm/Village upgrades and Labor production. This building cannot be destroyed and provides a baseline population capacity of 5. ### Resource Buildings There is a specific resource building for each of the 22 resources in the game, so Lords will require separate resource buildings if they wish to produce more than one type of resource. These buildings only require food to construct and have the same requirements in simple and standard mode.
### Economic Buildings These buildings define the utility of a Realm or Village, including food production, donkey production, population capacity, and storage capacity. All of these buildings can be constructed in either standard or simple mode, but have varying costs and population requirements: \[economic building table, including population cost / population capacity increase (Worker Hut) / storage capacity increase (Storehouse)]
### Military Buildings Your military buildings are essential for training up armies to defend your territories and project your might. There are three 'tiers' of each of the three troop types, but a different building is required to produce each troop tier. As such, there are a total of 9 military buildings in the game. Note: Only T1 troop buildings can be constructed in both standard and simple mode. T2 and T3 military buildings are only available for construction in standard mode.
### Same Building Cost Increase Building multiple buildings of the same type will cost progressively more each time. The cost increase is calculated using the following formula: ``` Cost = Base Cost + (Base Cost × 0.5 × (N-1)²) ``` Where: * **Base Cost** is the initial cost of the building (from the tables above) * **N** is the number of the same buildings already constructed For example, if you build a second building of the same type (N=2), the cost will be: ``` Cost = Base Cost + (Base Cost × 0.5 × (2-1)²) = Base Cost + (Base Cost × 0.5 × 1) = Base Cost × 1.5 ``` Note: Buildings need to be exactly the same type for this rule to apply. For example, building a Stone Quarry after a Lumber Camp (both being resource buildings) would not be subject to this cost increase. --- file: docs/pages/eternum/realm-and-villages/realm.mdx meta: {} import { StartingResources, StructureType } from "@/components/StartingResources"; import { StartingMilitary } from "@/components/StartingMilitary"; import { RealmDefenseSlotsTable } from "@/components/DefendingArmies"; import { BuildableHexes } from "@/components/BuildableHexes"; import { RealmLeveling } from "@/components/RealmLeveling"; import { importantNote } from "@/components/styles"; # 🏰 Realms The 8,000 Realms are the foundation of Eternum, each uniquely destined to shape the fate of this vast continent. As limited and irreplaceable strongholds, these Realms serve as the primary playing pieces of the game. Each Realm settled in Eternum can produce between one and seven different resources, depending on the metadata of the original Realm NFT and its associated Season Pass. This metadata also aligns each Realm to one of sixteen ancient Orders, however the meaning of this alignment has been lost to the mist… for now. ### Settling To settle a Realm, Lords must first burn a Season Pass, which gives them the ability to select the location of their homeland from an array of locations scattered across the map. For Season 1, there is a seven-day settling period before the game starts, allowing players to organise and position themselves before a move can be made. Realms can still be settled after this period, however the earlier in the season that Lords can establish their holdings, the greater their production potential and overall experience. Settling a Realm ![Realm Settling Screen](/screenshots/settling.png)

⚠️ IMPORTANT NOTE

When the game starts, all structures are immune to attacks and raids for 24 hours. Once the first day of gameplay has concluded, there are no more instances of immunity, all Realms and Villages settling into the game after this time will need to rely on their starting defences and consider their starting locations carefully. Lords entering the game after the immunity period are advised to make use of the spectator mode to scout for relatively safe spawning locations before initiating a settling transaction.

### Starting Resources ### Starting Military Each Realm starts with the majority of the starting troops deployed to the first defense slot as a guard army. A small number of troops remain within the Realm's storage to be deployed as a field army should the Realm Lord wish to explore beyond their walls. Troops can be transferred from the guard army to the field army using the troop transfer process explained in the [Movement & Exploration](/eternum/worldmap-movement/movement) section. The specific type of military unit is determined by your Realm's biome, and is strategically chosen to have a combat advantage in that particular environment. ### Realm Progression Realms can grow from a Settlement into a City, then to a Kingdom, and finally an Empire. Each upgrade level unlocks additional buildable hexes and defensive army slots, allowing for the expansion of your economy and strengthening of your defences. Each progression requires specific materials, outlined in the table below: --- file: docs/pages/eternum/realm-and-villages/villages.mdx meta: {} import ResourceProbability from "@/components/ResourceProbability"; import { StartingResources, StructureType } from "@/components/StartingResources"; import { StartingMilitary } from "@/components/StartingMilitary"; # 🛖 Villages Beyond the limited number of sacred Realms lies the humble yet vital Village—small settlements established on hexes that surround a settled Realm. These modest outposts offer a more accessible entry into Eternum, serving as gateways for new settlers and loyal subjects. Additionally, they can act as supplementary playing pieces for more serious players who wish to maximise their potential. Each settled Realm can have up to six Villages surrounding it, allowing up to 48,000 Villages in Season 1! ### Settling Villages are settled by minting a Village token. Aspiring settlers can choose to place their Village next to a specific Realm by entering the asset ID of a settled Realm, or let fate guide them to a random Realm's outskirts - either way, the Realm that they spawn adjacent to becomes that Village's 'parent' Realm. Players may also choose which of the six possible hexes they spawn on by selecting a compass direction. Village Settling Screen *Three villages settled next to a realm* ### Starting Resources ### Starting Military Each Village starts with the majority of the starting troops deployed to the first defense slot as a guard army. A small number of troops remain within the Village’s storage to be deployed as a field army should the Village Lord wish to explore beyond their walls. Troops can be transferred from the guard army to the field army using the troop transfer process explained in the [Movement & Exploration](/eternum/worldmap-movement/movement) section. The specific type of military unit is determined by your Village's biome, and is strategically chosen to have a combat advantage in that particular environment. ### Resource Roll When minting a Village, a random number is rolled to determine the single resource that it can produce. ### Limitations Villages produce food, resources, troops, donkeys, and labor at 50% the rate of Realms. They can receive and purchase food, labor, donkeys and resources without restriction, but can only receive troops from their parent Realm - this limitation is in place to prevent players from spawning a Village on their rival's Realm and 'teleporting' troops there by using the donkey network. ### Village Progression Villages have a limited progression path and may only upgrade once from Settlement to City. The cost and benefits of this progression is the same as that of a Realm. --- file: docs/pages/eternum/realm-and-villages/wonders.mdx meta: { "title": "Wonders", "description": "The Wonders of Realms Eternum" } # ✨ Wonders Of the 8,000 Realms, 50 are distinguished by the presence of Wonders—unique and magical places of power that confer special benefits, making them highly desirable playing pieces that may put a target on their owner's back. In Season 1, Wonder Realms grant a 20% production bonus not only to themselves but also to all Realms and Villages located within 12 tiles. This bonus means the Wonder Realm itself, the surrounding Realms (up to six), and all Villages settled around these seven Realms produce food, resources, troops, labor, and donkeys at 120% efficiency compared to standard Realms, using the same inputs. Key Notes: * Production rates are not increased by this bonus, more is produced overall for the same amount of input. * These bonuses do not stack. There is no benefit to settling multiple wonders in a limited range.

--- file: docs/pages/eternum/resources/automation.mdx meta: {} # Resource Automation Resource automation allows players to set up continuous production processes and automated transfers within their realms and between entities. This system helps manage resource generation and distribution efficiently without constant manual intervention. ## Overview The automation system works by processing two types of "orders" that you define: 1. **Production Orders**: Automate resource production within your realms 2. **Transfer Orders**: Automate resource transfers between your entities (realms, villages, hyperstructures, etc.) Both types of orders specify what you want to automate, the method or conditions, target amounts or schedules, and priorities. **Key Features:** * **Order-Based**: Define specific production and transfer tasks. * **Priority System**: Control the sequence of execution for multiple orders. * **Multiple Automation Types**: Choose between production automation and transfer automation. * **Entity-Specific**: Automation is configured on a per-entity basis. * **Browser Dependent**: Automation processes run in your browser; the game tab must remain open for automation to function. * **10-Minute Cycles**: All automation is processed every 10 minutes. ## How It Works The automation system periodically checks and processes active orders for each entity. 1. **Processing Interval**: All orders are evaluated every 10 minutes. 2. **Order Prioritization**: For each entity, orders are sorted by their priority number (1 being the highest). 3. **Pause Functionality**: You can pause all automation for any entity, which will skip all orders for that entity. 4. **Order Processing**: The system processes different order types: ### Production Order Processing * **Balance Check**: Before executing, the system checks if the realm has sufficient input resources or labor. * **Recipe-Based Production**: Production follows predefined recipes from the game's configuration. * **Cycle Calculation**: Determines the maximum number of production cycles possible based on available inputs. * **Transaction**: If conditions are met, a blockchain transaction is initiated to perform the production. ### Transfer Order Processing * **Schedule Check**: For recurring transfers, checks if enough time has passed since the last transfer. * **Threshold Check**: For conditional transfers, checks if resource levels meet the specified conditions. * **Resource Availability**: Verifies the source entity has sufficient resources for the transfer. * **Transaction**: If conditions are met, initiates a transfer transaction between entities. ## Production Types There are three types of production automation: 1. **Standard (Resource-to-Resource)**: * Converts one or more input resources into a different output resource. * Example: Using Wood and Stone to produce Tools. 2. **Simple (Labor-to-Resource)**: * Utilizes Labor from the realm to produce a specific resource. * Example: Using Labor to harvest Food. 3. **Resource-to-Labor**: * Converts a specified resource into Labor for the realm. * Example: Burning Food to generate Labor. ## Production Order Modes Production orders can operate in two different modes: 1. **Produce Once**: * Produces resources until the target amount is reached, then stops. * Shows progress as "Produced / Target" (e.g., "1,500 / 5,000"). * Can be set to "Infinite" to produce continuously without a limit. 2. **Maintain Balance**: * Keeps resource balance at the target level. * Production triggers when balance drops below target minus buffer percentage. * Example: Target 10,000 with 10% buffer = production starts when balance drops below 9,000. * Useful for maintaining steady resource levels. ## Transfer Types Transfer automation allows you to automatically move resources between your entities. There are three transfer modes: 1. **Recurring Transfers**: * Transfers resources at regular intervals. * Minimum interval: 10 minutes (due to automation cycle). * Example: Transfer 1,000 Food from Realm A to Village B every 2 hours. * *\[GIF placeholder: Setting up a recurring transfer]* 2. **Maintain Stock Transfers**: * Transfers when the destination entity falls below a threshold. * Example: Transfer 500 Wood to Village when it has less than 1,000 Wood. * Helps keep important entities well-supplied. * *\[GIF placeholder: Setting up a maintain stock transfer]* 3. **Depletion Transfers**: * Transfers when the source entity exceeds a threshold. * Example: Transfer excess Stone when Realm has more than 5,000 Stone. * Prevents resource overflow and distributes surplus. * *\[GIF placeholder: Setting up a depletion transfer]* ## Managing Automation Orders (UI) You can manage automation orders through the "Automation" tab within any entity's interface, or through the global "All Automations" view. ### Production Automation Production automation is managed within individual realm interfaces. *\[GIF placeholder: Navigating to realm automation tab]* #### Adding a New Production Order 1. Click the "Add New Automation" button. 2. Configure the following: * **Order Mode**: * `Produce Once`: Produce up to target amount then stop * `Maintain Balance`: Keep resource balance at target level * **Production Type**: * `Standard (Resource-based)` * `Simple (Labor-based)` * `Resource to Labor` * **Priority (1-9)**: * Set the execution priority. `1` is the highest priority, `9` is the lowest. * **Resource to Produce / Resource Input for Labor**: * Select the resource you want to produce or consume. * The UI shows required input resources for Resource-to-Resource recipes. * **Target Amount**: * For "Produce Once": Set total quantity to produce, or check "Infinite" for continuous production. * For "Maintain Balance": Set the balance level to maintain. * **Buffer Percentage** (Maintain Balance only): * Production starts when balance drops below target minus buffer percentage. 3. Click "Add Automation". *\[GIF placeholder: Creating a production automation order]* ### Transfer Automation Transfer automation allows you to move resources between any of your entities. *\[GIF placeholder: Accessing transfer automation]* #### Adding a New Transfer Order 1. **Select Source Entity**: * Choose entity type (Your Realms, Your Villages, etc.) * Search and select the specific source entity 2. **Configure Transfer**: * **Transfer Mode**: * `Recurring`: Transfer at regular intervals * `Maintain Stock`: Transfer when destination is low * `Depletion Transfer`: Transfer when source is high * **Destination Entity**: * Choose entity type and select specific destination * **Resources to Transfer**: * Add multiple resources with specific amounts * **Schedule/Conditions**: * For Recurring: Set interval in minutes (minimum 10 minutes) * For conditional transfers: Set threshold amounts 3. Click "Add Transfer Automation". *\[GIF placeholder: Creating a transfer automation order]* #### Transfer Interval Guidelines * **Minimum Interval**: 10 minutes (matches automation processing cycle) * **Common Intervals**: * 10m, 30m, 1h, 2h, 6h, 24h (preset buttons available) * Custom intervals can be set in minutes * **Effective Timing**: Transfers occur when automation cycles align with your interval ### Viewing and Managing Orders #### Individual Entity View Each entity shows its automation orders in a table with: * **Priority**: Order execution priority * **Mode**: "Once", "Maintain", or transfer mode ("Recurring", "Stock", "Depletion") * **Resource**: Visual representation of resource flow * **Target/Balance**: Target amounts or transfer schedules * **Produced**: Amount produced (production orders only) * **Type**: Order type (production or transfer) * **Actions**: Remove button *\[GIF placeholder: Viewing automation orders in entity interface]* #### Global Automation View The "All Automations" view shows orders from all entities: * **Realm Filter**: Filter by specific realm or view all * **Order Status**: Visual indicators for completed, paused, or active orders * **Countdown Timer**: Shows time until next automation cycle * **Bulk Actions**: Pause/resume or delete orders *\[GIF placeholder: Using the global automation view]* ### Pausing Automation You can pause automation at different levels: 1. **Individual Entity**: Pause all automation for a specific entity 2. **Individual Order**: Remove specific orders 3. **Global Control**: Manage all orders from the global view *\[GIF placeholder: Pausing and resuming automation]* ## Important Considerations ### General Requirements * **Browser Must Be Open**: Automation processing occurs in your browser. If you close the game tab or your browser, automation will stop. * **10-Minute Processing Cycle**: All automation is processed every 10 minutes. This affects timing for all orders. * **Transaction Costs**: Each successful automation cycle that results in production or transfer will involve a blockchain transaction, which incurs network transaction fees. * **Processing Time**: Due to the 10-minute processing interval and potential network conditions, there might be a delay before an order is executed or its results are visible. ### Production Automation Considerations * **Resource Availability**: Production orders will only execute if the required input resources are available in the realm at the time of processing. * **Recipe Dependencies**: Production follows predefined game recipes. You cannot produce resources that don't have valid recipes. * **Storage Limits**: Produced resources will increase your realm's balance and may cause resource loss if storage is full. ### Transfer Automation Considerations * **Entity Ownership**: You can only set up transfers between entities you own. * **Transfer Timing**: * Minimum effective interval is 10 minutes due to processing cycle * Intervals shorter than 10 minutes will effectively transfer every 10 minutes * Non-10-minute multiples may have irregular timing based on when transfers align with processing cycles * **Resource Availability**: Transfers will only execute if the source entity has sufficient resources at processing time. * **Multiple Resources**: You can transfer multiple different resources in a single transfer order. * **Conditional Logic**: Maintain Stock and Depletion transfers check conditions each cycle and only transfer when thresholds are met. ### Best Practices 1. **Start Simple**: Begin with basic production orders or simple recurring transfers to understand the system. 2. **Monitor Initially**: Watch your first few automation cycles to ensure orders work as expected. 3. **Use Priorities**: Set appropriate priorities when you have multiple orders to control execution sequence. 4. **Plan for Delays**: Account for the 10-minute processing cycle when planning time-sensitive operations. 5. **Check Resource Flows**: Regularly verify that your automated transfers are maintaining desired resource distributions. *\[GIF placeholder: Monitoring automation performance and adjusting orders]* --- file: docs/pages/eternum/resources/bridging.mdx meta: {} import { EfficiencyTable } from "@/components/EfficienyTable"; # 🌀 Bridging (Portals) Portals provide Lords with the ability to bridge materials into and out of Eternum, connecting the in-game economy with the Starknet infrastructure layer. Portals are mysterious and unstable devices, so they tend to burn up most of the materials sent through. However, there is evidence that the power of the Hyperstructures can increase the stability of Portals throughout Eternum. As Lords manage to reestablish these mighty structures throughout the land, the efficiency of bridging in and out of Eternum improves for all. Each Realm comes equipped with a Portal. Realm Lords are able to bridge materials both into and out of their Realms directly. Villages, however, have more limited bridging capabilities—they can bridge materials out of Eternum, but not in. This is in line with their existing restrictions on receiving troops from external sources. They are also limited to utilizing the Portal belonging to their parent Realm, for which the Realm owner collects a 5% fee on all materials and tokens bridged out of the game. --- file: docs/pages/eternum/resources/production.mdx meta: {} import { StandardTroopProduction, SimpleTroopProduction, SimpleResourceProduction, StandardResourceProduction, LaborProduction, DonkeyProduction, } from "@/components/ResourceProduction"; # ⚒️ Production ## Standard vs. Simple As is the case for building construction, Lords can choose between standard and simple production systems when deciding how they wish to produce their materials. This can be done by selecting the appropriate panel when making an order in the production screen. ![Simple Mode Production](/gifs/labor-production.gif) *Note: Production works a little differently in Season 1 compared to Season 0. Instead of streaming resources unit by unit and producing an output for as long as you have the requisite inputs, Lords must now commit the full material requirements to the production order upfront. The output is then produced at a given rate per second.* ### Standard Mode The classic Eternum system—every resource and troop production order requires food and a combination of other resources as inputs. As with buildings, standard mode is the more complex but efficient way to produce materials. ### Simple Mode Simple mode reduces the requirements for a production order to food and labor. This is, once again, less efficient in both time and resources—but it allows Lords to produce resources on their Realm or Village even if they don't have access to the input resources required in standard mode. ## Materials Production ### Food The rich and fertile lands of Eternum produce two staple food sources, Wheat and Fish. These are the only materials that can be produced without inputs, so once a Farm or Fishing Village has been constructed, they can produce food indefinitely. ### Resources The 22 resources found in Eternum are the backbone of the world economy. Producing one resource requires the input of two other resources (standard mode), or labor (simple mode). Resources are also the main components in building construction, troop production and Hyperstructure contributions - so mastery of these assets is key to success and security. ### Labor Labor is a new mechanic in Season 1 that has been introduced to simplify and supplement gameplay. It is the primary input for buildings and production in simple mode, but is also required in standard mode for building construction, Realm upgrades and Hyperstructure contribution. Labor is produced by permanently burning resources in the central structure of a Realm or Village. This creates a steady stream of Labor at a fixed rate. Each of the 22 resources can be burned to produce Labor at varying efficiency, dependent on rarity. The amount of resources burned per second to produce Labor at the fixed rate is as follows: ### Troops Troops are essential for exploration, defending your lands and conquering your enemies. Every Lord will be required to procure troops, either through production or purchase, to ensure they remain a relevant force throughout the game. In Season 1, two new troop tiers have been introduced, each requiring a combination of food, rare resources, and troops of the previous tier as input for production. Note: Only T1 troops can be produced in both standard and simple mode. T2 and T3 troops can only be produced in standard mode. ### Donkeys The humble steeds that move all materials around Eternum must themselves be produced in a market building. Donkeys are one-time-use and consumed after a single journey, so Lords will need to procure a steady supply of donkeys, either through production or purchase, to ensure that they can sustain their supply chains, trade with other players, and buy and sell from the Banks. Since donkeys are the 'gas' of this onchain world, they consume $LORDS - the native token of the ecosystem - during production. --- file: docs/pages/eternum/resources/resources.mdx meta: {} import RarityResourceTable from "@/components/RarityResourceTable"; import ResourceIcon from "@/components/ResourceIcon"; import TroopsLimitTable from "@/components/TroopsLimitTable"; import { ResourcesIds } from "@bibliothecadao/types"; # 🪵 Materials ## Materials Overview Materials encompass all transportable assets in Eternum, including: * **Food**: Essential wheat and fish that fuel production and troop movement * **Resources**: The 22 distinct resource types that can be produced on Realms based on their metadata * **Troops**: Military units (Knights, Crossbowmen, Paladins) that can be assigned to armies * **Donkeys**: One-time-use transport units required for moving materials across the world * **Labor**: A special material that enables "simple mode" construction and production * **Ancient Fragments**: Rare materials found in-game that are critical for Hyperstructure construction While all materials can be transported, only specific resources can be produced by Realms based on their inherent properties. Most materials (except Labor) can be bridged out as ERC20 tokens. ## Resources Resources are the foundation of **Eternum**'s economy. Each of the 22 resources plays a vital role in the game's ecosystem, from basic production to advanced military operations. All in-game resources can be traded freely and bridged out as ERC20 tokens. ![Produce from building](/gifs/produce-from-building-click.gif) ## Material Categories #### Material Tiers Resources are distributed across the 8,000 Realms based on rarity, creating natural scarcity and trade opportunities. ### Basic Materials #### Food
Food is the cornerstone of your realm's economy: * Produced without additional resource inputs * Required for most production chains * Essential for maintaining troops and construction
### Strategic Materials #### Military
Military units have unique properties: * They can be traded as resources * Cannot be converted back to tradeable form once deployed to an army * Once deployed, they can still be transferred between armies if they are located on adjacent hexes and are of the same type and tier
#### Transport (Donkeys)
Essential for logistics: * Required for transferring and trading materials * Consumed after a single use
### Special Materials #### **$LORDS** Currency
**$LORDS** is Eternum's economic backbone: * Used as the currency for all market transactions * Bridgeable to external networks * Required to produce donkeys #### Labor
Labor is a fundamental production material: * New Season 1 mechanic * Can be produced by any Realm or Village * Introduces ‘simple mode’ which reduces the complexity of resource and troop production * Required to construct most buildings * Produced by burning resources, with rarer resources yielding more labor #### Ancient Fragments
Strategic end-game material: * Only found in world map Fragment Mines * Required to commence the construction of Hyperstructures * Cannot be produced --- file: docs/pages/eternum/resources/storage.mdx meta: {} import { WeightTable } from "@/components/WeightTable"; import { formatNumberWithCommas } from "@/utils/formatting"; import { divideByPrecision } from "@/utils/resources"; import { CapacityConfig, ResourcesIds } from "@bibliothecadao/types"; import { ETERNUM_CONFIG } from "@/utils/config"; # 🏺 Storage System Your available storage limits the amount of materials your Realm or Village can hold. Effective management of your storage capacity is essential for successful development. Each Realm and Village begins with a base capacity of **{formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.Storehouse]/1000)} kg**. You'll need to construct storehouses to expand your storage capabilities. ## Material Weights Materials in Eternum have different weights that affect storage: ## Storehouses Storehouse Expand your storage capacity to support your growing realm: * **Capacity**: Each storehouse adds {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.Storehouse]/1000 )}kg of storage capacity. * **Expansion**: Build additional storehouses to increase total storage. * **Danger**: When storage is full new production is wasted ## World Structure Storage All world structures have set storage capacities **(that cannot be expanded through the use of storehouses)**. These capacities are as follows: | Structure Type | Storage Capacity | | -------------- | ------------------------------------------------------------------------------------------------------------ | | Hyperstructure | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.HyperstructureStructure]/1000)} kg | | Bank | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.BankStructure]/1000)} kg | | Fragment Mine | {formatNumberWithCommas(ETERNUM_CONFIG().carryCapacityGram[CapacityConfig.FragmentMineStructure]/1000)} kg | ## Storage Management Tips > 💡 **Best Practices** > > * Check storage levels regularly > * Build new storehouses before reaching capacity > * Pause production when storage is nearly full > * Plan material usage to maximize storage efficiency --- file: docs/pages/eternum/resources/transfers-and-trade.mdx meta: {} import { importantNote } from "@/components/styles"; # 📜 Transfers & Trade ## Transport ### Transfers Throughout the season, Lords will face the need to transfer materials from place to place around the world map, whether it be to their own Realms and Villages, or other structures like Banks, Hyperstructures, and Fragment Mines. Lords have two primary options for initiating transfers: * **Detailed Transfer**: Players can use the comprehensive transfer menu accessible from the Trade tab. This allows transfers of multiple types of materials simultaneously, to any structure on the map—including those belonging to other players. ![Detailed Transfer](/gifs/transfer-all.gif) * **Quick Transfer**: Alternatively, Lords can swiftly transfer resources between their own structures using the resources sidebar, ideal for managing internal logistics and maintaining supply chains. ![Quick Transfer](/gifs/transfer-own.gif) ### The Donkey Network When a transfer is initiated, donkeys travel through the invisible and immutable donkey network. This is the key infrastructure upon which all material transport takes place, facilitating trade between players and Banks. One donkey is capable of carrying up to 500 kg of materials, so the number of donkeys required for a transfer depends on the total weight of the materials being moved. Once a transfer is initiated, it cannot be cancelled, and the journey will take some time depending on the distance to the destination structure. Upon arrival, transferred materials and donkeys must be manually claimed via the 'Resource Arrivals' tab before they become available for use.

⚠️ IMPORTANT NOTE

In Season 1, resource arrivals are restricted by 'gates' to assist in reducing the load that resource arrival entities have on the game. As donkeys arrive at their destination bearing their various goods, they need to wait until the start of a new Eternum Day for the structure's arrival gate to open before they can enter and be claimed by the owning Lord. For example, if a transfer arrives at 2:56 p.m. the owner of the structure will only need to wait until 3:00 p.m. for the transfer to become claimable, however if the transfer arrives at 3:02 p.m., the goods won't be claimable until the next Eternum Day starts (4 p.m.).

## Banks & Marketplaces ### Banks
Bank Building
Six ancient Banks stand evenly distributed around, and equidistant from, the centre of the map. At the start of the game, each Bank is occupied by powerful groups of bandits. Lords who conquer a Bank become the beneficiary of any fees from the Automated Market Maker (AMM) trades that they facilitate. Although Banks collect fees independently, they collectively share liquidity, ensuring consistent and stable trading conditions throughout Eternum. Realms and Villages automatically utilize their nearest Bank when trading through the AMM. ### AMM (Automated Market Maker) The Automated Market Maker (AMM) is a decentralized trading protocol facilitated by the six Banks, allowing for instantaneous and trustless trades 24/7—the DeFi of Eternum. Trades executed via the AMM automatically utilize the closest Bank, directing trade fees specifically to that Bank's owner. Lords can further benefit from the AMM by contributing materials and $LORDS to liquidity pools, earning a share of the fees generated from subsequent swaps. Lords should be aware of the relatively high fees for using the AMM and consider the Orderbook for other trading options first. ### Orderbook Complementing the AMM, the Orderbook is a peer-to-peer marketplace, allowing Lords to place precise buy or sell orders at chosen quantities and prices. This traditional method of trading incurs lower fees and offers Lords strategic control, enabling them to manage market conditions to their advantage and set OTC orders for friends and allies. --- file: docs/pages/eternum/worldmap-movement/movement.mdx meta: {} import TroopMovementTable from "@/components/TroopMovementTable"; import { BiomeStamina } from "@/components/BiomeStamina"; # 🧭 Movement & Exploration Troops Moving Across Eternum ## Stamina Troops in Eternum are deployed onto the world map as armies. Army movement and actions across the map are governed by stamina, a critical resource Lords must carefully manage. Stamina is expended whenever an army moves between hexes, explores previously unrevealed areas, or launches an attack against enemy forces. Each of these actions has a specific stamina cost, making strategic planning essential to maximizing an army's effectiveness. Armies regenerate stamina at a consistent rate of +20 stamina per Eternum Day. Each troop type possesses different maximum stamina capacities, outlined in the table below: Lords should remain cautious about fully depleting the stamina of their armies, as forces with low stamina may find themselves severely disadvantaged if attacked by enemy forces. ## Movement
Moving Army Moving armies in the client
Armies in Eternum can move freely into any adjacent, unoccupied hex. A hex is considered occupied if it contains a Realm, Village, another army, or a world structure such as a Bank, Fragment Mine, or Hyperstructure. Armies may also move to more distant hexes, provided there is a continuous path of adjacent, unoccupied hexes leading to the destination, and the army has sufficient stamina available for the entire journey. The amount of stamina consumed when moving into a hex depends on both the biome of that hex and the type of troops within the army. The table below details biome-specific stamina costs for each troop type: ## Exploring When an army is positioned adjacent to an unexplored hex, Lords may choose to send that army forth to uncover what lies hidden. Exploring an unknown hex always costs 30 stamina and will reveal that hex to all Lords, permanently expanding the known boundaries of the world. If the newly explored hex contains a world structure or an agent army, the exploring army will automatically be pushed back to the hex from which they started without any additional stamina penalty. Additionally, during exploration, armies gather any valuables they encounter, receiving a stack of randomly selected resources directly into their inventory. If an army becomes overloaded, they will not be able to undertake further exploration, but can continue to travel on previously-explored hexes. Armies can return to a structure to offload the materials, or drop them to free up space. Note that any materials discarded in the field will be permanently lost (burned). Given the possibility of encountering hostile agent armies during exploration, Lords should ensure that their exploring armies are well-prepared and capable of defending themselves in unexpected combat situations.
Explore Explore in the client
## Troop Transfers Lords may transfer troops from one army to another, provided that they are on adjacent hexes, the same troop type, and the same tier. To transfer troops from one army to another, or to a structure, the player first needs to select its army on the worldmap using left-click, then right-click on the target and select the Transfer -> Transfer Troops tab. Transferring troops from one army to another with lower stamina makes no change to the stamina of either army. Transferring from an army with lower stamina to an army with higher stamina will reduce the higher-stamina army to equal that of the lower stamina army.
Transfer Troops Transfer troops in the client
--- file: docs/pages/eternum/worldmap-movement/worldmap.mdx meta: {} # 🗺️ The World Map Eternum World Map ## An Unexplored World At the beginning of each season, Eternum lies entirely unexplored, shrouded in mystery and opportunity. The only exceptions are the six ancient Banks, whose location and surrounding hexes are known and visible from the outset. They can be seen when settling and when observing the world view, each equidistant from the centre of the map and from one another. When Lords settle a Realm, the six hexes directly adjacent to the Realm hex and the six possible village locations are automatically revealed if they haven't already been explored. Beyond these instances, the world remains cloaked by the mist, waiting for ambitious Lords to send forth their armies to explore. Once a hex is explored, the state of the hex (i.e. the biome and whether it contains a world structure or army) is permanently revealed to all Lords. ## Biomes Each hex is assigned one of 16 biome types, each with unique aesthetics and strategic implications. These biomes are procedurally generated across the world map following specific rules that dictate their distribution, ensuring a coherent yet varied world, with certain biomes naturally occurring more or less frequently than others. Biomes impact both combat effectiveness and troop movement. Each troop type—Knights, Crossbowmen, and Paladins—can potentially be advantaged or disadvantaged in battle depending on the biome in which combat takes place; this is explained in more detail in the [Military section](/eternum/military/stamina-and-biomes). Additionally, biomes have the potential to enhance or impede army maneuvers, as the various biomes impact the stamina consumption of each troop type differently as they move between hexes—this is explained further in the [Movement & Exploration](/eternum/worldmap-movement/movement) section below.