Skip to content

Repository files navigation

Archipelago.Core

A C# library for integrating games with the Archipelago multiworld randomizer. Provides memory read/write, location monitoring, item handling, overlay display, and support for both native process memory and BizHawk via named pipe.

Installation

dotnet add package Archipelago.Core

Quick Start

using Archipelago.Core;
using Archipelago.Core.Helpers;
using Archipelago.Core.Models;
using Archipelago.Core.Util;

var gameClient = new GameClient("MyGame.exe");
if (!gameClient.Connect())
    throw new Exception("Game not running");

var client = new ArchipelagoClient(gameClient);

// Wire up events after Login initialises the managers
client.Connected += async (s, e) =>
{
    client.ItemManager.ItemReceived += OnItemReceived;
    client.LocationManager.LocationCompleted += OnLocationCompleted;
    await client.ReceiveReady();
    await client.MonitorLocationsAsync(BuildLocationList());
};

await client.Connect("archipelago.gg:38281", "My Game");
await client.Login("PlayerName");

Documentation

Topic Description
Game Client Connecting to a game process
ArchipelagoClient Server connection, login, events, and state
Items Receiving and handling items
Locations Defining and monitoring check locations
Memory API Reading and writing game memory
PlatformMemory Process management and native memory utilities
Object Mapping Mapping C# classes to memory structures
BizHawk Using Archipelago.Core with BizHawk via named pipe
Overlay Displaying text over the game window
GPS Handler Tracking player position and map changes
Death Link Synchronising deaths between players
Advanced Function hooking, lag simulation
Configuration config.ini file support and custom settings

License

MIT. See LICENSE for details.

Contributing

Issues and pull requests welcome at https://github.com/ArsonAssassin/Archipelago.Core.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages