Modding for fun and profit

From Ara: History Untold Wiki

Modding Guide for Ara: History Untold[edit | edit source]

Introduction[edit | edit source]

Ara: History Untold is a new game, and modding possibilities are still evolving as the game stabilizes and expands. What can be modded today will grow in the future. This guide provides the basic structure for modding the game, along with examples to help modders get started.

Chapter 0: ZNO, ZSchema, & ZData[edit | edit source]

Ara: History Untold uses a unique data structure called ZNO, integrated into the Nitrous Engine that powers the game. Key components for modding include:

  • ZSchema - Defines the fields and formatting rules for a data type.
  • ZData - Used to implement new elements and content. Modders will work with .ZData files, similar to working with .JSON files.

Tools Required[edit | edit source]

Any text editor will work for editing .ZData files. Popular editors include Microsoft Visual Studio Code and Notepad++.

Chapter 1: Data Modding[edit | edit source]

1.1 Adding New Content[edit | edit source]

To add new content like items, resources, or units, create new .ZData files using existing .ZSchema templates.

Example: Adding a New Item (Pet Frog)

  1. Create a folder named PetFrogsMod.
  2. In your text editor, create a new .ZData file (e.g., PetFrogItems.zdata).
  3. Reference the schema:
 schema Items; export ItemTemplate itm_petFrog = {
    .Name = "Pet Frog",
    .Description = "A happy, jumping boy that brings everyone joy.",
    .FlavorText = "He jumps, he brings joy",
    .RecipeID = "rcp_AIAssistants",
    .AtlasID = "AIAssistants",
    .uiRarity = RulesTypes.eRarity.Common,
    .uiType = RulesTypes.ItemType.Luxury,
    .uiHarvestType = RulesTypes.HarvestType.NoneOfTheAbove,
    .Flags = (Flags.HasActive | Flags.Resource | Flags.Consumable),
    .ActivateBuffs = {"buf_Item_Happiness_15", "", "", "", "", "", "", ""},
    .uiGiveConsumeItemsForNumTurns = 300u,
    .ActivateBuffsForImprovements = {"buf_Item_Happiness_15", "", "", "", "", "", "", ""}
};

1.2 Editing Existing Content[edit | edit source]

To modify existing data, create a new file that references the schema, and update the necessary elements.

Example: Updating Resources

  1. Create a new file (e.g., PetFrogResources.zdata).
  2. Reference the existing schema and modify as needed:
 schema NaturalResources; export NaturalResourceTemplate nrc_Dyes = {
    .Name = "TXT_ITM_NATURAL_DYES",
    .Description = "TXT_ITM_DESC_NATURAL_DYES",
    .HarvestOptions = {
        {
            .Item = "itm_Dyes",
            .ProductionRequired = 150u,
            .HarvestCount = 1u
        },
        {
            .Item = "itm_petFrog",
            .ProductionRequired = 10u,
            .HarvestCount = 1u
        }
    }
};

1.3 ZData Cheat Sheet[edit | edit source]

An overview of the various schema files and what they control:

  • Buffs.zschema - Defines buffs used by items and improvements.
  • Governments.zschema - Controls government types and their impact on gameplay.
  • Items.zschema - Defines items, from resources to amenities.
  • Technologies.zschema - Defines technologies and research in the game.

Chapter 2: Setting Up the Mod[edit | edit source]

2.1 GameCoreData Setup[edit | edit source]

To properly load a mod, create a file called GameCoreData.zdata in your mod folder, and include references to the files in your mod.

 schema ZNODataLibrary; export Library Root = {
   .Groups = {
      .ItemTemplates = {
         .FromFiles = { "PetFrogItems.zdata" }
      },
      .NaturalResourceTemplates = {
         .FromFiles = { "NaturalResources0.zdata" }
      }
   }
};

2.2 Mod Folder Placement[edit | edit source]

Move the mod folder into the Mods folder at %LOCALAPPDATA%\Ara History Untold. If the Mods folder does not exist, create one.

2.3 Updating Settings & Loading the Mod[edit | edit source]

Navigate to the Settings file under the Local App Data directory. Enable the mod by updating the following:

 EnabledMods=1 GameCoreMod0Source=PetFrogsMod

Chapter 3: Modding Technologies[edit | edit source]

Technologies in Ara are controlled by a single file, Technologies0.zdata.

Example: Increasing Research Costs

  1. Find the research cost entry for a technology (e.g., Archery) and increase the cost:
 export TechnologyTemplate tch_Archery = {
    .Name = "TXT_TCH_ARCHERY",
    .uiResearchCost = 100
};

Conclusion[edit | edit source]

Your mod should now be ready for testing! Place the files as directed, launch the game, and enjoy your custom modifications.