Shortcuts
Escape
Close this dialog.
Ctrl + /
Open this dialog.
Ctrl + C
Copy data from the affixes table to be used in filters.
Ctrl + .
Open up Easy Localizer.
Usage
Locating Diablo 4
- Open Battlenet launcher.
- Open the Diablo 4 game page in Battlenet.
- To the right of the play button there is a gear icon, click it.
- In the dropdown list click "Show in Explorer".
- Diablo 4 folder should now be visible in an Explorer window that pops up.
Install
- Download the native application set from the Github repository. Github repository
- Close Diablo 4.
- Copy the "saapi64.dll" to your Diablo 4 folder.
- Enable screen reader and 3rd party screen reader in the Diablo 4 accessibility settings.
- Run "tts-air-proxy.exe" from any folder to set up the websocket server for this site to connect to.
- Verify the connection status changes accordingly with the connection status indicator at the top of the page.
Getting Started
- Once you're up and running, start by mousing over non-upgraded items in your inventory.
- In the "Filters" tab you'll notice new affixes popping up.
- Create a new filter and then select an affix from the "Known Affixes" table, "ctrl + c" the affix to copy it to the clipboard, and then paste it in the filter edit field.
- Change the gear slot to the desired slot.
- Wildcard text works too so say you want to match "...critical..." 3 times, put the text "critical" in the edit field on 3 different lines, then set the "Matches" input slider to 3.
- Now go back to the general tab and mouse over an item that matches the filter you've setup and it should popup in the "Filtered Items" table.
- Below is a video on how to run "tts-air-proxy" and create a filter.
Item Scanner
Hover over items in your inventory to quickly match them with filters you create.
XP/Gold
Can keep track of how much XP/gold per hour you are making.
Runs
Keep track of your runs like a stopwatch.
Topbar Icons
Connection Status
Current connection status
- Red - Waiting to connect to native app.
- Yellow - Waiting to receive a message from Diablo 4.
- Green - Is connected to native app and received a message from Diablo 4.
Help Icon
Open this dialog
Overview Tab
General
View current level and account gold.
How to Use
- Mouse over your character XP ingame to update level.
- Mouse over your gold ingame update your gold.
- Due to current limitations, you must have at least 1 million gold to use any gold features. This is because all gold instances scanned look the same so we assume if it's greater than 1 million it's account gold.
Level Description
- Current level.
- Current XP / Next level XP.
- Current total XP / XP to reach level 100.
Per Hour
View current calculated XP/gold/runs per hour.
How to Use
- Click the "Reset" button.
- Mouse over XP/gold ingame to snapshot your starting XP/gold.
- Play the game.
- When you want to see your XP/gold per hour, mouse over the XP/gold to update it.
Per Hour Inputs
- Reset - Reset XP/gold/runs per hour.
Runs
A table to track runs like stopwatch apps on phones.
How to Use
- Type in the approximate XP amount gained from each run.
- Optionally click the "Clear" button to reset the run timer.
- Click the "Mark" button to mark that you finished a run.
- When you want to start a new batch of runs or reset the time click clear.
Runs Inputs
- Mark - Mark a run.
- Run XP - The XP to calculate with for the next marked run.
- Clear - Clear all current runs.
Runs Table Headers
- Run # - Current run counter.
- Total XP - Total XP calculated from all runs.
- XP/Hour - The XP per hour from this run to the previous run.
- Time - Time this run took.
- Total Time - Total time up to this run.
Filtered Items
A list of items that have matched an item filter setup in the affixes tab. Items will fade out after a period of time.
How to Use
- Setup at least one filter in the Affixes tab.
- Mouse over items ingame to scan them.
- Equipped/upgraded items are ignored and will not show up.
Top Row Description
- Item power.
- Average of matched affix qualities. 0% means all matched affixes are the worst rolls possible. 100% means all matched affixes are the best rolls possible.
- The gear slot of the item.
Affix Description
- Value of the affix.
- Quality of the affix. 0% is the worst roll possible. 100% is the best roll possible.
- The affix name.
- Highlighted affixes passed the filter.
- Grayed out affixes did not pass the filter.
- Only affixes from the first filter that passed will be highlighted/grayed out.
Character Tab
Equipment
Displays currently equipped character gear.
How to Use
- Click the "Clear Equipped Items" button.
- Hover over each of your equipped items ingame.
- Hovering over items will not replace currently discovered items. You must reset to equip new items.
- This feature is not finished yet and support for some classes is minimal.
Character Inputs
- Clear Equipped Items - Clear all equipped items.
Affixes Tab
Known Affixes
Displays discovered affixes.
How to Use
- Hover over items ingame to index their affixes.
- Double click an affix to view gear slots it has been seen.
- Space/Enter will also open the selected affix.
- You can navigate the table with arrow keys.
- Upgraded items are ignored.
- Items with increased affix magnitudes (I.E. The Grandfather) may result in indexing unrealistic affixes.
- You can search and filter affixes by gear slot with the filters above the list.
Filters
Setup filters to filter hovered items with.
How to Use
- Select a filter to edit it below.
- Organize filters with the row arrows. Lower # priority takes precedence.
Filters Inputs
- Create New - Create a new filter.
- Remove - Remove the selected filter.
- Up/Down row arrows - Change the filter priority.
Filters Table Headers
- # - Filter priority and up/down arrows to change it.
- Filter Name - The filter's name.
- Matches - The configured match count required to pass.
- Quality - The configured affix minimum quality required to pass.
- Power - The configured item minimum power required to pass.
- Slots - The slots this filter applies to.
- Color - Preview of the filter's colors.
Edit Filter
Edit a currently selected filter.
How to Use
- Click on a filter in the filters table to edit that filter.
- Edit the filter name/match count/gear slots.
- Edit the string lookups for that filter.
- Gear slots are comma separated.
- Valid gear slots include include "head,body,gloves,pants,boots,weapon,amulet,ring,all,*(all)".
- Filters are newline separated. They allow for partial string matching (I.E. "reduction" matches all affixes containing the word "reduction"). Each line can only match one affix. Say for example you want to match "reduction" 3 times for 3/4 pants, you will need to have 3 lines of "reduction" and a match count of 3.
Filters Inputs
- Name - Rename the filter.
- Matches - The number of affixes that must match for the filter to pass.
- Locale - The language the filter uses. Make sure this matches the language you type in for your match strings.
- Gear Slots - The gear slot this filter applies to.
- Min Quality - Minimum quality matched affixes need to pass.
- Min Power - Minimum item power needed to pass.
- Audio - Select an audio noise to play at the specified volume when the item is matched. The page needs to be interacted with once for this to work.
- Background - Edit the background color of matched items.
- Border - Edit the border color of matched items.
- Font - Edit the font color of matched items.
- Example - Preview of the filter's colors.
- Filter Edit Field - Newline separated partial strings to look for in an affix.
- To do exact matching wrap the line in quotes.
Data Tab
Export
Export this website's data.
How to Use
- Select export filters with the checkboxes.
- Click the "Export Data" button.
- This will create a file you can view and share.
Import
Import previously exported data into this website.
How to Use
- Filter what data you want to import with the checkboxes.
- Copy your data as text into the clipboard.
- Paste the data into the field that says "Paste data here".
- Click the "Import Data" button.
- This will merge data from the pasted data based on the filters you selected.
Found Items
Keeps track of all scanned items.
How to Use
- Mouse over items ingame.
- Click the "Export Items" button to save the list as a file.
- Click the "Clear Items" button to clear the list.
- The number next to "Found Items" show how many items are in the list.
TTS Log Viewer
A live feed of TTS messages as received from tts-air. For performance reasons it only keeps recent messages.
Known issues
Localization
- Numbers with commas in them are not parsed correctly.
- Blue boots skip the first affix read in French (French TTS is missing item rarity).
Filtering
- No way to differentiate from % and + stat affixes (I.E. +%Willpower and +Willpower).
Affix List
- % and + stat affixes are grouped together (I.E. +%Willpower and +Willpower).
1.1.4 - 2023.09.5
UI
- Added affix buttons to affix rows to copy them to current filter.
- Made current filter show matches in the affix table.
- Fixed TTS Log newlines not working in Firefox.
Parsing
- Fixed Chinese weapon attack speed not parsing.
- Re-enabled rarity scanning on items (Still won't work on French locale, mostly just breaks magic boot parsing).
1.1.3 - 2023.09.4
Parsing
- Fixed parsing bug.
- Added missing affix "(SKILL TYPE) Skill Damage".
- Added missing affix "Damage while (SHAPE) Damage".
1.1.2 - 2023.09.2
Parsing
- Fixed "Maximum RESOURCE" affixes not getting parsed.
- Fixed "RESOURCE Cost Reduction" affixes not getting parsed.
1.1.1 - 2023.09.1
Parsing
- Fixed an error in the localizer initialization.
1.1.0 - 2023.08.31
Parsing
- Changed parsing to use new tokenizer API.
Filtering
- Can now filter by item power.
- Added locale setting in filters to tell the engine what language your filter is writted in.
- Cross language filtering now supported when a filter's locale setting is correctly set.
Localization
- Easy Localizer added to create translations on the go. It can be opened with the "Ctrl + PERIOD" shortcut.
- Added initial Chinese Simplified UI machine learning translation.
- All affixes and gear slots are localized for all languages.
UI
- Added language picker at the top of the page.
- Instead of showing "5/5" for upgrades, it now shows power plus upgraded power (I.E. 800+25).
- Can now close patch notes with the escape key.
Misc
- Changed stored affix database layout. You will need to rescan affixes in this update.
1.0.9 - 2023.08.22
Parsing
- Fixed a bug that prevented weapon implicits from getting parsed separately from affixes.
Filtering
- Added min quality filter slider.
- Made affixes that are below a filter's min quality get ignored.
- Added ding_2 audio file.
UI
- Fixed volume slider not getting disabled when no filter was selected.
Misc
- Stopped embedding audio files in the html and moved them to a res/audio folder, this should reduce html size blowout in the future.
- Made affix table copy event wrap the strings in quotes by default, this should reduce odd looking behavior with partial string matches.
1.0.8 - 2023.08.18
Filtering
- Disabled item filtering when comparing items (press shift while hovering an item).
1.0.7 - 2023.08.17
Filtering
- Made filtering work if compare item is on (toggled by pressing shift over an item).
- Disabled parsing an item if we detect that advanced tooltip information is off.
UI
- Show warning at top of the app when an item is scanned and we detect that advanced tooltip information is off.
1.0.6 - 2023.08.16
UI
- Added filter name to filtered item results.
1.0.5 - 2023.08.14
UI
- Made item rows expand to full size when hovered (Should fix any clipping that can occur).
- Filtered items show if they are upgraded or equipped now.
- Attempt at fixing TTS log all appearing on one line.
- Separated TTS log messages with dashes to improve readability.
Filtering
- Fix for 1k plus affix values appearing as NaN.
- Ignoring boot evade implicits now.
- Data tab items will now update when hovered a second time, they will not move to the top of the list however.
Misc
- Cleaned up some old item name dependant stuff.
1.0.4 - 2023.08.13
UI
- Possible fix for quotation wrapped filter tokens not working.
1.0.3 - 2023.08.11
UI
- Made run input match other input styles.
Filtering
- Added exact filter matching.
- Fixed aspects matching as items.
- Upgraded items can now be filtered if they are not equipped.
- Fixed rings/amulets implicits getting parsed as affixes.
Debugging
- Added a TTS log viewer in the Data tab.
1.0.2 - 2023.08.11
UI
- Fixed data tab items not showing multiple items with the same names.
1.0.1 - 2023.08.11
UI
- Changed input background to more resemble the new dropdown background.
- Made status icon show if the page needs to be interacted with. This is important because audio can't be played unless the user interacts with the page once.
- Reduced developer section of About page.
- Fixed missing carets for filter re-ordering.
Filtering
- Added audio options to play on matched item found.
- Fixed two items with the same name overriding each other in lists.
- Made longer filter matches get matched first, this should help with affixes that share many words with each other (i.e. Critical Strike...).
1.0.0 - 2023.07.13
Initial Release
General
Level:
0
Gold:
0
Reset
Per Hour
XP:
0
Gold:
0
Runs:
0
Runs
Mark
Clear
Run #
Total XP
XP/Hour
Time
Total Time
Filtered Items
Clear Equipped Items
Known Affixes
Filters
Create New
Remove
#
Filter Name
Matches
Quality
Power
Slot
Color
Edit Filter
1
1
100
Play
Example Matched Item
Export
Character
Import
TTS Log Viewer
0
Found Items
Export Items
Clear Items
Help
Shortcuts
Press Ctrl + / to open help anytime.
Press Ctrl + . to open the localization plugin anytime.
Click this icon anytime to open the help modal.
How it Works
saapi64.dll
This acts as a 3rd party screen reader. Diablo 4 then sends it the text that would otherwise get read out loud by Windows text to speech.
It does not act as a screen reader for Windows. This means it will only get events from Diablo 4.
tts-air-proxy.exe
Acts as a bridge from saapi64.dll to this web page over websocket.
Right now it only supports connections from d4.wartide.net.
This page
Processes text-to-speech for item filtering among other features.
Security Concerns
Is this safe?
The native application is available on Github. It's only a small amount of code to verify.
The webpage source is minified. Even so, using the browser's inspector you can verify it's doing no network activity other than talking to the native application over websocket. This means we are only sending messages to the DButcher app.
Will Blizzard be mad?
We really don't know. We don't do any process hooking, injecting, or automation so it's unlikely.
General Info
Support
Join the Wartide Discord to get update notifications.
Here are our website costs:
- Domain costs ~$10 a year.
- CDN costs $0.00.
- Server Costs $0.00.
- Our time... priceless.
Website
Our website design goals:
- Performance first.
- Virtual lists for nearly limitless list sizes.
- Custom DOM controls.
Developers
Frizt
Worked on the website from the ground up.
ManShanko
Created the native application this website uses to communicate with Diablo 4.
Wartide Copyright 2023 Frizt