Skip to content

Repository files navigation

Install

  • Hydra itself:
    • (might need) .NET 10
    • download hydra from releases
    • run project (play button top right)
  • Add UT support (circle tracker):
    • make sure you have the ap launcher installed
    • grab universal tracker and place it in your custom worlds folder
    • make sure that in hydra Settings -> Main Settings that your archipelago directory is set
    • Hydra should auto download/update the HydraUTBridge.apworld when needed

Support me and hydra's development on Patreon

Features

  • Connections
    • Save Multiworld address, ports, passwords and change b/t them at will
      • Contains slot name overrides
      • Contains slot password overrides
      • Caches current/max check counts
      • Caches hints
      • Caches item received history
      • Supports multiple DeathLink groups
      • Switching multiworlds will log out of all connected slots
    • Can delete/edit/set/clear the cache of a multiworld
    • Save Slot names to be used across worlds
      • Saves slot name
      • Can set a slot name override for a multiworld
      • Can set a slot password for a multiworld
      • Can set a game portrait image
      • Can set a list of programs that can ran on connect (very untested)
        • WARNING: if connection gets dropped it will close the games attached to it
        • WARNING: some applications might not close if hydra crashes
        • {{slot}} => slot name
        • {{add}} => address
        • {{port}} => port
        • {{pass}} => password
        • {{ap}} => path to ap
        • if {{mw}} is at the front then the process will only close when you disconnect all slots from the multiworld
        • if {{hydra}} is at the front then the process will only close when hydra closes
        • this runs using C#'s Process
        • ex: {{ap}}/ArchipelagoLauncherDebug.exe "Universal Tracker" -- --name {{slot}} --connect {{add}}:{{port}}
          • (UT is special as it accepts a slot name, by default AP doesn't)
        • ex: {{ap}}/ArchipelagoLauncherDebug.exe "other client" -- --connect {{add}}:{{port}} --password {{pass}}
        • ex: {{ap}}/ArchipelagoLauncher "Universal Tracker" archipelago://{{slot}}:{{pass}}@{{add}}:{{port}}
        • for more info, in the terminal launch ArchipelagoLauncherDebug.exe with -h or --h
    • Change the scale of the slot name text and portrait
    • Can have up to 7 slots connected at a time
      • The first Client that connects is designated as the 'Leader' client
      • Can change the leader client
    • On connection, slots are separated based on if the slot name appears in the multiworld or not
  • Clients
    • Text Client
      • Messages are separated into different categories (all, chat, item, hint, server)
      • Any specific category can be popped out into a popup window (top right)
      • Settings for showing specific kinds of items in the item log (removes anything not matching)
      • Send messages (messages are sent from the current 'Leader' client)
      • Emote menu to view and write emotes by clicking on them
      • Can Click on any message to copy it, hint messages take the hint copy message format
      • Can change how some messages get displayed in the settings -> text client
  • Hint Table
    • Can sort hints based on multiple columns
    • Sort order is saved
    • Can view cached hints from other slots (can change: all/logged in slots/'leader' only slot)
    • Can Change visibility settings for specific kinds of hints (found/priority/unspecified/no priority/avoid)
    • Can Hide/Show specific hints
    • Can copy a hint into your clipboard with a click of a button
    • Can change how a hint gets copied in the settings -> hints
  • Utilities
    • Item Filter
      • Clicking on an item (almost anywhere) or the Add Filter button in the settings -> Item Filter opens up a popup to add an item filter
      • If an item was clicked, it will autofill the information
      • Can show/hide items filtered from the Item Log in the text client
      • Can show/hide items filtered from the Hint Table
      • Can mark an item as special
        • Special Items are treated higher than progression items and can have their own colors
    • Circle Tracker
      • Uses Universal Tracker to display locations in order based on the order of items received for any connected slot
      • Has Next Progression support (calculates after all the circles are done)
      • Disclaimer: this is NOT a sphere tracker
      • Displays any hinted items next to the location
      • Moves priority hinted locations to the top of a circle
      • Displays what the new item received for each circle
      • Ability to show/hide circles that have no locations
      • Ability to show/hode circles beyond the first one that has locations
      • Can have multiple circle trackers opened with multiple slots
      • Any slot's tracker can be popped out into a popup window (top right)
    • Map Tracker
      • Ability to render checks on a map
      • Ability to map entrances
      • Has auto tabbing support
      • For more, advanced info visit the Map Tracker/Maker Section
    • Displays inventory (view an item to see who sent you those items)
    • Has sorting and some filtering capabilities
    • Can view the history of all items received (based on the order you received them)
    • View all items in your game, clicking on one gives you a hint prompt
    • View all missing locations in your game, click on one gives you a hint location prompt
  • Players
    • Can view every player in the multiworld as well as their status (connected/not connected/goaled)
    • Can display check counts when !status is used (there is a button that does !status for you)
    • Displays a fading + when a slot checks a location
    • Hovering hover a name will show their game
    • Add a hydra specific Alias
    • Add a copy specific Alias that only appears when copying a message
    • Can change how the above aliases behave when copying
  • Misc Settings/Features
    • Ability to change the default font
      • Accepted formats: *.ttf, *.ttc, *.otf, *.otc, *.woff, *.woff2, *.pfb, *.pfm
    • Change Color Themes
    • Import/Export Color themes from/to clipboard
    • Set Background image and alpha (transparency/opacity)
      • Accepted formats: *.png, *.jpg, *.bmp, *.exr, *.jpeg, *.tga, *.svg, *.svgz
    • Change some Font Sizes
    • Discord Rich Presence
  • Autoupdater
    • Requires internet (duh)
    • Might be buggy/unstable
    • If there are new updates, it will print to the console

Extra Info

  • Portable Functionality
    • Rename HydraTextClient to HydraTextClient_Portable to enable
    • forces all save data to be same folder as the executable
    • disables custom assets loading
  • Custom Assets image overrides
    • this feature allows you to override/add item images for a game's items
    • the format follows the same as Custom Assets does so hydra can be used to test them before merging
    • Hydra's format is less restrictive than Custom Assets, so be mindful
    • Format (hydra is non-case-sensitive, Custom Assets IS case-sensitive):
      • Game Name (folder)
        • in the folder you have images that have the item name
        • Custom Assets item formatting Game Name_Item Name
        • aliases.json, allows you to assign multiple items to 1 image (not required)
        • game name.png will act as a default image for all the game's items
    • There is a button to reload images in the settings
  • Text Client: How Item Log and Hint Log filter deletes items
    • If an item/hint is blocked by your settings/filters they will not be added at all
    • If a setting/filter is updated, any messages in the text client will be hidden/reshown
    • If the message history is full the oldest hidden messages will be deleted first
      • If there are no hidden messages, the oldest message will then be deleted
  • Game Portraits
    • Images saved to the game portrait directory (in settings -> theme)
    • Uses the name of the image as the portrait/game name
    • Need to click the reload button or reopen hydra for them to reload
  • Emotes/Emojis
    • Images saved to the emote directory (in settings -> theme)
    • Uses the name of the image as the emote name
    • IMPORTANT: it is recommended to simplify your emote names (so everyone's can match to a degree)
      • foxsmile -> smile
      • foxpog -> pog
    • An emote is written as {{e;[emote name]}}
    • Emotes you do not have an image for are shown as [emote name]
  • Message effects
    • {{e;[emote name]}} displays an emote (hovering over it will show the image in its full resolution)
    • {{player;[player slot]}} displays a reference to the player (hover effects included)
    • {{item;``[game name]``;``[item name]``}} displays a reference to an item, has support for Custom Assets
    • {{item;``[game name]``;``[item name]``;[item flag]}} like the above but adds on the item type
      • 0: Normal
      • 1: Progression
      • 2: Useful
      • 4: Trap
    • {{loc;[location id];[player slot]}} displays a location, location id is specific to the apworld
    • {{entrance;[entrance text]}} displays the text as an entrance
    • {{found}}/{{notfound}} displays hint found/not found text

Map Tracker/Maker

  • For devs implementing auto tabbing
  • For those who don't want to use the UI
    • The folder of the pack should be named the game's name as it appears in ap

About

A rewrite of my Archipelago Multislot Text Client

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages