v1.48
has been successfully deployed! 
This update introduces a number of new features and improvements to the site - I'll get onto these in just a moment. The patch also addresses a number of feature requests and bugs reported in by you guys. If you're looking for other development logs (before and after 1.48) then click here. Okay here we go!
Holy Grail Tracker
- I built a Holy Grail tracker for all 545 items in a standard Grail (330 Uniques, 107 individual Set Items, and the 33 Runes).
- It supports both (Legacy and Resurrected)
.d2s
and.d2i
file uploads for automatic importing of offline characters' equipped items, inventory items, items inside personal stash, items inside cube, and items inside all three shared stash tabs (.d2i file). When you auto-import files like this, it saves the mule/character name (or shared stash tab number) for each item the script discovers, and includes these in the records for each item in your grail collection.
- If you're doing your grail online, or editing existing auto-imported grail entries, you can manually add a bunch of details about the item find: a screenshot of the item, 'Perfect' and 'Ethereal' tags, the area in which the item dropped, whether the area was terrorized, the difficulty it dropped in, the monster variant (or NPC) from which the item dropped/was gambled from, and a small 'notes' section that you can use for any further details like the mule/character name or short anecdotes/personal comments. You can also delete grail entries from here.
- The main grail view has a small table summarising each category (Uniques, Sets, Runes, Total) by the total items in each category/total, the number found so far in each category/total, the number still missing in each category/total, and your progress towards 100% in each category/total.
- The main grail view also has a 'completion over time' line graph that shows your progress over time from 0% to 100% completion from the date you started your grail. If you hover over the line near dates where items were added (either manually or through import) then it will tell you what the percentage completion was at that date, and which specific items were added on that date.
- The main grail view groups grail items by item type for Uniques, and by Set for Set items. Runes have their own low/mid/high rune groupings. The main view can of course be instant-searched, filtered by category (uniques/sets/runes), and filtered by item type, full-set, or rune grouping. You can also filter by 'Found' and 'Missing'.
- The main grail view layout can be left as compact/condensed with each row scrollable horizontally to reveal further details on each find, or it can be expanded (Wide button) for easier legibility. Each item has a button to add/edit an item entry, and for each item's row that has an entry it shows all of its relevant records that you inputted when adding or importing.
- You can share your Holy Grail with anyone in the world by clicking the 'Copy grail URL' link in the breadcrumbs at the top of the page. This URL is unique to your grail collection and can simply be pasted wherever you want to share it. You can view others' grail collections through a link on their profile.
- Your grail progress table is displayed on your profile (providing you have at least one entry), and also when viewing the database page of any Unique item, Set item, or Rune, there is a handy link at the top of the page to add that item to your grail. If it's in your grail already, it will say 'Found' with a tick.
- Each grail entry is saved to the database so that you can edit/delete/recall any entry you made. This also means that all of the juicy data on where items dropped and what monster they dropped from are then available for use later in enriching the database.
- I built a skill tree calculator for each class - this was not as easy as I thought it would be. It uses the latest skills data from
2.8
(2.6 really) and does all of the stat calculations in the frontend. Very happy with the final result!
- You can add normal skill points (red) from 1-20 to each skill, as well as any number of Bonus points, +Tree Skills points, and +All Skills points (blue, representing skills from items etc). As you add points, each individual stat for that skill is updated instantly inside the hover tooltip to reflect the new total skill level of the skill (and the next level's stats too).
- If you add a skill that has any prerequisites, then these prerequisites are automatically filled with 1 skill point, to save you a few clicks. If you add skills which synergise with other skills, then the stats are also recalculated to take into account said synergies. Some synergy descriptions in-game are not as descriptive or dynamic as they could be so I made an effort to improve those where possible.
- The calculator assumes you are on Hell difficulty (this affects some summoning skills for example) and assumes that you have all 110 (normal) skill points available to invest. Druid Summoning skills (unlike all others) take into account bonus/tree/allskills points as well as normal skill points when calculating synergies.
- The native skill tree interfaces in D2R/LoD have several bugs, which include: stats not reflecting the real output of the skill being considered, the complete absence of synergistic effects on certain stats, and synergy bonuses being applied (visually) to certain stats where in real gameplay the bonus is not actually applied (!).
- Unlike other online skill tree planners that have carried over (or ignored) these bugs, I have made an extra effort to show the true synergy/stat relationships as per the game's own .txt file formulas, and taking into account observations made on the AmazonBasin Wiki for each skill's real behaviour in-game.
- This is why you may find discrepancies between what you see in-game/on other websites/what you see here. If you think something looks wildly incorrect (not including rounding errors or floating point precision), then feel free to leave a post in the Feedback forum, and I will happily debate it with you/correct where necessary.
- There is also some additional flavour on each class' page showing a list of items that grant +class or +class tree skills (including base items that qualify). You will also find a sidebar link to the skills database (updates on that in just a moment) when viewing any skill tree.
- This feature may end up evolving into a full D2 planner tool in the future with a paper doll UI for equipping/generating items, a total stats list, target dummy calculations etc. etc. but the skill stats calculations alone were such a monumental task (and I wanted to get these right) that I thought I would leave the rest for another time.
- I built a calculator that tells you the number of sockets that Larzuk will give to any chosen Base item in the game, providing that you also know the name of the monster that dropped the item, the area in which the item dropped, and the difficulty of the game at the time. The tool also supports base drops that originate from chests and other clickables like tombs, jars etc.
- Here's how it works: Larzuk will always give the maximum number of possible sockets to a Base item. Max sockets are based on the
ilvl
of the item, which is based on themlvl
of the monster that dropped the item. If the item drops from a chest or other clickable, then the item'silvl
is determined by thealvl
of the area, and whether it dropped from a stand/rack or not. - The
mlvl
of a monster is normally equal to the area'salvl
, but varies depending on a number of factors: the game difficulty, if the monster is a Unique (or Minion of), a Superunique, a Champion/Possessed/Fanatic/Ghostly, a Berserker type, and whether whether the area is terrorized - in which case the game creator's character level is also required. - In cases where the area is terrorized, the
alvl
(andmlvl
for non-superunique and champion monsters) is determined by the game creator'sclvl
(providing thatclvl
is not less than thealvl
was already at this difficulty). A modifier based on the difficulty and monster type is then applied, and is capped to a set amount per difficulty. This also applies to chest/clickable drops. - Since the database now holds every piece of data needed to make such a calculation (see 'updates to monsters database' section below) using
alvl
,mlvl
,ilvl
,clvl
etc. etc. it was just a matter of creating the logic and the UI that could query the database for these values and manipulate them as per the user's inputs in the calculator form. - Also, every socket calculation that is made is being stored in the database with all of its pertinent calculation values and conditions, meaning that I will be able to use this data later on to enrich the Base items database with information on where/which monster/which difficulty people have found X sockets version of the item as an additional reference point for visitors.
- On this page there is also a list of any Larzuk-related player service listings from the marketplace, so that if visitors are looking to find someone to rush their char to Larzuk quest, they have a convenient list of people offering such services.
- For discoverability, you'll see a sidebar block linking to the Larzuk Sockets tool when browsing player services, searching for player services, browsing the Runewords database, browsing the Base database.
- I forked Warren1001's D2R attack speed calculator and made it available here with some minor improvements to presentation and sharing ability.
- This version on diablo2.io updates the URL instantly with each change to the form inputs (as opposed to a 'copy' button at the bottom), and saves more (all) data in parameters in this URL than the original calculator. This allows you to share URLs to exact IAS/FPA table results based on every selection available in the form, which the original was not capable of.
- Other than the sharing improvements, the cosmetic changes to use d2io's styling, and some additional context/tooltips on why certain settings are available ( Burst of Speed because of Hustle, Mark of the Bear/Wolf because of Metamorphosis), the calculator behaves the same and uses the same underlying data and logic as the original.
- If you're interested in seeing the workings of the underlying calculator code, you can visit Warren1001's Github repo where he has open-sourced it.
- I have now added all 'Guest' monster variants to each base monster. These are the variants that appear in Act V as random spawns and have (generally) stronger stats than their previous-act counterparts.
- This was done to fill in the gap left by excluding Guest monsters in the original monster DB, but also in order to enable more accurate
mlvl
targeting when using the Larzuk Socket tool, and to offer more precise record-keeping for the Holy Grail Tracker. - When picking monsters while using the Larzuk Socket tool, or the Holy Grail Tracker, you can enter the actual variant-name of the monster as opposed to having to find out what the 'base' monster is, and the monster will show up as that variant name.
- Guest variants have their own line entries also when conducting this type of search to make it extra clear to the user that they have a choice to make for the most accurate mlvl retrieval/record keeping.
- You can view Guest monster variant stats in the same way as you already do for 'normal' variants of the monster (in the base monster's database page). These Guest variants also appear in tooltips and on database category blocks.
- I went through each base monster and ensured that each one now has its respective Arreat Summit Lore and 'Additional info and tips' sections added - either in the description, Lore section, or as a comment.
- Each area now shows which monster immunities exist within it (on Hell difficulty). These immune indicators can be found on the Areas database category page, the individual database entry pages for each area, and hover tooltips for each area.
- In the Areas database, you can now filter for areas that can be terrorised.
- You can also filter for areas that do NOT have specific immunes present - this is handy in case you are specced for mainly one type of damage and don't want to do an area with that type of immune present in it. For example I'm a Holy Freeze Paladin and I don't want to do any areas which have cold immunes in them.
- You can also, if you so choose, filter for areas that DO have specific immunes present, though I think this will be far less useful than the NO immunes filters.
- You can now select multiple filters simultaneously in the Areas database. For example, you could select 'Can be terrorized' and 'No Fire immunes' filters to see which zones are both terrorizable AND have no fire immunes in them. This also applies to the Act filters, the Type filters, and the Has Waypoint filter. Only one type of immune filter can be active at a time.
- Thanks to @blubbalutsch for providing the immunes per area data.
- All skills have (finally!) been updated to Resurrected
v2.8
data (2.6 technically speaking) including any changes to their synergies and synergy bonuses. - As a result of the introduction of the skill trees tool, I have removed the original static 1-60 stats from each skill's database page/category block/hover tooltip and replaced it with a link to the skill trees tool on the database page (pre-filtered for the appropriate class) - the new tool calculates everything dynamically, including synergy bonuses, bonus points etc. etc. - so it is a far more practical guide to skill stats, and makes the former static 1-60 standalone stats redundant.
- You will see a sidebar section suggesting the skill trees tool when you are on any skills database page.
- Hover tooltips now load much faster (by
0.418
seconds). - You can now choose a secondary platform on your profile and it will show on your mini-profile in posts/main profile. It will not be used in any filtering logic and is cosmetic/informative only.
- Each rune's 'index' number has notwbeen added to Rune tooltips, DB category, and DB entry pages. You can also sort Runes by their index number or their level when in the Misc database, providing you have the Runes filter active.
- Tools index page summarising tools available on diablo2.io.
- Replaced useful links sidebar section with section for Tools page (this useful links section has been incorporated into the Tools area as its own link).
- Added useful links as a sub-section of the Tools index + navigation.
- Added the 'Help me kill!' topic as a subnav link of the Dclone section.
- Reduced the allowed file size of uploads from 4mb to 1mb (running out of space here guys and need to look into the future).
- Changed the name of Stone of Jordan to The Stone of Jordan.
- Changed the name of Crescent Moon (the runeword) to Crescent Moon Runeword.
- Changed the name of Crescent Moon Amulet to Crescent Moon.
- Changed the name of Secret Cow Level to The Secret Cow Level.
- Updated subnavigation icon on site message/site info/confirm pages.
- Removed 'development frozen' etc. notices from Bug Reports and Feedback subforums and posting templates.
- Some small changes/updates to the About page and the Credits page.
- Added a sidebar block for Player Services to make them more discoverable, seen whenever browsing/searching for trades that are not already filtered for player services.
- Added new 'Can have
X
sockets' filters to the Base Items database page, so that you can now view all items that can have a certain number of sockets, rather than just filtering by max sockets. Can be combined with other filters. - When browsing the Monsters database, you can now combine filter groups, and filters within those groups are not multiple selection. This means you can now, for example, filter for Superuniques in Act 2 that are Fire Immune and Animal type.
- Fixed Poison & Bone filter getting stuck in filters array instead of removing itself on next filter selection.
- Fixed 'Monster' filter behaviour on the Monsters database - it should now pick up normal monsters only.
- Fixed bug where the site's sub-navigation wasn't scrolling horizontally on some browsers.
- Fixed missing breadcrumbs on user Sell History and Buy History pages.
- Fixed Ribcracker missing the Staves item type.
- Fixed missing quality level for all Sundered Charms.
- Fixed missing Council Member second variant.
- Fixed missing Sand Raider Act 2 data point.
- Fixed inconsistent stat naming on the Rain runeword and Tal Rasha's Lidless Eye.
- Fixed issue where spiders/crawlers were trying to index pages they shouldn't be (squelchtrader.php)
- Fixed issue where similar topics sections were not including pages over 2 years old (now there is no time limit).
- Fixed a bug where errors were poorly formatted on the registration page.
- Fixed a bug on the registration page where email DNS lookups were sometimes taking so long that the script timed out. Still to be tested on prod so this may not have been fixed - we'll see!
- Fixed some straggler user hover tooltips that were still on the main forum view, search results, and browsetrades pages (most instances of these were stripped away a while ago, I left these ones behind by accident and they're gone now).
- Fixed a bug where the trade volume graph on the main trade page and in other areas wasn't extending back a full year, leading to a truncation of data.
- Fixed a bug where registered users were unable to edit their own bug report topics (lol!).
- Fixed a bug where the topic icon button on the bug reports forum was misaligned.
- Fixed a bug where the arrow indicator under 'Database' was misaligned on some breakpoints.
- Fixed a bug where max sockets filter on the Base Items database page was allowing multiple selections when it shouldn't have been.
I started this sprint at the beginning of the year. There were a bunch of things I wanted to do this round, but as always, time is the enemy! If you want to see what the future plans are for the rest of the year, you can take a look at the spoiler below:
2025 Backlog
Charsi Food Rares: Resurrected
Fully automated Dclone status reports
Online Terror Zone predictor + history
Offline Terror Zone calculator + history
Blue post tracker
Trade features and improvements (OCR screenshot -> text, quantities, most traded index, reverse price check, relative time difference in trade listings, attachments in price history, attachments on trade listing hover tooltip etc.)
1.50 (Q3):
Cube Socket Probabilities Calculator
Vendor and Gambling Tools
Direct battle.net site registration
Browser notifications reintroduced
Magic Affixes Database
Mechanics Database
Mods & Modding tutorials section
Resurrected graphics switch
Teebling
7219
Admin