Introduction
What is SleepHunter?
SleepHunter is an automation tool for Dark Ages, a massively multiplayer online role-playing game (MMORPG). It is used to automate the repetitive process of leveling a character’s abilities.
The current version is 4.x, which is the culmination of over a decade of experience, testing, and enhancements from user feedback.
You can view the release notes to see what has changed in each version.
What was it made using?
SleepHunter is written in C# using the Windows Presentation Foundation (WPF) framework.
It is built using the Visual Studio IDE and targets .NET 10 LTS.
The user interface is designed using custom XAML styles and templates.
You can view the source code on GitHub.
Why didn’t you go network (packet-based) instead?
This was a constant internal struggle that I had when developing v4. In fact, several times I had thought about scrapping v4 and re-writing it to be network-proxy based instead.
It was quite the effort digging through the client’s memory and figuring out static and dynamic memory offsets for variables. Many, many times I’d get frustrated and ask myself why am I taking the half-measure of being memory-based instead!
The primary reason was that I was concerned that SleepHunter would become a defacto bot, even if not my intentions. It was already quite powerful, and I was toeing a line of ethics in being somewhat measured in what I released to the public.
For those who know me and my history in-game, I am no stranger to the more “questionable” methods of play. Had my fair share of malarkey, shennanigans, and downright tom-foolery. Good memories indeed.
However, I had seen what could happen if a program of that magnitude was released for everyone. I remember the days of Eru’s zero-line client going around. I remember my infamous Injector that also got around. I remembered other developers’ bots and “hacks” that got passed around quite freely.
Ultimately, I did not want to see that happen again and ruin whatever was left of the game at the time.
Another reason was that if SleepHunter acted like a network proxy between the client and server, it becomes a potential point of failure. If it crashes, you disconnect. If there’s a bug in the network code, you might crash or disconnect. With memory-based, it’s an entirely “passive” approach the client is unaffected.
The other limitation is that you can’t attach post-login. So if you decided you wanted to macro suddenly, you would have to log out and re-launch through the SleepHunter proxy application instead. This felt like a hassle, whereas with reading process memory you can do that anytime.
There are certainly pros and cons to each approach. I eventually sided with controlled power, reliability, and ease of use.
What is the license?
SleepHunter is licensed under the MIT License.
History
As the version would suggest, this fourth major iteration 4 of SleepHunter.
Let’s take a look back at how it came to be what it is today.
Why is it called “SleepHunter”?
Dark Ages is a heavily in-character online role-playing game, especially in the earlier days.
Using some kind of program or “tool” to increase your skills was considered an unfair advantage and deemed against the rules. In-character this was considered “sleephunting” (leveling your skills while being “asleep”, or away from the keyboard).
If you were caught doing this, whether using a program or something as simple as a paperclip stuffed in your keyboard to auto-attack, you would be punished for the crime of “sleephunting”. This meant you would be temporarily banned from certain areas, or placed into a jail cell to serve time.
Your “legend”, or history of character’s deeds and misdeeds, would be tarnished with an orange mark for each time you were caught. You could even have your character permanently banned if caught enough times.
So thus the name was born from being cheeky and naming an automation tool after the crime itself.
Why did you make it?
In Dark Ages each skill or spell would start at level zero and gradually improve as you used it, usually up to the maximum of level 100. Depending on the ability, the level would impact effectiveness or chance of success, or even duration. To learn the next rank of an ability, or other higher abilities you often needed a certain level of an existing ability.
Being an online, social game it was very common for people to sit around non-hostile areas and improve their skill and spells levels while chatting. Some people did it by hand, others used off-the-shelf “macro” prorgrams that would move their mouse cursor and type keys on the keyboard for them. Usually, these were set up in somewhat a repeatable, looping script.
It was not considered “illegal” to do this if you were paying attention at the keyboard and could respond to an in-game “guard” or “Ranger” that suspected you. However, if you did not respond, you would be in trouble and face punishment.
The main problem with existing tools of the time is that these macro programs would move your mouse cursor or send keystrokes to the current active application. It made multi-tasking very difficult because your mouse would keep moving and keys would just be hit.
I wanted a specialized macro program that would send mouse and keyboard events only to the game client itself, allowing a seamless multi-tasking experience. Fortunately, this was possible using Win32 Window Messages and a debugging tool called Spy++ from Microsoft.
Why was “macroing” such a thing?
Dark Ages is a fairly long-running game initially released around August 1999. It went through a long period of testing and design before that as well.
Being from that era, and based around “old school” D&D mechanics and table-top design it was what some would call very “grindy”. Meaning that it would take a lot of time for you to gain experience, level up, and progress your character.
During normal play of this time, your abilities would naturally develop as you hunted in groups and spent hours killing monsters. So this was not nearly as much of an issue of abilities being “behind”.
Content Creep & Imbalance
However, as more content was added to the game, it became easier and easier to level up quite quickly. To the point where you would always be very far behind and frustrated when going to learn the next ability.
In other cases, some vital skills would have abyssmal “hit” chances unless they were almost maxed. Healing efficiency was also reduced and it was almost mana-inefficient at times unless you got to a certain level of your healing spells.
So to put it shortly, bad game design that was never revisited or fixed lead people to “macro” or “sleephunt” to get by. This was a contentious issue that constantly went back and forth on the ethical debate. Some saying it was unfair play, others saying the development team should actively address the game balance.
Enter the Dojo
At some point, a “sleephunting Dojo” was created by the development team. A place where you could pay gold and legally “macro” your skills while being away for a set amount of time (hours). After which, it would automatically teleport you out and you would have to pay to re-enter again.
Ironically enough, if you got kicked out and continued to be “sleephunting”, you could get in trouble as you were outside of the Dojo.
SleepHunter v1 (2004)
The first version of SleepHunter came from my frustration with existing macro programs. The main thing I wanted was the ability to multi-task properly while also improving my skills.
I was in college at that time and would come back home on the weekends to visit my parents. I would use my dad’s work laptop, some IBM Thinkpad and play Dark Ages while I was there.
I was still “learning” .NET (C#) at the time, so this program was written in Visual Basic 6 as I was more familiar with it.
The overall design was a listbox that you could add a variety of pre-defined commands, including repeat loops. You could start/stop playback of the macro as well as save and load it for future use.
Despite being quite basic, it did use Window Messages to send events which meant that only the game client would receive those mouse and keyboard actions, instead of the current application. It was now possible to “macro” or “sleephunt” while doing other things!
SleepHunter v2 (2004)
The second version was released only a month after the first, also written in Visual Basic 6. At that time, it was obvious to me that I really wanted to expand the functionality possible with the application.
The major improvement in this version was reading character state from the game client itself, enabling logic for if/else on variables like HP, MP, X, Y, and Map number.
There were also some changes in how it would activate the different skill/spell panels to (hopefully) keep the chat pane open while you were macroing (if desired).
The overall application was more or less the same, just more game-specific commands that you could perform.
SleepHunter v3 (2005)
The third version was released the following year, completely rewritten in .NET 2.0. I was enjoying C# compared to VB6 and it opened a lot of possibilities within the codebase.
There definitely was a learning curve, especially with Win32 interopability and P/Invokes but it was worth it.
Following the trend, more functions were added and multiple characters could be macroed at once.
This time the UI was split with the left sidebar showing the “library” of available functions, and the right area hosted windows showing each character and their macro script.
It was amazing to see what people built using these commands, including “walking” scripts to far-off places. Some would even “pathfind” by extensive if/else logic on the map coordinates.
SleepHunter v4 (2012)
The fourth version was released several years, again rewritten in WPF instead of WinForms for the UI.
I was fascinated with the themeing and skinning potential of WPF, and went all out. I probably spent more time on the UI design and XAML than I did actually coding the functionality.
I wanted to add more capabilities to make it the most efficient, yet easy to use macroing program for Dark Ages. In order to do that, I knew I would need to be able to read more character state and implement the ability to perform more actions like equipping items and having alternate characters assist others.
It became obvious to me that this was untennable from a “scripting” perspective, at least if the layperson was going to be able to use it. So the user experience was drastically changed. Instead you could simply double-click to add spells and skills to a queue and be on your way.
The macro engine let you set a variety of parameters but for the most part it was automatic. It could detect when to switch staves for better cast times, wait for mana regeneration, and even flower other characters for nearly-inifite mana.
All of these things required building XML data files so the application could understand the game mechanics. To keep it sustainable, it is also user-editable within the application.
After looking back on it, it was worth the effort. The application aged incredibly well and stood the test of time, even if being “ahead” of the modern flat design trend.
There was also a slight UI facelift in 2016 as well, mostly toning down font sizes and some iconography improvements.
Going Forward (2023+)
While SleepHunter v4 continues to be the current version and fairly stable, there were always things I wanted to improve upon or add. The infamous “Auto-Update” that never actually functioned is one of many (now available in v4.1.0).
A proper user manual hosted as this repositories GitHub Pages would also be useful, and can be linked from the application itself.
I also was never happy that despite using WPF, I ended up building it very WinForms-y in terms of code-behind instead of a proper MVVM data-binding application. It’s probably too much work to refactor for no apparent gain, but for anyone considering writing a WPF application today – use MVVM.
There’s still a few bugs I want to fix as well. I am still humbled by the fact people still use this application over two decades later. That and I am surprised the game itself is still online, even if only a husk of its former self.
I absolutely accept PRs for this application! If you have a feature or bug fix that you want to implement yourself, have at it.
It should be much easier to coordinate and distribute now that Auto-Update is live.
Features
SleepHunter is an incredibly powerful automation tool for Dark Ages.
This section is a high-level overview of the features that are available in SleepHunter. You can find more detailed information about each feature as you read through the rest of this documentation.
Direct Interaction
SleepHunter uses Windows Messages to directly interact with the game client. This allows SleepHunter to emulate user input without interrupting the user’s normal workflow on their computer. No errant mouse clicks or keyboard presses in other applications will occur while SleepHunter is running.
Game Client Detection
SleepHunter scans all running processes to find Dark Ages game clients automatically. It can detect multiple game clients running on the same computer at the same time.
It uses the configured signature and window metadata to recognize compatible clients without selecting among alternate runtime layouts.
Runtime Patching
SleepHunter can launch new game client instances and patch the configured client at runtime. Available tweaks include allowing multiple instances, skipping the intro video, suppressing the login delay, cleaning up stuck modifier keys, showing ground items while Alt is held, displaying stack quantities in merchant and storage dialogs, and hiding foreground walls.
Runtime patches are signature-checked and applied before the suspended client is allowed to start. If a required patch cannot be verified or applied, SleepHunter stops that launch instead of running a partially patched client.
Character State Reading
SleepHunter can read the current state of each character logged into a game client. This includes the character’s name, level, health, mana, location, inventory, skills, and spells. It can also read the state of various user interface elements such as the chat window, skill window, and spell window.
Map Aware
SleepHunter reads the current map that the character is on, and can detect when the character has moved to a new map. This allows automatic stopping of macros when the character has left the Dojo or any other map, avoiding the risk of punishment.
Game Metadata
SleepHunter has a built-in database of game data, including the names of all skills, spells, and staves for casting. This allows intelligent “wait for mana”, “disarm”, and other features that require knowledge of the game’s mechanics and state.
There is even a built-in metadata editor that allows you to add your own custom skills, spells, and staves.
Asynchronous Skills
SleepHunter can use multiple skills at the same time, interleaving them to maximize the skill increases. It can also do this while casting spells, allowing you to level up your spells while you level up your skills.
Spell Queue
SleepHunter can queue multiple spells to be leveled up at the same time, either one at a time or round-robin style. You can set a maximum level for each spell, and it will stop casting that spell once it reaches that level.
Flower Queue
SleepHunter can queue different targets to use Lyliac Plant (flower) for sharing mana to others. It also supports Lyliac Vineyard for group-based mana distribution.
Automatic Fas Spiorad
SleepHunter can cast “fas spiorad” automatically when your character is low on mana. This includes when acting as a “mana battery” for other characters, including your own.
Staff Switching
SleepHunter can automatically switch between staves when casting spells to ensure the fastest possible cast time. It can also temporarily un-equip a staff for zero-line casting of some instant spells.
Alternate Character Aware
SleepHunter is aware of all other characters logged in on the same computer. This allows it special functionality when supporting other characters and prioritizing mana distribution.
Hotkeys
SleepHunter allows user-defined hotkeys to start, pause, and resume automation for each character. This can be used to pause automation when you need to do something manually, or to resume automation when you are done.
Auto-Save Macro Configuration
SleepHunter automatically saves each character’s last macro configuration as a versioned .sh4x JSON file when the application is closed.
Existing .sh4 XML files can still be imported and are migrated to .sh4x when used as an autosave.
This allows you to easily resume automation where you left off, even after you close the application.
Color Themes
SleepHunter supports multiple color themes that act as a “skin” for the application. This allows you to customize the look and feel of the application to your liking.
Automatic Updates
SleepHunter now supports automatic updates, checking the same GitHub releases page that you downloaded the application from. If an update is available, you will be prompted to download and install it. SleepHunter will automatically close and restart after the update is applied.
…and more!
As you read through the rest of this documentation, you will find many more features that are available in SleepHunter.
Installation
Requirements
- A 32-bit Dark Ages client compatible with the configured client layout
- .NET 10.0 Desktop Runtime
- Windows arm64 - Download Link
- Windows x64 - Download Link
- Windows x86 - Download Link
- A Windows version supported by .NET 10 (64-bit)
Installation
- Download the latest version from the Releases page.
- Extract the
SleepHunter-4.x.x.zipfile to a folder of your choice. - Run
SleepHunter.exeto start the application. - Configure your game client settings in the
Settings->GameClientsection. - Read the rest of this documentation to learn how to use the application.
It is very important that you extract all of the files from the SleepHunter-4.x.x.zip file.
Auto-Update
As of version 4.1.0, SleepHunter will automatically check for updates when it starts. It checks the same GitHub releases page that you downloaded the application from.
If an update is available, you will be prompted to download and install it. SleepHunter will automatically close and restart after the update is applied.
You can also manually check for updates by clicking the Check for Updates button in the Settings->Updates section.
NOTE: Your Settings.xml file will not be overwritten when you update SleepHunter.
Manual Update
If you are unable to update SleepHunter automatically, you can manually download and install the latest version. Follow the same steps as the Installation section, but replace the existing files with the new ones.
In most cases, you do not have to overwrite the Settings.xml file.
Uninstall
To uninstall SleepHunter, simply delete the folder that you extracted the application to. There are no registry entries or other files that need to be removed.
Getting Started
So you just installed SleepHunter, and you’re ready to start using it. Now what?
One tip is that most of the user interface supports tooltips. If you hover your mouse over a control, you will see information appear with a description of what it does.
See the Main Window section in the sidebar for more information.
How do I macro a skill?
You can macro any number of skills at the same time, simply double-click on the skill you wish to macro as part of your rotation.
The skill will be highlighted in white as well as a colorful box around it, indicating that is is “enabled”.
Once you have enabled all the skills you wish to macro, you can start the macro by clicking the Start Macro button in the toolbar.
The selected character will then begin to macro the skills you have enabled.
You can toggle any skill on or off at any time by double-clicking on it, even while the macro is running.
See more information about the Skills Tab.
How do I macro a spell?
You can macro a spell by double-clicking on the spell you wish to macro as part of your Spell Queue.
You will get a popup dialog asking you to select the target for the spell, as well as the maximum level you wish to cast the spell to.
You can leave the Offset X/Y to zero, as that is only needed for fine-tuning the mouse coordinates on non-standard targets.
Once you add a spell to the queue, you will see it appear on the right sidebar. You can add as many spells as you wish to the queue. The spell queue supports drag and drop for re-ordering.
Once you have added all the spells you wish to macro, you can start the macro by clicking the Start Macro button in the toolbar.
You can add and remove spells from the queue at any time, even while the macro is running.
See more information about the Spell Queue.
How do I flower another character? (Lyliac Plant)
You can cast Lyliac Plant (flower) on another character by adding a new flower target at the bottom of the Flowering tab.
Similar to the spell macro, you will get a popup dialog asking you to select the recipient for Lyliac Plant, as well as some logic parameters.
You can leave the Offset X/Y to zero, as that is only needed for fine-tuning the mouse coordinates on non-standard targets.
Once you add a flower target, you will set it appear in the Flowering tab queue. You can add as many flower targets as you wish.
The flower queue supports drag and drop for re-ordering.
Once you have added all the flower targets you wish to macro, you can start the macro by clicking the Start Macro button in the toolbar.
You can add and remove flower targets from the queue at any time, even while the macro is running.
See more information about Flowering.
How do I flower my entire group? (Lyliac Vineyard)
You can cast Lyliac Vineyard for your entire group by enabling the option at the top of the Flowering tab.
This will automatically cast Lyliac Plant on all other characters in your group, when it is available on cooldown.
You can enable this option at any time, even while individually casting Lyliac Plant on other characters.
Remember, you must click the Start Macro button in the toolbar to start the process.
Can I use all of these together?
Yes, absolutely! You can macro skills, spells, and flower your entire group at the same time. SleepHunter has been designed to support all of these features at the same time and will automatically handle the timing of each macro.
It will also switch staves and cast fas spiorad as needed to regain mana.
How do I bind hotkeys to a character?
You can assign custom hotkeys to each of your characters by selecting them in SleepHunter and pressing the hotkey combination you wish to use. This will toggle their macro state when you press the hotkey, even if the main SleepHunter window is not in focus.
To remove the hotkey, simply press the Delete or Backspace key while the character is selected.
If you assign the same hotkey to another character, the previous character will have the hotkey unbound.
There is a visual indicator on the character list item to show if a hotkey is assigned.
Do I have to redo this every time I start SleepHunter?
SleepHunter will automatically save the state of your macroing when you close the application, including hotkeys. This means that when you start SleepHunter again, it will automatically restore the state of your macroing for that character.
NOTE: This does not mean that SleepHunter will automatically start macroing when you start the application, only that it will restore the state of your character’s macro when you close the application.
What about the Dojo?
By default SleepHunter is configured to stop macroing once a character’s map changes. This is to prevent macros continuing to run once you leave the Dojo (or are kicked out).
You can also configure SleepHunter to close the game client entirely when you leave the Dojo.
Can I customize certain behaviors?
Yes, many of the behaviors of SleepHunter can be customized to your liking in the Settings tab.
It is recommended that you review the Settings before starting macroing.
The default settings are designed to work for most users, but you may want to customize them to your needs.
Changelog
Notable changes to SleepHunter are listed here for people who use the application.
The format is based on Keep a Changelog, and this project follows Semantic Versioning.
[Unreleased]
[4.12.1] - 2026-08-01
Fixed
- Prevented non-ASCII bytes in client spell prompts from invalidating character snapshots.
[4.12.0] - 2026-07-27
Added
- Added a new per-client automation system that now powers spell, flower, and skill macros with more predictable execution.
- Expanded support for live 7.41 client information, including character details, group members, active effects, dialogs, nearby entities, inventory, equipment, skills, and spells.
- Added a native-style vertical cooldown overlay to skills so remaining cooldown time is easier to see.
- Added more complete live inventory names and stack information.
- Added enabled-by-default active spell-effect icons with stepped duration bars beneath each client’s MP bar and a User Interface setting to hide them.
Changed
- The Large inventory icon size now renders inventory and equipment sprites at a crisp 2x scale.
- Refreshed accent styling throughout controls, tabs, queues, progress bars, and metadata headers.
- Made theme highlights automatically use light or dark contrast based on the selected accent color.
- Added subtle hover borders to dropdowns, numeric controls, and checkboxes, plus small pressed animations for dropdown and numeric-control arrows.
- Redesigned client HP and MP bars as taller, aligned 10-segment displays with fixed-width labels and values.
- Made the main and metadata windows resizable from every edge and corner.
- Updated the spell queue with a taller progress bar, clearer selected and active states, white unselected names, and centered guidance when the queue is empty.
- Simplified flower queue conditions to read as
WHEN [TIMER] > time OR [MP] < amount, restored live countdowns, and reset displayed timers when automation stops. - Combined Start Macro, Pause Macro, and Resume Macro into one state-aware toolbar button.
- Allowed skill toggles and spell or flower queue changes while automation is running.
- Allowed ready skills to run during spell casting because skill input does not interrupt the active cast.
- Improved automation behavior while typing, when dialogs open, when maps or coordinates change, and when the client temporarily switches panels.
- Improved automatic staff selection so it respects class and level requirements and only switches when casting would benefit.
- Changed current macro saves and autosaves to the versioned
.sh4xformat. Older.sh4files remain available for import. - Added slot numbers to inventory, skill, and spell grids, plus abbreviated slot labels to equipment.
- Compacted inventory-slot gold amounts with
kandmsuffixes while preserving exact tooltip values. - Added macro support for the client’s minimized one-row interface, including automatic expansion when an inventory item, skill, or spell is on a hidden row.
- Increased the metadata editor’s default width so its columns and scrollbar fit without horizontal scrolling.
- Improved performance when opening large metadata lists.
- Replaced the small runtime indicator with a full-width status bar that shows
Healthy, a concise error, orNo clients, with selectable details when available. - Renamed the default character sort from Login Time to Launch Order and continued sorting clients from oldest to newest.
- Improved global hotkey assignment and transfer between characters.
- Upgraded SleepHunter and the updater to .NET 10 LTS.
- Simplified client setup by replacing separate version profiles with one verified configuration for supported clients.
- Improved client launch and patch handling so failures are reported and partially launched clients are cleaned up safely.
- Unified the client list, vitals, inventory, equipment, skill, and spell displays behind the same coherent runtime snapshots used by automation.
- Made current
.sh4xmacro files reject ambiguous duplicate fields instead of silently accepting them.
Removed
- Removed the Zolian-only Water & Beds feature.
- Removed legacy Zolian and Auto-Detect client profiles, along with the unused client-version selector.
- Removed the old background client-reading path that duplicated the current runtime and could allow displayed information to disagree.
Fixed
- Fixed spell and flower target dialogs rejecting a visibly selected alternate character.
- Allowed ready skills to run between back-to-back zero-line spells instead of being blocked indefinitely.
- Fixed the application starting without a visible window after the runtime and MVVM migration.
- Restored the Close Client action for map and coordinate changes so it closes the affected game client instead of only stopping its macro.
- Fixed second- and third-row spell clicking and targeting while using the minimized client interface.
- Fixed a runtime error that could occur after a flower cast completed and its next waiting interval began.
- Fixed normal spell casting and flowering failing to interleave when a prioritized flower target was temporarily unavailable.
- Prevented Fas Spiorad from being cast again before its successful mana update can be observed, while preserving retries when mana stays low.
- Kept Stop Macro available during capture errors and removed stale running indicators when a client runtime stops unexpectedly.
- Fixed automatic flowering retaining a removed flower action and stopping the runtime when normal spell casting resumed.
- Flower queue additions, edits, reordering, and removals now take effect safely while a macro is running.
- Fixed Fas Spiorad behavior so active casts are rechecked against current mana and cancelled when no longer needed, while still retrying when mana is low.
- Prevented automatic staff selection from unequipping a weapon unless another usable staff improves casting.
- Restored the active-cast highlight on the correct spell queue item.
- Fixed unexpected runtime failures appearing as a stale
Healthystate and leaving macro controls unusable. - Fixed several UI update issues that could leave toolbar commands, selected queues, or runtime details out of date.
- Fixed the runtime-details popup so it can be reopened and long diagnostics are not clipped.
- Corrected character class detection, including Wizard, for supported clients.
- Corrected the level requirement for early Priest and Wizard staves from 19 to 11.
- Corrected all Instrumental Attack ranks to use normal skill activation.
- Prevented stale client data from appearing as a garbled character name.
- Corrected equipment and appearance readings for the supported 7.41 client.
- Restored equipment icons and durability details, plus inventory durability numbers, for equipped and carried items.
- Fixed skill cooldowns remaining visible after they end and restored live spell cooldowns in the UI.
- Corrected inventory and equipment durability values, improved durability tooltip color, and made inventory tooltips respond across the full slot.
- Fixed clients starting in certain inns appearing logged out until they changed maps.
- Kept the last valid map visible during map transitions while preventing automation until the new location is read consistently.
- Kept the Start Macro label visible before selecting a client and preserved Resume Macro for paused clients.
- Restored updates to the selected macro queue.
- Corrected skill and spell book handling so all 90 slots are supported and unused slots are cleared.
- Cleared stale inventory, skill, spell, and chat information when its live source disappears.
- Improved dialog cleanup so Escape is sent only when a popup is actually visible and stacked dialogs close one at a time.
- Restored reliable selected-character hotkey assignment and glyph display, global start, pause, and resume control, immediate autosave and startup restore, plus
Escapeclearing. - Kept client updates running when optional spell information cannot be read, allowing HP and MP displays to recover after revival or flowering.
- Fixed missing client executables being reported incorrectly and ensured failed suspended launches are terminated safely.
[4.11.2] - 2026-07-24
Added
- Added an Improved Auto-Follow patch, enabled by default, that follows players and monsters without attacking when Shift is held during right-click. The minimum follow distance can be set from 1 to 10 tiles.
[4.11.1] - 2026-07-18
Added
- Added separate options for a draggable exchange window and exchange results in the floating message bar. The draggable window is enabled by default, while floating results are disabled by default.
- Added a dedicated Patches section in Settings with Startup, Input, Render, and Interface tabs.
[4.11.0] - 2026-07-18
Added
- Added an enabled-by-default option that shows stack quantities in merchant and storage dialogs. Long item names are shortened to keep quantities visible.
- Added inventory item icons using the client’s sprite, palette, and dye assets.
- Added an icon-based equipment tab that matches the client pane and includes item, sprite, slot, and durability tooltips.
- Added an enabled-by-default patch that shows up to 255 ground items as translucent hints while either Alt key is held.
Fixed
- Improved inventory reliability and display, including item names, stack quantities, icons, gold formatting, durability tooltips, and coherent updates while the client changes inventory data.
[4.10.4] - 2026-07-17
Added
- Added an enabled-by-default option that suppresses the login notification and transfer delay for supported clients.
- Added an enabled-by-default option that clears held keys and modifiers when the Dark Ages client loses focus.
Fixed
- Included required client-version and runtime data files in Debug and published builds.
- Fixed runtime data loading when SleepHunter is started from a different working directory.
Security
- Removed a dependency that introduced known vulnerable packages.
[4.10.3] - 2025-10-26
Changed
- Updated SleepHunter to .NET 9.
- Improved panel switching to reduce misplaced clicks.
- Improved macro cleanup when a client exits.
Fixed
- Fixed macro autosave and autoload.
- Fixed the spell queue not being included correctly in autosaves.
[4.10.2] - 2023-06-29
Changed
- Improved general application performance and removed unused legacy behavior.
Fixed
- Improved autosave and autoload reliability.
- Fixed several interface issues that could occur after an automatic load.
[4.10.1] - 2023-06-27
Added
- Added configurable minimum and maximum HP conditions for abilities such as Crasher, Animal Feast, and Execute.
- Added a spell queue indicator for abilities waiting on an HP condition.
- Added support for marking spells that open dialogs.
- Added HP conditions to ability tooltips and expanded metadata editor tooltips.
Changed
- Updated skill and spell metadata editors with larger dialogs and clearer layouts.
- Updated ability behavior to use configurable HP conditions instead of hard-coded skill names.
Fixed
- Improved automatic dialog closing.
- Improved autosave error messages.
- Added thousands separators to HP and MP values.
[4.10.0] - 2023-06-27
Added
- Added Save Macro and Load Macro toolbar buttons.
- Added a configurable window title for client versions.
- Added macro feature settings to saved macro files.
Changed
- Renamed Start New Client to Launch Client.
- Increased the minimum window width for the new toolbar buttons.
- Improved macro and per-character feature storage.
Fixed
- Improved autosave reliability.
- Fixed the spell rotation dropdown occasionally appearing empty.
[4.9.0] - 2023-06-24
Added
- Added an Inventory and Equipment toggle to the Items tab.
- Added an equipment list organized by slot.
Changed
- Renamed the Inventory tab to Items.
- Added vertical scrolling to Inventory, Skills, and Spells when needed.
Fixed
- Corrected Zolian equipment readings so automatic staff switching works.
[4.8.2] - 2023-06-23
Added
- Added the Zolian-only Water & Beds MP recovery option.
- Added a Browse button for selecting the client executable.
Changed
- Limited the Flowering tab to USDA clients.
- Improved the color-theme dropdown layout.
- Automatically opened the spell queue when selecting a character with queued spells.
[4.8.1] - 2023-06-22
Added
- Added gold to the final inventory slot.
- Added a Features tab for per-character client options.
Changed
- Renamed client version 7.41 to USDA 7.41 for clarity.
Fixed
- Fixed Fas Spiorad casting unnecessarily at low mana.
- Improved spell cooldown updates.
[4.8.0] - 2023-06-21
Added
- Added an Inventory tab that initially displays item names.
- Added inventory grid options under User Interface settings.
- Added support for detecting and managing additional client variants.
- Added a Zolian 9.1.1 client profile.
Changed
- Improved client detection when launching or attaching to clients.
- Increased the threshold for abbreviated HP and MP values to 10,000.
- Enlarged the User Settings window.
Fixed
- Fixed skill and spell names that do not include level text.
[4.7.0] - 2023-06-16
Added
- Added per-character spell queue rotation.
- Added spell cooldown indicators to the spell queue.
- Added a Skip Spells on Cooldown option, enabled by default.
- Added more keyboard shortcuts to Spell Macro settings.
Changed
- Renamed Spell Rotation Mode to Default Spell Queue Rotation.
- Formatted large HP and MP values with
kandmsuffixes, such as256kand1.2m.
Fixed
- Corrected several staff casting-line values.
- Improved spell queue rotation behavior.
[4.6.1] - 2023-06-03
Added
- Added running and paused status icons beside character names.
Changed
- Improved spacing and sizing in the character list.
- Added more locations to check for the default Dark Ages client.
Removed
- Removed the DirectDraw Compatibility Fix because it caused side effects for some users.
- Users who enabled that fix should delete
ddraw.dllandDDrawCompat-Darkages.inifrom the Dark Ages client folder.
Fixed
- Marked Assail, Assault, and Clobber as assail skills.
- Cleared macro status when stopping, preventing stale states such as
Assailing. - Updated Execute to wait until the target is below 2% HP.
- Fixed spell queue levels not updating until the next cast.
[4.6.0] - 2023-05-31
Added
- Added an optional DirectDraw Compatibility Fix for flickering mouse cursors.
[4.5.5] - 2023-05-21
Added
- Added many missing Temuair and Medenia spells and skills, including abilities above AB 50.
Fixed
- Corrected casting lines and mana costs for several spells.
- Improved keyboard navigation in several parts of the interface.
[4.5.4] - 2023-05-19
Fixed
- Improved skill cooldown detection.
[4.5.3] - 2023-05-18
Fixed
- Fixed memory scanning on 64-bit systems to make cooldowns more reliable.
- Reset cooldown tracking when logging back into the same client instance.
[4.5.2] - 2023-05-18
Added
- Added missing high-level Medenia staves for all classes, including Bard and Summoner staves above AB 70.
Fixed
- Fixed cooldown detection on 64-bit systems.
- Improved macro toolbar updates after map or location changes.
- Hid the spell queue after the final character logs out.
- Added support for display scaling such as 150% and 175%.
[4.5.1] - 2023-04-18
Added
- Added Escape-key support for closing Spell Target and Flower Target dialogs.
Fixed
- Hid No Target for spells that require a target.
- Hid mouse offsets when they do not apply to the selected spell or flower target.
[4.5.0] - 2023-04-18
Added
- Added CPU and .NET version information to Settings > About.
Changed
- Moved SleepHunter from .NET Framework 4.8.1 to .NET 7.
- Removed the build date from Settings > About.
[4.4.2] - 2023-04-18
Changed
- Required the client-version file instead of silently resetting or overwriting it.
- Stopped overwriting theme and metadata files when SleepHunter closes.
- Added a safe fallback to the default theme when a theme cannot be loaded.
- Replaced the old status bar with a thinner border and resize grip.
Fixed
- Fixed character sorting by login time.
- Fixed Show All Processes not being applied correctly at startup.
[4.4.1] - 2023-04-16
Added
- Added Show All Processes under Settings > Debug.
- Added client launch times and a configurable character sort order.
Changed
- Hid clients that are not logged in by default. They can still be shown with Show All Processes.
- Sorted clients from oldest to newest by default.
- Improved metadata editor layouts.
Fixed
- Disabled spell queue actions when the queue is empty or no client is selected.
- Disabled skill and spell tabs when no client is selected.
- Fixed the SleepHunter window title occasionally failing to update.
[4.4.0] - 2023-04-15
Added
- Added a Debug tab to Settings.
- Added more skill and spell metadata.
- Added spell mana costs to the Spell Target dialog.
- Added animated resizing to Spell Target and Flower Target dialogs.
- Added links to the user manual and an optional first-run prompt to open it.
- Added a spell queue toggle button and a Stop All toolbar button.
Changed
- Added a new collection of color themes.
- Improved Settings layouts, keyboard shortcuts, and wording.
- Moved the Metadata Editor to the main toolbar.
- Redesigned Spell Target and Flower Target dialogs.
- Added decorated numeric inputs for units and contextual labels.
- Changed flower queue items to show timers.
- Renamed Tile Radius to Tile Area and Absolute X/Y to Screen Position.
- Limited screen-position targeting to coordinates from 0 through 1280x960.
- Improved dropdown sizing, tooltip timing, and spell queue presentation.
Removed
- Removed Relative Coordinates targeting because Self with X/Y offsets provides the same behavior.
- Removed Rainbow Mode.
- Removed Reset Themes and Reset Version buttons.
- Removed the missing-spell warning and flower queue progress bar.
- Removed the old
Readystatus-bar text.
Fixed
- Disabled macro controls until a client is logged in.
- Improved numeric value entry, validation, and lost-focus updates.
- Improved selected spell queue text contrast.
- Limited double-click actions to the left mouse button.
- Selected the default theme when saved theme settings are invalid.
- Opened the spell queue only when adding a spell, not when changing tabs.
[4.3.0] - 2023-04-11
Added
- Added a standalone updater that can update itself before installing a new SleepHunter release.
- Added a visual divider between vertical Settings tabs.
Changed
- Reduced the main window title and general interface font sizes.
- Increased HP and MP text slightly.
- Widened common dropdowns and text inputs.
- Improved interface contrast and spacing.
Fixed
- Improved handling when the configured client path points to missing files.
- Added a focus border to numeric controls.
[4.2.1] - 2023-04-11
Added
- Added a Retry button to the updater.
Fixed
- Reverted a macro change that could cause flowering crashes.
- Made the updater wait for SleepHunter to close before installing an update.
[4.2.0] - 2023-04-11
Added
- Added optional file logging.
- Renamed Dark Ages client windows to include the character name while logged in.
Changed
- Improved wording in several error messages.
- Made flowering checks more responsive.
- Stopped overwriting existing client-version and theme files.
Removed
- Removed repeated save-error popups during shutdown. Errors are written to the log instead.
Fixed
- Fixed flower targets not waiting for their configured mana threshold.
- Improved flower queue behavior with multiple alternate characters.
- Fixed updater errors when
Settings.xmlalready exists. - Made the updater use the same color theme as SleepHunter.
[4.1.0] - 2023-04-10
Added
- Added update settings, automatic update downloads, and a dedicated updater.
- Added optional update checks at startup.
- Added a scanline overlay behind dialogs.
Changed
- Changed the About keyboard shortcut to Alt+B to avoid conflicting with All Macros.
[4.0.1] - 2023-04-09
Added
- Added a structured changelog.
Changed
- Updated the version to 4.0.1.
- Added .NET Framework 4.8.1 support.
[1.5.0] - 2016-09-13
Added
- Added support for Dark Ages client 7.41.
- Added Alt-key shortcuts to the main toolbar.
- Added drag-and-drop reordering to spell and flower queues.
- Added clearer warnings for spells with missing definitions.
- Added more Material-inspired color themes.
Changed
- Increased the default window size to 1024x768 and the minimum size to 800x600.
- Updated toolbar icons and labels.
- Reduced font sizes in several areas and made client HP and MP bars taller.
- Changed list selection to use a narrow bar instead of a full-row highlight.
- Reduced character-list text size.
- Reorganized Skills and Spells into compact Temuair, Medenia, and World tabs.
- Kept the spell queue visible whenever it contains items.
- Added Remove and Clear All controls to the spell queue.
- Changed the default spell queue rotation from Round Robin to Singular Order.
- Redesigned flower queue items for clarity.
Removed
- Removed Move Up and Move Down queue buttons in favor of drag-and-drop reordering.
Fixed
- Fixed interface threading problems that could cause
InvalidOperationerrors.
License
The MIT License (MIT)
Copyright (c) 2004-2023 Erik Rogers
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Toolbar
The toolbar has the following buttons:
- Launch Client
- Load State
- Save State
- Start, Pause, and Resume Macro
- Stop Macro
- Stop All
- Metadata Editor
- App Settings.
Launch Client
This button will launch a new game client, applying any tweaks that are enabled in the Settings window.
By default, game clients that are not actively “logged in” will not be displayed in the list.
Load State
This button will open a dialog to load the current character’s macro configuration.
Current .sh4x JSON files and legacy .sh4 XML files can be loaded.
NOTE: Skills and spells that are not currently available on the character are preserved in the configuration instead of being discarded.
Save State
This button will save the current character’s macro configuration as a versioned .sh4x JSON file.
Legacy .sh4 XML is import-only and is never written by the new save path.
Start, Pause, and Resume Macro
This state-aware button starts macroing the selected character and changes to
Pause Macro while automation is running. After pausing, the same control
changes to Resume Macro. It shows the pause icon only while automation is
running and uses the play icon for starting or resuming. Pausing retains the
current macro state.
Stop Macro
This button will stop macroing the selected character, resetting the macro state.
Stop All
This button will stop macroing on all characters, resetting the macro state.
It is equivalent to clicking the Stop Macro button for each character.
Pause vs Stop Macro
The main difference between Pause Macro and Stop Macro is that pause acts as a temporary stop, while stop will reset the macro state for that character.
You can notice this with certain timers like flower targets when you pause/resume versus stopping and re-starting.
NOTE: This does not mean that your skills and spells will be removed from the queue, only that the macro state will be reset.
Metadata Editor
This button will open the Metadata Editor window.
App Settings
This button will open the Settings window.
Character List
Shows information about the character, including current location, health, mana, and activity status (when macroing). The selected character will be displayed with a highlighted indicator on the left side of the list item.
The main window title will also display the name of the selected character.
The status bar shows Healthy on the left for a successful selected-client
runtime capture. Capture, observation, and automation failures appear there in
red. Expected map-transition waits appear as a neutral status. Use the details
button on the right to inspect rolling average, minimum, and maximum
snapshot-read times from the last 256 captures, captured vitals,
memory-read totals, nested error context, and retained errors. The details
panel is aligned to the bottom-right within the window content. It holds a
snapshot while open so the diagnostic text remains selectable and can be
copied with Ctrl+C.
Quick Select
Double-clicking on a character will bring that Dark Ages game client window to the foreground. This is useful when you are trying to find that particular game client window that is hidden behind other windows.
Hotkey Binding
You can also bind a hotkey combination to a character by selecting the character and pressing the hotkey combination (ex: Ctrl+1).
This acts as a global hotkey that toggles start, pause, and resume for that
character even when SleepHunter is not the active window. It acts on the
character that owns the hotkey, regardless of the current selection.
If a hotkey is bound to a character, the hotkey combination will be displayed in the character window.
When macro autosave is enabled, a new or cleared assignment is saved
immediately and restored the next time that character is detected.
You can unbind a hotkey by selecting the character and pressing Escape,
Delete, or Backspace.
Character Sorting
By default, characters are sorted by launch order, using each game client process start time from oldest to newest. This sorting can be modified in the User Interface Settings window.
Inventory and Equipment Tabs
The Inventory and Equipment tabs show the selected character’s live items using the full-color sprites, palettes, and dyes from the installed game client.
The client path in Game Client Settings must point to an installation containing the required item assets.
Inventory Grid
Inventory items are shown in their client slots with centered, native-size icons.
Each slot keeps its dim client slot number visible, including empty slots.
Stackable items display an x quantity in the slot when more than one is present, while gold displays its comma-separated amount.
By default, items are arranged with 12 items per row. You can change the icon size and number of items per row in User Interface Settings.
The character’s gold will be displayed in the last slot.
Equipment Layout
Equipped items appear in a dedicated icon-based tab arranged to resemble the game client’s equipment pane. Every equipment position has its own slot, including armor and overcoat, helmet and overhelm, weapon and shield, the three accessory positions, jewelry, gauntlets, greaves, boots, and belt. Dim abbreviated badges identify each position in the top-left corner.
Item Tooltips
Mouse over an occupied inventory or equipment slot to see its item name, sprite number, and slot details. Inventory tooltips also show stack quantity and durability when available; equipment tooltips show the equipped slot and durability.
Skills Tab
Skills are arranged as a grid of icon buttons similar to the game client, displaying the current level of the skill and the cooldown status (if on cooldown). Each position keeps its dim one-based client slot number visible, including empty positions.
Skill Organization
Skills are organized into 3 tabs:
Temuair- skills learned from your original class pathMedenia- skills learned from your Medenian class pathWorld- skills learned for world-related activities (Look,Swimming, etc.)
Toggling Skills
Double-clicking a skill will toggle it on or off for macroing. When a skill is “enabled” for macroing, the icon will be highlighted white and a thick border will be displayed around the skill. Skills can be toggled while the macro is running. The complete updated configuration is applied to the runtime without stopping or pausing it. Ready skills may also be used while a spell is casting because skill input does not interrupt the active cast.
Cooldown Display
When a skill is on cooldown it will be shaded the theme color to indicate that it is not available for use.
Grid Layout
By default, skills are arranged with 12 skills per row. You can change the number of skills displayed per row in the Settings window.
Tooltip Help
You can mouse over a skill to see the tooltip for that skill.
Additional Settings
Additional settings for the Skills tab can be found in the Skill Macros Settings window.
Spells Tab
Spells are arranged as a grid of icon buttons similar to the game client, displaying the current level of the spell and the cooldown status (if on cooldown). Each position keeps its dim one-based client slot number visible, including empty positions.
Spell Organization
Spells are organized into 3 tabs:
Temuair- spells learned from your original class pathMedenia- spells learned from your Medenian class pathWorld- spells learned for world-related activities (nis, etc.)
Queueing Spells
Double-clicking a spell will bring up the Spell Target dialog for that casting spell.
This dialog allows you to select a target for the spell and add it to the Spell Queue.
When a spell is being cast, it will be highlighted white and a thick border will be displayed around the spell icon.
For more information about the Spell Target dialog, see the sidebar.
Grid Layout
By default, spells are arranged with 12 spells per row. You can change the number of spells displayed per row in the Settings window.
Tooltip Help
You can mouse over a spell to see the tooltip for that spell.
Additional Settings
Additional settings for spell macros can be found in the Spell Macros Settings window.
Flowering Tab
Shows the targets for casting Lyliac Plant and option to enable Lyliac Vineyard (if available).
The user-selected flower target in the queue will have a left-side highlight indicator.
NOTE: The Flowering tab is only available if the Lyliac Plant or Lyliac Vineyard spells are available.
Queueing Flower Targets
The Add New button at the bottom will bring up the Flower Target dialog for flowering.
This dialog allows you to select a target for the spell and add it to the Flower Queue.
The Flower Queue is the list contained in the Flowering tab itself.
Here all targets for Lyliac Planet will be displayed, with the condition set as well as a countdown timer.
For more information about the Flower Target dialog, see the sidebar.
Modifying Flower Targets
Double-clicking a flower target will bring up the Flower Target dialog for modifying the cast target.
You can re-arrange the order of the targets by dragging and dropping them.
Flower targets can be added, edited, reordered, or removed while the macro is
running. Each completed change is applied to the runtime without stopping or
pausing it.
Flowering Timer
While the character macro is running, the timer will tick down and show the remaining time. When the timer reaches zero, the target will be flowered (when possible), and timer reset.
Removing Flower Targets
Targets can be removed from the queue by clicking the Remove or Clear All buttons at the bottom.
Alternatively, you can select a target and press the Delete or Backspace key.
Additional Settings
Additional settings for the Flowering tab can be found in the Flowering Settings window.
Spell Queue
Shows the queued targets for casting spells.
The user-selected spell in the queue will have a left-side highlight indicator. Spell names remain white, and the spell being prepared or cast receives the same highlighted icon treatment as an enabled skill.
Spell Rotation
Each character can have their own spell queue rotation mode set in the Spell Queue.
This setting is preserved with their macro state when saved.
If a macro does not store a character-specific mode, the mode from Spell Macro Settings is used.
| Mode | Selection behavior | When the next row is considered |
|---|---|---|
No Rotation | Treats the queue as a top-down priority list and selects the first ready spell on every cast. | Rows that have reached their target level or are temporarily unavailable are passed over. If cooldown skipping is disabled, a cooling spell blocks lower-priority rows. |
Singular Order | Keeps selecting the current spell rather than rotating after each cast. | It advances after the current entry reaches its target level or is no longer available. A spell without a target level remains current indefinitely. Temporary mana, health, or cooldown conditions make this mode wait on the current entry. |
Round Robin | Starts with the row after the last successfully issued cast and wraps at the bottom. | It advances after every issued cast. Temporarily unavailable rows can be passed over, including cooling spells when cooldown skipping is enabled. |
In short, use No Rotation when the top rows should always have priority, Singular Order when one spell should be trained to completion before the next, and Round Robin when ready spells should take turns.
Progress Display
If set to only cast to a maximum level, the progress bar will be displayed. Once the spell reaches the maximum level desired, it will be ignored while in the queue.
Modifying Spell Targets
Double-clicking a spell will bring up the Spell Target dialog for modifying the cast target.
You can re-arrange the order of the targets by dragging and dropping them.
Spells can be added, edited, reordered, or removed while the macro is running.
Each completed change is applied to the runtime without stopping or pausing it.
Changing the rotation mode or queue order does not interrupt a spell that is already being cast. The next spell selection uses the latest complete mode and ordering. A live rotation or ordering change starts selection from the first row of the updated queue, after which the selected rotation mode controls subsequent casts.
Removing Spell Targets
Targets can be removed from the queue by clicking the Remove or Clear All buttons at the bottom.
Alternatively, you can select a target and press the Delete or Backspace key.
Show/Hide Spell Queue
The Spell Queue visibility can be toggled using the show/hide button. It will be shown when adding a new spell target for a character.
Additional Settings
Additional settings for the Spell Queue can be found in the Spell Macros Settings window.
No Target
This is used when a spell does not require a target, such as a self-only or group spell.
NOTE: This option cannot be selected, it is automatically selected when the spell does not require a target.
Options
Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Self Target
This will cast the spell on yourself as the target.
The Mouse Offset X/Y is used to fine-tune the mouse screen coordinates, if needed.
NOTE: The older Relative Coordinates target type has been replaced with this new Offset X/Y target type on Self, as it was redundant.
Options
Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Alternate Character Target
This will cast the spell on another character logged in on the same computer.
NOTE: The other character must be within visible range of the character casting the spell.
Options
Character- specifies the other character you wish to cast the spell on.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Relative Tile Target
This will cast the spell on a tile relative to the character’s current position. For example, “2 Left, 1 Down” would be the tile located 2 tiles left and 1 tile down of your character’s current position.
This relative tile will be preserved even if the character moves to a different tile.
Options
Relative Tile- the tile relative to your character’s current position.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Relative Tile Area Target
This will cast the spell in an circular area relative to the character’s current position. The spell will be cast on the tiles in a clockwise order.
In the above example, the Inner Radius is set to 2, and the Outer Radius is set to 4.
The dead-zone is the area in the center of the circle, where no spells will be cast.
The solid blue tiles are the tiles that will be selected for casting the spell, in clockwise order.
This can be useful in some instances, such as periodically casting a spell on targets within an area without knowing their exact location.
Options
Relative Tile- the tile relative to your character’s current position. This will be the center of the circular region.Inner Radius- the inner radius of the circular region. This is the dead-zone, where no spells will be cast.Outer Radius- the outer radius of the circular region. This is the maximum distance from the center where spells will be cast.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Absolute Tile Target
This will cast the spell on a tile at a specific location on the map, regardless of the character’s current position.
NOTE: You must be within visible range of the tile for the spell to be cast.
Options
Absolute Tile- the tile on the map to cast the spell on. It is not relative to your character’s current position.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Absolute Tile Area Target
This will cast the spell in an circular area around a location on the map, regardless of the character’s current position. The spell will be cast on the tiles in a clockwise order.
In the above example, the Inner Radius is set to 2, and the Outer Radius is set to 4.
The dead-zone is the area in the center of the circle, where no spells will be cast.
The solid blue tiles are the tiles that will be selected for casting the spell, in clockwise order.
This can be useful in some instances, such as periodically casting a spell on targets within an area without worrying about the character’s current position.
Options
Absolute Tile- the tile on the map to cast the spell on. It is not relative to your character’s current position. This will be the center of the circular region.Inner Radius- the inner radius of the circular region. This is the dead-zone, where no spells will be cast.Outer Radius- the outer radius of the circular region. This is the maximum distance from the center where spells will be cast.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Screen Position Target
This will cast the spell on a specific location on the screen, regardless of the character’s current position.
The Screen Position X/Y is used to select the location on the screen to cast the spell on, in pixels.
Options
Screen Position X/Y- the screen coordinates to cast the spell on.Cast Spell Until Reaches- sets the maximum level before this spell will no longer be cast in the Spell Queue.
Alternate Character Flower
This will cast the Lyliac Plant spell on another character logged in on the same computer.
NOTE: The other character must be within visible range of the character casting flower.
Options
Character- specifies the other character you wish to cast flower on.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Flower Interval- the time interval between casting flower on the same character.Flower Threshold- the minimum mana percentage of the character before flower will be cast on them.
NOTE: The Flower Interval and Flower Threshold conditions are evaluated independent of each other.
They act as a logical OR condition, where either condition can be met to cast flower.
Relative Tile Flower
This will cast the Lyliac Plant spell on a tile relative to the character’s current position.
For example, “2 Left, 1 Down” would be the tile located 2 tiles left and 1 tile down of your character’s current position.
This relative tile will be preserved even if the character moves to a different tile.
Options
Relative Tile- the tile relative to your character’s current position.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Flower Interval- the time interval between casting flower on the same tile location.
NOTE: The Flower Threshold option is not available for this target type.
Relative Tile Area Flower
This will cast the Lyliac Plant spell in an circular area relative to the character’s current position.
The spell will be cast on the tiles in a clockwise order.
In the above example, the Inner Radius is set to 2, and the Outer Radius is set to 4.
The dead-zone is the area in the center of the circle, where no flower will be cast.
The solid blue tiles are the tiles that will be selected for casting flower, in clockwise order.
This can be useful in some instances, such as periodically casting flower on targets within an area without knowing their exact location.
Options
Relative Tile- the tile relative to your character’s current position. This will be the center of the circular region.Inner Radius- the inner radius of the circular region. This is the dead-zone, where no flower will be cast.Outer Radius- the outer radius of the circular region. This is the maximum distance from the center where flower will be cast.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Flower Interval- the time interval between casting flower on the same tile area.
NOTE: The Flower Threshold option is not available for this target type.
Absolute Tile Flower
This will cast the Lyliac Plant spell on a tile at a specific location on the map, regardless of the character’s current position.
This will restore the mana of the character standing on the tile.
NOTE: You must be within visible range of the tile for the spell to be cast.
Options
Absolute Tile- the tile on the map to cast flower on. It is not relative to your character’s current position.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Flower Interval- the time interval between casting flower on the same tile location.
NOTE: The Flower Threshold option is not available for this target type.
Absolute Tile Area Flower
This will cast the Lyliac Plant spell in an circular area around a location on the map, regardless of the character’s current position.
The spell will be cast on the tiles in a clockwise order.
In the above example, the Inner Radius is set to 2, and the Outer Radius is set to 4.
The dead-zone is the area in the center of the circle, where no flower will be cast.
The solid blue tiles are the tiles that will be selected for casting flower, in clockwise order.
This can be useful in some instances, such as periodically casting flower on targets within an area without worrying about the character’s current position.
Options
Absolute Tile- the tile on the map to cast flower on. It is not relative to your character’s current position. This will be the center of the circular region.Inner Radius- the inner radius of the circular region. This is the dead-zone, where no flower will be cast.Outer Radius- the outer radius of the circular region. This is the maximum distance from the center where flower will be cast.Mouse Offset X/Y- offsets the mouse screen coordinates by the specified amount.Flower Interval- the time interval between casting flower on the same tile area.
NOTE: The Flower Threshold option is not available for this target type.
Screen Position Flower
This will cast the Lyliac Plant spell on a specific location on the screen, regardless of the character’s current position.
The Screen Position X/Y is used to select the location on the screen to cast flower on, in pixels.
Options
Screen Position X/Y- the screen coordinates to cast flower on.Flower Interval- the time interval between casting the spell on the same screen location.
NOTE: The Flower Threshold option is not available for this target type.
General Settings
The General settings tab contains general settings for the application.
Process Update Interval
The process update interval determines how often the application will check for new Dark Ages game client instances.
Client Update Interval
The client update interval determines how often the application will read character state information from the Dark Ages game clients.
Auto-Save Macro Stats
This setting will automatically save the macro stats for each character when the application is closed. They will automatically be loaded when the application is started and that character is logged in.
Reset All Settings
This button will reset all settings to their default values, and be applied instantly.
NOTE: User settings are automatically saved when the application is closed.
User Interface Settings
The User Interface settings tab contains settings for the user interface.
Color Theme
The color theme determines the color scheme used for the application.
The default is a blue Sapphire color.
Sort Characters By
This setting determines how characters are sorted in the Character List.
By default, characters are sorted by Launch Order, using each game client
process start time from oldest to newest.
The Max Health & Mana option will sort characters by their maximum health and mana, similar to the in-game list.
The total sort value is Max HP + (Max MP * 2).
Show Active Effects
This setting determines whether active spell-effect icons and their relative duration bars are displayed beneath each character’s MP bar.
By default, this is Enabled.
Inventory Icon Size
This setting determines the size of item icons in the Inventory Tab.
Icons remain centered at their native size instead of being scaled to fill the slot.
The default size is Medium.
Inventory Items per Row
This setting determines how many item slots are displayed per row in the Inventory Tab.
The default is 12, similar to the game client.
Spell/Skill Icon Size
This setting determines the size of the spell and skill icons in the Spells Tab and Skills Tab.
The default size is Medium.
Tem/Med Skills Per Row
This setting determines how many skills are displayed per row in the Skills Tab for Temuair and Medenian skills.
The default is 12, similar to the game client.
World Skills Per Row
This setting determines how many skills are displayed per row in the Skills Tab for World skills.
The default is 6, similar to the game client.
Tem/Med Spells Per Row
This setting determines how many spells are displayed per row in the Spells Tab for Temuair and Medenian spells.
The default is 12, similar to the game client.
World Spells Per Row
This setting determines how many spells are displayed per row in the Spells Tab for World spells.
The default is 6, similar to the game client.
Show Skill Names
This setting determines whether skill names are displayed in the Skills Tab. They are displayed underneath the skill icon.
By default, this is Disabled.
Show Spell Names
This setting determines whether spell names are displayed in the Spells Tab. They are displayed underneath the spell icon.
By default, this is Disabled.
Show Skill Levels
This setting determines whether skill levels are displayed in the Skills Tab. They are displayed in the bottom-right corner of the skill icon (if the skill can improve).
By default, this is Enabled.
Show Spell Levels
This setting determines whether spell levels are displayed in the Spells Tab. They are displayed in the bottom-right corner of the spell icon (if the spell can improve).
By default, this is Enabled.
Game Client Settings
The Game Client settings tab contains settings for the Dark Ages game client.
Client Path
This setting determines the path to the Dark Ages game client executable. It is also used to determine the path to the Dark Ages game client data files for rendering icons.
Client Layout
SleepHunter uses one client layout from ClientLayout.xml for memory
addresses, process detection, and runtime patch metadata. It does not select
among alternate memory maps or route behavior by a client version.
Compatible custom clients can use updated addresses and patch metadata in the same mapping without code changes.
Client launch modifications are organized separately under Patches.
Patches Settings
The Patches settings tab organizes client launch modifications into Startup, Input, Render, and Interface sections.
Patches are applied only when SleepHunter launches a new client. Changing these settings does not modify clients that are already running. Each patch is applied only when the configured client layout declares support for it. SleepHunter verifies the client before applying runtime hooks and terminates the suspended launch if a required verification or patch fails, rather than starting a partially patched client.
Startup
Allow Multiple Instances
This setting determines when the “multiple instances” patch should be applied when the Dark Ages game client is started.
By default, this is Enabled.
Skip Intro Video
This setting determines when the “skip intro video” patch should be applied when the Dark Ages game client is started.
By default, this is Enabled.
Suppress Login Notification
This setting bypasses the login notification and its associated transfer delay when a supported Dark Ages game client is started.
By default, this is Enabled.
The setting has no effect when the configured client layout does not support the patch.
Input
Apply Modifiers Key Fix
This setting clears held keys and modifiers when a supported Dark Ages game client loses focus. It prevents client hotkeys from becoming stuck when key-release events are sent to another window.
By default, this is Enabled.
The setting has no effect when the configured client layout does not support the patch.
Show Ground Items with Alt
This setting lets you hold either Alt key to reveal up to 255 ground items as translucent hints, including items hidden behind static map art. Releasing Alt returns the client to its normal rendering behavior.
By default, this is Enabled.
The patch also enables modifier cleanup on focus loss so the client cannot leave Alt stuck when focus changes.
The setting has no effect when the configured client layout does not support the patch.
Improved Auto-Follow
This setting lets you hold Shift while right-clicking a player or monster to follow the target without attacking. The minimum-distance control sets when the client stops, with a valid range of 1 through 10 route tiles. The default distance is 3 tiles, while right-clicking without Shift keeps the normal follow-and-attack behavior.
By default, this is Enabled.
The setting has no effect when the configured client layout does not support the patch.
Render
No Foreground Walls
This setting determines when the “no foreground walls” patch should be applied when the Dark Ages game client is started.
By default, this is Disabled.
This is useful when trying to find items that are hidden behind walls.
Interface
Show Item Quantities in Dialogs
This setting adds the current stack quantity in parentheses to item names in inventory-based merchant and storage dialogs when the quantity is greater than one. Long item names are shortened with two dots when necessary so the quantity remains visible.
By default, this is Enabled.
The patch changes only the displayed label; it does not change the item, quantity, or server interaction.
The setting has no effect when the configured client layout does not support the patch.
Make Exchange Window Draggable
This setting allows the exchange window to be dragged to a different position. Moving it can keep the extended inventory area accessible while an exchange is open.
By default, this is Enabled.
The setting has no effect when the configured client layout does not support the patch.
Show Exchange Results in Message Bar
This setting shows final accepted and cancelled exchange messages in the floating message bar and suppresses the matching popup dialogs.
By default, this is Disabled.
The setting has no effect when the configured client layout does not support the patch.
All Macro Settings
The All Macros settings tab contains settings for all macros, both skills and spells.
Action on Map Change
This setting determines what happens when the character changes maps.
By default, this is Stop Macro.
This is typically used to automatically stop macroing when the character leaves the Dojo.
Action on X/Y Change
This setting determines what happens when the character changes X/Y coordinates.
By default, this is Continue Macro.
This is typically used to automatically stop macroing when the character is thrown or otherwise moved.
Medenia Panel Switching
This setting determines how the Medenia panel switching feature should be used within the game client.
By default, this is Shift-Click.
If you have a different in-game setting, you can change this to match.
Preserve Selected Panel
This setting determines whether the currently selected panel in the game client should be preserved while macroing.
By default, this is Enabled.
For example, if the chat window is up it will be set back to that while macroing to avoid having to click on it again.
Skill Macro Settings
The Skill Macro Settings settings tab contains settings for skill macros.
Assail Skills Mode
This setting determines how the Assail Skills macro will performed.
By default, this is Use Space Bar which will perform all assails. Alternatively, they can be clicked individually.
Disarm Before Using Assail Skills
This setting determines whether the character will automatically un-equip any weapons before using assail skills.
By default, this is Enabled.
This prevents unnecessary repairs to weapons when using assail skills.
NOTE: This setting is for historical purposes when certain sub-classes would not be able to re-equip certain weapons or staves from their previous class.
Spell Macro Settings
The Spell Macro Settings settings tab contains settings for spell macros.
Default Spell Rotation Mode
This setting determines how the Spell Queue will alternate casting of spells.
By default, this is Singular Order.
You can use Singular Order to cast spells in the order they are added to the queue, only moving to the next spell when the current spell reaches the desired level.
No Rotation- Select the first ready spell from the top of the queue for every cast.Singular Order- Keep casting the current spell and advance once it reaches its target level or is no longer available.Round Robin- Advance to the next ready spell after each issued cast, wrapping at the bottom.
See Spell Rotation for detailed waiting, priority, and live-edit behavior.
NOTE: No Rotation and Round Robin can pass over a cooling spell when Skip Spells on Cooldown is enabled. Singular Order waits on its current spell instead of skipping it.
Zero Line Delay
This setting determines the delay when casting zero-line (instant) spells.
By default, this is 0.2 seconds (200 milliseconds).
Single Line Delay
This setting determines the delay when casting one-line spells.
By default, this is 1 second.
Multiple Line Delay
This setting determines the delay when casting multi-line spells, representing the delay between each line.
By default, this is 1 second per line.
Auto Fas Spiorad
This setting determines whether the fas spiorad spell will be automatically cast for a character when they are below a certain mana threshold.
By default, this is Disabled.
NOTE: This still requires the character to be in the “macroing” state. No actions are taken when the macro is paused or stopped.
Use Fas Spiorad When Insufficient Mana
This setting determines whether the fas spiorad spell will be cast when the character does not have enough mana to cast the spell they are macroing.
This also includes Lyliac Plant and Lyliac Vineyard.
By default, this is Enabled and usually a much better option than above.
Require Mana for Casting Spells
This setting determines whether the character will check their mana before casting spells. If they do not have enough mana, they will wait until they do.
By default, this is Enabled.
It can be useful to disable this if you are macroing spells that are not defined in the spell metadata.
Allow Automatic Staff Switching
This setting determines whether the character will automatically switch to the most appropriate staff when casting spells.
By default, this is Enabled.
You can disable this if you are getting stuck in a loop of switching staffs or do not want your character to switch equipment.
Warn on Duplicate Spells in Casting Queue
This setting determines whether the application will warn you when you add a spell to the casting queue that is already in the queue.
By default, this is Enabled.
You are still prompted if you wish to override the warning and add it anyways.
Skip Spells on Cooldown
This setting determines whether spells that are on cooldown will be temporarily skipped in the Spell Queue.
By default, this is Enabled.
Once the spell comes off cooldown, it will be cast again depending on spell rotation mode.
Flowering Settings
The Flowering settings tab contains settings for the casting Lyliac Plant (flower) spell on others.
Prioritize Alternate Characters
This setting determines whether the application will prioritize casting the Lyliac Plant spell on alternate characters over other target types.
By default, this is Enabled.
Prioritize Flowering over Spell Casting
This setting determines whether the application will prioritize casting the Lyliac Plant spell over other spell casting macros.
By default, this is Enabled.
Minimum Flower Mana
This setting determines the minimum mana required to cast the Lyliac Plant spell.
By default, this is 10000 but can be decreased as necessary.
Update Settings
The Updates settings tab contains settings for the application update system.
Current Version
Displays the current version of the application.
Latest Version
Displays the latest version of the application, available from the GitHub releases page.
If an update is available, an Update button will be displayed and allow the user to download and install it.
Release Notes
Opens a browser to show the release notes for the latest version of the application.
Check for Updates
Manually checks for updates to the application.
Check for Updates on Startup
This setting determines whether the application will automatically check for updates on startup.
By default, this is Enabled.
If an update is available, the user will be prompted to download and install it.
Debug Settings
The Debug settings tab contains settings for debugging the application, not intended for normal use.
Show All Game Processes
This setting determines whether the application will show all running Dark Ages clients, including those that are not logged into a character.
By default, this is Disabled.
This is useful for debugging the application when client instances are not being detected properly. Typically, this is used while testing process detection for a compatible custom Dark Ages client.
Enable Debug Logging
This setting determines whether the application will write debug logs to the logs folder.
By default, this is Disabled.
This can be useful for debugging strange behavior in the application.
About SleepHunter
The About settings tab contains information about the application, author, and computer.
Application Version
Displays the current version of the application.
Framework Version
Displays the current version of .NET used by the application.
OS Version
Displays the current version of the operating system, including CPU architecture.
System Specs
Displays the current system specifications, including CPU cores and installed RAM.
Skills Editor
The Skills tab in the Metadata Editor allows you to edit the database of known skills.
This allows SleepHunter to recognize skills and configure behaviors when using them.
Adding a New Skill
To add a new skill, click the Add button in the bottom bar. You will be prompted to enter the skill information.
Editing a Skill
To edit a skill, double-click the skill in the list or select it and click the Edit button in the bottom bar.
You will be prompted to enter the skill information, similar to the Add Skill dialog.
Removing a Skill
To remove a skill, select it and click the Remove button in the bottom bar.
Clearing All Skills
To clear all skills, click the Clear All button in the bottom bar.
Save Changes
Save all changes to the database file. This will overwrite the existing file.
Revert Changes
Discard all changes and revert to the last saved state (from file).
Add/Edit Skill Dialog
The Skill dialog allows you to enter the information for a skill, either for adding a new skill or editing an existing one.
Skill Name
The name of the skill. This is the name that will be displayed in the UI.
Group Name
The group name of the skill, used for categorizing skills for certain interactions.
Mana Cost
The mana cost of the skill, in MP.
Cooldown
The cooldown of the skill, in seconds (if applicable). A zero-cool down means the skill has no cooldown.
Opens Dialog on Use
Whether the skill opens a popup when used. SleepHunter observes the client’s
active popup collection, dismisses each visible popup, and confirms that the
collection is empty before completing cleanup. For example, Peek, Sense,
and Martial Awareness use this setting.
Does Not Level
Whether the skill does not increase on level. If this is set the skill level will not be displayed in the UI.
Is an Assail Skill
Whether the skill is an Assail skill. This is used to determine if the skill should be treated as an Assail skill for certain behaviors, like space-bar performing.
Disarm Before Using
Whether the character should disarm before using the skill. This is useful when using skills like monk kicks.
Character Class
The character classes that can use the skill.
NOTE: This is currently unused but may be used in the future for certain behaviors.
Spells Editor
The Spells tab in the Metadata Editor allows you to edit the database of known spells.
This allows SleepHunter to recognize spells and configure behaviors when using them.
Adding a New Spell
To add a new spell, click the Add button in the bottom bar. You will be prompted to enter the spell information.
Editing a Spell
To edit a spell, double-click the spell in the list or select it and click the Edit button in the bottom bar.
You will be prompted to enter the spell information, similar to the Add Spell dialog.
Removing a Spell
To remove a spell, select it and click the Remove button in the bottom bar.
Clearing All Spells
To clear all spells, click the Clear All button in the bottom bar.
Save Changes
Save all changes to the database file. This will overwrite the existing file.
Revert Changes
Discard all changes and revert to the last saved state (from file).
Add/Edit Spell Dialog
The Spell dialog allows you to enter the information for a spell, either for adding a new spell or editing an existing one.
Spell Name
The name of the spell. This is the name that will be displayed in the UI.
Group Name
The group name of the spell, used for categorizing spells for certain interactions like staff-switching.
Mana Cost
The mana cost of the spell, in MP.
Cast Time
The cast time of the spell, in lines. Each line is about one second.
Cooldown
The cooldown of the spell, in seconds (if applicable). A zero-cool down means the spell has no cooldown.
Does Not Level
Whether the spell does not increase on level. If this is set the spell level will not be displayed in the UI.
Character Class
The character classes that can use the spell.
NOTE: This is currently unused but may be used in the future for certain behaviors.
Staves Editor
The Staves tab in the Metadata Editor allows you to edit the database of known staves and their modifiers.
This allows SleepHunter to recognize staves and configure behaviors when using them.
Adding a New Staff
To add a new staff, click the Add button in the bottom bar. You will be prompted to enter the staff information.
Editing a Staff
To edit a staff, double-click the staff in the list or select it and click the Edit button in the bottom bar.
You will be prompted to enter the staff information, similar to the Add Staff dialog.
Removing a Staff
To remove a staff, select it and click the Remove button in the bottom bar.
Clearing All Staffs
To clear all staffs, click the Clear All button in the bottom bar.
Save Changes
Save all changes to the database file. This will overwrite the existing file.
Revert Changes
Discard all changes and revert to the last saved state (from file).
Add/Edit Staff Dialog
The Staff dialog allows you to enter the information for a staff, either for adding a new staff or editing an existing one.
Staff Name
The name of the staff. This is the name that will be displayed in the UI.
Level Requirement
The level requirement of the staff for the character to use it.
Is Medenian Path
Whether the staff requires a character to be a Medenian class to use it.
Character Class
The character classes that can use the staff.
NOTE: This is currently unused but may be used in the future for certain behaviors.
Add/Edit Staff Modifiers Dialog
The Staff Modifiers dialog allows you to enter the modifiers for a staff, mostly for spell lines.
Action
The type of modification of spell lines. Can be Increase, Descrease or Set.
Scope
The scope of the modification. Can be All, Single or Group. This is where the Group Name comes in for spells.
Scope Name
The name of the scope. This is the name of the spell or group of spells to modify, only when Scope is set to Group.
For example, the Holy Hermes only affects spells in the ioc group.
Value
The value of the modification. This is the amount of lines to increase, decrease or set the spell line to.
Minimum Lines
The minimum number (inclusive) of lines for the spell to be in order to be affected by the modification. Zero means the spell will always be affected.
Foe example the Holy Gaea only affects spells with 4 or more lines.
Maximum Lines
The maximum number (inclusive) of lines for the spell to be in order to be affected by the modification. Zero means the spell will always be affected.
For example the Holy Kronos only affects spells that are 2 lines.