Mother DocsMother Docs
Buy me a Coffee
Steam Workshop
Discord
  • Mother OS (Ingame Script)
  • Mother GUI
  • Mother Autopilot System (MAPS)
  • Mother Core (Script Framework)
  • Cheatsheet
  • Brand Guidelines
Buy me a Coffee
Steam Workshop
Discord
  • Mother OS (Ingame Script)
  • Mother GUI
  • Mother Autopilot System (MAPS)
  • Mother Core (Script Framework)
  • Cheatsheet
  • Brand Guidelines
  • Cheatsheet
  • Mother OS (Ingame Script)
    • Getting Started

      • Upgrade Guide
      • Installation
      • Command Line Interface (CLI)
      • Configuration
      • Modules
    • Core Modules

      • Activity Monitor
      • Almanac
      • Block Catalogue
      • Intergrid Message Service
      • Local Storage
      • Merge Block Module
    • Extension Modules

      • Air Vent Module
      • Battery Module
      • Terminal Block Module
      • Cockpit Module
      • Connector Module
      • Display Module
      • Door Module
      • Gas Tank Module
      • Hinge Module
      • Landing Gear Module
      • Light Module
      • Piston Module
      • Programmable Block Module
      • Rotor Module
      • Screen Module
      • Sensor Module
      • Sorter Module
      • Sound Block Module
      • Thruster Module
      • Timer Block Module
      • Wheel Module
    • Compatibility
    • Examples
  • Mother GUI
    • Getting Started

      • Installation
      • Configuration
    • Commands
    • Menus
    • Views
  • Mother Autopilot System (MAPS)
    • Getting Started

      • Upgrade Guide
      • Installation
    • Modules

      • Flight Planning Module
      • Map Module
      • Flight Control Module
      • Attitude Module
      • Docking Module
  • Mother Core (Script Framework)
    • Getting Started

      • Upgrade Guide
      • Installation
      • Architecture Overview
      • Managing Script Size & Complexity
    • Building A Module
    • Mother CLI (Console)
    • Core Modules
      • Activity Monitor
      • Almanac
      • Block Catalogue
      • Clock
      • Command Bus
      • Configuration
      • Event Bus
      • Intergrid Message Service
      • Local Storage
      • Log
      • Terminal
    • Utilities

      • Color Helper
      • Number Helper
      • Security
      • Serializer
    • Tutorials
  • Powered By Mother
  • Brand Guidelines

Almanac

  • Getting Your Own Identity
  • Reading Records
  • Creating or Updating a Record
  • Removing Records
  • Record Types
  • Persistence Behavior
  • Emitted Events

The Almanac stores records for grids and waypoints so modules can navigate, target remote systems, and resolve IGC destinations without keeping their own cache.

Mother updates its own grid record automatically every second and persists the full record list through LocalStorage. When multiple Mother Core scripts are running on your grid, they will share records to reduce compute.

Getting Your Own Identity

Every Mother instance exposes a unique ID through Mother.Id.

Program.cs
long systemId = Mother.Id;
string systemName = Mother.Name;

Reading Records

Use GetRecord() when you know the grid ID or display name, and GetRecordsByType() when you want a filtered list.

DockingModule.cs
public void PrintTargetInfo(string targetName)
{
    AlmanacRecord target = GetModule<Almanac>().GetRecord(targetName);

    if (target == null)
    {
        Mother.Print($"Unknown target: {targetName}");
        return;
    }

    Mother.Print($"Target: {target.DisplayName}");
    Mother.Print($"Type: {target.EntityType}");
    Mother.Print($"Position: {target.Position}");
}

NavigationModule.cs
List<AlmanacRecord> waypoints = GetModule<Almanac>()
    .GetRecordsByType("waypoint");

Creating or Updating a Record

AddRecord() inserts a new record or replaces an older one with fresher data.

NavigationModule.cs
public void SaveWaypoint(string name, Vector3D position)
{
    AlmanacRecord waypoint = new AlmanacRecord(name, "waypoint", position, 0);
    GetModule<Almanac>().AddRecord(waypoint);
}

Remote grid records are normally created by IntergridMessageService, but you can still create them manually if your module has authoritative data.

Removing Records

Almanac exposes its Records list directly. If you remove an entry yourself, call AddRecord() or Clear() when appropriate so the persisted data stays consistent.

NavigationModule.cs
public void ForgetWaypoint(string name)
{
    Almanac almanac = GetModule<Almanac>();
    AlmanacRecord record = almanac.GetRecord(name);

    if (record != null)
    {
        almanac.Records.Remove(record);
        Mother.Print($"Removed {name} from Almanac.");
    }
}

Record Types

TypeMeaning
gridA ship or station running Mother Core.
waypointA static navigation point.

Persistence Behavior

Almanac serializes its records into LocalStorage under the almanac key. That means your record list survives recompiles, game reloads, and most runtime faults.

Emitted Events

Almanac does not emit any built-in events.

Last Updated: 5/2/26, 10:05 PM
Contributors: Luke Morrison, lukejamesmorrison, Copilot
Prev
Activity Monitor
Next
Block Catalogue