Search the database
Search forum topics
Search members
Search for trades
diablo2.io is supported by ads
diablo2.io is supported by ads
86 replies   35814 views
2

Description

This topic is now outdated. Please see the new continuous development log.
Hello everyone! v1.0 of diablo2.io has just deployed. That's right, we're finally out of Beta! :lol: This update brings a number of new features and improvements (mainly to the trade section), and has tackled most of the bugs reported so far. Performance was a top priority and I have worked very hard to deliver on speed - fingers crossed! Lastly, I have endeavoured to fulfil as many of your individual feedback and feature requests as possible. To see all known issues/bugs so far with v1.0, check out the known issues topic here.
v1.0 has landed!
v1.0 has landed!
You'll find the details of each update, fix, and improvement in the list below.

Trade Creation
  • When creating a trade, filter selections are pre-loaded as per your default profile settings. So if you selected Xbox Asia Classic as your profile settings, the page will pre-select those filters for you in the trade's creation page. You can also set any filter to anything you want regardless of your defaults - so for example even if your default game selection is Expansion, you can now deselect that filter when making a trade, and select Classic instead. This trade, when submitted, will be listed as a Classic trade instead of your usual Expansion one. The same applies to any other filter types involving defaults, such as Region and HC/Ladder. This will make it easier to trade from various characters on the same d2io account.
    Viewing a an automatic search of all WTB listings for Harlequin Crest
    Viewing a an automatic search of all WTB listings for Harlequin Crest
  • You can now mark a trade as 'Want to Sell' or 'Want to Buy'. One of the advantages of this is that now when you create any trade, you have the option to load a list of WTB or WTS items for that item in a new tab. For example, you enter
    Harlequin Crest
    into the create trade window - a button will now appear - which when clicked will take you to all WTB listings for Harlquin Crest in a new tab. At this point you could abort the trade listing and decide if you want to respond to one of the WTB trades already up.
    Default filters selected on Create Trade window
    Default filters selected on Create Trade window
  • The other advantage to being able to set a WTS/WTB option is that you can now actually put up buy orders to be fulfilled. This, combined with change described above, means that trading will become more interconnected. I expect WTB trades will become more popular as time goes on/as this discreet feature is discovered by new and returning traders.
    A want to buy order for Harlequin Crest
    A want to buy order for Harlequin Crest
  • You can now advertise for multiple other platforms on top of and including your default 'profile set' platform. For example if you are PC by default, but also own a copy of the game on Switch, you can select the Switch option as well when creating a trade, and both platforms will be used to label it. The additional platform will always have to be manually selected when making the trade:
    Multi select platforms on trade creation
    Multi select platforms on trade creation
  • You can now manually set a number of filters to more accurately catalog your listing. You can choose the rarity of the item if it isn't recognised by the DB - for example for Rare quality, Magic quality, and Crafted quality items. You can choose if the item is Ethereal, Superior, the no. of sockets on the item, the item type of the item (includes charms), commonly sought charm modifiers such as Skiller, Resists, MF, and Life (several more). You can also assign a 'class' option to your trade, if it is particularly beneficial to a single class, or has +skills to a certain classes skill tree or spell. A filter option exists if you consider your trade 'good' for a particular mercenary type.
    Full array of filter options available on trade creation
    Full array of filter options available on trade creation
  • When you click from the dropdown as-you-type results, it sets the icon and colour of the trade for you automatically. If the item doesn't correspond with something in the database, and is a ring, amulet, jewel, or charm, selecting the filter option will add this icon to your trade which a lot of people will like I think. Lastly - other factual connections (rarity, restrictions etc.) will cause filter options to be selected automatically - but things based on opinion/circumstance such as the new 'good for X class' will be down to the trader to add or not.
    Rare jewel with auto-icon in place
    Rare jewel with auto-icon in place
  • There are guidance hover tooltips for all of these trade creation options to explain their appropriate usage to new and existing traders, so hopefully we'll have less questions about how the system works as the answers are right there (for the 80% of the site's users on desktop anyway).
    Hover tooltip explaining the new Player Services filter
    Hover tooltip explaining the new Player Services filter
  • You can also now specify which 'tab' in your trade 'stash' this item is in. Your stash is a new (optional) part of your trade profile where you can display all of your items in a 'shop-like' layout and has more useful data on the trade for you, with custom-named tabs for organisational purposes. More on that in a bit. By default your trades created will go into stash slot 1.
    Stash tab choice on the trade creation page
    Stash tab choice on the trade creation page
  • You can now paste an image of your item to be traded directly into the browser window to upload it, rather than dragging the file in or having to click 'Upload'. This is handy for people using native snipping tools such as those on Windows which copy the cropped image to your clipboard - meaning you can just ctrl + v the image straight into the trade creation page. This also applies to the forums, database comments etc. An attachment that is copy pasted into a post is automatically 'placed' inline for you wherever your cursor was last. Note that this placement inline is required for your trade's attachments to show up in tooltips in some cases, so if you aren't pasting your screenshots in, remember to place them before you submit your trade attachments in trade hover tooltips not working after deploy - known issue.
    Successfully pasted attachment on trade creation
    Successfully pasted attachment on trade creation
  • Nota bene: The actual description of your trade is a much more valuable thing to spend time on now. This section of your trade's data can now be interrogated by the advanced keyword searching functions of the new market search. This means that adding attributes/modifiers, extra information that you'd want people to be able to search for, are all worth typing into that box now, because they become part of the search index of the site and will show up in results.
    A trade using the description box correctly by placing keywords about stats etc.
    A trade using the description box correctly by placing keywords about stats etc.

Trade Management
  • The Bump button has seen some improvements - it now tells you how long is left on the 6 hour cooldown, and is greyed out and disabled until that time. When you are able to bump, the button becomes clickable and will work as intended. Note that the cooldown begins not only when you actually bump a trade, but also if someone else posts an offer you won't be able to bump for another 6 hours (the latest offer will have bumped it for you).
    Bump button on cooldown just after activating
    Bump button on cooldown just after activating
  • In your stash page, you can see when each trade is due to expire, and how many hours are left on that trade's bump cooldown. Additionally, you can bump all of your trades in one go using the 'Bump all trades' button - handy for traders with a high number of listings up simultaneously. The bump all command takes 15 seconds to execute.
    Expiry and bump availability times seen from stash
    Expiry and bump availability times seen from stash
  • You can now completely delete or 'delist' a trade if you don't want to wait the 3 days for it to automatically expire. This is done by going to the trade and clicking the 'Delete Trade' button, next to the 'Mark as Sold' button. This will delete the trade and all offers/comments inside it. You can also, if you want to, delete all your active trades in one go from your stash page - again this takes 15 seconds to execute.
    Bump all and Delete all buttons seen from stash
    Bump all and Delete all buttons seen from stash
  • You can now edit a trade's filter options after listing it. This allows you to change any of the filter options you set for the trade originally, and also what the actual item being traded is itself. This doesn't work if a trade has been marked as sold of course. This will be helpful if you forgot to add a particular filter option as you were listing it or made mistakes in general. Please note that if you change the item itself that is being sold, the URL will not update. So if you have OCD, it is better to create a new trade listing for the item rather than editing an existing trade in this situation.
    Editing a trade after it was posted to change the item and/or filters
    Editing a trade after it was posted to change the item and/or filters
  • You now have a stash with 6 tabs in your profile that can be filled with active trades. This is your new central point for managing all of your own trades. Trades that have had a tab assigned on creation go into that stash tab. The default stash tab is 1, so all your migrated pre-v1.0 trades should be in there already, and if you don't select a tab during creation, it'll go into tab 1 automatically. Each trade in the stash tab being viewed will show some basic information about the trade such as its title, filters options applied, age of the trade (date since listed), number of views and offers, time until automatic expiry/deletion, time until next bump available, and finally an indicator for if there are any unread offers you haven't seen yet etc. making tracking your trades easier.
    Stash tabs and items on your profile
    Stash tabs and items on your profile
  • Hovering over each trade in the stash tab being viewed will show additional information (just like elsewhere) including the trade's description, and any attachments attachments in trade hover tooltips not working after deploy - known issue. Basic BBcode will be formatted in this tooltip, so if you want to add some extra flair with basic formatting like [b][/b], [u][/u], and [i][/i], you can do so - I haven't tested any others but I'm sure that they won't work lol.
    Trade's description appearing on hover - old-style inline text previews are also coming back again soon
    Trade's description appearing on hover - old-style inline text previews are also coming back again soon
  • The names of the tabs themselves can be changed to whatever you want in the profile settings - this could be the names of your Mule characters, different 'categories' of items on sale, splitting your WTB and WTS trades into separate tabs, using shop-like phrases, or whatever you find useful for organising how your active trades are displayed on your profile. This will make it easy to just share your profile link and people can then view all of your items on sale in a nice way.
    A customised stash of an active trader, with personalised tab names
    A customised stash of an active trader, with personalised tab names
  • Moving trades between tabs is done by visiting the trade itself, editing it and selecting the new tab you want it to go into from the advanced options array. Remember that only active trades are found in the stash tabs. If your stash has overflowed its 12 item limit, you can find your other items by going to your profile, looking for the 'Trader Stats' block near the bottom, and clicking the 'All' button to see all your active trades in one go. From there you can edit them and move them to different tabs (by editing each individual trade).
    If you can't find your trades because your stash tab is full, go to this part of your profile and click 'All' to see all your trades in one go
    If you can't find your trades because your stash tab is full, go to this part of your profile and click 'All' to see all your trades in one go
  • The trades in your stash are ordered by the last comment time, or last bump time, so that your actually 'active' trades are at the top of the list. The same logic has been applied to the actual item entry's page as well, so that it is ordered by last post time/bump time, with the newest/most active trades on the top of the list.
  • If you don't want to have the big trading stash on your profile page (say you don't really use the site for trading much), you have the option to hide it if you want. This setting is found in your Edit Profile area. Note that you can still see all of your active trades using the search engine - just go to your profile and then click the all active or all sold trades button.
    The option to hide your stash altogether is found in your Edit Profile section
    The option to hide your stash altogether is found in your Edit Profile section
  • The trust badge previously found in the trade activity block has been moved up to where your profile username is for clarity and presentation.
  • Your 'watched trades' or 'watching' area has seen a significant improvement - it has the standard trades list UI like everywhere else and includes read/unread, last poster, hover description tooltips and everything else you'd expect from the stash/filter area. It now also excludes your own trades - so you can use it exclusively for monitoring trades of other members that you are watching. This area is paginated to 30 trades at a time, allowing you to page backwards in time.
    New watching trades area excludes your own trades and is used for monitor what you want rather than what you have
    New watching trades area excludes your own trades and is used for monitor what you want rather than what you have
  • A note to everyone who was posting ubers/rushes/keys ads in the main discussion forum - all of these topics have been moved into the trade marketplace (so they'll appear in your stash tab 1 as trades). If you want you can edit them and add the 'Player Services' filter option to make them visible in the new market search engine. Please do not use the main discussion forums for any kind of trading/services-related topics from now on - I've added a reminder as well to deter this as much as possible.
    Player services topics in the new player services section of the 'Browse Trades' area
    Player services topics in the new player services section of the 'Browse Trades' area
  • Trades marked as 'player services' will never expire - this is because the uber/dclone walk topics are a little bit different in nature to the rest of the trades. The auto-prune function ignores these topics so they stay up forever or until deleted. You can still bump them to bring them to the top of their section. In the new browse trades section where there is a dedicated tab for viewing all ubers/rushes type topics.
    A typical player services topic. Buyers tend to leave reviews/recommendations. These types of trades never expire.
    A typical player services topic. Buyers tend to leave reviews/recommendations. These types of trades never expire.
  • Fixed a bug where trades that did not correspond directly with an item in the database (rares/magic/descriptive titles) were not showing on the trader's profile.
  • Fixed bug where page titles and navbar indicators for the Create trade/Edit trade variations were swapped.
  • Fixed title positioning bug for trades without an icon.

Trade Completion & Price History
  • Notifications for when a trade you are watching is marked as sold are now fixed and should display as normal. Watching a trade is automatic if you make an offer on it, if you are the original seller of the trade, or if you manually hit the 'Watch Trade' button on it. When the trade is marked as sold, if you were a watcher you will receive a notification like this reminding each other to give/receive trust.
    A notification generated when a trade you were watching is marked as sold
    A notification generated when a trade you were watching is marked as sold
  • You can now edit a trade after marking at sold (if you made a mistake). You are allowed to change what the item sold for/amounts, and your original post of course, but not who it sold to (this is to avoid abuse of the trust system). If you mistakenly sell to someone else, contact a moderator to have it changed. You will not be able to change any of the filter options that were set at the time, nor what the original trade item was however.
    Editing a trade after it has been sold to correct mistakes.
    Editing a trade after it has been sold to correct mistakes.
  • When choosing who to sell the trade to, rather than typing in their username, there is now an option to 'pick' from a pre-loaded list of people who have commented in your trade already. This will speed up the process 'selling' a trade for those traders whose item sold to someone using diablo2.io as the main transaction platform (if the buyer commented in the thread with an offer at any time). This also has the beneficial effect of reducing usage of the user live search, which although now optimised greatly, is still a heavy performance consumer.
    Picking a test user from the suggested list instead of typing your buyer's username
    Picking a test user from the suggested list instead of typing your buyer's username
  • There is now a limit of 3 characters on the soldforX_amount fields when marking a trade as Sold. This was to stop potential vandalising of trades with impossible values for items sold. The layout of this section has changed somewhat as well.
  • If no soldforX_amount has been typed in by the user yet, the amount is automatically set to 1 when an item is selected from the soldforX field. This is for neatness and will prompt users to correct the value and use the field more in general. If you have already entered a value, the number won't auto-set to 1.
    Using amounts for marking sold is auto'd to 1 if no value was inputted manually
    Using amounts for marking sold is auto'd to 1 if no value was inputted manually
  • Trades marked as sold but without a user sold to or an item sold for (which haven't been auto-deleted yet by the cron job) now include 'N/A' indicators on the trade itself, in trade search, and in price-check history (within 3 days, after that empty sales are purged). This is so that people don't get confused about if an entry exists or not for the items sold for/member sold to.
    Empty soldfor trades are discarded and not stored as price history after expiring
    Empty soldfor trades are discarded and not stored as price history after expiring
  • It is now impossible to sell a trade to yourself. Users trying to do this will not be able to mark the trade as sold - html 5 form validation with a Pattern that matches your username will not let you submit the form to the server until that input is not your own username.
    Can't sell to yourself anymore
    Can't sell to yourself anymore
  • The price check works a bit differently and has a new UI. You can now view prices in a number of ways. You can use the native search engine to look at trade sales that occurred within the last 3 days, which means you can also apply normal search filters to these kinds of results (including all your defaults). This is useful for the most up-to-date prices surfacing. Anything older than three days is archived as price history (more on how this works backend in the Performance section) - the results of which are viewable on their own page.
    Search results for Stone of Jordan, 'Sold' filter active
    Search results for Stone of Jordan, 'Sold' filter active
  • The new price history UI gives you a lot more space and lets you view more sales data (all the way back to the start of the market two months ago). This will let you take make more informed price decisions as the whole site's history is now viewable. The data here is cached for 3 days, so there is an assumed time lag of 3 days when viewing this historical data.
    Looking at Titan's Revenge using the price checker tool
    Looking at Titan's Revenge using the price checker tool
  • Even if your keyword search for historical price data doesn't match any database items, it will still try to search the sales history for the keywords you entered. This means that you can check the prices of popular non-db items such as magic or rare charms etc. - I would recommend that charms are named the exact same as they are in-game, as is advised on the trade creation page.
  • You can carry on price checking as the search UI remains at the footer of every page request in this section. There is an option to search for results as 'recently solds' which will, using the native engine, show results for any sales of the item in the last three days.
    Price check search at footer of price check results
    Price check search at footer of price check results
  • At the bottom of any trade, there is an additional block providing handy links to check the item being viewed's price history or recent sales data. These links also exist on the item's actual db entry page itself. These links make bouncing around from section to section a lot faster now.
    Price check an item directly from the trade listing
    Price check an item directly from the trade listing
  • I ran an SQL command to permanently delete any trades marked as sold without any data on what they sold for - as I know that the accepted workaround for the lack of a deletion option before was to mark as sold with no data. Before any sales older than 3 days are converted into price history, this check is run, so that 'empty' trades don't clog up the system and make browsing results irritating.
    This removed about 40k of the 100k or so trades migrated to v1.0 to concentrate the pool of price data available
    This removed about 40k of the 100k or so trades migrated to v1.0 to concentrate the pool of price data available
  • Added some guidance text to the placeholder textbox when creating a new appraisal. If you run a price check and return no results, the 'make appraisal' link provided to you in the error message will take you the create new appraisal page pre-populated with your price search phrase/item name.
    Pre-populated subject for appraisal request
    Pre-populated subject for appraisal request
  • Fixed bug where trades which were marked as sold for an item not in the DB were showing this entry as empty on the sold for indicator in the price check and the trades themselves. They now show what the item sold for even if it doesn't connect with a DB entry - for example +3 Paladin Skiller will now show whereas before it would not.
  • Fixed bug with price history checker where it would return titles from price check topics having the same name as the item sold for.
  • Fixed bug in price checker tool where non-db corresponding soldfor_x values would appear as blanks. Now they show the reported item/concept/custom soldfor value the user typed in, regardless of whether it corresponds with a database entry.
  • Fixed bug in price check subforum where forum levels were cut off.
  • Fixed bug where price check topics were showing up in the discussion forum topic live search (top right quick search).
  • Fixed bug where sometimes soldfor_x inputs would pull data from the price check subforum unintentionally.
  • Fixed bug where some item types related to the DB weren't being coloured correctly in the 'Sold' green bar on trades marked as sold.
  • Fixed bug where the second input in a trade marked sold was being repeated and breaking layout.
  • Fixed issue where users with no avatar did not show the default no avatar in results when marking them as the buyer in a trade sale.
  • Fixed issue where debounce for the user dropdown as-you-type search when marking a member as the trade buyer was set too low and resulted in too many requests.
  • Fixed issue where debounce for the item as-you-type search when marking what a trade sold for was set too low and resulted in too many requests.
  • Fixed bug/restriction on item dropdown search when marking a trade as sold, where users couldn't select low-character items like
    Lo
    and
    Io
    due to them falling just outside the query limit. Reordered and they show now.

Trade Discovery
  • The way that searching for trades has changed significantly. I have modified phpBB's native fulltext search engine to handle deep market searching and filtering. The search options available to you are very powerful and there are plenty of them, so it will take a while for everyone to get used to the new system and find out the best ways to use it. I personally haven't had a lot of time to test it out with the limited data I have here on my dev environment, so quite interested to see what it will be like on live.
  • The search engine 'fulltext' indexes every word on the whole marketplace - so that's every word in every title, description, comment, post, offer etc. The word indices are accessed and stored by phpBB in a clever way that makes is much more performant than my own (awful) ajax solution that was in place before. Because all words are indexed by the engine, it makes keyword searching possible. You can keyword search within trade's titles, or in the posts' contents themselves as well, and any inline results will be highlighted (if viewing results as posts).
  • You can do a market 'quick search' for any item or keyword(s) from the /trade home page or the 'find trades' page. A quick search will ignore any custom configuration or trade filters and just do a pure keyword search. I anticipate that this will be one of the more popular methods of finding item trades - it will always return more results than a filtered trade, and is much quicker than configuring a full search.
  • On every item's database entry page, it now shows only the last 10 active trades for the item, but provides a button which when clicked will take you to the full, unfiltered search results for that item on the market. This will be really handy for popular items like
    The Oculus
    and
    Monarch
    etc. which have at times had over 100 simultaneous listings active. There is also a button see recent sales of the item, or to browse it's historical price data.
  • However, if you want to do a full search of the marketplace, there are lots of extra options you can set to compliment your search. The first category of options are the 'Search configuration options' - these are the small brown buttons - they allow you to do things like change the matching argument of the search, where the search is directed (titles, offers, descriptions), which layout it will use to display results, and what sorting/limiting options you want to add such as date ranges or character limits.
  • You can also search the entire trade catalogue of any user with the 'search by trader' function. There is a shortcut to this on every person's profile - results can be viewed as active or sold trades. This is an alternative way of browsing your own or others' trades that is separate from the new stash stuff.
  • The keyword system has some advanced features that let you build custom search queries with arguments like wildcards, must/must not contain, match any word in phrase etc. I have made a small summary with some examples so that you can start playing around with the code. If you find something cool or want to help test things, then visit the advanced keyword expressions topic.
  • You can also apply 'trade filters' and advanced trade filters to your search to narrow down results even further. This allows you to filter by platform, wtb/wts status, region, active/sold, and a whole bunch of other things that mirror the new trade creation function and it's filters.
  • When the search page loads, it will always pre-select your default profile filters - this means that if the marketplace is moving quickly you can always be keeping your searches within the confines of your default settings. You can reset all the trade filters to the base defaults if you don't want to search with your default filters active (only thing selected will be the Resurrected option). Note that a quick search does the same thing and ignores all filters/settings to show more results.
  • When all of these options come together and are used correctly (I have written extensive guidance in the hover tooltips in this area) - they can be quite powerful. This will let you construct searches for magic grand charms looking for 'all resists' or 'better chance of finding magic items' attributes, or to search for only 5 socketed Scourges, or really anything you want. The logic of these filtering options is AND (keyword phrase is '
    Tyrael's Might
    ', shows trades for xbox and is ladder and is hardcore etc.)
  • All search results are available through pagination. Unlike before, when you search for an item now it will show you all listings for it, until the number of results is exhausted - you can hit one search and then browse until there aren't any results left. This is much better than the rat-race that was happening before where everyone tried to stay in the search window which had limited space.
  • To stop automated abuse of the new search system there is a flood limit in place. You can only search once every 10 seconds as a member, and once every 20 seconds as guest.
  • When searching for or listing a new trade, the live search will recognise when you have inputted a magical or non-database corresponding amulet, ring, jewel, or charm, and an advice block appears - it describes the correct way to 'name' the search or the correct way to search for it. This will hopefully bring some uniformity to this side of the market.
  • After any successful query, the results are cached for 5 minutes and your search is saved as a 'recent' keyword which you can access again from the search panel the next time you visit.
  • Searching from the home page of /trade is just a quick search, but if you decide you want to long-search the item/keywords, just click the 'advanced search' button. Whatever you had in the search box already will be transferred over for you automatically.
  • Results or 'lists' of trades now have a much more uniform UI across the site - whether that is on the /trade page, in your new trade stash, in price check results, your watched trades, or whether filtering/searching for trades using the new advanced tool. This new UI shows much more relevant information about each trade and is more consistent and 'table-like' to make scanning through them easier. Having repeated this layout across the site (with small variations) this will hopefully lead to more efficient trade discovery as people get familiar with the same structure on different parts of the site.
  • The /trade 'home page' of the marketplace is now more of a landing page - you can see the 10 latest trades posted (more a decoration than anything and to show the default trade view UI), but it's more focused on directing people to the correct part of the site for their trading needs as opposed to being used for browsing (which is what the new Search section is for). From this home page you can run a quick search immediately, or you can take your keywords with you to the advanced search. There are also some useful shortcut buttons to things like your stash, settings etc.
  • Besides the advanced search, I have also put together a 'Browse Trades' section where you guys can see particular 'corners' of the market - and browse all active trades for that tab (again, paginated all the way back to the oldest trades).
  • At the moment browsing is very basic and has limited option. It has different sections of interest - all player services, all high rune trades, socketed base item trades, all xbox trades, all hardcore trades etc. - basically things I thought might be useful for people who just want to 'scan' and 'look around' instead of doing a complex search. I will be integrating filtering in this section in v1.1 so for now consider it sort of a beta experiment and a handy place to just look at the trades going by (who knows, you might nab a bargain :P).
  • What other sections do you guys want to see for the browse trades area? Like are there any things you'd love to be able to see all in one go (like the examples already up)? The way I've coded this is super cool and I can add on new sections very easily so hit me up with your suggestions and those can be added on quite quickly.

Trade Miscellaneous
  • 'Trade Jacking' is where a member searches for others' listings and offers their own item for sale inside someone else's trades. This breaks the rules but no amount of reporting or moderation can deal with it fully. Squelching is a form of self-moderation now available to you to deal with this problem yourself - go to Account Settings > Squelch a Trader. Squelching someone means that their comments will not be visible at all on your trades for anyone except the squelched trader. The person squelched will not know that they have been squelched, so if they continue to attempt to jack your trades they will still see their own comments but will be wasting their time as no-one else can see them.
  • Note that squelch does not affect other forums or areas on the site - only the trading marketplace. A trader you have squelched is still able to send you private messages/interact with you and any others inside the trade to some degree, so bear in mind that this is not a full 'block 'tool - it is specific to trade jacking by comment. A squelched trader that comments on your trade will still reset its expiry timer and bump it like any normal comment would, the only difference is its invisibility to others. You cannot squelch admins or mods.
  • I anticipate that the number of trade jackings and other things like this will reduce anyway due to the new way the market works (where discovering trades is much easier - this time around people won't be fighting over small windows of visibility where their trades could sometimes disappear after only 1-2 hours of activity).
  • The trade stats page has been updated. It now shows 50 results at a time, and has had two new blocks added - most active traders and most active sellers. The data for this page refreshes once per day, and the results are cached for that time as well. So you can now see 50 results for items sold as currency, items sold by quantity, most trusted traders, most active traders, and most active sellers.
  • There are now mini Blizzard/Discord contact copy buttons under each commenter's trade in the view trade page. This will be useful for quickly contacting people who have made offers and saves you a few clicks.
  • There is now an additional box at the bottom of every trade with a copy-pasteable 'message' with a link to the trade's URL etc. pre-parsed for you. You just click it, and that's it, copied. This will be useful for people making first contact with each other outside of d2io. There are two versions - one shown to the owner of the trade (I have X for sale at https...) and another shown to everyone else (hey I saw your trade for X at https... is this still available?).
  • Added some warning blocks to Hardcore, Ladder, Legacy, and Non-Expansion trades to make it absolutely certain that the person viewing the trade is aware of these uncommon restrictions. They remain after the trade was sold to add more depth of information to the archived sale and change to 'was' rather than 'is' X type of trade.
  • There is also an additional string box for any other filters applied (Good for Sorceress etc.) - these are displayed as icons with hover helper tooltips rather than full warning blocks (design choice so as not to overcrowd the page).
  • You can now see how many views your trade has sitewide, and in the trade itself (there was no counter here before). It's in the top right with comment counter. This also extends to forum discussion topics and in other areas where applicable.
  • Added an expiry warning block to the view trade page template so people can see how long it will be until their trade auto-deletes itself. This timer is always reset by either a bump, or an offer posted by someone else.
  • On item entries themselves in the database section, I've curtailed the 'On the trade market' area - it now only shows the last 10 active trades, and then has buttons to take you to full listings for active trades, sold trades, and offers the original quick-list and quick-price check buttons too. It's now more clearly laid out (you can see timings easier), and hover tooltips for the trade's desc/screenshot are there too.
  • Fixed bug where message/bnet/discord buttons on trade pages weren't rounding properly as per conditions.
  • Changed wording of 'reply/post' with 'offer' in various places on the marketplace.
  • Added a notice to users mistakenly trying to use the contact admin form to make trade offers to me (I was getting at least 5 a day).
  • Incrementing your post count (and therefore forum level) now does not occur when posting in the trade section. This is so that your forum level accurately represents your actual activity on the forum, as opposed to using just the trade section alone. Those with large post counts due to trading will see it cut down by a resynchronisation I have run, and from that point onwards any further posts in the trade section will not increase your forum level. Note that your forum level is incremented by posting in the forums or commenting in the database.
  • Added small two-letter acronyms to the regions where they often spawn - NA for North America, EU for Europe, and AS for Asia. This was just to make them readable as it wasn't at all obvious seeing as the icons are so tiny. This is visible across the standard trade UI.
  • I have added in helper hover tooltips to all of the buttons on the 'view trade' type pages themselves, to make it clearer to new and existing users what each function does (make offer/watch/report/message/bnet/discord) and any restrictions or details involved.
  • Signatures are now visible again in Trades and in the Price Check subforum as well.
  • On the profile page/stash, you'll see a small block called 'Market Stats' - you'll find some useful links here that allow you to view all of the member's trades outside of the stash (all together, paginated), or all of their recent sales (in the same manner). All-time historical data is coming next patch which is why its greyed out (ran out of time).
  • All trades that were on the site prior to v1.0 have been modified by the migration script to match the new v1.0 format - this has left them apparently unchanged but backend they've been transformed into a more performant structure. All of them were marked as 'WTS' (seeing as this was the default assumed trading option before v1.0), and ones which had no connection to a database item have had the filter option for magic rarity applied. Otherwise I didn't change or add anything additional to them.
  • The migration may have missed some Edge cases, or done things wrong in others, because I couldn't spend too long on making it a really sophisticated script. Done what was realistic in the time allowed, so please do not contact me regarding why your trades 'look weird' or whatever - just edit them and add new v1.0 stuff if you want, or mass delete them/let them expire and make fresh v1.0 trades (recommended). I could have just been lazy and deleted all 30,000 active trades on the site to make a 'fresh start' but I knew this would aggravate a lot of people so I've taken the time to the migrate existing trades as best as I could so you guys don't have to.

Database
  • Sitewide inline autolinks with icons have been re-enabled thanks to advances in cacheing strategy. You will see them when hovering over links to database entries, users, and discussion topics in some areas. Autolinks spawn automatically in posts, descriptions, trades etc. when a typed word matches the title of a database item directly. Examples:
    Summon Spirit Wolf
    ,
    Volcano
    ,
    Flying Scimitar
    ,
    Crowbill
    ,
    Recipe: Flawless Topaz
    ,
    Arcanna's Deathwand
    ,
    Que-Hegan's Wisdom
    etc.
  • For those new to this system, you can use [nolink][/nolink] around a word you don't want a link to be auto-generated for. For example I type Silks of the Victor it produces
    Silks of the Victor
    (an autolink is generated), or I can wrap that like this [nolink]Silks of the Victor[/nolink] and it 'ignores' autolink generation and produces Silks of the Victor.
  • Nota bene that this BBcode can only be wrapped around one word at a time, and cannot wrap around other BBcode - you cannot at the moment for example 'unlink' entire paragraphs. This autolinking feature is now embedded in the phpBB application script as opposed to being called by HTTP request, and is fully cached.
  • As you will have also noticed, sitewide item/database entry tooltips have been re-enabled. So when you hover across any link to a database item, you will be served with a tooltip showing that page's 'pedigree' information. Hover over
    Hellfire Torch
    or
    Potion of Life
    for example. There is a short delay or debounce of 1000ms before any actual request is sent, which stops the issue where people scrolling through lists make hundreds of requests to the server inadvertently just by brushing a tooltip link. This has also reduced occurrences of the 'switching' bug where SQL requests would not catch up with the GUI's actions and you'd end up with bugged tooltips until page refresh.
  • On the mobile side of things, tooltips still show instantly on tap with no 1000ms delay, but have been fixed so that they aren't triggered by scrolling or touchstart events. They'll now only open up after a direct tap on them. Tooltips for trades are currently disabled on mobile as I investigate a live-only bug.
  • Note also that these tooltips are cached at both ends - as soon as anyone opens a tooltip for any item, the sql response is cached on the server side in phpBB's file cache for 3 months - meaning that the next time anyone opens that tooltip, the query won't even have to be run (just retrieved from file cache). Furthermore, the XML response given by that URL is also cached by most modern browsers - this means that if you hover back over a tooltip you've seen before, it won't even have to access phpBB's file cache, your browser will have the tooltip contents ready. The longer you browse the site therefore the quicker the tooltips become for everyone and the quicker they become for you too.
  • Fixed issue with items like
    Tarnhelm
    ,
    Skullder's Ire
    , Bul-Kathos' Children etc. where wording of + all skills was non-standard and resulted in these items not showing in filters for that modifier.
  • Fixed issue where Infinity wouldn't appear in filters for - X to Enemy Lightning Resistances due to non-standard stat entry.
  • Fixed issue where Rain wouldn't appear in filters for +To All Druid skill levels due to non-standard stat entry.
  • Fixed stat error on
    Suwayyah
    - now has correct number for max sockets (3).
  • Fixed bug where database comments having 5 or more likes wouldn't be coloured green as originally intended. Working now.
  • Fixed a bug when viewing item entries where the edit description and revisions button weren't rounding correctly if there was more than one comment on the entry.
  • Fixed bug where data contributor records for those who were also donators were not being coloured correctly.
  • Fixed off-centered white item-type labels on Rune/Gem type item entry pages.
  • Fixed the issue where sidebar blocks were overlaying on top of the grid when visiting a pre-filtered link to a database category, or resizing window with filters active. Now the sidebar elements do not show until the actual sidebar block itself is visible on these types of pages. Downside is sidebar elements won't be visible on small resolution devices at all when visiting these pre-filtered pages.
  • Removed the word 'Avoid' from the autolinks table as its unintended usage as an autolink was higher than its intended usage as a normal verb with no autolinking.
  • Made a minor adjustment to
    Swarm
    's graphic and icon set to make it more distinguishable against dark backgrounds.
  • Removed Strength and Dexterity requirements from the entry for
    Khalim's Will
    .
  • Singled up the stats for
    Minion of Destruction
    (was three aux variations but all were identical).
  • Fixed
    Bishibosh
    lacking the fire immunity property in Nightmare stats.
  • The rune
    Lo
    should now autolink correctly.

General Changes
  • I am experimenting with a push notification solution that may or may not work - I have not been able to test or configure on my local environment yet due to some restrictions. So yeah, basically no idea if this works or not, but you'll see the option to enable browser 'push' notifications now in your notification dropdown.
  • So long have been logged in once in the last 24 hours, you will receive 'as-they-come-in' push notifications from your browser or device. This will (if it works as expected) help you respond to trades quicker as you won't have to refresh the browser window as often to stay on top trade activity.
  • Anyways, let me know if they're working for you - there are some instructions on how to enable them fully - please read these carefully before asking for help. I think that only Chrome and Firefox are supported at this time, but we'll see.
  • Global navigation now has some icons and the site's logo in the top left next to D2's - upwards from a breakpoint of 1000-ish px viewport width.
  • Added an explanation block to the Outbox page as a lot of people were confused about its purpose/significance in private messages. For the record, it's messages you have sent, that haven't been read by the recipient yet.
  • Added a few links back to the patch notes and other useful site-related resource pages to the headers of the feedback, bug reports, and contributions forums to make it clearer what is expected of you before you decide to post in a report or suggestion. The bug report button in the sidebar now links to the subforum itself rather than the direct posting page. I think this is why so many duplicate bug reports were being submitted pre v1.0 thanks enragednewb(?) I think who pointed this out.
  • Another thing confusing people was where to search for members or forum topics. I've added an additional 'helper' link to the top-right breadcrumb navigation area which will guide people towards the top-right instant search and open the correct search pane for you depending on your current location.
  • Updated the About page to summarise the site's main three features - hadn't been looked at in a while and had some old information there.
  • Updated the opengraph/twitter card default image. Reconfigured so that meta image chosen prefers attachments over inline IMG tags. I think this will lead to some cool rich search results for database entries.
  • The similar topics block on every trade or db entry are now autolinked/coloured/tooltipped as they were before. I spliced in the previously external function to make the autolinking run 'natively' with cacheing etc.
  • Forum topics with more than 20 posts now have pagination that is visible/usable both on the topic itself and in the forum topic list view. This reduces requests for very long topics server-side and improves loading times for you as there is less DOM to draw. There are also additional tooltips indicating what the read/unread indicators mean.
  • The default font has been changed to Ubuntu OpenSans medium weight and I have discontinued the 'FormalBT' in-game font. This was a hard decision to make because I loved the Formal font so much, but I had to bow to overwhelming feedback that a default sans-serif font is more readable and pleasant. I thought about keeping it as a font switch option but I don't want to maintain CSS for both font options long term. I actually really like the new font personally. You'll see Formal used in some parts of the site for decorative purposes.
  • Index page - link blocks on the home page are now shown as a left text-aligned, centred block by popular request. Each 'section' of the site now has an icon that corresponds with the global navigation bar at the top. In addition the diablo2.io headline is now linked to the homepage for easy refreshing.
  • Recipients are now shown in the list of private messages (under the PM subject) so you can see anyone else involved in the private message thread.
  • User hover tooltips now show you the trust level of that person underneath their title.
  • You now have a few more options in your control panel in the 'Account Prefs' area. You can unsubscribe from site update emails, prohibit all other members from private messaging you, change your timezone, turn off default signature attachment in your posts, and lastly you can set 'notify me of replies in my own forum topics' to be turned on by default.
  • Full favicon library completed - you'll now see cool, full-resolution icons when you favourite the site or add it to your mobile's home screen, windows task bar etc. etc. - it even has an SVG icon just for the MacBook's touch bar (for shits and giggles). I'm hoping it shows up in the new push notifications too but haven't tested this yet.
  • Tooltips over discussion topics/bug reports/feedback/contributions/price requests type topics now exclude the information about poster, views, comments, post time etc. to reduce the number of uncache-able queries. I have also made the preview 200 characters long (was 100 before) - so you can now see more actual useful information inside this tooltip.
  • Added adblocker detection - if you're using an adblocker, you will get a small prompt in the bottom left explaining the bugs that adblockers cause on the site - this window can be closed and will not appear again for 30 minutes. This is the most discreet way I could do this whilst still having an effect - I could have been a tyrant about this and fully denied website access or done really annoying things to adblocker users (which would be very difficult to dismiss with web inspector pseudo code). Instead I have chosen a solution that I believe is fair and will get most people turning adblocker off without the prompts being too irritating. If you are a donator, it will not show at all even if you have an adblocker activated, but can I remind all users that even if you are eligible to not see the prompt you will continue to encounter bugs caused by adblocker extensions. These kinds of plugins are very powerful but they often overstep their mark and break standard web design conventions. In turn, this causes sequence breaking bugs (e.g. not being able to enter text into any input field, anywhere on the domain - meaning no registration, no logging in, no posting, lol). I can't fix these issues, so I strongly recommend you do not have an adblocker active whilst browsing the site.
  • Changed the layout of the 'Team' page to make it more efficient on space and allow for a better overview of each group. I've also added a blurb to each block so that people know what these groups do and what elevated privileges they have, if any.
  • Tooltips over discussion topics et cetera will now render images made with the [img][/img] tag inside the post itself. Unsure at the moment about attachments due to testing limitations on dev environment, but should be working if the attachment is placed inline and is close enough to the top of the post attachments in trade hover tooltips not working after deploy - known issue.
  • Added a green 'call to action' button theme for primary inputs - many complained it was hard to find the 'finish' button on key pages.
  • Added a strikethrough BBcode [s]strikethrough[/s] to the editing suite.
  • Moderators can now mark reports as 'being taken care of' as they come in - as requested by the guys so that they don't step on each other's toes in busy periods.
  • Updated the trading rules sticky with a link back to these patch notes as guidance on how to use the new trade system. The mods have also been updating this sticky with new rules as their moderation policy for the market has taken shape over the last month and a bit.
  • Number of entries on moderator control panel should now be 100 before pagination kicks in, to make it easier for the mods to deal with soft deletion etc.
  • Added a mini page explaining what the d2io discord server is for. Please do not use the server for trading, asking for rushes etc. - that is all done here on the website. This is a small, one channel server for fun chat and diablo 2 related modding/design/webdev/other resurrected-related things. A polite reminder also to refrain from using the Discord to send me bug reports - these are far better tracked and organised here on the site.
  • Guests can no longer post in any of the forums with the exception of the site feedback/bug reports areas. This follows many reports of guests commenting in trades without providing Bnet tags, not responding, and generally just being a pain to deal with.
  • Added Bnet and Discord details as optional fields at the end of the registration form (they weren't there before). Also removed the class selection from the registration page to avoid confusion about why the field might be required.
  • I have disabled the re-use of email addresses - it wasn't necessary before but now is. With the registration bug (hopefully) fully fixed, and the certainty that the account linking feature has been retired, this won't have any detrimental effect and will stop people from easily re-registering accounts under new usernames.
  • From now on, all new user registration usernames must be ASCII (not international unicode) - this is to avoid conflicts later on when usernames are used in string matches etc. Like, right now you can't give trust to someone with international unicode characters in their username - names like überlord or whatever. Any accounts made so far should still have full access to the site and all, just new account usernames won't allow non-ASCII characters.
  • I have discontinued public use of the 'linked accounts' feature as only a handful of people were using it besides myself and it was a very high performance consumer. I still use it occasionally for testing purposes but consider this feature discontinued from now on.
  • Ads hidden on a number of pages including donation, login, registration, info/confirmation type interim pages etc.
  • In the bug reports/contribs/feedback subforums, there is now a little green indicator in the top-right signifying how many of the topics I have marked as fixed/fulfilled/processed.
  • The keyboard shortcut ctrl+enter now submits quick replies instead of taking you to the preview/editor stuff. Yay :) It is also the shortcut to submit a quick market search. Very handy and have been enjoying using it on dev.
  • On any members profile, their post count and topic count now link to a search of all that user's topics or posts (all-time, paginated). Trades are excluded from the topic user search, but included for the post user search. It's really handy being able to go back through a history of all your posts and topics in one place. Personally my favourite feature of this patch.

General Fixes
  • Fixed overflowing usernames on Chrome/FF on the forum-type pages, now ellipsis overflow works properly for people with really long usernames and @UnrivaledPiercer won't be shunned :P
  • Fixed layout bug where margin disappeared between mark read topics and pagination for registered users and guests.
  • Removed duplicate
    Ber
    rune in topic icons array
  • Pagination fixed for moderator control panel when merging topics, previously would only show the last 30 topics for merging.
  • Fixed moderator 'move topic' link in the subheader of all topics - now takes you to a fully templated interim page as opposed to by ajax request.
  • There was an issue for some time when the user registration script would time out, leading people to try and re-register and being faced with the infamous 'username already in use' error message. This caused about 2000 '
    Zombie
    ' accounts to be created. I have purged these from the database - the query was very tight and shouldn't have affected anyone active, but if it has then contact me as I have backups of those rows and can restore you if you got deleted.
  • This 'bug' with registration actually turned out to be 2 bugs compounding each other: one was 524 errors as scripts timed out in high traffic periods, another was a misconfig of the html 5 form validation on the page. It was mainly the slowness of the overall site at the time causing that script to hang for a long time. It should be faster now, hard to emulate on dev so only way to find out is going live with it like this.
  • Fixed bug where users without an avatar or those using the default avatar could not reach their own profiles by clicking the avatar image in the top right.
  • Rewrote /app.php/donate url to /donate
  • Fixed bug on registration and edit profile pages where Linux was not labelled with text like the others.
  • Fixed issue on password reset page where one of the inputs was missing CSS classes completely.
  • Fixed bug on the contact admin page where guests (only non-registered users) were being asked to fill in a 'name' field that didn't exist.
  • Fixed a number of broken redirect URL parameters when logging in from certain pages. No route found etc. messages should have dropped significantly. The retirement of linked accounts has helped with this somewhat as well.
  • Fixed issue where external link indicator next to 'user bar signature' images would break layout.
  • Fixed squished graphic for current avatar when choosing an avatar in the user control panel.
  • Fixed issue where DB entries were beginning to show up in the popular topics block on the home page.
  • Fixed issue where sometimes the sticky sidebar ad would not snap properly to the sidebar column of the page.
  • Fixed random gold text on the main notifications view page (not in the dropdown but actually in the user control panel).
  • Fixed plenty small layout/positioning/other CSS related bugs - mainly due to browser rendering differences and conflicts with old code. They'd be too numerous to log individually. Testing and debugging took place for Google Lighthouse user agent Mobile Device (Chrome Webtools), iPhone 11 running iOS Safari, various responsive breakpoints between common mobile/tablet/desktop resolutions, simulated retina-screen devices running Chrome Lighthouse UA, Chrome itself, Mac OS X Safari, and lastly, Firefox. I can't promise I fixed everything here, but I did have a really good go at doing as many as possible.

Performance
  • Much of the site's logic for the db, trade, forums, and other custom query functionality was rewritten/optimised to take advantage of more performant methods such as JOIN instead of nested queries, and leverages more of phpBB's custom functions where possible which are faster and more secure.
  • Where possible, I have replaced string comparisons with integer comparisons to speed up some of the site's routine-use queries. This meant changes to the database structure in many areas replacing varchar(255) columns with int(X) columns, and of course changing the controller(s) as well to handle them.
  • Made a full structure optimisation sweep of the phpbb_topics table prior to any migrations, ensuring that field types are compacted down to the maximum char length necessary to save on space. Many columns were converted to integer where they were TEXT before, and critical textual columns used in the most common queries were changed from TINYTEXT/TEXT types to VARCHAR(x) values to make the data inlined in the row as opposed to being fetched outside of the table with overhead.
  • The overall number of queries (and elimination of almost all nested queries) required for the the trade market's continuing functionality has been reduced significantly through a redesign of how the CRUD (create read update delete) logic works back end. This basically meant having to rewrite almost everything that powers the trading system, with the exception of the trade pages themselves which have been iterated on.
  • Parts of the database model have been revised, splitting some rows and columns from the main 'topics' table into separate tables, making some processes less intensive and reducing row/column count in this already congested table. More balkanisation of tables like this can happen in future patches as I can adapt the scripts I wrote for this patch for future table migrations. This allowed me to take a lot of 'fluff' out of the most used table in the database, which should help speed.
  • The way in which sales history is managed backend is much more condensed and performant and does not congest the active trades table like before. Sales trades are visible in full (with all comments, restrictions etc. that were in place) for 3 days after being marked sold, after which only the actual sales data is saved in a separate table (filter options of the sale are saved in this, yes).
  • This new way of archiving sales history has meant that I was able to drop 100,000+ rows (100,000 being the number of sold trades on the site so far) from the phpbb_topics table making it a lot snappier. This has reduced the average row count in this table from 140,000 to around 40,000. This new method also ensures that future sales data can continue to be stored without directly affecting the performance of live trades on the marketplace as the table is not permitted to grow by the 3 day auto pruning function.
  • Removed a number of unneeded SQL queries from the top-right live search that were bogging it down somewhat - it was being used far more often than one would think. There have been many other such cut-backs and reconsiderations made throughout the existing (pre 1.0) backend scripts to try to improve speed where possible.
  • The phpbb_topics table type was changed from MyISAM to InnoDB enabling row locking (as opposed to table locking) and transactions (more 'reliable' writing and reading to the database).
  • MySQL query cacheing buffer size increased, various configuration tweaks to take advantage of the dedicated server's resources. PHP Opcache/Xcache reconfigured.
  • phpBB cacheing extended to external PHP scripts managing tooltips, autolinks, and live searches where no cacheing existed before. I had a dozen or so custom scripts running externally from phpBB which meant that I couldn't cache the results - now they are wrapped and can use both cacheing and phpBB variables from the user's session data etc. It took ages to rewrite these in phpBB's syntax but was worth it in the end. This also resulted in some hardening - some light tasks now no longer rely on URL parameters and instead can take variables from the session data itself.
  • Cloudflare strict cacheing page rules added for the heaviest landing pages by number of HTTP requests.
  • CSS & JS now fully served minified with gzip compression. Additional CSS & JS outside of my own UI collection has been consolidated into fewer files to reduce number of initial requests.
  • Many of the scripts hit by the optimisations were complete top-to-bottom rewrites - so during this time I was able to make the code in some scripts/areas much more legible - commenting consistently so that future maintenance and dev is faster. The frontend is a different story but not as critical for this particular patch.
  • Continued detection of abusive/automated traffic with CloudFlare's tools and own logging to reduce the impact of bots on performance.
  • Various other small frontend tweaks as advised by Lighthouse/Gmetrix reports (unrelated to server performance and only considering application layer itself). Frontend was not looked at properly in this patch tbh - much more room for optimisation here, along with of course more backend stuff, next patch (1.1).
  • Current server specs: Intel Xeon 12-Core 24-Thread 16 GB RAM 240 GB SSD. This is the highest spec dedicated server that Dreamhost currently offer and is the same machine the site has been running on for about 4 weeks now (after two very hurried upgrades :lol:).
  • I really hope that you guys can feel a speed increase after this patch. This was the hardest and most time consuming part of the upgrade - I had to tear everything down, learn a whole bunch of new things, and then build it all back up again. With no way of simulating the kind of traffic the site routinely experiences, I have yet to see myself how the site will behave in the wild; I'm certain though that the changes I've made will have a positive impact, and that I've laid down some good groundwork for future optimisation. Note that there is plenty more that can still be done.
  • I have made a list of 'data refresh times' for you all to reference - so that you can see how often data is cached for before it gets 'refreshed' by the next visit. This type of cacheing allows the site to 'save' a lot of common queries from being executed needlessly, with the downside being that you won't see fresh data instantly (it will depend on the cache time). I have thought carefully about each refresh time to balance your needs with the server's needs. You can find a list of these periods in the spoiler below:
    Data refresh time description | Cached time m/d/h/m/s | (Timestamp in seconds)
    • Time for your new trades to begin showing up in the advanced search (total cache time for search results/keyword index) - cached for 5 minutes (300)
    • Changing the description or attached screenshots of a trade (time to show up in results etc.) - cached for 5 minutes (300)
    • Changing your default profile settings (platform, region, hardcore etc.) and appearance of bnet/discord IDs on trades sitewide - cached for 5 minutes (300)
    • Contents of your stash tabs and any connected details thereof - cached for 15 seconds to reduce queries for people switching between tabs on one visit (15)
    • Your current trust level as seen on your profile/stash page and trades - cached for 1 minute (60)
    • Statistics on your profile for things such as no. likes, no. of descriptions, no. comments etc. - cached for 1 day (86400)
    • Total number of active and sold trades on the market query on /trade - cached for 6 hours (21600)
    • Number of likes on database entries as seen in category areas - cached for 1 week (604800)
    • Stats for database entries as seen in different categories - cached for 3 months where static (7890000)
    • Stats for the database entries themselves (item pages) - cached for 3 months where static (7890000)
    • All statistics queries on trade-stats.php - cached for 3 days (86400)
    • Random item selections on the /database page - cached for 5 minutes (300)
    • Latest discussion sidebar topics list - cached for 5 minutes - nota bene read/unread remains instant (300)
    • Topic icons in latest discussion sidebar - cached for 3 hours (10800)
    • Results in any of the new browse trades area - cached for 30 seconds (30)
    • Trust level, about me, avatar, and other details inside a user hover tooltip - cached for 6 hours (10800)
    • Results of live user search when marking someone as the buyer of a trade - cached for 6 hours (10800)
    • Results of live db item search when creating or editing a trade/marking items sold for - cached for 3 months where static (7890000)
    • Results of ajax tooltips for item/other database entries - cached for 3 months where static (7890000)
    • Results of topic tooltips including first post preview/images - cached for 3 hours (10800)
    • Results of member profile views stats - cached for 1 day (86400)
    • Active + Sold trades on database item entries themselves - cached for 1 hour (3600)
    • Your squelch list (time until squelch effect activated) - cached for 1 hour (3600)
    • List of recent active trades on item db entries themselves - cached for 3 hours (10800)
    • Historical price data in price check results - cached for 3 days (259200)
    • Trade filter defaults as remembered when visiting pages that use these defaults - cached for 2m30s (150)
    • Icons in header of search results when searching for a specific item or browsing all trades of an item - cached for 3 months (7890000)
    • Icons and header data for price checker tool - cached for 3 months (7890000)
    • Avatars in header of search results when searching a user's posts, topics, active trades, or sold trades - cached for 3 days (259200)
    • Number of bugs fixed/feedback/contribs etc. subheader data - cached for 1 day (86400)
    • Any historical data in the price checker tool - cached for 1 day (note there is also a 3 day 'lag' before sold trades become historical data) (86400)

    If you still don't see data after the cache time has elapsed, try refreshing your browser's cache (especially for data returned inside tooltips).

Mentions
  • Thank you to our moderators @Beardozer @
    Stormlash
    @BillyMaysed for trawling through hundreds of trade-related reports every week - for addressing everyone's concerns and questions practically. I couldn't have asked for a better mod team to take on the monumental effort required to keep a watch over the market these past 5 weeks. Fun fact: the d2io moderators have taken to calling themselves 'the janitors'. Their words, not mine!! :P
  • Thank you to @Noemard and @Byte-Size for your superb and professional consultation with regards to the site's server and technical difficulties. You saved the whole site from going dark multiple times and have taught me how to be a better programmer. I have learned a bunch about linux server management too which I'm really happy about.
  • Thank you to all the contributors and recently-made contributors who have been continuing to enhance the database with insightful comments, picture uploads, statistics, data contribs, forum guides, and other text resources. I know the focus has seemingly been on trade recently, so just wanted to say thank you for continuing the original purpose of the site. You have set a great standard for future contributors.
  • Thank you to @EnragedN3wb for responding to people in the bug reports/feedback subforums on my behalf with regards to common issues/suggestions - this really took a lot of weight off of my shoulders and let me isolate myself somewhat from the more negative comments that came through from time to time. Spot on mate.
  • Thank you to everyone who donated so far - honestly I was struck by the generosity of some of you guys. These donations have given me the confidence to take more time off work IRL to do the thing I love.
  • Thank you to those who took the time to write proper bug reports with screenshots and reproduction steps. These reports were written carefully and sometimes even potential causes and remedies were suggested too. Great stuff and appreciate the effort that was taken to post. I'm sure we will meet again in the bug reports subforum very soon :lol:
  • The awkward thing about thank you lists (and developing updates) is that at some point you have to decide when to stop. So lastly a big thanks to everyone else who approached me offering their good wishes, positivity, and hope for this site. There are some good eggs out there - you know who you are.

Future Plans & Final Notes
  • As usual, I had to cut a lot of plans from the final release due to time limitations, but don't worry, if it didn't make it into 1.0 it's on the list for 1.1.
  • Next patch (after 1 month or so of v1.0 feedback) expect the inevitable bug fixes, some small tweaks, and further performance optimisation/code cleanup backend. Expect the Resurrected graphics switch in v1.1 as well. Lastly, there'll be some neat integrations between the site's 3 main features that leverage the site's data more inclusively.
  • The site may perform slowly at the start, especially in these first few days of the patch being live, as the cache is built up. I may also be restarting the server a lot after re-configurations or other changes, which will make availability patchy (but hopefully not for too long). @
    Stormlash
    advises me that if everyone sacrifices one unidentified magic
    Diadem
    to vendors that it will please the server gods.
  • There will be plenty of new bug reports and feedback/suggestions coming in - a lot has changed and I haven't been able to test everything fully in time. Please can I urge you all, before making a new bug report or suggestion, to make sure that you have read the entirety of these patch notes as there are bound to be things that have changed that you may not have noticed. Would help in cause/effect as well.
  • Before reporting a bug, please refer to the list here: Known issues/bugs related to v1.0 as your bug may have already been reported. Also, please just quickly glance at the bug reports forum to see if someone's posted before you - if you can just spare one second to do this before posting it would reduce the number of reports received dramatically and make my life a lot easier.
  • Before reporting a bug, please make sure your adblocker is turned off (if you're using one). I have explained already at length why adblockers cause bugs with text inputs and image uploads.
  • Before reporting a bug, you may want to refresh your browser's cache as it may still be rendering old code. Despite the various measures I have taken to ensure that this doesn't happen, some users/browsers may have a particularly aggressive cacheing configuration that I cannot purge. Mobile device users in particular - I strongly recommend a browser cache reset.
And that's it! Thanks for reading and hope you guys enjoy the changes :) The total development time logged for this patch was around 500 hours.

If you want to show your support for the work that went into building v1.0 of the site, you can donate by clicking here.

Teebling
Description by Teebling
5

Can be used to make Runewords:

7
User avatar

Teebling 6875Admin

Europe PC
This topic is now outdated. Please see the new continuous development log.
Hello everyone! v1.0 of diablo2.io has just deployed. That's right, we're finally out of Beta! :lol: This update brings a number of new features and improvements (mainly to the trade section), and has tackled most of the bugs reported so far. Performance was a top priority and I have worked very hard to deliver on speed - fingers crossed! Lastly, I have endeavoured to fulfil as many of your individual feedback and feature requests as possible. To see all known issues/bugs so far with v1.0, check out the known issues topic here.
v1.0 has landed!
v1.0 has landed!
You'll find the details of each update, fix, and improvement in the list below.

Trade Creation
  • When creating a trade, filter selections are pre-loaded as per your default profile settings. So if you selected Xbox Asia Classic as your profile settings, the page will pre-select those filters for you in the trade's creation page. You can also set any filter to anything you want regardless of your defaults - so for example even if your default game selection is Expansion, you can now deselect that filter when making a trade, and select Classic instead. This trade, when submitted, will be listed as a Classic trade instead of your usual Expansion one. The same applies to any other filter types involving defaults, such as Region and HC/Ladder. This will make it easier to trade from various characters on the same d2io account.
    Viewing a an automatic search of all WTB listings for Harlequin Crest
    Viewing a an automatic search of all WTB listings for Harlequin Crest
  • You can now mark a trade as 'Want to Sell' or 'Want to Buy'. One of the advantages of this is that now when you create any trade, you have the option to load a list of WTB or WTS items for that item in a new tab. For example, you enter
    Harlequin Crest
    into the create trade window - a button will now appear - which when clicked will take you to all WTB listings for Harlquin Crest in a new tab. At this point you could abort the trade listing and decide if you want to respond to one of the WTB trades already up.
    Default filters selected on Create Trade window
    Default filters selected on Create Trade window
  • The other advantage to being able to set a WTS/WTB option is that you can now actually put up buy orders to be fulfilled. This, combined with change described above, means that trading will become more interconnected. I expect WTB trades will become more popular as time goes on/as this discreet feature is discovered by new and returning traders.
    A want to buy order for Harlequin Crest
    A want to buy order for Harlequin Crest
  • You can now advertise for multiple other platforms on top of and including your default 'profile set' platform. For example if you are PC by default, but also own a copy of the game on Switch, you can select the Switch option as well when creating a trade, and both platforms will be used to label it. The additional platform will always have to be manually selected when making the trade:
    Multi select platforms on trade creation
    Multi select platforms on trade creation
  • You can now manually set a number of filters to more accurately catalog your listing. You can choose the rarity of the item if it isn't recognised by the DB - for example for Rare quality, Magic quality, and Crafted quality items. You can choose if the item is Ethereal, Superior, the no. of sockets on the item, the item type of the item (includes charms), commonly sought charm modifiers such as Skiller, Resists, MF, and Life (several more). You can also assign a 'class' option to your trade, if it is particularly beneficial to a single class, or has +skills to a certain classes skill tree or spell. A filter option exists if you consider your trade 'good' for a particular mercenary type.
    Full array of filter options available on trade creation
    Full array of filter options available on trade creation
  • When you click from the dropdown as-you-type results, it sets the icon and colour of the trade for you automatically. If the item doesn't correspond with something in the database, and is a ring, amulet, jewel, or charm, selecting the filter option will add this icon to your trade which a lot of people will like I think. Lastly - other factual connections (rarity, restrictions etc.) will cause filter options to be selected automatically - but things based on opinion/circumstance such as the new 'good for X class' will be down to the trader to add or not.
    Rare jewel with auto-icon in place
    Rare jewel with auto-icon in place
  • There are guidance hover tooltips for all of these trade creation options to explain their appropriate usage to new and existing traders, so hopefully we'll have less questions about how the system works as the answers are right there (for the 80% of the site's users on desktop anyway).
    Hover tooltip explaining the new Player Services filter
    Hover tooltip explaining the new Player Services filter
  • You can also now specify which 'tab' in your trade 'stash' this item is in. Your stash is a new (optional) part of your trade profile where you can display all of your items in a 'shop-like' layout and has more useful data on the trade for you, with custom-named tabs for organisational purposes. More on that in a bit. By default your trades created will go into stash slot 1.
    Stash tab choice on the trade creation page
    Stash tab choice on the trade creation page
  • You can now paste an image of your item to be traded directly into the browser window to upload it, rather than dragging the file in or having to click 'Upload'. This is handy for people using native snipping tools such as those on Windows which copy the cropped image to your clipboard - meaning you can just ctrl + v the image straight into the trade creation page. This also applies to the forums, database comments etc. An attachment that is copy pasted into a post is automatically 'placed' inline for you wherever your cursor was last. Note that this placement inline is required for your trade's attachments to show up in tooltips in some cases, so if you aren't pasting your screenshots in, remember to place them before you submit your trade attachments in trade hover tooltips not working after deploy - known issue.
    Successfully pasted attachment on trade creation
    Successfully pasted attachment on trade creation
  • Nota bene: The actual description of your trade is a much more valuable thing to spend time on now. This section of your trade's data can now be interrogated by the advanced keyword searching functions of the new market search. This means that adding attributes/modifiers, extra information that you'd want people to be able to search for, are all worth typing into that box now, because they become part of the search index of the site and will show up in results.
    A trade using the description box correctly by placing keywords about stats etc.
    A trade using the description box correctly by placing keywords about stats etc.

Trade Management
  • The Bump button has seen some improvements - it now tells you how long is left on the 6 hour cooldown, and is greyed out and disabled until that time. When you are able to bump, the button becomes clickable and will work as intended. Note that the cooldown begins not only when you actually bump a trade, but also if someone else posts an offer you won't be able to bump for another 6 hours (the latest offer will have bumped it for you).
    Bump button on cooldown just after activating
    Bump button on cooldown just after activating
  • In your stash page, you can see when each trade is due to expire, and how many hours are left on that trade's bump cooldown. Additionally, you can bump all of your trades in one go using the 'Bump all trades' button - handy for traders with a high number of listings up simultaneously. The bump all command takes 15 seconds to execute.
    Expiry and bump availability times seen from stash
    Expiry and bump availability times seen from stash
  • You can now completely delete or 'delist' a trade if you don't want to wait the 3 days for it to automatically expire. This is done by going to the trade and clicking the 'Delete Trade' button, next to the 'Mark as Sold' button. This will delete the trade and all offers/comments inside it. You can also, if you want to, delete all your active trades in one go from your stash page - again this takes 15 seconds to execute.
    Bump all and Delete all buttons seen from stash
    Bump all and Delete all buttons seen from stash
  • You can now edit a trade's filter options after listing it. This allows you to change any of the filter options you set for the trade originally, and also what the actual item being traded is itself. This doesn't work if a trade has been marked as sold of course. This will be helpful if you forgot to add a particular filter option as you were listing it or made mistakes in general. Please note that if you change the item itself that is being sold, the URL will not update. So if you have OCD, it is better to create a new trade listing for the item rather than editing an existing trade in this situation.
    Editing a trade after it was posted to change the item and/or filters
    Editing a trade after it was posted to change the item and/or filters
  • You now have a stash with 6 tabs in your profile that can be filled with active trades. This is your new central point for managing all of your own trades. Trades that have had a tab assigned on creation go into that stash tab. The default stash tab is 1, so all your migrated pre-v1.0 trades should be in there already, and if you don't select a tab during creation, it'll go into tab 1 automatically. Each trade in the stash tab being viewed will show some basic information about the trade such as its title, filters options applied, age of the trade (date since listed), number of views and offers, time until automatic expiry/deletion, time until next bump available, and finally an indicator for if there are any unread offers you haven't seen yet etc. making tracking your trades easier.
    Stash tabs and items on your profile
    Stash tabs and items on your profile
  • Hovering over each trade in the stash tab being viewed will show additional information (just like elsewhere) including the trade's description, and any attachments attachments in trade hover tooltips not working after deploy - known issue. Basic BBcode will be formatted in this tooltip, so if you want to add some extra flair with basic formatting like [b][/b], [u][/u], and [i][/i], you can do so - I haven't tested any others but I'm sure that they won't work lol.
    Trade's description appearing on hover - old-style inline text previews are also coming back again soon
    Trade's description appearing on hover - old-style inline text previews are also coming back again soon
  • The names of the tabs themselves can be changed to whatever you want in the profile settings - this could be the names of your Mule characters, different 'categories' of items on sale, splitting your WTB and WTS trades into separate tabs, using shop-like phrases, or whatever you find useful for organising how your active trades are displayed on your profile. This will make it easy to just share your profile link and people can then view all of your items on sale in a nice way.
    A customised stash of an active trader, with personalised tab names
    A customised stash of an active trader, with personalised tab names
  • Moving trades between tabs is done by visiting the trade itself, editing it and selecting the new tab you want it to go into from the advanced options array. Remember that only active trades are found in the stash tabs. If your stash has overflowed its 12 item limit, you can find your other items by going to your profile, looking for the 'Trader Stats' block near the bottom, and clicking the 'All' button to see all your active trades in one go. From there you can edit them and move them to different tabs (by editing each individual trade).
    If you can't find your trades because your stash tab is full, go to this part of your profile and click 'All' to see all your trades in one go
    If you can't find your trades because your stash tab is full, go to this part of your profile and click 'All' to see all your trades in one go
  • The trades in your stash are ordered by the last comment time, or last bump time, so that your actually 'active' trades are at the top of the list. The same logic has been applied to the actual item entry's page as well, so that it is ordered by last post time/bump time, with the newest/most active trades on the top of the list.
  • If you don't want to have the big trading stash on your profile page (say you don't really use the site for trading much), you have the option to hide it if you want. This setting is found in your Edit Profile area. Note that you can still see all of your active trades using the search engine - just go to your profile and then click the all active or all sold trades button.
    The option to hide your stash altogether is found in your Edit Profile section
    The option to hide your stash altogether is found in your Edit Profile section
  • The trust badge previously found in the trade activity block has been moved up to where your profile username is for clarity and presentation.
  • Your 'watched trades' or 'watching' area has seen a significant improvement - it has the standard trades list UI like everywhere else and includes read/unread, last poster, hover description tooltips and everything else you'd expect from the stash/filter area. It now also excludes your own trades - so you can use it exclusively for monitoring trades of other members that you are watching. This area is paginated to 30 trades at a time, allowing you to page backwards in time.
    New watching trades area excludes your own trades and is used for monitor what you want rather than what you have
    New watching trades area excludes your own trades and is used for monitor what you want rather than what you have
  • A note to everyone who was posting ubers/rushes/keys ads in the main discussion forum - all of these topics have been moved into the trade marketplace (so they'll appear in your stash tab 1 as trades). If you want you can edit them and add the 'Player Services' filter option to make them visible in the new market search engine. Please do not use the main discussion forums for any kind of trading/services-related topics from now on - I've added a reminder as well to deter this as much as possible.
    Player services topics in the new player services section of the 'Browse Trades' area
    Player services topics in the new player services section of the 'Browse Trades' area
  • Trades marked as 'player services' will never expire - this is because the uber/dclone walk topics are a little bit different in nature to the rest of the trades. The auto-prune function ignores these topics so they stay up forever or until deleted. You can still bump them to bring them to the top of their section. In the new browse trades section where there is a dedicated tab for viewing all ubers/rushes type topics.
    A typical player services topic. Buyers tend to leave reviews/recommendations. These types of trades never expire.
    A typical player services topic. Buyers tend to leave reviews/recommendations. These types of trades never expire.
  • Fixed a bug where trades that did not correspond directly with an item in the database (rares/magic/descriptive titles) were not showing on the trader's profile.
  • Fixed bug where page titles and navbar indicators for the Create trade/Edit trade variations were swapped.
  • Fixed title positioning bug for trades without an icon.

Trade Completion & Price History
  • Notifications for when a trade you are watching is marked as sold are now fixed and should display as normal. Watching a trade is automatic if you make an offer on it, if you are the original seller of the trade, or if you manually hit the 'Watch Trade' button on it. When the trade is marked as sold, if you were a watcher you will receive a notification like this reminding each other to give/receive trust.
    A notification generated when a trade you were watching is marked as sold
    A notification generated when a trade you were watching is marked as sold
  • You can now edit a trade after marking at sold (if you made a mistake). You are allowed to change what the item sold for/amounts, and your original post of course, but not who it sold to (this is to avoid abuse of the trust system). If you mistakenly sell to someone else, contact a moderator to have it changed. You will not be able to change any of the filter options that were set at the time, nor what the original trade item was however.
    Editing a trade after it has been sold to correct mistakes.
    Editing a trade after it has been sold to correct mistakes.
  • When choosing who to sell the trade to, rather than typing in their username, there is now an option to 'pick' from a pre-loaded list of people who have commented in your trade already. This will speed up the process 'selling' a trade for those traders whose item sold to someone using diablo2.io as the main transaction platform (if the buyer commented in the thread with an offer at any time). This also has the beneficial effect of reducing usage of the user live search, which although now optimised greatly, is still a heavy performance consumer.
    Picking a test user from the suggested list instead of typing your buyer's username
    Picking a test user from the suggested list instead of typing your buyer's username
  • There is now a limit of 3 characters on the soldforX_amount fields when marking a trade as Sold. This was to stop potential vandalising of trades with impossible values for items sold. The layout of this section has changed somewhat as well.
  • If no soldforX_amount has been typed in by the user yet, the amount is automatically set to 1 when an item is selected from the soldforX field. This is for neatness and will prompt users to correct the value and use the field more in general. If you have already entered a value, the number won't auto-set to 1.
    Using amounts for marking sold is auto'd to 1 if no value was inputted manually
    Using amounts for marking sold is auto'd to 1 if no value was inputted manually
  • Trades marked as sold but without a user sold to or an item sold for (which haven't been auto-deleted yet by the cron job) now include 'N/A' indicators on the trade itself, in trade search, and in price-check history (within 3 days, after that empty sales are purged). This is so that people don't get confused about if an entry exists or not for the items sold for/member sold to.
    Empty soldfor trades are discarded and not stored as price history after expiring
    Empty soldfor trades are discarded and not stored as price history after expiring
  • It is now impossible to sell a trade to yourself. Users trying to do this will not be able to mark the trade as sold - html 5 form validation with a Pattern that matches your username will not let you submit the form to the server until that input is not your own username.
    Can't sell to yourself anymore
    Can't sell to yourself anymore
  • The price check works a bit differently and has a new UI. You can now view prices in a number of ways. You can use the native search engine to look at trade sales that occurred within the last 3 days, which means you can also apply normal search filters to these kinds of results (including all your defaults). This is useful for the most up-to-date prices surfacing. Anything older than three days is archived as price history (more on how this works backend in the Performance section) - the results of which are viewable on their own page.
    Search results for Stone of Jordan, 'Sold' filter active
    Search results for Stone of Jordan, 'Sold' filter active
  • The new price history UI gives you a lot more space and lets you view more sales data (all the way back to the start of the market two months ago). This will let you take make more informed price decisions as the whole site's history is now viewable. The data here is cached for 3 days, so there is an assumed time lag of 3 days when viewing this historical data.
    Looking at Titan's Revenge using the price checker tool
    Looking at Titan's Revenge using the price checker tool
  • Even if your keyword search for historical price data doesn't match any database items, it will still try to search the sales history for the keywords you entered. This means that you can check the prices of popular non-db items such as magic or rare charms etc. - I would recommend that charms are named the exact same as they are in-game, as is advised on the trade creation page.
  • You can carry on price checking as the search UI remains at the footer of every page request in this section. There is an option to search for results as 'recently solds' which will, using the native engine, show results for any sales of the item in the last three days.
    Price check search at footer of price check results
    Price check search at footer of price check results
  • At the bottom of any trade, there is an additional block providing handy links to check the item being viewed's price history or recent sales data. These links also exist on the item's actual db entry page itself. These links make bouncing around from section to section a lot faster now.
    Price check an item directly from the trade listing
    Price check an item directly from the trade listing
  • I ran an SQL command to permanently delete any trades marked as sold without any data on what they sold for - as I know that the accepted workaround for the lack of a deletion option before was to mark as sold with no data. Before any sales older than 3 days are converted into price history, this check is run, so that 'empty' trades don't clog up the system and make browsing results irritating.
    This removed about 40k of the 100k or so trades migrated to v1.0 to concentrate the pool of price data available
    This removed about 40k of the 100k or so trades migrated to v1.0 to concentrate the pool of price data available
  • Added some guidance text to the placeholder textbox when creating a new appraisal. If you run a price check and return no results, the 'make appraisal' link provided to you in the error message will take you the create new appraisal page pre-populated with your price search phrase/item name.
    Pre-populated subject for appraisal request
    Pre-populated subject for appraisal request
  • Fixed bug where trades which were marked as sold for an item not in the DB were showing this entry as empty on the sold for indicator in the price check and the trades themselves. They now show what the item sold for even if it doesn't connect with a DB entry - for example +3 Paladin Skiller will now show whereas before it would not.
  • Fixed bug with price history checker where it would return titles from price check topics having the same name as the item sold for.
  • Fixed bug in price checker tool where non-db corresponding soldfor_x values would appear as blanks. Now they show the reported item/concept/custom soldfor value the user typed in, regardless of whether it corresponds with a database entry.
  • Fixed bug in price check subforum where forum levels were cut off.
  • Fixed bug where price check topics were showing up in the discussion forum topic live search (top right quick search).
  • Fixed bug where sometimes soldfor_x inputs would pull data from the price check subforum unintentionally.
  • Fixed bug where some item types related to the DB weren't being coloured correctly in the 'Sold' green bar on trades marked as sold.
  • Fixed bug where the second input in a trade marked sold was being repeated and breaking layout.
  • Fixed issue where users with no avatar did not show the default no avatar in results when marking them as the buyer in a trade sale.
  • Fixed issue where debounce for the user dropdown as-you-type search when marking a member as the trade buyer was set too low and resulted in too many requests.
  • Fixed issue where debounce for the item as-you-type search when marking what a trade sold for was set too low and resulted in too many requests.
  • Fixed bug/restriction on item dropdown search when marking a trade as sold, where users couldn't select low-character items like
    Lo
    and
    Io
    due to them falling just outside the query limit. Reordered and they show now.

Trade Discovery
  • The way that searching for trades has changed significantly. I have modified phpBB's native fulltext search engine to handle deep market searching and filtering. The search options available to you are very powerful and there are plenty of them, so it will take a while for everyone to get used to the new system and find out the best ways to use it. I personally haven't had a lot of time to test it out with the limited data I have here on my dev environment, so quite interested to see what it will be like on live.
  • The search engine 'fulltext' indexes every word on the whole marketplace - so that's every word in every title, description, comment, post, offer etc. The word indices are accessed and stored by phpBB in a clever way that makes is much more performant than my own (awful) ajax solution that was in place before. Because all words are indexed by the engine, it makes keyword searching possible. You can keyword search within trade's titles, or in the posts' contents themselves as well, and any inline results will be highlighted (if viewing results as posts).
  • You can do a market 'quick search' for any item or keyword(s) from the /trade home page or the 'find trades' page. A quick search will ignore any custom configuration or trade filters and just do a pure keyword search. I anticipate that this will be one of the more popular methods of finding item trades - it will always return more results than a filtered trade, and is much quicker than configuring a full search.
  • On every item's database entry page, it now shows only the last 10 active trades for the item, but provides a button which when clicked will take you to the full, unfiltered search results for that item on the market. This will be really handy for popular items like
    The Oculus
    and
    Monarch
    etc. which have at times had over 100 simultaneous listings active. There is also a button see recent sales of the item, or to browse it's historical price data.
  • However, if you want to do a full search of the marketplace, there are lots of extra options you can set to compliment your search. The first category of options are the 'Search configuration options' - these are the small brown buttons - they allow you to do things like change the matching argument of the search, where the search is directed (titles, offers, descriptions), which layout it will use to display results, and what sorting/limiting options you want to add such as date ranges or character limits.
  • You can also search the entire trade catalogue of any user with the 'search by trader' function. There is a shortcut to this on every person's profile - results can be viewed as active or sold trades. This is an alternative way of browsing your own or others' trades that is separate from the new stash stuff.
  • The keyword system has some advanced features that let you build custom search queries with arguments like wildcards, must/must not contain, match any word in phrase etc. I have made a small summary with some examples so that you can start playing around with the code. If you find something cool or want to help test things, then visit the advanced keyword expressions topic.
  • You can also apply 'trade filters' and advanced trade filters to your search to narrow down results even further. This allows you to filter by platform, wtb/wts status, region, active/sold, and a whole bunch of other things that mirror the new trade creation function and it's filters.
  • When the search page loads, it will always pre-select your default profile filters - this means that if the marketplace is moving quickly you can always be keeping your searches within the confines of your default settings. You can reset all the trade filters to the base defaults if you don't want to search with your default filters active (only thing selected will be the Resurrected option). Note that a quick search does the same thing and ignores all filters/settings to show more results.
  • When all of these options come together and are used correctly (I have written extensive guidance in the hover tooltips in this area) - they can be quite powerful. This will let you construct searches for magic grand charms looking for 'all resists' or 'better chance of finding magic items' attributes, or to search for only 5 socketed Scourges, or really anything you want. The logic of these filtering options is AND (keyword phrase is '
    Tyrael's Might
    ', shows trades for xbox and is ladder and is hardcore etc.)
  • All search results are available through pagination. Unlike before, when you search for an item now it will show you all listings for it, until the number of results is exhausted - you can hit one search and then browse until there aren't any results left. This is much better than the rat-race that was happening before where everyone tried to stay in the search window which had limited space.
  • To stop automated abuse of the new search system there is a flood limit in place. You can only search once every 10 seconds as a member, and once every 20 seconds as guest.
  • When searching for or listing a new trade, the live search will recognise when you have inputted a magical or non-database corresponding amulet, ring, jewel, or charm, and an advice block appears - it describes the correct way to 'name' the search or the correct way to search for it. This will hopefully bring some uniformity to this side of the market.
  • After any successful query, the results are cached for 5 minutes and your search is saved as a 'recent' keyword which you can access again from the search panel the next time you visit.
  • Searching from the home page of /trade is just a quick search, but if you decide you want to long-search the item/keywords, just click the 'advanced search' button. Whatever you had in the search box already will be transferred over for you automatically.
  • Results or 'lists' of trades now have a much more uniform UI across the site - whether that is on the /trade page, in your new trade stash, in price check results, your watched trades, or whether filtering/searching for trades using the new advanced tool. This new UI shows much more relevant information about each trade and is more consistent and 'table-like' to make scanning through them easier. Having repeated this layout across the site (with small variations) this will hopefully lead to more efficient trade discovery as people get familiar with the same structure on different parts of the site.
  • The /trade 'home page' of the marketplace is now more of a landing page - you can see the 10 latest trades posted (more a decoration than anything and to show the default trade view UI), but it's more focused on directing people to the correct part of the site for their trading needs as opposed to being used for browsing (which is what the new Search section is for). From this home page you can run a quick search immediately, or you can take your keywords with you to the advanced search. There are also some useful shortcut buttons to things like your stash, settings etc.
  • Besides the advanced search, I have also put together a 'Browse Trades' section where you guys can see particular 'corners' of the market - and browse all active trades for that tab (again, paginated all the way back to the oldest trades).
  • At the moment browsing is very basic and has limited option. It has different sections of interest - all player services, all high rune trades, socketed base item trades, all xbox trades, all hardcore trades etc. - basically things I thought might be useful for people who just want to 'scan' and 'look around' instead of doing a complex search. I will be integrating filtering in this section in v1.1 so for now consider it sort of a beta experiment and a handy place to just look at the trades going by (who knows, you might nab a bargain :P).
  • What other sections do you guys want to see for the browse trades area? Like are there any things you'd love to be able to see all in one go (like the examples already up)? The way I've coded this is super cool and I can add on new sections very easily so hit me up with your suggestions and those can be added on quite quickly.

Trade Miscellaneous
  • 'Trade Jacking' is where a member searches for others' listings and offers their own item for sale inside someone else's trades. This breaks the rules but no amount of reporting or moderation can deal with it fully. Squelching is a form of self-moderation now available to you to deal with this problem yourself - go to Account Settings > Squelch a Trader. Squelching someone means that their comments will not be visible at all on your trades for anyone except the squelched trader. The person squelched will not know that they have been squelched, so if they continue to attempt to jack your trades they will still see their own comments but will be wasting their time as no-one else can see them.
  • Note that squelch does not affect other forums or areas on the site - only the trading marketplace. A trader you have squelched is still able to send you private messages/interact with you and any others inside the trade to some degree, so bear in mind that this is not a full 'block 'tool - it is specific to trade jacking by comment. A squelched trader that comments on your trade will still reset its expiry timer and bump it like any normal comment would, the only difference is its invisibility to others. You cannot squelch admins or mods.
  • I anticipate that the number of trade jackings and other things like this will reduce anyway due to the new way the market works (where discovering trades is much easier - this time around people won't be fighting over small windows of visibility where their trades could sometimes disappear after only 1-2 hours of activity).
  • The trade stats page has been updated. It now shows 50 results at a time, and has had two new blocks added - most active traders and most active sellers. The data for this page refreshes once per day, and the results are cached for that time as well. So you can now see 50 results for items sold as currency, items sold by quantity, most trusted traders, most active traders, and most active sellers.
  • There are now mini Blizzard/Discord contact copy buttons under each commenter's trade in the view trade page. This will be useful for quickly contacting people who have made offers and saves you a few clicks.
  • There is now an additional box at the bottom of every trade with a copy-pasteable 'message' with a link to the trade's URL etc. pre-parsed for you. You just click it, and that's it, copied. This will be useful for people making first contact with each other outside of d2io. There are two versions - one shown to the owner of the trade (I have X for sale at https...) and another shown to everyone else (hey I saw your trade for X at https... is this still available?).
  • Added some warning blocks to Hardcore, Ladder, Legacy, and Non-Expansion trades to make it absolutely certain that the person viewing the trade is aware of these uncommon restrictions. They remain after the trade was sold to add more depth of information to the archived sale and change to 'was' rather than 'is' X type of trade.
  • There is also an additional string box for any other filters applied (Good for Sorceress etc.) - these are displayed as icons with hover helper tooltips rather than full warning blocks (design choice so as not to overcrowd the page).
  • You can now see how many views your trade has sitewide, and in the trade itself (there was no counter here before). It's in the top right with comment counter. This also extends to forum discussion topics and in other areas where applicable.
  • Added an expiry warning block to the view trade page template so people can see how long it will be until their trade auto-deletes itself. This timer is always reset by either a bump, or an offer posted by someone else.
  • On item entries themselves in the database section, I've curtailed the 'On the trade market' area - it now only shows the last 10 active trades, and then has buttons to take you to full listings for active trades, sold trades, and offers the original quick-list and quick-price check buttons too. It's now more clearly laid out (you can see timings easier), and hover tooltips for the trade's desc/screenshot are there too.
  • Fixed bug where message/bnet/discord buttons on trade pages weren't rounding properly as per conditions.
  • Changed wording of 'reply/post' with 'offer' in various places on the marketplace.
  • Added a notice to users mistakenly trying to use the contact admin form to make trade offers to me (I was getting at least 5 a day).
  • Incrementing your post count (and therefore forum level) now does not occur when posting in the trade section. This is so that your forum level accurately represents your actual activity on the forum, as opposed to using just the trade section alone. Those with large post counts due to trading will see it cut down by a resynchronisation I have run, and from that point onwards any further posts in the trade section will not increase your forum level. Note that your forum level is incremented by posting in the forums or commenting in the database.
  • Added small two-letter acronyms to the regions where they often spawn - NA for North America, EU for Europe, and AS for Asia. This was just to make them readable as it wasn't at all obvious seeing as the icons are so tiny. This is visible across the standard trade UI.
  • I have added in helper hover tooltips to all of the buttons on the 'view trade' type pages themselves, to make it clearer to new and existing users what each function does (make offer/watch/report/message/bnet/discord) and any restrictions or details involved.
  • Signatures are now visible again in Trades and in the Price Check subforum as well.
  • On the profile page/stash, you'll see a small block called 'Market Stats' - you'll find some useful links here that allow you to view all of the member's trades outside of the stash (all together, paginated), or all of their recent sales (in the same manner). All-time historical data is coming next patch which is why its greyed out (ran out of time).
  • All trades that were on the site prior to v1.0 have been modified by the migration script to match the new v1.0 format - this has left them apparently unchanged but backend they've been transformed into a more performant structure. All of them were marked as 'WTS' (seeing as this was the default assumed trading option before v1.0), and ones which had no connection to a database item have had the filter option for magic rarity applied. Otherwise I didn't change or add anything additional to them.
  • The migration may have missed some Edge cases, or done things wrong in others, because I couldn't spend too long on making it a really sophisticated script. Done what was realistic in the time allowed, so please do not contact me regarding why your trades 'look weird' or whatever - just edit them and add new v1.0 stuff if you want, or mass delete them/let them expire and make fresh v1.0 trades (recommended). I could have just been lazy and deleted all 30,000 active trades on the site to make a 'fresh start' but I knew this would aggravate a lot of people so I've taken the time to the migrate existing trades as best as I could so you guys don't have to.

Database
  • Sitewide inline autolinks with icons have been re-enabled thanks to advances in cacheing strategy. You will see them when hovering over links to database entries, users, and discussion topics in some areas. Autolinks spawn automatically in posts, descriptions, trades etc. when a typed word matches the title of a database item directly. Examples:
    Summon Spirit Wolf
    ,
    Volcano
    ,
    Flying Scimitar
    ,
    Crowbill
    ,
    Recipe: Flawless Topaz
    ,
    Arcanna's Deathwand
    ,
    Que-Hegan's Wisdom
    etc.
  • For those new to this system, you can use [nolink][/nolink] around a word you don't want a link to be auto-generated for. For example I type Silks of the Victor it produces
    Silks of the Victor
    (an autolink is generated), or I can wrap that like this [nolink]Silks of the Victor[/nolink] and it 'ignores' autolink generation and produces Silks of the Victor.
  • Nota bene that this BBcode can only be wrapped around one word at a time, and cannot wrap around other BBcode - you cannot at the moment for example 'unlink' entire paragraphs. This autolinking feature is now embedded in the phpBB application script as opposed to being called by HTTP request, and is fully cached.
  • As you will have also noticed, sitewide item/database entry tooltips have been re-enabled. So when you hover across any link to a database item, you will be served with a tooltip showing that page's 'pedigree' information. Hover over
    Hellfire Torch
    or
    Potion of Life
    for example. There is a short delay or debounce of 1000ms before any actual request is sent, which stops the issue where people scrolling through lists make hundreds of requests to the server inadvertently just by brushing a tooltip link. This has also reduced occurrences of the 'switching' bug where SQL requests would not catch up with the GUI's actions and you'd end up with bugged tooltips until page refresh.
  • On the mobile side of things, tooltips still show instantly on tap with no 1000ms delay, but have been fixed so that they aren't triggered by scrolling or touchstart events. They'll now only open up after a direct tap on them. Tooltips for trades are currently disabled on mobile as I investigate a live-only bug.
  • Note also that these tooltips are cached at both ends - as soon as anyone opens a tooltip for any item, the sql response is cached on the server side in phpBB's file cache for 3 months - meaning that the next time anyone opens that tooltip, the query won't even have to be run (just retrieved from file cache). Furthermore, the XML response given by that URL is also cached by most modern browsers - this means that if you hover back over a tooltip you've seen before, it won't even have to access phpBB's file cache, your browser will have the tooltip contents ready. The longer you browse the site therefore the quicker the tooltips become for everyone and the quicker they become for you too.
  • Fixed issue with items like
    Tarnhelm
    ,
    Skullder's Ire
    , Bul-Kathos' Children etc. where wording of + all skills was non-standard and resulted in these items not showing in filters for that modifier.
  • Fixed issue where Infinity wouldn't appear in filters for - X to Enemy Lightning Resistances due to non-standard stat entry.
  • Fixed issue where Rain wouldn't appear in filters for +To All Druid skill levels due to non-standard stat entry.
  • Fixed stat error on
    Suwayyah
    - now has correct number for max sockets (3).
  • Fixed bug where database comments having 5 or more likes wouldn't be coloured green as originally intended. Working now.
  • Fixed a bug when viewing item entries where the edit description and revisions button weren't rounding correctly if there was more than one comment on the entry.
  • Fixed bug where data contributor records for those who were also donators were not being coloured correctly.
  • Fixed off-centered white item-type labels on Rune/Gem type item entry pages.
  • Fixed the issue where sidebar blocks were overlaying on top of the grid when visiting a pre-filtered link to a database category, or resizing window with filters active. Now the sidebar elements do not show until the actual sidebar block itself is visible on these types of pages. Downside is sidebar elements won't be visible on small resolution devices at all when visiting these pre-filtered pages.
  • Removed the word 'Avoid' from the autolinks table as its unintended usage as an autolink was higher than its intended usage as a normal verb with no autolinking.
  • Made a minor adjustment to
    Swarm
    's graphic and icon set to make it more distinguishable against dark backgrounds.
  • Removed Strength and Dexterity requirements from the entry for
    Khalim's Will
    .
  • Singled up the stats for
    Minion of Destruction
    (was three aux variations but all were identical).
  • Fixed
    Bishibosh
    lacking the fire immunity property in Nightmare stats.
  • The rune
    Lo
    should now autolink correctly.

General Changes
  • I am experimenting with a push notification solution that may or may not work - I have not been able to test or configure on my local environment yet due to some restrictions. So yeah, basically no idea if this works or not, but you'll see the option to enable browser 'push' notifications now in your notification dropdown.
  • So long have been logged in once in the last 24 hours, you will receive 'as-they-come-in' push notifications from your browser or device. This will (if it works as expected) help you respond to trades quicker as you won't have to refresh the browser window as often to stay on top trade activity.
  • Anyways, let me know if they're working for you - there are some instructions on how to enable them fully - please read these carefully before asking for help. I think that only Chrome and Firefox are supported at this time, but we'll see.
  • Global navigation now has some icons and the site's logo in the top left next to D2's - upwards from a breakpoint of 1000-ish px viewport width.
  • Added an explanation block to the Outbox page as a lot of people were confused about its purpose/significance in private messages. For the record, it's messages you have sent, that haven't been read by the recipient yet.
  • Added a few links back to the patch notes and other useful site-related resource pages to the headers of the feedback, bug reports, and contributions forums to make it clearer what is expected of you before you decide to post in a report or suggestion. The bug report button in the sidebar now links to the subforum itself rather than the direct posting page. I think this is why so many duplicate bug reports were being submitted pre v1.0 thanks enragednewb(?) I think who pointed this out.
  • Another thing confusing people was where to search for members or forum topics. I've added an additional 'helper' link to the top-right breadcrumb navigation area which will guide people towards the top-right instant search and open the correct search pane for you depending on your current location.
  • Updated the About page to summarise the site's main three features - hadn't been looked at in a while and had some old information there.
  • Updated the opengraph/twitter card default image. Reconfigured so that meta image chosen prefers attachments over inline IMG tags. I think this will lead to some cool rich search results for database entries.
  • The similar topics block on every trade or db entry are now autolinked/coloured/tooltipped as they were before. I spliced in the previously external function to make the autolinking run 'natively' with cacheing etc.
  • Forum topics with more than 20 posts now have pagination that is visible/usable both on the topic itself and in the forum topic list view. This reduces requests for very long topics server-side and improves loading times for you as there is less DOM to draw. There are also additional tooltips indicating what the read/unread indicators mean.
  • The default font has been changed to Ubuntu OpenSans medium weight and I have discontinued the 'FormalBT' in-game font. This was a hard decision to make because I loved the Formal font so much, but I had to bow to overwhelming feedback that a default sans-serif font is more readable and pleasant. I thought about keeping it as a font switch option but I don't want to maintain CSS for both font options long term. I actually really like the new font personally. You'll see Formal used in some parts of the site for decorative purposes.
  • Index page - link blocks on the home page are now shown as a left text-aligned, centred block by popular request. Each 'section' of the site now has an icon that corresponds with the global navigation bar at the top. In addition the diablo2.io headline is now linked to the homepage for easy refreshing.
  • Recipients are now shown in the list of private messages (under the PM subject) so you can see anyone else involved in the private message thread.
  • User hover tooltips now show you the trust level of that person underneath their title.
  • You now have a few more options in your control panel in the 'Account Prefs' area. You can unsubscribe from site update emails, prohibit all other members from private messaging you, change your timezone, turn off default signature attachment in your posts, and lastly you can set 'notify me of replies in my own forum topics' to be turned on by default.
  • Full favicon library completed - you'll now see cool, full-resolution icons when you favourite the site or add it to your mobile's home screen, windows task bar etc. etc. - it even has an SVG icon just for the MacBook's touch bar (for shits and giggles). I'm hoping it shows up in the new push notifications too but haven't tested this yet.
  • Tooltips over discussion topics/bug reports/feedback/contributions/price requests type topics now exclude the information about poster, views, comments, post time etc. to reduce the number of uncache-able queries. I have also made the preview 200 characters long (was 100 before) - so you can now see more actual useful information inside this tooltip.
  • Added adblocker detection - if you're using an adblocker, you will get a small prompt in the bottom left explaining the bugs that adblockers cause on the site - this window can be closed and will not appear again for 30 minutes. This is the most discreet way I could do this whilst still having an effect - I could have been a tyrant about this and fully denied website access or done really annoying things to adblocker users (which would be very difficult to dismiss with web inspector pseudo code). Instead I have chosen a solution that I believe is fair and will get most people turning adblocker off without the prompts being too irritating. If you are a donator, it will not show at all even if you have an adblocker activated, but can I remind all users that even if you are eligible to not see the prompt you will continue to encounter bugs caused by adblocker extensions. These kinds of plugins are very powerful but they often overstep their mark and break standard web design conventions. In turn, this causes sequence breaking bugs (e.g. not being able to enter text into any input field, anywhere on the domain - meaning no registration, no logging in, no posting, lol). I can't fix these issues, so I strongly recommend you do not have an adblocker active whilst browsing the site.
  • Changed the layout of the 'Team' page to make it more efficient on space and allow for a better overview of each group. I've also added a blurb to each block so that people know what these groups do and what elevated privileges they have, if any.
  • Tooltips over discussion topics et cetera will now render images made with the [img][/img] tag inside the post itself. Unsure at the moment about attachments due to testing limitations on dev environment, but should be working if the attachment is placed inline and is close enough to the top of the post attachments in trade hover tooltips not working after deploy - known issue.
  • Added a green 'call to action' button theme for primary inputs - many complained it was hard to find the 'finish' button on key pages.
  • Added a strikethrough BBcode [s]strikethrough[/s] to the editing suite.
  • Moderators can now mark reports as 'being taken care of' as they come in - as requested by the guys so that they don't step on each other's toes in busy periods.
  • Updated the trading rules sticky with a link back to these patch notes as guidance on how to use the new trade system. The mods have also been updating this sticky with new rules as their moderation policy for the market has taken shape over the last month and a bit.
  • Number of entries on moderator control panel should now be 100 before pagination kicks in, to make it easier for the mods to deal with soft deletion etc.
  • Added a mini page explaining what the d2io discord server is for. Please do not use the server for trading, asking for rushes etc. - that is all done here on the website. This is a small, one channel server for fun chat and diablo 2 related modding/design/webdev/other resurrected-related things. A polite reminder also to refrain from using the Discord to send me bug reports - these are far better tracked and organised here on the site.
  • Guests can no longer post in any of the forums with the exception of the site feedback/bug reports areas. This follows many reports of guests commenting in trades without providing Bnet tags, not responding, and generally just being a pain to deal with.
  • Added Bnet and Discord details as optional fields at the end of the registration form (they weren't there before). Also removed the class selection from the registration page to avoid confusion about why the field might be required.
  • I have disabled the re-use of email addresses - it wasn't necessary before but now is. With the registration bug (hopefully) fully fixed, and the certainty that the account linking feature has been retired, this won't have any detrimental effect and will stop people from easily re-registering accounts under new usernames.
  • From now on, all new user registration usernames must be ASCII (not international unicode) - this is to avoid conflicts later on when usernames are used in string matches etc. Like, right now you can't give trust to someone with international unicode characters in their username - names like überlord or whatever. Any accounts made so far should still have full access to the site and all, just new account usernames won't allow non-ASCII characters.
  • I have discontinued public use of the 'linked accounts' feature as only a handful of people were using it besides myself and it was a very high performance consumer. I still use it occasionally for testing purposes but consider this feature discontinued from now on.
  • Ads hidden on a number of pages including donation, login, registration, info/confirmation type interim pages etc.
  • In the bug reports/contribs/feedback subforums, there is now a little green indicator in the top-right signifying how many of the topics I have marked as fixed/fulfilled/processed.
  • The keyboard shortcut ctrl+enter now submits quick replies instead of taking you to the preview/editor stuff. Yay :) It is also the shortcut to submit a quick market search. Very handy and have been enjoying using it on dev.
  • On any members profile, their post count and topic count now link to a search of all that user's topics or posts (all-time, paginated). Trades are excluded from the topic user search, but included for the post user search. It's really handy being able to go back through a history of all your posts and topics in one place. Personally my favourite feature of this patch.

General Fixes
  • Fixed overflowing usernames on Chrome/FF on the forum-type pages, now ellipsis overflow works properly for people with really long usernames and @UnrivaledPiercer won't be shunned :P
  • Fixed layout bug where margin disappeared between mark read topics and pagination for registered users and guests.
  • Removed duplicate
    Ber
    rune in topic icons array
  • Pagination fixed for moderator control panel when merging topics, previously would only show the last 30 topics for merging.
  • Fixed moderator 'move topic' link in the subheader of all topics - now takes you to a fully templated interim page as opposed to by ajax request.
  • There was an issue for some time when the user registration script would time out, leading people to try and re-register and being faced with the infamous 'username already in use' error message. This caused about 2000 '
    Zombie
    ' accounts to be created. I have purged these from the database - the query was very tight and shouldn't have affected anyone active, but if it has then contact me as I have backups of those rows and can restore you if you got deleted.
  • This 'bug' with registration actually turned out to be 2 bugs compounding each other: one was 524 errors as scripts timed out in high traffic periods, another was a misconfig of the html 5 form validation on the page. It was mainly the slowness of the overall site at the time causing that script to hang for a long time. It should be faster now, hard to emulate on dev so only way to find out is going live with it like this.
  • Fixed bug where users without an avatar or those using the default avatar could not reach their own profiles by clicking the avatar image in the top right.
  • Rewrote /app.php/donate url to /donate
  • Fixed bug on registration and edit profile pages where Linux was not labelled with text like the others.
  • Fixed issue on password reset page where one of the inputs was missing CSS classes completely.
  • Fixed bug on the contact admin page where guests (only non-registered users) were being asked to fill in a 'name' field that didn't exist.
  • Fixed a number of broken redirect URL parameters when logging in from certain pages. No route found etc. messages should have dropped significantly. The retirement of linked accounts has helped with this somewhat as well.
  • Fixed issue where external link indicator next to 'user bar signature' images would break layout.
  • Fixed squished graphic for current avatar when choosing an avatar in the user control panel.
  • Fixed issue where DB entries were beginning to show up in the popular topics block on the home page.
  • Fixed issue where sometimes the sticky sidebar ad would not snap properly to the sidebar column of the page.
  • Fixed random gold text on the main notifications view page (not in the dropdown but actually in the user control panel).
  • Fixed plenty small layout/positioning/other CSS related bugs - mainly due to browser rendering differences and conflicts with old code. They'd be too numerous to log individually. Testing and debugging took place for Google Lighthouse user agent Mobile Device (Chrome Webtools), iPhone 11 running iOS Safari, various responsive breakpoints between common mobile/tablet/desktop resolutions, simulated retina-screen devices running Chrome Lighthouse UA, Chrome itself, Mac OS X Safari, and lastly, Firefox. I can't promise I fixed everything here, but I did have a really good go at doing as many as possible.

Performance
  • Much of the site's logic for the db, trade, forums, and other custom query functionality was rewritten/optimised to take advantage of more performant methods such as JOIN instead of nested queries, and leverages more of phpBB's custom functions where possible which are faster and more secure.
  • Where possible, I have replaced string comparisons with integer comparisons to speed up some of the site's routine-use queries. This meant changes to the database structure in many areas replacing varchar(255) columns with int(X) columns, and of course changing the controller(s) as well to handle them.
  • Made a full structure optimisation sweep of the phpbb_topics table prior to any migrations, ensuring that field types are compacted down to the maximum char length necessary to save on space. Many columns were converted to integer where they were TEXT before, and critical textual columns used in the most common queries were changed from TINYTEXT/TEXT types to VARCHAR(x) values to make the data inlined in the row as opposed to being fetched outside of the table with overhead.
  • The overall number of queries (and elimination of almost all nested queries) required for the the trade market's continuing functionality has been reduced significantly through a redesign of how the CRUD (create read update delete) logic works back end. This basically meant having to rewrite almost everything that powers the trading system, with the exception of the trade pages themselves which have been iterated on.
  • Parts of the database model have been revised, splitting some rows and columns from the main 'topics' table into separate tables, making some processes less intensive and reducing row/column count in this already congested table. More balkanisation of tables like this can happen in future patches as I can adapt the scripts I wrote for this patch for future table migrations. This allowed me to take a lot of 'fluff' out of the most used table in the database, which should help speed.
  • The way in which sales history is managed backend is much more condensed and performant and does not congest the active trades table like before. Sales trades are visible in full (with all comments, restrictions etc. that were in place) for 3 days after being marked sold, after which only the actual sales data is saved in a separate table (filter options of the sale are saved in this, yes).
  • This new way of archiving sales history has meant that I was able to drop 100,000+ rows (100,000 being the number of sold trades on the site so far) from the phpbb_topics table making it a lot snappier. This has reduced the average row count in this table from 140,000 to around 40,000. This new method also ensures that future sales data can continue to be stored without directly affecting the performance of live trades on the marketplace as the table is not permitted to grow by the 3 day auto pruning function.
  • Removed a number of unneeded SQL queries from the top-right live search that were bogging it down somewhat - it was being used far more often than one would think. There have been many other such cut-backs and reconsiderations made throughout the existing (pre 1.0) backend scripts to try to improve speed where possible.
  • The phpbb_topics table type was changed from MyISAM to InnoDB enabling row locking (as opposed to table locking) and transactions (more 'reliable' writing and reading to the database).
  • MySQL query cacheing buffer size increased, various configuration tweaks to take advantage of the dedicated server's resources. PHP Opcache/Xcache reconfigured.
  • phpBB cacheing extended to external PHP scripts managing tooltips, autolinks, and live searches where no cacheing existed before. I had a dozen or so custom scripts running externally from phpBB which meant that I couldn't cache the results - now they are wrapped and can use both cacheing and phpBB variables from the user's session data etc. It took ages to rewrite these in phpBB's syntax but was worth it in the end. This also resulted in some hardening - some light tasks now no longer rely on URL parameters and instead can take variables from the session data itself.
  • Cloudflare strict cacheing page rules added for the heaviest landing pages by number of HTTP requests.
  • CSS & JS now fully served minified with gzip compression. Additional CSS & JS outside of my own UI collection has been consolidated into fewer files to reduce number of initial requests.
  • Many of the scripts hit by the optimisations were complete top-to-bottom rewrites - so during this time I was able to make the code in some scripts/areas much more legible - commenting consistently so that future maintenance and dev is faster. The frontend is a different story but not as critical for this particular patch.
  • Continued detection of abusive/automated traffic with CloudFlare's tools and own logging to reduce the impact of bots on performance.
  • Various other small frontend tweaks as advised by Lighthouse/Gmetrix reports (unrelated to server performance and only considering application layer itself). Frontend was not looked at properly in this patch tbh - much more room for optimisation here, along with of course more backend stuff, next patch (1.1).
  • Current server specs: Intel Xeon 12-Core 24-Thread 16 GB RAM 240 GB SSD. This is the highest spec dedicated server that Dreamhost currently offer and is the same machine the site has been running on for about 4 weeks now (after two very hurried upgrades :lol:).
  • I really hope that you guys can feel a speed increase after this patch. This was the hardest and most time consuming part of the upgrade - I had to tear everything down, learn a whole bunch of new things, and then build it all back up again. With no way of simulating the kind of traffic the site routinely experiences, I have yet to see myself how the site will behave in the wild; I'm certain though that the changes I've made will have a positive impact, and that I've laid down some good groundwork for future optimisation. Note that there is plenty more that can still be done.
  • I have made a list of 'data refresh times' for you all to reference - so that you can see how often data is cached for before it gets 'refreshed' by the next visit. This type of cacheing allows the site to 'save' a lot of common queries from being executed needlessly, with the downside being that you won't see fresh data instantly (it will depend on the cache time). I have thought carefully about each refresh time to balance your needs with the server's needs. You can find a list of these periods in the spoiler below:
    Data refresh time description | Cached time m/d/h/m/s | (Timestamp in seconds)
    • Time for your new trades to begin showing up in the advanced search (total cache time for search results/keyword index) - cached for 5 minutes (300)
    • Changing the description or attached screenshots of a trade (time to show up in results etc.) - cached for 5 minutes (300)
    • Changing your default profile settings (platform, region, hardcore etc.) and appearance of bnet/discord IDs on trades sitewide - cached for 5 minutes (300)
    • Contents of your stash tabs and any connected details thereof - cached for 15 seconds to reduce queries for people switching between tabs on one visit (15)
    • Your current trust level as seen on your profile/stash page and trades - cached for 1 minute (60)
    • Statistics on your profile for things such as no. likes, no. of descriptions, no. comments etc. - cached for 1 day (86400)
    • Total number of active and sold trades on the market query on /trade - cached for 6 hours (21600)
    • Number of likes on database entries as seen in category areas - cached for 1 week (604800)
    • Stats for database entries as seen in different categories - cached for 3 months where static (7890000)
    • Stats for the database entries themselves (item pages) - cached for 3 months where static (7890000)
    • All statistics queries on trade-stats.php - cached for 3 days (86400)
    • Random item selections on the /database page - cached for 5 minutes (300)
    • Latest discussion sidebar topics list - cached for 5 minutes - nota bene read/unread remains instant (300)
    • Topic icons in latest discussion sidebar - cached for 3 hours (10800)
    • Results in any of the new browse trades area - cached for 30 seconds (30)
    • Trust level, about me, avatar, and other details inside a user hover tooltip - cached for 6 hours (10800)
    • Results of live user search when marking someone as the buyer of a trade - cached for 6 hours (10800)
    • Results of live db item search when creating or editing a trade/marking items sold for - cached for 3 months where static (7890000)
    • Results of ajax tooltips for item/other database entries - cached for 3 months where static (7890000)
    • Results of topic tooltips including first post preview/images - cached for 3 hours (10800)
    • Results of member profile views stats - cached for 1 day (86400)
    • Active + Sold trades on database item entries themselves - cached for 1 hour (3600)
    • Your squelch list (time until squelch effect activated) - cached for 1 hour (3600)
    • List of recent active trades on item db entries themselves - cached for 3 hours (10800)
    • Historical price data in price check results - cached for 3 days (259200)
    • Trade filter defaults as remembered when visiting pages that use these defaults - cached for 2m30s (150)
    • Icons in header of search results when searching for a specific item or browsing all trades of an item - cached for 3 months (7890000)
    • Icons and header data for price checker tool - cached for 3 months (7890000)
    • Avatars in header of search results when searching a user's posts, topics, active trades, or sold trades - cached for 3 days (259200)
    • Number of bugs fixed/feedback/contribs etc. subheader data - cached for 1 day (86400)
    • Any historical data in the price checker tool - cached for 1 day (note there is also a 3 day 'lag' before sold trades become historical data) (86400)

    If you still don't see data after the cache time has elapsed, try refreshing your browser's cache (especially for data returned inside tooltips).

Mentions
  • Thank you to our moderators @Beardozer @
    Stormlash
    @BillyMaysed for trawling through hundreds of trade-related reports every week - for addressing everyone's concerns and questions practically. I couldn't have asked for a better mod team to take on the monumental effort required to keep a watch over the market these past 5 weeks. Fun fact: the d2io moderators have taken to calling themselves 'the janitors'. Their words, not mine!! :P
  • Thank you to @Noemard and @Byte-Size for your superb and professional consultation with regards to the site's server and technical difficulties. You saved the whole site from going dark multiple times and have taught me how to be a better programmer. I have learned a bunch about linux server management too which I'm really happy about.
  • Thank you to all the contributors and recently-made contributors who have been continuing to enhance the database with insightful comments, picture uploads, statistics, data contribs, forum guides, and other text resources. I know the focus has seemingly been on trade recently, so just wanted to say thank you for continuing the original purpose of the site. You have set a great standard for future contributors.
  • Thank you to @EnragedN3wb for responding to people in the bug reports/feedback subforums on my behalf with regards to common issues/suggestions - this really took a lot of weight off of my shoulders and let me isolate myself somewhat from the more negative comments that came through from time to time. Spot on mate.
  • Thank you to everyone who donated so far - honestly I was struck by the generosity of some of you guys. These donations have given me the confidence to take more time off work IRL to do the thing I love.
  • Thank you to those who took the time to write proper bug reports with screenshots and reproduction steps. These reports were written carefully and sometimes even potential causes and remedies were suggested too. Great stuff and appreciate the effort that was taken to post. I'm sure we will meet again in the bug reports subforum very soon :lol:
  • The awkward thing about thank you lists (and developing updates) is that at some point you have to decide when to stop. So lastly a big thanks to everyone else who approached me offering their good wishes, positivity, and hope for this site. There are some good eggs out there - you know who you are.

Future Plans & Final Notes
  • As usual, I had to cut a lot of plans from the final release due to time limitations, but don't worry, if it didn't make it into 1.0 it's on the list for 1.1.
  • Next patch (after 1 month or so of v1.0 feedback) expect the inevitable bug fixes, some small tweaks, and further performance optimisation/code cleanup backend. Expect the Resurrected graphics switch in v1.1 as well. Lastly, there'll be some neat integrations between the site's 3 main features that leverage the site's data more inclusively.
  • The site may perform slowly at the start, especially in these first few days of the patch being live, as the cache is built up. I may also be restarting the server a lot after re-configurations or other changes, which will make availability patchy (but hopefully not for too long). @
    Stormlash
    advises me that if everyone sacrifices one unidentified magic
    Diadem
    to vendors that it will please the server gods.
  • There will be plenty of new bug reports and feedback/suggestions coming in - a lot has changed and I haven't been able to test everything fully in time. Please can I urge you all, before making a new bug report or suggestion, to make sure that you have read the entirety of these patch notes as there are bound to be things that have changed that you may not have noticed. Would help in cause/effect as well.
  • Before reporting a bug, please refer to the list here: Known issues/bugs related to v1.0 as your bug may have already been reported. Also, please just quickly glance at the bug reports forum to see if someone's posted before you - if you can just spare one second to do this before posting it would reduce the number of reports received dramatically and make my life a lot easier.
  • Before reporting a bug, please make sure your adblocker is turned off (if you're using one). I have explained already at length why adblockers cause bugs with text inputs and image uploads.
  • Before reporting a bug, you may want to refresh your browser's cache as it may still be rendering old code. Despite the various measures I have taken to ensure that this doesn't happen, some users/browsers may have a particularly aggressive cacheing configuration that I cannot purge. Mobile device users in particular - I strongly recommend a browser cache reset.
And that's it! Thanks for reading and hope you guys enjoy the changes :) The total development time logged for this patch was around 500 hours.

If you want to show your support for the work that went into building v1.0 of the site, you can donate by clicking here.

Teebling
A player's stash with a variety of items in stash tab 1 by default
A player's stash with a variety of items in stash tab 1 by default

7
Thank you for all the hard work!

Looking for Eye Pattern Summon Grand Charms (GraveRobber)
7
User avatar

BillyMaysed 2262Moderator

Sorceress Americas PC
So many changes. Holllyyy sheeeeet. Absolutely incredible how quickly you got this all done!!! Thank you so much!

7
Thank you for the hard work, but I am not going to lie: 10 trades on main page isn't good. I apologize, but I want to see what everyone has available as they list it (Teebling edited 0840 UTC 15th Nov - You can see 30 trades on a page in the browse trade section at this time - this is subject to increase as I monitor performance) , and I don't think needing to search should be something that is flat out required. I like the flowing marketplace, and I'm pretty disappointed, bluntly. I wish there was an option to see more than 10 trades (Teebling edited 0840 UTC 15th Nov - There is... go to browse or search - either one will show more results than just the landing page), as I really enjoy seeing all the new things posted. Finding interesting new rares is essentially gone now, as I won't ever see them. Or am I missing something?
The rest of it seems really nice, however!

edit: also curious to see my forum level reset from 99, but that's less of a concern.

I play on PS4 only for the time being. If I say I accept an offer, I give that person time to make trade before taking another offer, even if higher. I believe in my word, it is all I have.
7
Well done. Refreshed for the last few hours to see if it was complete. Now I've worked myself around the logistics of the website and must say that it is much more appealing and fresh now. Site speed is spectacular so far, to be determined further I imagine once there is a lot of traffic coming through tomorrow.

Overall very well done. Good job on the tweaks and aesthetics of the forum. Praise to the Mod and Admin team!
7
OP
User avatar

Teebling 6875Admin

Europe PC
RichterLocke wrote: 3 years ago
Thank you for the hard work, but I am not going to lie: 10 trades on main page isn't good. I apologize, but I want to see what everyone has available as they list it, and I don't think needing to search should be something that is flat out required. I like the flowing marketplace, and I'm pretty disappointed, bluntly.
I don't think you've fully looked around yet or read the patch notes. Check out the Browse Trades section, or run an advanced search, or go on a database item's page such as
Harlequin Crest
and then click 'See all active trades'.

All three of those ways of viewing trades are paginated and have 30 trades per page. I can increase this in the future, but out of an abundance of caution regards performance they will remain at 30 a page for now.

Please guys I made a big effort to write everything up for you in detail here in these patch notes. Read it before you start make suggestions or making assumptions about how the site works.
RichterLocke wrote: 3 years ago
edit: also curious to see my forum level reset from 99, but that's less of a concern.
You should read the notes - there's a section explaining how forum levels were reset.

7
I don't understand why singling out traders as "not forum members" is exactly fair, but whatever I suppose.

Am I missing something in terms of being able to see what people post as subtext to their trades in their wtb/wts post? I know we were able to see a description of what people were asking for in trades without needing to click through. And I am trying to read the notes but with no spacing it is giving me a massive headache. I'm trying......

I play on PS4 only for the time being. If I say I accept an offer, I give that person time to make trade before taking another offer, even if higher. I believe in my word, it is all I have.
7
Yes thank you for the hard work, Would have liked to see the first line or so of the comment where people usually described the stats and maybe what they wanted for their items. Now we don't see this and we need to hover the mouse over the item's name of each result of your search which is much slower.

If I am looking for specific stats or looking for the average price market it's slower than before.
7
Mrt3k wrote: 3 years ago
Yes thank you for the hard work, Would have liked to see the first line or so of the comment where people usually described the stats and maybe what they wanted for their items. Now we don't see this and we need to hover the mouse over the item's name of each result of your search which is much slower.

If I am looking for specific stats or looking for the average price market it's slower than before.

searchitem.png
Thank you for explaining you need to hover over to see, that answers one of my questions.

I play on PS4 only for the time being. If I say I accept an offer, I give that person time to make trade before taking another offer, even if higher. I believe in my word, it is all I have.
7
OP
User avatar

Teebling 6875Admin

Europe PC
Mrt3k wrote: 3 years ago
If I am looking for specific stats or looking for the average price market it's slower than before.
If you're browsing, then yeah I guess it is slower.

The whole point of this patch though was the search guys - the search let's you do very, very advanced stuff which will help you pin down anything you want. Browsing will only get you so far. Searching lets you use keywords for magic attributes - you can search the descriptions directly from that. You can combine keywords with filters, or keyword expressions with search config options, or anything you want. Go try it out! :)

7
Great update! Kudos!

I offer Uber Service, Rush Service and have many items for sale, Add me on battle.net | Hoost07#1211
7
User avatar

BillyMaysed 2262Moderator

Sorceress Americas PC
RichterLocke wrote: 3 years ago
I don't understand why singling out traders as "not forum members" is exactly fair, but whatever I suppose.
If you look on your profile it says "forum level" not "trading level". The entire point of the Trust system is for Trade, forum level is for the forums. It's now been fixed. :)

7
BillyMaysed wrote: 3 years ago
RichterLocke wrote: 3 years ago
I don't understand why singling out traders as "not forum members" is exactly fair, but whatever I suppose.
If you look on your profile it says "forum level". not "trading level". The entire point of the Trust system is for Trade, forum level is for the forums. It's now been fixed. :)
Trading is a forum here. I see no difference between the two?

I play on PS4 only for the time being. If I say I accept an offer, I give that person time to make trade before taking another offer, even if higher. I believe in my word, it is all I have.
7
User avatar

BillyMaysed 2262Moderator

Sorceress Americas PC
RichterLocke wrote: 3 years ago
Trading is a forum here. I see no difference between the two?
The Forum is called "General Discussion". The trade section of the site functions much differently.

Did you miss the part where the Trust system is for trade?

7
jeez...honestly, i skipped reading most of your updates because there were so much!
great job!
7
OP
User avatar

Teebling 6875Admin

Europe PC
RichterLocke wrote: 3 years ago
BillyMaysed wrote: 3 years ago
RichterLocke wrote: 3 years ago
I don't understand why singling out traders as "not forum members" is exactly fair, but whatever I suppose.
If you look on your profile it says "forum level". not "trading level". The entire point of the Trust system is for Trade, forum level is for the forums. It's now been fixed. :)
Trading is a forum here. I see no difference between the two?
Forum level is earned through discussion and writing in the forums which helps other people, not from posting trades that only benefit yourself and your buyer. That is why there is a distinction between trust and forum level.

7
Looks outstanding, really robust features and browsing seems super quick and snappy. Great job guys 👍

Add BigSmelly#11936 on Bnet for fastest response

See my listings here and feel free to make an offer -- I will usually consider Perfect Gems and I am ALWAYS looking for Magic Vampirebone GIoves
7
User avatar

geo89 55

Assassin Americas XLinux
awesome new look and lightning fast speed.

This is a HARDCORE trade. PC only.
7
Thx, good job. Like for new trading future. Best place for trading.
7
Can't stress how great these are, worth donating again

Thank you!!
9

Advertisment

Hide ads
999

Greetings stranger!

You don't appear to be logged in...

99

Who is online

Users browsing Forums: Avoozl, Bing [Bot], human_being, JulieP, krathkor and 601 guests.

No matches
 

 

 

 

Value:
Hide ads forever by supporting the site with a donation.

Greetings adblocker...

Warriv asks that you consider disabling your adblocker when using diablo2.io

Ad revenue helps keep the servers going and supports me, the site's creator :)

A one-time donation hides all ads, forever:
Make a donation