D4ASSIST · OFFLINE MANUAL

D4Assist User Guide

Local documentation for D4Assist 1.0.4.1, a Multi-Key Macro Utility for Diablo IV, based on the implemented source behavior.

Diablo IV.exe foreground only5 Immediate slots30ms minimumPortable

Quick start

  1. Assign a Start Key and Stop Key. The same key in both fields becomes a one-key start/stop toggle.
  2. On the Key/Mouse tab, enter an output key in the first column and a repeat interval in the right half of Delay and Interval.
  3. Review start/stop audio and minimize options, then save the profile.
  4. Bring a Diablo IV.exe window to the foreground and press Start.
Windowed and borderless fullscreen modes are supported. D4Assist checks the executable that owns the foreground window, not the game's display mode.

Input safety behavior

Alt+Tab / focus loss

When Diablo IV loses the foreground, repeating timers stop and all key or mouse outputs owned by D4Assist are released. They resume safely when the game returns.

Windows key

D4Assist releases synthetic keys before suspending, reducing accidental combinations such as Win+4 or Win+F.

Stop has priority

Starting is allowed only while Diablo IV is foreground. The Stop key is still accepted outside the game as a safety action.

Input failure

If Windows rejects a SendInput operation, D4Assist stops Immediate mode and the normal macro safely.

Exact 0ms focus cut-off is not guaranteed. Foreground monitoring is fast, but Windows scheduling can introduce a short delay.

Top Start/Stop area

FieldBehavior
Start KeyStarts the normal macro only while Diablo IV is foreground.
Stop KeyStops the normal macro and Immediate timers and releases owned synthetic inputs.
Same Start/Stop keyUsing [XButton1] in both fields creates an atomic toggle. Keyboard auto-repeat and duplicate XButton DOWN packets are filtered.
Do not startBlocks new starts for both the normal macro and Immediate mode. Assign a key in the hotkey field to the right of the checkbox; while Diablo IV is foreground, pressing that key toggles the checkbox ON/OFF. Stopping remains available.
Save / LoadSaves or loads a profile INI. Recently used profiles are listed on the right.
Do-not-start hotkey: assign any key already supported by D4Assist, such as [HOME], [DEL], or [F8]. One press enables Do not start; the next disables it. The toggle is accepted only while Diablo IV is foreground and is saved in D4Assist.ini. If it shares a key with Start/Stop, Start/Stop handling takes priority, so a separate key is recommended.
The physical mouse wheel is not a Start/Stop control. Wheel input is intentionally excluded so fast scrolling cannot toggle the macro. Use an XButton or keyboard key instead.

Key/Mouse tab — 8 normal rows

Each row is an independent repeating task. An output key and a positive interval are both required.

ColumnMeaningExample
Key+Keyboard or mouse output sent to the game. Multiple keys can be joined with | or &.4, [mbRight], 2&3&R
Initial delayDelay in milliseconds before the row first runs.500
IntervalRepeat period in milliseconds. Values from 1 to 29 are treated as 30ms.100, 1000
HoldingOwns and holds a DOWN state instead of sending ordinary clicks; UP is sent when the row stops or focus is lost.Hold a mouse button
Pause KeyTemporarily stops this row. Alternate or combined input notation is accepted.[SHIFT]
Active KeyThe row runs while this activation condition is satisfied. Empty means run as soon as the main macro starts.F, [CONTROL]
DescriptionUser note only; it does not change input behavior.Defensive skill

Reset Time (msec) resets the elapsed-time display to zero at that period. Zero disables automatic reset.

Immediate mode — up to 5 slots

Immediate mode works only while the normal macro is OFF. Holding the right activation key repeatedly sends the left output at the middle interval.

F
output
→
30 ms
← activate →
F
physical key

In this example, holding the right F repeats the left F every 30ms. Matching output and activation keys are supported.

  • All five rows can be configured with different activation keys.
  • The minimum interval is 30ms. Smaller values such as 10 are normalized to 30 when loaded or started.
  • 30ms is theoretically about 33.3 sends per second; actual throughput may be lower.
  • Immediate mode does not start while D4Assist itself has focus or Diablo IV is not foreground.
  • Releasing the activation key or losing game focus stops the corresponding slot.

Keyboard and mouse notation

TypeExamples
Letters and digitsA–Z, 0–9
Function and control keys[F1]–[F12], [SPACE], [ENTER], [ESC], [TAB]
Modifiers[SHIFT], [CONTROL], [ALT]
Navigation[DEL], [INS], [HOME], [END], [PGUP], [PGDN], arrow keys
Mouse buttons[mbLeft], [mbRight], [mbMiddle], [XButton1], [XButton2]
Wheel output[WheelUp], [WheelDn] may be emitted, but physical wheel input is excluded as a control.

Multiple keys and AND mode

A|B represents alternatives for a condition. A&B requires both keys for a condition and sends a simultaneous down/up group when used as output. Multikey AND Mode changes the separator used while adding keys to a field.

Select an input field and press ESC or Backspace to clear it.

Other tabs and Environment

Sequence Key

This tab is explicitly marked as unsupported. Do not rely on it for a profile.

Stop Keys

Up to 16 named controls are available. The final character of the Name field chooses the behavior.

Name exampleAction
EmergencyStops the entire macro
Pause+Toggles global pause/resume on each press
HoldPause-Pauses while held and resumes on release

Environment

  • Stay on top: keeps D4Assist above other windows.
  • Only Diablo IV process: permanently enabled in this build and fixed to Diablo IV.exe.
  • Alpha Blend: changes the assist window opacity.
  • Minimize when start: minimizes D4Assist when the macro starts.
  • Play audio when start/stop: plays tts\start.wav and tts\stop.wav.
  • Key and Mouse click modifier: adds 0–50ms between DOWN and UP. Blank or zero is recommended unless a device needs it.

Saving, files, and portable use

No installer is required. Copy the complete Final folder to move the program.

File/folderPurpose
D4Assist.exeApplication
D4Assist.iniWindow position, selected language, audio, and recent profile settings
User *.ini filesKey/Mouse and Immediate profiles
D4Assist.filesRecently opened profile list
langKorean and English UI files
ttsStart/stop WAV and TTS media
stylesOptional skin resources
D4Assist_Help_KO.html, D4Assist_Help_EN.htmlOffline manuals. They must be beside D4Assist.exe for the Help menu to open them locally.
D4Assist_Release_KO.html, D4Assist_Release_EN.htmlOffline release notes; place them beside the EXE.

Build intermediates such as .ilc, .ild, .ilf, .ils, .map, and .tds are not required for distribution.

Changing language

Choose Korean or English under View → Language. The program restarts and Help subsequently opens the matching manual.

Start/stop audio

  1. Confirm the tts folder is beside D4Assist.exe.
  2. Confirm tts\start.wav and tts\stop.wav exist.
  3. Enable start/stop audio in Environment and use names start and stop without the .wav extension.
  4. In Windows Settings → System → Sound → Volume mixer, assign D4Assist to the desired HDMI or Realtek output.
D4Assist cannot automatically inherit Diablo IV's per-app output device. Set D4Assist's own output device in the Windows volume mixer.

Troubleshooting

SymptomCheck
Start key does nothingMake sure Diablo IV is foreground, Do not start is unchecked, and no key field is being edited.
Do-not-start hotkey does not toggleMake sure Diablo IV is foreground and the hotkey field is not being edited. If it shares a key with Start/Stop, Start/Stop handling takes priority.
Fast wheel scrolling does not start/stopThis is intentional. Physical wheel input is excluded from control handling.
Immediate mode does not runStop the normal macro; fill all three fields; put Diablo IV, not D4Assist, in the foreground.
10ms changes to 30Normal. The floor prevents VCL timer overload and event-queue flooding.
A key seems stuck after Alt+TabPress Stop once. If needed, restart D4Assist and review duplicate Holding rows.
No start/stop audioCheck the WAV files, option, mute state, volume, and D4Assist output device in Windows Volume mixer.
SendInput blockedWindows, the game, or security software rejected synthetic input. D4Assist stops rather than bypassing the policy.
Help opens GitHub instead of the manualPlace D4Assist_Help_KO.html and D4Assist_Help_EN.html beside D4Assist.exe. The selected language is tried first, then the other language; GitHub is opened only when both local files are unavailable.

Known limitations

  • If a mouse driver generates XButton DOWN/UP packets indistinguishable from physical input, software cannot identify their origin perfectly.
  • Windows scheduling prevents a guaranteed exact 0ms response at the instant of Alt+Tab.
  • Windows or security software may reject or remove low-level hooks. D4Assist retries, but cannot force installation.
  • Diablo IV or security policy may block SendInput. No bypass is included.
  • 30ms is a requested interval, not a real-time guarantee.

1.0.4.1 changes

  • Unified legacy D3Assist / D3Assistant names to D4Assist / D4Assistant
  • Removed YoloMouse integration, UI, and obsolete Cursors assets
  • Added a user-configurable hotkey that toggles Do not start, persisted in D4Assist.ini
  • Standardized Backspace notation to [BACK]
  • Changed CheckKeyState repeat handling so repeated keyboard/mouse DOWN events are forwarded instead of swallowed
  • Removed unused legacy global input helpers that bypassed the checked synthetic-input path
  • Added failure, length, and signature validation to executable version queries
  • Preserved KEYUP/MouseUp release delivery when the settings window becomes active
  • Changed XButton synthetic-input rejection from timing-only logic to the D4Assist input tag
  • Retained the 1.0.3.186 safety work: Diablo IV foreground checks, Windows-key/Alt+Tab release, five Immediate slots, 30ms minimum intervals, and safe stop on input failure
  • Updated About information for 1.0.4.1: Copyright © 2017-2026 D4 UBOO CLUB, Modified by CYPER, and Multi-Key Macro Utility for Diablo IV, while retaining Improved Key Stroer in Windows System.
  • Updated Korean and English offline help and release notes for 1.0.4.1

These notes are based on source-level inspection and static validation. Final C++Builder compilation and real Diablo IV behavior still require validation in the target Windows environment.