Skip to content

kbranch/Magpie

Repository files navigation

Magpie

Primary hosting at https://magpietracker.us/

A web based tracker specifically built for LADXR, a Legend Of Zelda: Link's Awakening DX randomizer.

The differentiating feature of Magpie compared to something like EmoTracker is the fact that it does not attempt to reimplement the randomizer's logic. Instead, it embeds a copy of the randomizer and simply asks it which locations are in logic given a set of flags and items.

The item, map and even flag layouts also include a text-based section for new items, locations and flags that were not accounted for when the layout was created.

Visit us on the Zelda 4 Randomizer Discord server - tracker discussion happens in the #tracker-general channel. Suggestions and bug reports are very welcome.

Special thanks to:

Setup

Releases

Several packages are available:

From Source

Downloading

The easiest option is to download the source bundle.

If you're a developer or need a specific version of the source, the best option is Git. Make sure you include submodules when cloning: git clone --recurse-submodules https://github.com/kbranch/Magpie.git.

If you're not familiar with Git, you can download Magpie as zip files:

  • Download the Magpie zip file
  • Download LADXR as a separate zip
    • Note that it's hard to determine which branch of LADXR is required for any given version of Magpie. Use the source bundle to avoid that issue.
  • Extract both zip files to separate folders (e.g. Magpie-master and LADXR-master
  • Copy everything from inside the LADXR-master folder into Magpie-master/LADXR

Linux (and Mac?)

  • Run setup.sh to create a python virtual environment and install the required packages
  • Run startLocal.sh to start as a local application - a browser window should open, and the application will exit when it is closed
    • If you're hosting your own instance without a WSGI server, just make sure magpie.py gets launched with the venv created above (e.g. . .venv/bin/activate && python3 magpie.py)

Windows

  • Install Python3
    • Make sure you check the checkbox to Add Python 3.x to PATH
  • Run setup.bat
  • Run startLocal.bat

Usage

Items

Items are tracked on the right side of the page. Left or right click on them to mark them as collected. Depending on the slot, right click will either mark an alternate item for that slot (e.g. red tunic, bomb capacity upgrade) or subtract one from the primary item.

If new items were added to the randomizer since Magpie was last updated, they will appear as text below the other items.

Item changes will be communicated to the randomizer and used to update the map.

Check out the custom item layout documentation.

Locations

Locations are tracked on the left side of the page, either on the maps or as text below them. By default, left clicking a node on the map will toggle all checks inside it between checked and unchecked. Right clicking a node will keep the tooltip open and allow interacting with it. Left clicking an individual check inside the tooltip will toggle only that check.

Locations are also listed as text below the map, separated out by logic level. Checks can be toggled by clicking them in the text list.

If new locations were added to the randomizer since Magpie was last updated, they will appear as text below the map.

Flags

Flags can be changed by clicking the gear icon in the upper right. These are passed to the randomizer and help determine which locations and items are shown as well as which locations are in logic.

Flags that were added to the randomizer after Magpie was last updated will appear in the list. Because flags can do a lot of different things, these may or may not be relevant or functional without an update to Magpie.

Streaming

Here's a summary of your options:

OBS Source Version
Browser window capture Web Capture the items and map broadcast views. Will not work as a browser source in the web version
Browser source Offline Same as above, but it works as a browser source in the offline version
NDI Offline Can be enabled in the settings pane in the offline version. See below for limitations.
Non-browser window capture Offline Same as NDI, except the image loads into a native (non-browser) window instead

The best option for streaming is likely to be using the web-based broadcast views (items, map) in the offline version as an OBS browser source. Note that the broadcast views can have totally different settings for layout, color, visibility, etc. than the main UI.

Check out the custom item layout documentation if you want a special stream layout.

The offline version also has NDI support and can display the items and map in native (non-browser) windows, but these options have some limitations:

  • Turning the page into images takes a lot of processing time, which means that Magpie will stutter briefly when updating
  • Unlike the web-based broadcast view, the layout must match the main UI

You could mitigate these limitations by changing the web-based broadcast views' settings so that they're responsible for the NDI/native window support, but that seems like even more of a rube goldberg machine.

Restreaming

Magpie also has a restreaming page, where the items from multiple players are displayed and automatically updated based on those players' trackers. Each player must use the sharing button to connect to the same event name (make sure Live Update is checked). The sharing button also provides a link to the event page that the restreamer would capture.

Autotracker

Magpie uses a separate autotracker program that runs locally and communicates with the site via websockets. The latest packaged autotracker is always available at https://magpietracker.us/static/builds/magpie-autotracker.exe or from a link in the autotracker mini tab on the site.

No setup should be required beyond enabling autotracking in Magpie - just start the autotracker and a compatible emulator.

Settings are available in the main Magpie UI to control what data gets pulled from the autotracker.

Check out the API for 3rd party tools.

Linux (and Mac?)

Autotracking should work on any vaguely recent version of Linux that can also run a compatible emulator. Mac support is untested but probably similar.

Setup is similar to the local version of Magpie:

Emulator Compatibility

Currently, BGB, RetroArch and Bizhawk are supported. BGB works under Windows and on Linux via Wine (the autotracker exe must also be run with Wine), while RetroArch works natively on both Windows and Linux. RetroArch requires the Network Control Interface to be turned on (Archipelago has a good guide). Bizhawk requires a LUA script (taken from Archipelago).

The autotracker requires a copy of the ROM for some features to work. When it is not able to pull the ROM directly from the emulator, it will request a copy from the user in the main Magpie UI.

Spoiler Log

The spoiler log minitab allows you to upload either a JSON spoiler log or a ROM itself. Once loaded, individual checks and entrances can be spoiled by right clicking on them. Hovering over an item in the item tracker will highlight its location on the map if it has been marked(/spoiled)

The Spoil collected items setting will mark checks with the item they contain as you check them off. Those items are automatically added to your inventory so you never have to interact with the item tracker. Similarly, manually spoiling visited entrances can reduce the time required to track entrances.

For a more comprehensive spoiler log tool, check out the spoiler log viewer by Kabarakh.

About

A web based tracker that integrates LADXR

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages