[Archive] Delve helper - Lailloken/Lailloken-UI GitHub Wiki

Feature Overview

  • NOTE: this is an experimental/proof-of-concept feature, but still fully usable

  • helps you find hidden delve-passages by suggesting which checkpoint is the most likely to be connected to hidden nodes

  • normal mode: user marks the hidden nodes and surrounding checkpoints on a grid-map, and the tool suggests possible solutions

  • advanced mode: user marks the hidden nodes, and the tool reads the in-game delve-map and suggests possible solutions

User Interface & Settings

  • main UI-elements:

    • delve button delve that can be placed anywhere within the client-window by dragging

    • grid-map overlay: needs to be resized in the settings menu to match the in-game delve-map

  • general inputs:

    • clicking the delve button will show/hide the grid

    • pressing TAB will reset the grid, ESC will hide it

    • pressing the omni-key will scan the in-game delve map (advanced mode)

  • this feature has its own section in the settings menu, with UI and sub-feature options

Initial Setup

  • open the delve-map and find a large area with chambers

    image

  • max-zoom into the delve-map, and open the LLK settings menu (by clicking the LLK-UI panel or typing .llk into chat)

  • go to the delve-helper section and enable the feature

  • a sample grid will open with which to calibrate the grid size

    • it's NOT click-through, so you have to get used to moving the map underneath by clicking the side-edges that are not covered
  • align the borders of the chamber-area with the grid and resize it until they match more or less (also use the borders of biomes/tiles to double-check)

    image

  • close the grid by pressing ESC

  • optional settings:

    • the delve button delve can be resized in this menu as well

    • 'only show button while delving': enables scanning the client.txt-file generated by the game (may impact performance) to only show the button while you're in the azurite mine

  • once everything is configured, close the settings menu

Normal-mode: inputs

  • important: only mark paths in sections (squares) that contain a node/checkpoint

    image

  • marking paths: each square in the grid has an invisible 'd-pad'

    image

    • click a direction to set a path leading to the node/checkpoint

    • click the center to toggle between all paths and zero paths (this also saves a click when setting three-way nodes: click center to make it four-way, then remove one path)

  • marking a node/checkpoint as hidden: right-click the center of a section to mark it as a hidden node/checkpoint

    image

Normal mode: limitation

  • this mode has one limitation: it cannot account for pathing because it's not provided with all the information

    • this means it may highlight certain nodes green even though there's no possible way for it to connect to the hidden node:

      post

    • C is marked green, which is incorrect because the node is 'boxed in' by the surrounding paths

  • so the only delve-rule one has to keep in mind in this mode is: the hidden path cannot pass through squares that already have a path

    • the script should be able to handle the rest (unless it's a very rare edge-case)

Normal mode: general usage

  • align the map with the grid so that the hidden node/checkpoint is near the center

  • set the paths for the nodes around the hidden one

  • right-click the center of the section with the hidden node/checkpoint

  • the most plausible nodes will be marked green, the next-best yellow, unlikely/impossible ones red

  • make sure to only hide the grid (instead of resetting right away) as you might need this layout again

  • in case the only green node doesn't lead to the hidden one (which should be rare if pathing was set correctly):

    • sometimes a fractured wall is right on the edge of the loaded chunk and therefore has not been loaded yet:

      • use the delve map to trigger a loading screen by traveling to a distant node

      • go back to the node that was marked green and check if the wall is there this time

    • if loading was not the problem:

      • click the green node to override its highlighting with red

      • this will recalculate the grid and highlight the next-best node green

      • repeat until you find the hidden passage

      • in case you override green highlighting by accident, you can toggle the hidden node off/on to restore the initial calculation

Recognition mode: setup & (re)calibration

  • image recognition can be enabled in the delve-helper section of the settings menu

  • once enabled, there will be additional options and information underneath the grid:

    image

  • once set up correctly, the delve-helper will essentially become a delve-solver

    • it can detect if it's physically possible for a node to connect to the hidden one

    • since in this mode it has all the pathing information, it can also detect pathing collisions

  • NOTE: at this moment, there is no way to calibrate it on Windows versions older than 10 (I may implement one if there's enough demand -- steam survey suggests the user base is lower than 4%)

  • as preparation, you'll need to find a long vertical straight path on the delve map:

    image
    (this shows an example, but don't use the main-shaft that is automatically generated as you level up)

  • then open the grid and click the 'calibrate' button underneath it to trigger the Windows snipping tool

    • you have to screen-cap the middle part of the passage by clicking and dragging:

      image

    • a tooltip will show to indicate that the image recognition is being calibrated, and when it's finished

  • the grid will refresh and, if calibration was successful, will show the total pixel-sample count

Recognition mode: general usage

  • in this mode, you simply scan the grid and mark hidden nodes by right-clicking them

  • then check all green highlights and override empty sections/squares by clicking them (as shown in the video at the top)

    • this step is important since the scanner cannot check (yet) if nodes are empty or not

    • the hidden passage cannot start in an empty node, so override it immediately before you search there in vain

  • to scan the grid, press the omni-key (default: middle mouse-button)

    • make sure the cursor is positioned over the map, otherwise your character will do whatever action is bound to the middle mouse-button (or the custom key)

    • but make sure not to hover over a node (this will show a tooltip over it which blocks the delve map) and keep an eye on the bottom-left of the map, where biome information is displayed:

    image

    • it's also very important to adjust the grid and its size correctly because this will affect scanning accuracy
  • in case the only green node doesn't lead to the hidden one:

    • sometimes a fractured wall is right on the edge of the loaded chunk and therefore has not been loaded yet:

      • use the delve map to trigger a loading screen by traveling to a distant node

      • go back to the node that was marked green and check if the wall is there this time

    • if loading was not the problem:

      • click the green node to override its highlighting with red

      • this will recalculate the grid and highlight the next-best node green

      • repeat until you find the hidden passage

      • in case you override green highlighting by accident, you can toggle the hidden node off/on to restore the initial calculation

Recognition mode: troubleshooting

  • if the scanner misses a few paths, try re-aligning the map and grid to see if that fixes it

  • if that doesn't work, you can feed more pixel-data to the calibration by repeating it with additional paths

    • it often helps to take the biome into account, i.e. if the scanner doesn't scan a path in a lava biome correctly, try screen-capping pixels from a vertical straight passage in that biome

    • it may help to screen-cap a path with a yellow line (the one that indicates a path has been cleared)

  • if the scanner starts detecting many paths in an empty section/square, you should delete the calibration data by clicking the delete-button because too much bad data has been captured, and start from scratch

Remarks

  • I started working on this after seeing this reddit thread and the general confusion about delving in the comments

  • this started as an experiment out of curiosity about whether something like this would be possible and how difficult conceptualizing it would be

  • creating the GUI took most of the work because it has so many segments (up to 64 squares, each with a 'd-pad' made up of five individual squares), and I also had to make sure it scales correctly across all resolutions

  • considering delve and its rules are quite straight-forward, creating this feature was not really worth it by itself, but the things I found out while working on it made up for that

  • v1.27.3 added an optional recognition mode as proof-of-concept (for a proof-of-concept delve-helper -- talk about double-dipping) and to test the limits of doing ridiculous shenanigans with screen-reading