Archipelago Multiworld Framework

repository·main·Indexed 23 days ago

https://github.com/archipelagomw/archipelago

A generic framework and randomizer engine designed to enable multiworld capabilities for game randomizers, allowing different games to interact within a shared randomized environment. It supports a wide variety of titles, including The Legend of Zelda series, Factorio, Subnautica, Risk of Rain 2, Super Metroid, Hollow Knight, Stardew Valley, and Terraria. The framework includes the BizHawkClient abstraction for connecting Python to Lua connector scripts in the BizHawk emulator to manage ROM memory and emulation loops.

Tokens
255.5K
Snippets
260
Records
1.4K
Agent score
80%

What's inside Archipelago

  1. Overview of Archipelago multiworld framework

    main

    Archipelago is a generic framework for developing multiworld capability for game randomizers. In its current implementation, Archipelago also functions as the randomizer itself. It supports a wide variety of games, including:

    • The Legend of Zelda (various titles: A Link to the Past, Ocarina of Time, Wind Waker, Link's Awakening DX, etc.)
    • Factorio
    • Subnautica
    • Risk of Rain 2
    • Super Metroid
    • Hollow Knight
    • Stardew Valley
    • Terraria
    • ...and many others (see full list in repository).

    For detailed setup and instructions for specific games, visit the tutorials page.

  2. Overview of the SC2 Bot client library

    main
    The SC2 Bot library is a client library designed to communicate with the StarCraft 2 game. It is built upon the burnysc2 Python package. The library has been stripped down from the base package to remove unneeded features and components that are not functional outside of a melee game environment, providing a cleaner interface for melee-focused StarCraft 2 automation.
  3. What is randomized in Pokémon Emerald?

    main

    The Pokémon Emerald randomizer handles both item and Pokémon randomization.

    Randomized Elements:

    • Items: Badges, HMs, gifts from NPCs, and items found on the ground. Key items (e.g., Devon Scope, Mach Bike), Potions, Revives, and TMs can also be randomized.
    • Pokémon: Wild Pokémon, starters, opponent Pokémon, abilities, and types.
    • Battle Mechanics: You can configure a percentage of single battles to be converted into double battles.

    For a full list of configurable options, refer to the player-options page.

  4. Overview of Enemizer data modules in ALTT P

    main

    The worlds/alttp/enemizer_data/ directory contains vendored and generated modules derived from the upstream Ijwu/Enemizer project (Release family 7.1). These modules provide the underlying data structures and metadata required for Enemizer-based randomizations in the ALTT P world.

    Key data modules include:

    • base_patch_data.py: The base patch applied by Enemizer before feature-specific randomization.
    • symbols.py: The assembled symbol map used by Enemizer's runtime code for ROM addresses.
    • enemy_room_metadata.py & overworld_enemy_metadata.py: Constraints for room and area grouping/randomization.
    • enemy_sprite_requirements.py: Sprite metadata for the native enemy shuffle implementation.
    • dungeon_sprite_addresses.py: Dungeon sprite slot metadata keyed by enemy addresses.
    • pot_shuffle_data.py: Room and item source data for the native pot shuffle.
  5. Muse Dash gameplay adjustments and features

    main

    The Archipelago version of Muse Dash includes several modifications to the base game:

    • Song Select Filters: New filters are available to help find songs easily.
    • Random Selection: Selecting 'Random' during a seed will pick a song you have not yet finished.
    • Master Difficulties: These are always unlocked during a seed.
    • Hints: Hints are displayed when viewing a song in the song select menu. You can also request hints for specific songs or music sheets directly from the song select menu.
  6. Quality of Life improvements in Pokémon Emerald

    main

    The randomizer includes several modifications to improve the gameplay experience:

    • Exploration: Shoal Cave switches between high tide and low tide on every re-entry. You can run or bike (almost) anywhere, and you can use both bikes simultaneously.
    • Inventory: Bag space is greatly expanded to minimize PC storage needs.
    • Evolution: Trade evolutions are replaced with level or item evolutions.
    • UI/UX: The Wally catching tutorial is skipped. All text is instant and can be automatically progressed by holding A (optional). When a Repel runs out, you are prompted to use another.

    For a complete list of ROM changes, see the ROM changes guide.

  7. Celeste 64 Archipelago World Overview

    main

    Celeste 64 is a 3D platformer ported to Archipelago by PoryGone. In this World, players can unlock various items to progress. The primary objective is to collect a specific number of Strawberries and then visit Badeline on her floating island.

    Unlockable items include:

    • Strawberries
    • Dash Refills
    • Double Dash Refills
    • Feathers
    • Coins
    • Cassettes
    • Traffic Blocks
    • Springs
    • Breakable Blocks
  8. Faxanadu gameplay goals and progression

    main

    Goal

    The primary objective is to kill the Evil One.

    Progression (Checks)

    Progression in Faxanadu is tracked through "checks," which include:

    • Shop items
    • Item locations in the world
    • Boss drops
    • Secret items

    Unlockable Items

    Players can unlock various categories of items, including:

    • Keys
    • Armors
    • Weapons
    • Potions
    • Shields
    • Magics
    • Poisons
    • Gloves