As Spring blooms to life around us, it transports us here on the Dota team to the springs of yore, when the world was new and vibrant. Who could forget climbing that old oak tree by the bridge? Or stealing carrots and turnips from cranky old Farmer Maggot? Or taking that ring to Mordor, and casting it into the fiery pits of Mount Doom where it was forged?
Dota Plus Seasonal Treasure
That last part of our spring memory trilogy is especially relevant today, since we’ve uncovered another priceless treasure. And this time it’s too good to throw into a volcano.
The Spring 2024 Seasonal Treasure is here and available for purchase with shards. This treasure features all new sets for Disruptor, Dark Willow, Spectre, Chaos Knight, Doom, Earth Spirit, Underlord, and Nyx Assassin. There's also a chance to unlock the Sir Molestach Irondrill courier, who arrives in the lanes bearing random prismatic and ethereal gems.
We've also taken sets that were available in the Summer Treasure 2022 and made them available for direct purchase for 15,000 shards each as part of the collection of legacy sets in the Shard Shop.
Updated Seasonal Quests & Guild Rewards
Today’s update also comes with a new set of Dota Plus quests to shore up your shard stash for new relics and the Seasonal Treasure — offering up to 115,200 shards over the course of the season. Guild rewards have also been updated, making new emoticons, sprays, and chat wheels available to high-scoring guilds.
Guild Tier
Rewards
Silver
Emoticon - lion_bounce
Emoticon - rainbow_phoenix
Emoticon - riki_peaceout
Gold
Spray - Aghanim - Push
Spray - Bounty Hunter - Riches
Spray - Hoodwink - Acorn
Platinum
Chat Wheel - "Что это?! Какая жесть!"
Chat Wheel - "Ooooh, por dios!"
Chat Wheel - "你行你行,你上你上"
Introducing Dota Labs
In addition to the Dota+ content, today's update introduces a set of experimental features available to all Dota players, and a new way for us to ship experiments like them: Dota Labs. (We had fun coming with names like "Unstable Concoctions" and "Tinker's Tinkerings" but ultimately decided we'd rather have the name be boring and clear and the features themselves be interesting.)
If you load up your options menu, you'll see a new tab with the Dota Labs label. Features here are experimental, and less polished than many other features we ship, so they're all in a special menu and disabled by default. These are features where our playtesting has produced mixed or ambiguous data. We can't really know if they're good or how to make them better without seeing real Dota players using them, so we're shipping them in an earlier form on purpose so you can tell us whether they're worth continuing to invest in.
The initial set of Dota Labs features includes:
Overlay Map. It's sort of just like the minimap, but it's large instead of small, and transparent instead of solid, and is full-screen instead of being isolated to the corner. We have a bunch of questions, including but not limited to: Is it helpful for your playstyle? How do you interact with it? What do you wish it did?
Modifier Key Filter Bindings. Targeting commands in chaotic environments can be challenging, and misclicks can be devastating. Dota does the best it can with your inputs, but sometimes it really does look like you wanted to Laguna Blade that creep. This new feature allows you bind modifier keys that, when held, will force your target selection to enemies, allies, creeps or heroes. Which targeting methods are the most and least useful in practice? What are we missing?
High-Visibility Local Hero Healthbar. Dota teamfights can be hectic, and sometimes in the chaos it's hard to keep track of your hero. This option significantly changes the styling and readability of only your hero's nameplate. Does this help, or does it introduce even more visual chaos?
We fully expect that some of these features (or future Dota Labs ideas) will mature and graduate out, while others may be retired. Which are which depends on you.
Some of you reading this are probably excited about trying these features out, but worried about whether we'll continue to use them moving forward. "The last time you introduced a new named Dota thing, you called it Between the Lanes, and it's been some months since you last posted one of those." You're right! We figure the best way to make the point that we're planning to continue to invest long-term here is to continue to invest long-term there as well, so: Enjoy today's Between the Lanes as well.
Welcome back to Between the Lanes, a blog feature where members of our development team walk through some of the challenges, bugfixes, and occasional happy accidents we encounter while working on a game as unique as Dota.
This is a story about the internet, and how it doesn’t work like it should, when it works at all, except when it doesn’t. It’s a story about how the internet stopped working for our customers, and how we fixed it.
The internet is more of a wild frontier than we give it credit for being. Stray from the safe confines of your two-factor identification and trusted cookies, and it can be a bit of a wilderness out there, full of random trolls with the maliciousness—and, increasingly, the ability—to make your life pretty miserable for no other reason than because they can.
Back in 2014, the method those trolls were using was distributed denial-of-service (DDoS) attacks. “Distributed” refers to a large number of internet hosts maliciously flooding a particular target IP with traffic in an effort to overwhelm the network stack. This is called a volumetric attack, and the intent isn’t to try to get into the network. It’s just trying to deny service. A distributed denial of service means that legitimate people who want legitimate service are crowded out by the bad traffic.
The problem with DDoS attacks was that, by late 2014, they weren’t being committed by data-exfiltrating super-hackers with advanced computer science degrees. They were being committed by just about anybody who wanted to pay a service or a bot to do it for them. And it’s pretty obvious why. Although some people were happy to do it purely for vandalism’s sake, others had a motive: A DDoS attack was a surefire way to shut down a match that either you or someone you were rooting for were losing. This wasn’t just an occasional irritation anymore. It was turning into an outright assault on any game where players competed.
By the opening months of 2015, we were seeing a huge uptick in DDoS attacks on Dota and CS:GO, with other companies reporting a huge jump as well. Someone had, very suddenly, made it very easy for anyone to do this.
In August 2015, The International was disrupted with DDoS attacks. Although the pros playing the match weren’t affected, for more than two hours, the broadcasters couldn’t get into the matches to give play-by-play and color commentary. Sending out the stream as a TV broadcast became an issue. The players were suddenly playing in a void. This was a professional gaming event with millions watching and millions of dollars on the line, and it was being disrupted by random people with five-dollar software. It was a problem Valve couldn’t ignore.
We tried several solutions to deal with DDoS attacks before we arrived at one that worked. Initially, we attempted to filter the traffic with a powerful network switch. Unfortunately, this type of filtering is inherently difficult to do with game traffic. It is the nature of game servers to receive unsolicited UDP (User Datagram Protocol) traffic from arbitrary IP addresses. Imagine you had a post office that weeded out unwanted junk mail for you. But now imagine your job is as an advice columnist, and you receive tons of legitimate mail from random strangers all the time. For you, the post office doesn't know what's junk mail and what isn't. That's how traffic to game servers tends to look. Furthermore, the source IP in UDP packets is not secured, and can be easily spoofed. Our post office cannot even look at the return address on the envelope for clues, because the senders of junk mail forge that.
Steam delivers a lot of bits for game content, and has built up a large network for doing so. We were already taking advantage of this network to deliver game traffic over dedicated links, obtaining good peering, ensuring that networking engineering best practices were used, etc. This kept player ping times low, but did not protect against DDoS attack. The problem is that UDP protocols are not secure, so while we had our own network, it wasn't private.
To prevent attackers from using our own network to attack our servers, we needed to control all the entrances and secure them. We accomplished this by creating proxies for game traffic, routing every single packet of data transmitted across the network through relays. Now when a client wanted to talk to a game server, it had to do so through a relay that both authenticated it and proxied that traffic to the game server. This meant the IP address of the server was always hidden—the attacker simply had no idea where to attack.
To re-use our antiquated post office metaphor from earlier, our spammer no longer had an address to send junk mail to. They could send it to every post office in the area and ask them to mail it, but without authorization, that post office isn’t going to. (Moreover, that post office would find it a little suspicious that someone was trying to send a single person 100,000 letters.)
But couldn’t you just attack the relay? Technically, you could. But we have an essentially limitless number of them, and we built them to be attacked. A “relay” is just another word for a computer running software. You can attack it or take it offline, but the protocol was designed with that assumption in mind. If a client is trying to play a game and loses contact with a relay, it just switches to another. Relays are like hundreds of pawns scattered around the world with the singular purpose of guarding the game server. (Incidentally, taking out a relay is harder than it sounds. They’re engineered pretty well and positioned in a specific part of the network, so although they were built to be taken offline, we haven’t lost one yet.)
The solution was straightforward but effective. Before, if someone wanted to disrupt a game, they could just overpower a single game server (a very low bar to clear). Now they had to overpower essentially the entire data center—a much, much, much higher bar. Are there attacks that could still accomplish this? Of course. Are there attacks that can do this that anyone online could buy for five dollars? No. An attack this sophisticated was officially out of the price range of most people.
With this new system up and running, we had an epiphany: If we controlled our own private network, we wouldn’t be beholden to how the normal internet works. We could use it to make the customer experience even better. With the normal internet, when you send a packet from one IP address to another, the route you use is determined by Border Gateway Protocol (BGP). This is a routing algorithm that decides how your packet will travel across a network, and you have no choice in the route it picks.
But with a virtual private network composed of hundreds of global relays and data centers, we could essentially choose our own route from the client to the game server—often a faster shortcut than the default route. If you’re using Steam Datagram Relay (SDR), the Steam overlay will show your ping time and what route we’re giving you, so you can see for yourself how it gets optimized.
A feature that started as a way to protect Dota game servers has grown past what anyone could have expected. The SDR network routinely delivers as much as 140M packets and 550GBit per second. We have relays in 31 data centers with a capacity of over 5TBit. What we now call the Steam Datagram Relay not only protects against DDoS attacks, but also increases connectivity and lowers ping for every Dota customer. And it doesn’t just do this for Dota, but for any game on Steam that wants to take advantage of it.
We hope you enjoyed another peek between the lanes of Dota. This was a pretty technical one, thanks for hanging in there for it! And feel free to let us know what you’d like us to cover next.
We're hard at work on an upcoming update we're calling "Crownfall", and we're excited to get it finished so you can see what we've been working on. We looked at a calendar and noticed it had been more than a few weeks since the Frostivus update, and we didn't want to make you wait until Crownfall before you got any new content. Luckily, the calendar gods came through with another holiday just in time: Happy Lunar New Year!
People who are born in the Year of the Dragon are known for their generosity, prosperity and good luck. Must be nice. For those of us who don't have a magical dragon granting us gift-giving super powers, we've introduced red enveloped-themed Dragon's Gift, available from now through March 7th. These work exactly how they’re named: treasures that can only be given, and opened by whoever you choose as the recipient.
And for those of you who would rather not wait around on the generosity of others, we've got traditional Dragon's Hoard treasures as well. Each treasure or gift contains one of 17 new Lunar New Year-themed cosmetic sets, and a bonus chance for a Dragon's Gift or new unusual effect.
Lastly, every treasure (and gift) has a chance to contain The Ancient Dragon King, the first ever cosmetic for your Ancient, with unique Dire and Radiant styles. Now you'll finally have a chance to adorn your ancient with a mythical dragon, just like, presumably, you've always wanted. Plus, if anyone in your match has one, everyone can see it.
In keeping with this "spirit of giving" theme, we have another gift for (almost) everyone: We've rolled out some new cheat detection code. Well, actually, we rolled it out a few weeks back, and we've spent the time since accumulating quite the set of cheaters. You'll probably notice fewer of them in your games as the automated ban waves roll out.
As is tradition, this update also includes a number of other fixes and improvements:
General Fixes:
Fixed a number of issues that would prevent guides from loading in-game (If you manually enabled Steam background downloads to try to work around this problem, you can safely disable it again)
Fixed another case where Roshan could go walkabout: Night Stalker casting Dark Ascension while Roshan was channeling a Twin Gate
Fixed an issue where already-captured Outposts could be channeled
Fixed an issue where the neutral item picker would hide on key release under some Quick Cast modes
Fixed Doubloon having only +2 instead of +2.5 mana regen
Fixed Eternal Shroud's magic resistance applying to illusions
Fixed Eternal Shroud's interactions with Medusa Mana Shield
Fixed Safety Bubble's tooltip not mentioning that the barrier bypasses self-inflicted damage
Fixed an issue with the effects on Shiva's Guard
Fixed Chen's Holy Persuasion not taking Turbo's creep bounty multiplier into account when giving gold on cast
Fixed Legion Commander's Aghanim's Shard still giving bonus armor and duration for Overwhelming Odds
Fixed Marci's Unleash proccing upon Bloodstone pickup and drop
Fixed Muerta's Gunslinger being purgeable
Fixed keybind not working to upgrade Ogre Magi's Multicast
Fixed a bug that allowed inactive Phantom Lancer's illusions to block Neutral Camps
Fixed a rare server crash with Primal Beast's Uproar
Fixed column shop layout not displaying Khanda and Harpoon
Added magic resistance from Intelligence and increased damage for Universal heroes to expanded tooltips
In Turbo, show the "[Hero] was chosen by both teams!" message to everyone, not just the player who tried to pick the already-picked hero
Added spell icons for Windranger's Gale Force when using Compass of the Rising Gale
Increased performance when displaying many chat messages from global channels
Fixed various tooltip issues
Updated tips shown during pause for the 7.35b Gameplay Patch
Ability Draft Fixes:
A number of previously unavailable Scepter/Shard abilities are now granted, some abilities are accessed by toggling auto-cast on the base spell:
Glacier granted with Marksmanship
Crystal Clone granted with Frostbite
Parting Shot granted with Pierce the Veil
Work Horse granted with Stampede
Burning Barrage granted with Skeleton Walk
Friendly Shadow granted with Shadow Walk
Counterspell Ally granted with Counterspell
Lightning Hands granted with Arc Lightning
Burning Army granted with Death Pact
Unrefined Fireblast granted with Fireblast
Poison Nova granted with Noxious Plague (Poison Nova passive ability is hidden)
Chemical Rage now grants Greevil's Greed. It will appear as a buff instead of on the ability bar.
Fixed Spirit Bear not having any abilities.
Fixed Blinding Light not appearing as a draftable ability.
Fixed Alchemist have 4 basic abilities at draft, which would push other abilities off by one.
Cloak and Dagger Shard no longer grants Sleeping Dart.
Ravage Shard now grants Dead in the Water instead of Tendrils of the Deep.
Invoker Ability Draft Shard updated to the new EMP Shard instead of the old Meteor Shard.
Proximity Mines now grants Minefield Sign as an additional ability.
Fixed Shadow Wave and Dream Coil's Scepter attacks not working on melee heroes.
Fixed Spirits working on illusions when you have a Scepter.
Fixed Ogre Magi getting Multicast instead of Dumb Luck as an innate.
Fixed Primal Spring, Pulse Nova, Rot, Infernal Blade, and a number of other abilities not granting stacks of Fiery Soul.
Fixed Talents not appearing for Starbreaker, Cinder Brew, Phantom Rush, and Power Cogs when the ability is drafted on their original hero.
Fixed Death Seeker not being togglable with hotkey.
Fixed not being able to toggle Call of the Wild Hawk to switch between Hawk and Boar.
Fixed Hairball appearing without a hotkey until it is toggled.
Fixed Chemical Rage Scepter not giving bonus damage and spell amplification.
Fixed Horn Toss being given by Shard instead of Scepter.
Fixed Rain of Destiny being given by Scepter instead of Shard.
Fixed Hunter's Boomerang and Decoy being given with either Shard or Scepter.
Fixed Timbersaw getting Second Chakram with Scepter. It now is only granted with the talent if Timbersaw drafts Chakram.
Some items from the Frostivus 2023 Treasure Chest were missing unusual variants. Those have been added. Over the next couple days, unusual items from these sets that should have been dropped will be granted.
In addition, over the last few days we've addressed several gameplay issues:
Fixed Frostivus wards not being selectable/attackable
Fixed an issue where pinging certain items in quickbuy could cause the game to lag for teammates
Fixed an issue where Arc Warden Tempest Doubles could gain gold by selling Midas
Fixed Doom Devour Neutral abilities not leveling up automatically at the time when neutral abilities would scale
Fixed Lina permanently gaining Fiery Soul stacks until she casts another spells if she was broken when supercharging with Laguna Blade
Fixed Tiny Tree particle showing at the wrong time
Fixed a rare server crash with motion controlled abilities (e.g. Spirit Breaker Charge of Darkness)
Fixed an issue with Profile Showcase where items could appear floating before the rest of the hero loaded and fixed an issue with anchor points on ultrawide monitors
Added missing descriptions for various recipes
Fixed some bugs in the tutorials in the Learn tab caused by the 7.35 Gameplay Patch
Another Frostivus is upon us, and that means King Kringle has awakened from his hibernation under the wine-dark Blood Seas surrounding Frostivus Castle; sent his legions of abducted goblin-child toy miners to dig in his toy mines; hooked up his twin glowing red-eyed direwolves Lumpo and Rupertus to his bone sleigh; and is likely either on top of your house or inside of it right now.
So if you’re on his Nice List, prepare to have your frosty halls decked with new and returning Frostivus cosmetics, a ton of quality-of-life client features, new Dota Plus premium sets, and gameplay patch 7.35, all of which you can read all about right here.
On the other hand, if you’re on the Naughty List, we’ve got great news for everybody else and bad news for you, because this year is gonna be a bloodbath. You might remember back in September, we got out the ban hammer and permanently banned 90,000 smurf accounts. Since then, we've continued to invest in player behavior monitoring, on both the manual and automatic analysis fronts. Over the last few weeks, we've engaged in an even more aggressive ban wave, including many tens of thousands of smurf account bans today alone.
At The International, some pro players reached out to us to talk about their smurf accounts. Those conversations have continued, and there’s broad agreement amongst pros that banning pro smurf accounts is a win for Dota as a community: The rules should apply to everybody, and from now on they will. And smurfing isn’t even the only naughty thing players are getting up to. Amongst other questionable choices, some bad actors are playing like jerks, ruining games and losing behavior score because of it, then hiring behavior score farmers to drive it back up.
Regardless of how you’ve been naughty, we've been watching you (not while you're sleeping, calm down) and we’re cracking down on all of it. Punishments will be handed out for all of the above, including behavior score penalties — and in serious cases, main account bannings.
As we’ve said before, smurfing (and other negative behavior) makes matches worse, and we want to make sure your matches are as good as possible as we head into the new year. So we’d like to wish everyone a Happy Frostivus Update! Except smurf accounts, who we assume will not enjoy the update as they choke on their richly-deserved coal-flavored just desserts.
Frostivus 2023 Treasure Chest:
Each chest contains one of 30 items split across 4 Tiers, or a Cosmically Rare Baby Roshan courier.
Items of the same Tier have equal rarity. You will not receive duplicate items from each Tier until you have received each item once.
Five items from the same Tier can be traded up for a random item from the next Tier.
The Cosmically Rare item is contained in 1 out of 100000 chests. Other chests contain an item from one of the 4 Tiers. Starting with Tier 1, each item has a 10% chance to upgrade to the next Tier.
When opening a chest or trading up for an item, there is a 1 out of 300 chance to receive an additional Unusual item -- either a copy of the item, or if it is a set, one of the items in that set. Each Unusual item has a random special effect. The three effects have equal rarity.
Bug Fixes:
Fixed an issue where if a hero killed in Chronosphere dropped Gem of True Sight, the Gem's cooldown would remain frozen
Fixed a rare crash with item combines
Fixed an issue where if an ability with a frozen cooldown had its cooldown frozen again, it would unfreeze too early
Fixed an issue where abilities with intrinsic buffs could fail to have them applied when purchasing Aghanim's Shard
Fixed an issue where switching abilities (or gaining Aether Lens etc.) wouldn't update the cast range circle if it was already being displayed
Fixed Chaos Knight's Chaos Bolt particles sometimes losing their location
Fixed Dawnbreaker's Starbreaker providing pure damage immunity without Aghanim's Shard
Fixed Earthshaker's Bindings of Deep Magma set to show the correct (new) particles for the new (10th Anniversary) style and to properly delete particles on expiration
Fixed Hoodwink's Bushwhack cast reticule sometimes highlighting trees outside the area of effect
Fixed some animation issues with Tusk's Walrus PUNCH!
Fixed a bug where Vengeful Spirit's Magic Missile with Aghanim's Shard could bounce to invisible enemies immune to True Sight
Fixed an issue with the Voodoo Restoration particles on Witch Doctor's Awaleb's Trundleweed Immortal weapon
Fixed highlighting on the Neutral Item Slot to only highlight when there is at least one free token in the stash, rather than any item from any teammate
Fixed an issue where casting an ability with Alt held down would also ping
Fixed lifetime timers for wards and summoned units being clipped in the HUD
Fixed talent descriptions sometimes being blocked by hotkey names
Fixed Tower denies appearing as chat messages rather than as combat events
Fixed stickers showing as available in Armory even though the capsule containing the stickers might not be available
Fixed showing sticker capsules from ended events as purchasable
Fixed Item Received popup not showing global items properly
Fixed an issue with Play Unranked where ticking Show All Modes could make the section unusable
Fixed sometimes showing pro players' Steam persona names instead of the correct names
Fixed long names overflowing in History and Battle Stats pages
Added an additional notification for Workshop custom game authors that have not yet updated their custom models away from the deprecated pre-ModelDoc format, as described in the 2022 Spring Cleaning update and the Dead Reckoning Update
'Twas Frostivus Eve, and all 'cross the map, The neutrals were quiet, their camps left unstacked. We'd gorged on a feast of bluehorn and spiced creep, And had just settled in for a peaceful night's sleep.
When up on the roof, with a house-shaking thud A creature had landed, and sniffed for our blood. A sword could be heard being dragged 'cross the shingles; Then the chimney exploded, and in came King Kringle.
His silhouette stalked through the splintered debris Of branches and cinders where'd once been our tree. He righted an armchair (still quietly smoldering) And sat down with three sacks he'd been up till now shouldering.
"A DARK INCANTATION," his hollow voice boomed Like a sepulchral drum being banged in a tomb. "A SACK OF GIFTS PRESENT, A SACK OF GIFTS PAST, A SACK OF GIFTS TAKEN (BUT OFTEN BROUGHT BACK)."
"Excuse me," I said, crawling out from the rubble, "The gift that I'd like, if it's not too much trouble: Please don't kill my children. Please don't kill my wife. We'd rather you left and spared everyone's life."
He emptied a sack and adjusted his helm. "THIS FIRST SACK OF GIFTS IS UNKNOWN TO THIS REALM: THE NEMESIS CURSE, THE WHISPER OF DREAD, THE MOONLIGHT TIARA, AND MUCH MORE," he said.
In the ensuing silence not a lone breath was drawn. I coughed to help jog him. "Well, please do go on." His gauntleted hand dumped sack two on our floor. It was full of new items! Wait, I'd seen these before...
"SOME GIFTS I'VE IMPROVED, AND SOME I'VE DERANGED. ALL THAT NEED CONCERN YOU IS THAT THEY HAVE CHANGED. THE ORB OF CORROSION, ARCANE BOOTS, BLOODTHORN. THESE AND MORE I HAVE ALTERED SINCE LAST THEY WERE WORN."
We looked through the items he'd spilled on the floor. "These are lovely," I told him. "But you'd hinted there's more?" "THE THIRD GIFT," he said as he grabbed the last sack, "IS MY FAVORITE KIND... THE GIFT I TAKE BACK."
"Not Ring of Aquila! Please not Titan Sliver!" "Not Penta-Edged Sword!" I sobbed with a quiver. "I'M TAKING THEM ALL," he said with a laugh. "AND QUICKENING CHARM AND GOOD OL' QUARTERSTAFF."
Two sacks were now empty; the third one was stuffed. He grabbed them and back up the chimney he huffed. He sprang to his bone sleigh and winked a goodbye. Then flew from the roof and tore open the sky.
And we heard him exclaim, as he left the facilities— "THE TORMENTOR AND ROSHAN SHALL HAVE NEW ABILITIES!"