Delve helper - Lailloken/Exile-UI-Legacy 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
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
-
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)
-
close the grid by pressing ESC
-
optional settings:
-
the delve button
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
-
marking paths: each square in the grid has an invisible 'd-pad'
-
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
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:
-
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:
-
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:
(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:
-
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:
- 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