-
Notifications
You must be signed in to change notification settings - Fork 187
Documentation for sigilharvest.lic
SigilHarvest is a dr-scripts automation script for the sigil harvesting enchanting minigame in DragonRealms. It travels to known sigil locations, perceives sigils in the world, plays the precision improvement minigame using a tuned strategy, and scribes successful sigils onto blank scrolls for use in enchanting.
The script handles the full harvesting cycle: room navigation, sigil detection, strategic action selection during the improvement minigame, resource management, scribing, and automatic restocking of blank scrolls.
- Requirements
- Usage
- Supported Sigil Types
- YAML Configuration
- How It Works
- Sigil Comprehension Techniques
- Session Output
- Algorithm Overview
- Trader Bonus
- Tips for Best Results
- Troubleshooting
- Lich or Lich5 with the dr-scripts dependency installed and up to date.
- The
base-sigils.yamldata file (included with dr-scripts) which contains room lists for each sigil type, city, and season.
- Enchanting skill training. Characters with higher Enchanting skill will see better results.
- Sigil Comprehension techniques (Inspired, Enlightened, Illuminated, Awakened) are strongly recommended. See the Sigil Comprehension Techniques section for details.
- A burin in your inventory or on your enchanting belt. A precise burin is recommended for best results.
- Blank scrolls in your crafting container. The script will automatically purchase replacements when your supply runs low.
- Sufficient currency to buy blank scrolls in the city you are harvesting in.
The following settings must be configured in your character YAML profile:
| Setting | Required | Description |
|---|---|---|
crafting_container |
Yes | The container that holds your crafting supplies (e.g., duffel bag). |
enchanting_tools |
Yes | List of enchanting tools. Must include a burin (e.g., precise burin). |
enchanting_belt |
No | Your crafting toolbelt, if you use one. Can be a string or a hash with a name key. |
crafting_items_in_container |
No | List of crafting items stored in your container. Used for belt/bag resolution. |
sigil_harvest_settings |
Yes | A hash containing sigil harvest-specific options (see below). |
The sigil_harvest_settings hash supports the following keys:
| Key | Required | Default | Description |
|---|---|---|---|
danger_rooms |
Yes | (none) | An array of room IDs to skip. Use this for rooms with persistent enemies or other hazards. |
blank_scrolls |
No | 25 | Target number of blank scrolls to keep on hand. The script will buy more when your count drops below this number. |
sigilharvest <city> <sigil> <precision> [minutes] [debug]
| Argument | Required | Description |
|---|---|---|
city |
Yes | The city/region to harvest in. One of: Crossing, Riverhaven, or Shard. |
sigil |
Yes | The type of sigil to harvest (see list below), or random to target a randomly chosen sigil type each route cycle. |
precision |
Yes | The target precision value. The script will scribe any sigil that reaches this precision. |
minutes |
No | Session time limit in minutes. Default: 30. |
debug |
No | Include the word debug to enable verbose output showing internal decisions and state. |
Harvest permutation sigils in Shard with precision target 90 for 60 minutes:
sigilharvest Shard permutation 90 60
Harvest random sigils in Crossing with precision target 75 for the default 30 minutes:
sigilharvest Crossing random 75
Harvest congruence sigils in Riverhaven with precision target 80 for 45 minutes with debug output:
sigilharvest Riverhaven congruence 80 45 debug
The script supports all 15 sigil types available in the game:
| Sigil | Sigil | Sigil |
|---|---|---|
| abolition | antipode | ascension |
| clarification | congruence | decay |
| evolution | induction | integration |
| metamorphosis | nurture | paradox |
| permutation | rarefaction | unity |
You may also specify random as the sigil type. When random is selected, the script picks a new random sigil type from this list at the start of each route cycle through the room list.
Below is a complete example of the relevant YAML settings for a character profile:
crafting_container: duffel bag
enchanting_tools:
- brazier
- augmenting loop
- precise burin
- imbuement rod
enchanting_belt:
name: toolbelt
crafting_items_in_container:
- brazier
- augmenting loop
- imbuement rod
sigil_harvest_settings:
danger_rooms: [15480, 12412, 9817]
blank_scrolls: 25-
enchanting_tools: The script searches this list for any entry matching
burin. If your burin has a qualifier (e.g., "precise burin"), list it that way here. - enchanting_belt: If omitted, the script will look for the burin in your crafting container instead. When set, the script will untie/tie the burin from the belt automatically.
-
danger_rooms: Start with an empty array
[]and add room IDs as you encounter enemies. The script will suggest room IDs to add when it encounters enemies during a session. - blank_scrolls: Scrolls are purchased in bundles of 25 from the local enchanting society shop. The script calculates how many bundles are needed to reach your target count.
When you start SigilHarvest, the script performs the following sequence:
-
Initialization: Validates your configuration, locates your burin (checking belt and container), detects the current in-game season, and queries your known Sigil Comprehension techniques.
-
Scroll Check: Counts your blank scrolls and buys more if you are below the configured threshold. Scrolls are purchased automatically from the enchanting society shop in your chosen city.
-
Room Traversal: Loads the room list for the chosen city, sigil type, and current season from the sigil database. Walks to each room in sequence, skipping any rooms on your danger list.
-
Sigil Detection: In each room, the script uses
PERCEIVE SIGILto search for sigils. If enemies are present, the room is skipped and its ID is flagged for you to consider adding to your danger list. If the room was recently searched or does not contain the target sigil, it moves on. -
Improvement Minigame: Once a matching sigil is found, the script enters the improvement loop:
- Reads the available improvement actions, each described by a difficulty level, a resource cost type, and an aspect (precision or resource repair).
- Selects the best precision action using a difficulty-first strategy (higher difficulty yields larger precision gains).
- Monitors three mental resources -- sanity, resolve, and focus -- to avoid exhaustion.
- May perform resource repair actions when needed to unlock higher-difficulty precision actions.
- Evaluates whether the sigil can still plausibly reach the target precision; abandons unpromising sigils early rather than wasting time.
-
Scribing: When a sigil reaches the target precision (or comes within 5 points at the iteration cap), the script scribes it onto blank scrolls using your burin. Multiple scrolls can be produced from a single sigil. The resulting sigil-scrolls are stowed in your container.
-
Loop and Summary: The script continues visiting rooms until the time limit expires, then walks back to your starting room and prints a session summary.
Sigil Comprehension is a set of four artificing crafting techniques that improve your ability to work with sigils during the improvement minigame. The script detects which techniques your character has learned and displays them in the startup banner.
| Technique | Effect |
|---|---|
| Inspired Sigil Comprehension | Foundational technique. Improves baseline sigil perception. |
| Enlightened Sigil Comprehension | Builds on Inspired. Further improves outcomes. |
| Illuminated Sigil Comprehension | Builds on Enlightened. Provides additional improvement capability. |
| Awakened Sigil Comprehension | The most advanced technique. Provides the strongest benefit to sigil work. |
These techniques are cumulative. A character with all four techniques will see meaningfully better results than one with none. The techniques are learned through the in-game crafting technique system under the Artificing discipline (CRAFT ARTIFICING to check your current techniques).
Having all four Sigil Comprehension techniques is one of the single biggest factors in successful sigil harvesting. If you are getting poor results, learning these techniques should be your first priority.
When the script launches, it prints a banner summarizing your configuration:
== SigilHarvest v2.0.0 ==
City: Shard
Sigil: permutation
Target prec: 90
Time limit: 60 minutes
Debug: false
Season: summer
Techniques: Inspired, Enlightened, Illuminated, Awakened
Burin: precise burin (belt)
Bag: duffel bag
Danger rooms: [15480, 12412, 9817]
Stock scrolls: 25
Enchanting tools: ["brazier", "augmenting loop", "precise burin", "imbuement rod"]
========================
This banner confirms which burin was found and whether it is stored on a belt or in your pack. The "Techniques" line shows which Sigil Comprehension techniques your character knows (or "none" if you have not learned any).
Each sigil attempt produces a summary line:
[Sigil #3] type=permutation result=SCRIBED precision=92/90 iterations=8 danger=4 room=15 elapsed=1.2m total=5.7m
| Field | Meaning |
|---|---|
type |
The sigil type that was found. |
result |
Outcome: SCRIBED (success), FAILED (mishap or abandoned), or SKIPPED (room had enemies, wrong sigil, or was recently searched). |
precision |
Final precision achieved out of the target precision. |
iterations |
Number of improvement actions taken. |
danger |
Final danger level (0-star minimum, higher is riskier). |
room |
Cumulative count of rooms visited so far. |
elapsed |
Time spent on this individual sigil. |
total |
Total session elapsed time. |
At the end of a session, the script prints a summary:
== Session Summary ==
City: Shard
Sigil: permutation
Target prec: 90
Time limit: 60 minutes
Run time: 58.3 minutes
Rooms visited: 42
---
Sigils total: 38
Scribed: 4
Failed: 22
Skipped: 12
Success rate: 10.5%
Avg precision: 51.2 (non-skipped)
Avg iterations: 5.8 (non-skipped)
Best sigil: #17 precision=95/90 iterations=9
== End SigilHarvest v2.0.0 ==
The summary separates skipped sigils (rooms with enemies or wrong sigil type) from attempted sigils when calculating averages. The success rate is calculated across all sigils including skipped ones.
If enemies were encountered during the session, the script also prints the room IDs where enemies appeared and suggests adding them to your danger_rooms list.
For users curious about how the script makes decisions during the improvement minigame, here is a simplified overview of the strategy:
-
Difficulty-first selection: The script always prefers the highest-difficulty precision action available. In-game data shows that difficulty is the sole determinant of precision gain (trivial averages +2.3, straightforward +4.5, formidable +6.8, challenging +9.0, difficult +13.3). Higher difficulty means a bigger jump in precision per action.
-
Cost-based tiebreaking: When two actions have the same difficulty, the script prefers the one with the lower resource cost to conserve mental resources for future iterations.
-
Resource-aware tiebreaking: When difficulty and cost are also tied, the script prefers the action that draws from whichever mental resource (sanity, resolve, or focus) is currently most abundant. This preserves scarce resources.
The script avoids wasting time on unpromising sigils through several checks:
- Starting precision filter: If your target precision is 80 or higher and the sigil starts below precision 13, it is abandoned immediately.
- Move budget: The script estimates whether the remaining iterations can plausibly close the gap to the target precision. If not, it moves on.
- Resource exhaustion detection: If the combined remaining mental resources (sanity + resolve + focus) are insufficient to plausibly reach the target, the sigil is abandoned.
- Iteration cap: A hard cap of 15 iterations prevents runaway attempts. If the cap is reached and precision is within 5 of the target, the sigil is scribed anyway.
The script skips trivial-difficulty precision actions entirely. The expected value of refreshing the action menu for a better option (74% chance of non-trivial action at +8.0 average gain) exceeds the expected value of taking a trivial action (+2.3 average gain). This optimization was validated through controlled experiments.
When the script identifies a high-difficulty precision action that cannot be safely attempted due to a depleted mental resource, it may take a repair action to restore that resource. Repairs are limited and only taken when they would unlock meaningfully better precision actions.
Characters of the Trader guild with circle 65 or higher receive a small bonus: when a sigil starts at precision 14 or above, the script will use SPECULATE LUCK before beginning the improvement process. This provides a minor benefit from the Trader's luck manipulation abilities.
-
Learn all four Sigil Comprehension techniques (Inspired, Enlightened, Illuminated, Awakened). These are the single most impactful factor in your success rate. Check your current techniques with
CRAFT ARTIFICING. -
Use a target precision of 90 for maximum scroll output if your Enchanting skill and techniques support it. Lower targets (70-80) are appropriate for characters still building their skills.
-
Run longer sessions (60 minutes) for full route coverage. Short sessions may not visit all available rooms for a given sigil type. The room list loops, so the script will revisit rooms if time permits.
-
Shard generally has the most rooms in the sigil database for many sigil types. If you have access to all three cities, experiment to find which works best for your target sigil.
-
Build up your danger room list over time. The script automatically detects and reports rooms with enemies. After each session, copy the suggested room IDs into your
danger_roomsYAML setting to avoid those rooms in future runs. -
The script auto-applies outdoor buffs using your character's configured buff settings at the start of each room visit. Make sure your outdoor buff configuration is set up in your YAML if you want active buffs during harvesting.
-
Blank scrolls are cheap. Set
blank_scrollsto 50 or higher if you run long sessions to avoid mid-session shopping trips. -
Use the
randomsigil type if you need a variety of sigil types for enchanting. This avoids depleting a single sigil type's room list and exposes you to different room routes. -
Seasons matter. The room list for each sigil type changes by season. If a particular sigil seems sparse in one season, it may have more rooms available in another.
The script could not locate a burin. Check the following:
- Your
enchanting_toolsYAML setting must include an entry containing the word "burin" (e.g.,precise burin,burin). - If using an
enchanting_belt, make sure the belt name matches what you are wearing in-game. - The burin must be physically present either on your belt or in your crafting container.
- The script tries multiple resolution methods: settings name from belt, settings name from bag, plain "burin" from bag, and parsed game redirect. If all four fail, this error appears.
Set the crafting_container setting in your YAML to the name of your crafting bag or container.
Add a sigil_harvest_settings block to your YAML with at least a danger_rooms array. See the YAML Configuration section for an example.
- Verify you are specifying the correct city name (Crossing, Riverhaven, or Shard).
- Make sure the sigil type you specified is spelled correctly and is one of the 15 supported types.
- Sigil availability changes by season. The current season is detected automatically and displayed in the startup banner.
- Some rooms may have been recently searched by you or another player. The script will move on and try the next room.
- Rooms with enemies are automatically skipped and flagged. Add flagged room IDs to your
danger_roomslist in your YAML to skip them in future sessions. - Some areas have persistent creature spawns. Building a comprehensive danger room list over multiple sessions will gradually eliminate wasted travel time.
- Refer to the sample danger room list in the YAML Configuration section or community-shared profiles for a head start.
- Ensure you have learned Sigil Comprehension techniques. Characters without techniques will see significantly lower success rates.
- Lower your target precision. A target of 70-80 is more achievable for characters with lower Enchanting skill.
- Check that your Enchanting skill is at an appropriate level for the precision target you have set.
- Check the startup banner for ERROR lines. The most common cause is a missing burin or unconfigured settings.
- Make sure your character is not in combat or otherwise unable to act when starting the script.
This is normal behavior. Not every room will contain the sigil you are looking for at any given time. The script handles this by moving to the next room. If you see this message for every room, the sigil type may be scarce in the current season or city.
- v2.0.0 -- Current release. Full minigame automation with tuned algorithm, session summaries, automatic scroll purchasing, technique detection, and Trader luck support.
- v1.5.x -- Algorithm experimentation series. Eighteen controlled experiments refined action selection, resource management, and early exit logic. See source code comments for the full experiment log.
- v1.2.0 -- Original baseline implementation.
This documentation covers SigilHarvest v2.0.0 for use with Lich/Lich5 and the dr-scripts scripting repository.