on the Steam Subscriber Agreement

Preface: I don’t work for Valve (as much as I would like to) and I am not a lawyer. This post is not legal advice – it’s just regular advice from someone who has interacted with Steam’s legal agreements as both a gamer and a game developer.

I’ve seen a lot of people (both on social media and mostly on the Steam forums) be worried about paragraphs in the Steam Subscriber Agreement like this:

You consent to such automatic updating. You understand that this Agreement (including applicable Subscription Terms) does not entitle you to future updates (unless to the extent required by applicable law), new versions or other enhancements of the Content and Services associated with a particular Subscription, although Valve may choose to provide such updates, etc. in its sole discretion.

Does that say Valve can just refuse to let me update my Steam client or games? Well, kind of.

In situations like this, it’s important to look at the past actions of the company you’re signing the contract with and to think about why they might have said something like this at all.

The SSA (Steam Subscriber Agreement) is a contract that primarily exists to protect Valve and make sure they can keep running Steam. One of the primary reasons it exists is to stop expensive frivolous lawsuits from being used as a denial of service attack against Steam.

In a perfect world, we wouldn’t need legal agreements and everyone would just behave. But in that case, there would be no agreement for Valve to deliver updates either, just the understanding that Valve would try to do what is the right thing to do. Which is the thing that actually determines whether Valve will send you an update.

A recent example is Steam on Windows 7. An update to an in-development version of the Steam client’s CEF (Chromium Embedded Framework) made it incompatible with Windows 7. That update will not be delivered to users on Windows 7, nor will any future client update, because doing so would cause them to no longer be able to access any of their games.

Valve has historically always made rational decisions about when to send updates to its customers. That’s the question you should be asking when you see a clause like this in a contract: it’s not a question of whether you can trust any company with those rules – you’re signing a contract with one specific company. The rules intentionally give Valve a lot of wiggle room because it allows them to make decisions about things that weren’t known when the contract was agreed to.

Similarly, I’ve seen a lot of fear caused by the claim that Valve can delete your access to games at any time. In this case, the question to ask is whether any business acting rationally would do that. Valve makes money when people buy games. Would you buy games from a service that stole games from you? Would you buy games from a service that was documented as stealing games from someone else?

No, of course not. So why might there be a clause in the contract that says Valve is not required to deliver your games to you? Well, a couple of reasons.

First of all, here’s probably the simplest and most common reason for a game to be taken away on Steam: Let’s say you ask for a refund for a game purchase you made but regretted. As part of giving you that refund, Valve has to take away your copy of the game, or it’s just them giving you free money. That makes sense – after you refund a game, you no longer have access to it.

How about if your internet service provider (such as the wifi on a train or at a university dorm) blocks Steam’s download servers? They’re not going to be able to deliver your games to you even though you still own the license.

What if Steam is simply down? Every Tuesday, Steam goes down for routine maintenance. This usually lasts less than half an hour and only affects some subset of Steam’s services, but occasionally you won’t be able to download a game for a several minute period during a week. Again, you still own the license and can still grab a fresh copy of the game’s files once the service is back up.

What if your hard drive is full, or your antivirus software is messing with Steam’s ability to download game files, or any number of other things specific to your computer are preventing Valve from delivering games to you? Well, that’s not a problem Valve has the resources or access to fix. But legally, it still means that Valve hasn’t delivered the game to you, even though the reason for that is completely within your control and not theirs.

The contract you sign is not the only thing taken into account when both parties make decisions. When you decide you want to play Kerbal Space Program, you don’t open up the contract and check what it has to say about whether you should play Kerbal Space Program right now – you just make that decision using your own reasoning. A contract can only ever restrict the actions that are allowed to be taken – that’s what they’re for. Just because it would be legally possible for Valve to do something in a literal reading of the SSA doesn’t mean it would be a good idea for them to do that, or that they would even consider doing it.

Published
Categorized as Ramblings

On “Stop Destroying Video Games”

Imagine the company that runs the water treatment plant for your city is going out of business. Maybe their rights to pump from a certain lake are expiring and only 20 houses in the city use the water they treat and they don’t feel like that’s worth renewing the rights for.

Now, in the real world, you’d have another company handling the water as they stop because water is so important, but let’s pretend you have a choice of many different pipes full of water coming to your house and you really like that one, similar to how you might have a favorite car racing game.

You know that the water is going to stop coming through that pipe and you don’t want to connect your faucet to any of the other pipes for some reason that isn’t important for this metaphor.

So what you do is petition the government to force the water treatment company that’s going out of business to modify your faucet so it can continue giving you the water you like even after the pipe stops providing water.

You think this is reasonable because the faucet has always provided you the water you like and you only paid to have the pipes installed, not to keep the pipes, so you’re pretty sure the water being delivered to your house forever is a good that you own, not a service that the water treatment company is providing.

“After all,” you think, “I’ve never seen the water treatment company in my faucet. They must not be very important to the water that’s coming through here.”


Could they make a smaller version of the water treatment plant that you can run yourself out of whatever water you have nearby? It would probably not be physically impossible.

But the budget they are working with is one of a company that has 20 customers and is going out of business. They’re not going to be able to do that for free with no engineers.

Could a group of motivated volunteers invent a small version of the water treatment plant that works well enough so that you’re happy?

This is what would be known in video games as an MMO Private Server.

Do those volunteers get help from the company that they’re replacing? No. They don’t need it, and the company likely can’t legally provide it.


A video game doesn’t need to be profitable for someone to keep it running. There are plenty of multiplayer video games that don’t turn a profit and yet keep running as hobby projects. I run a few of those.

There are also big games that might not turn a profit but which generate goodwill toward that company. For example, Left 4 Dead 2 has many official servers and zero microtransactions. Once you buy the game, that’s all the money Valve will ever get from you for that game. And yet they keep the servers running because you liking Valve and you liking Steam is worth more to them than how much it costs them to run the servers.

If you’re running an MMO and for the past three years, only twenty people have played it on average, you’re going to do the calculations and decide that the resources you’re spending keeping that game running are better spent elsewhere. You can use those servers to add capacity to a game people actually play, or for your next project.

With the calculation working as it should, you’re not even losing 20 people worth of goodwill. Some of those people will understand that services do eventually close and they probably have other favorite games you provide. A few of them might get angry, but that’s what, ten people? A big company can afford to make ten people angry if it makes a thousand people happy.

But in this specific case, it didn’t upset ten people. Or twenty people. The outrage from this one MMO that less than a bus full of people still cared about being shut down was escalated more and more, to the point where someone who hadn’t played or thought about the game for nearly a decade was petitioning a continent’s leadership to change their laws to change the completely reasonable decision you just made into a crime. And 155,000 people signed that petition so far.


I don’t know how ECI(2024)000007 is going to end, but I can imagine only two outcomes:

Maybe nothing happens because forcing a company to perform an expensive redesign of a system that they’re discontinuing and can no longer sell at all (such as, in the specific case of the MMO “The Crew” which is what sparked this petition and remains the only game mentioned on the petition’s website at the time of this post, due to licenses for the depiction of branded cars expiring after a decade) or to share code that they cannot safely distribute (such as code that is also used in multiplayer games that still have an active playerbase that could result in an attack on those players’ computers) or that they cannot legally distribute (it is very common for games to have code that is licensed under NDA from many different companies) makes no sense.

Or maybe the petition does go through and there’s a law in every European country that states that when a multiplayer video game goes offline, the developers of that game are required under some penalty to rewrite the code of the game in order to keep it running after they’re gone.

And in the latter case, assuming there’s a grace period before the law takes effect, you’re going to see the end of many, many multiplayer games that simply cannot do that.

Published
Categorized as Ramblings

Ben Lubar’s 2024 wishlist for Valve’s Steamworks

Steamworks is a set of APIs and tools that Valve provides to game developers and players free of charge. This includes things like the ability to ban disruptive players from playing your game in VAC-secured multiplayer servers, a forum for discussing your game, stats, achievements, leaderboards, the Steam Datagram Relay, matchmaking systems, language preferences, beta branches, the Steam Economy API (which allows any game with an inventory system to allow cross-game trading), the Steam Inventory Service (a free, hosted implementation of the Steam Economy API), game and DLC file management, the Steam Workshop (where player-created mods can be shared), screenshots, artwork, reviews, broadcasts, points shop items, and the list goes on.

Without more ado, here is my list of things I hope Valve adds or changes in Steamworks in 2024:


Achievement Groups

This is actually already a feature that is used by exactly one game I’m aware of: Team Fortress 2. Expanding the ability to group (and relatedly, manually sort) achievements to all games on Steam would make it easier for games that add new achievements after the game’s launch to denote that certain achievements are part of a DLC, or just to group achievements by theme. Maybe a player is only interested in achievements they can earn by playing as a medic, or only achievements for speedrunning levels.

My recommendations for this feature are:

  • Make achievement groups availble to all games on Steamworks
  • Allow achievements groups to be associated with a DLC so that players without that DLC don’t have achievements they can’t earn counted towards their completion of the game (this is a reason why many developers avoid adding achievements for DLC)
  • Allow achievements to be re-ordered in the admin panel, rather than always being listed in the order they were added.

Inventory Service Additions

This is one area where Valve has already implemented some features I specifically requested because they felt they would be useful to a wide variety of games. Items can display the values of dynamic properties on the Steam community, add text to their descriptions based on accessories, and the data type (integer, boolean, etc.) for dynamic properties can be enforced. Other developers have also requested and had added features that I find useful, like BBCode formatting in item descriptions.

My recommendations for additions to the Steam Inventory Service in 2024 are:

  • Time-limited items. Item definitions would be able to specify a validity duration in seconds (default infinite) and a rounding window in seconds (default 1). When an item is created, its creation time is rounded to the rounding window and then has the validity duration added to create the expiration timestamp. After the expiration timestamp, the item can no longer be used in exchange or consume actions and will eventually be removed from the player’s inventory (similar to a consume action, but not user-initiated). This could be used by a game to implement random weekly buffs per-player, special event items that are automatically deleted when the special event ends, and so on.
  • “Complete the set” generators. Similar to how playtime generators are generators the player can trigger based on a set of criteria, “complete the set” generators would be generators that dynamically remove options from their bundle based on what a player has obtained from that generator in the past. “Complete the set” generators would have a loop count (default infinite), and when a “complete the set” generator is activated, it would record which option from its bundle was chosen on the player’s account.

    On future generations, the options that have been chosen previously would be omitted from the bundle, so a “complete the set” generator that has a 50% chance of generating item A, a 30% chance of generating item B, and a 20% chance of generating item C might generate item A on the first attempt, and then on the second attempt it would act as if it was defined with a 60% chance of generating item B and a 40% chance of generating item C. Once all possibilities have been generated, the list of generated options is reset, and once the loop count is reached, the “complete the set” generator becomes a standard generator.
  • Exchanges that don’t consume one of their ingredients. This would be most useful when coupled with time-limited items. For example, a hidden time-limited item could be used to implement a crafting cost reduction or bonus to dropped items. Not consuming the time-limited item in this case would mean that the expiration time would not change due to a new item being generated from the exchange. This could also be used to implement “unlocking” a recipe. Although it is currently already possible to do this by generating a new copy of the “unlock” item from each craft, making the item non-consumed would make it easier to keep track of item IDs as the “unlock” item would not be repeatedly re-generated during a single play session.
  • Custom Steam Community actions. This is a simple one, but possibly useful to a wide variety of games. The Steam economy service allows items to define buttons players can click to open links. For example, Team Fortress 2 uses this to display links to its community-run wiki. Another possible use would be opening a game-owned website where players can log in using OpenID and perform modifications on items that might not be safe to allow clients to do directly. Items with art on them could link to full versions of the art, similar to how Steam trading cards work.
Published
Categorized as Ramblings

where I’m at

When I had a “real” job:

  • made about $1k per month
  • ran DFHack build server
  • administrated a forum and a social network
  • one of two lead developers for a free game on Steam
  • spend most of each day monitoring multiple forms of communication for bug reports and other tickets
  • running tech support for a product almost exclusively used by developers somehow resulted in the most information-sparse tickets ever

Now:

  • make about $8 per month
  • run DFHack build server
  • administrate a forum and a social network
  • one of two lead developers for a free game on Steam
  • maintaining an online card game
  • spend most of each day monitoring multiple forms of communication for bug reports and other tickets
  • people seem to be better at explaining their bug reports when they’re just random people who might not even speak the same language as me

so overall the main changes are that I went from not being able to afford moving out from my parents’ basement to still not being able to afford moving out from my parents’ basement and that I’m getting better bug reports

oh also the main east-asian country my output is used by has changed from japan to china


sometimes I think about that $8 and what it means about the value of my work. and the hard truth is: it means nothing

if I had charged money for what I made, I wouldn’t be running a turing-complete online card game with dozens of custom modes. I wouldn’t be developing a game that has been played by millions of people with 94% positive reviews and thousands of first-time players every day. because there are a lot of other people out there who don’t have a lot of money to spend on entertainment, and seeing them happy means more to me than anything I could buy with money

I am incredibly blessed to be in a situation where I can survive on $8 a month, and I wish everyone could spend all day doing things they were interested in and not have to worry about where their next meal will come from or where they’ll sleep

Published
Categorized as Ramblings

Don’t worry about Mystic Coins

We’ve had some pretty heavy posts on here so far. Let’s have a light one instead.

On Friday, ArenaNet posted about upcoming rewards in the expansion pack that’s being released in a few weeks: https://www.guildwars2.com/en/news/guild-wars-2-end-of-dragons-strike-missions-balance-and-rewards/

Reddit, predictably, was very angry about this.

You don’t have to read what I’ve linked to. In fact, you don’t even need to read any of the sentences in this post at all. If there is a thing, it’s safe to assume that Reddit is very angry about it.

So what happened?

The ArenaNet blog post has three main points:

  1. Removal of Mystic Coins as a reward for Fractal Challenge Mote Bosses.
  2. Addition of a new source of guaranteed Mystic Coins from End of Dragons Strike Missions.
  3. Rebalancing of availability of discounted Mystic Clovers.

Which point is Reddit angry about? All three of them. Again, you can just assume that if there is a thing, Reddit is angry about that thing.

Let’s break it down.

Mystic Clovers are a resource used to craft legendary items. You need 77 Clovers to make a legendary sword and 15 to make a legendary pair of pants. The main method of obtaining Mystic Clovers is random, but on average they cost about 3 Mystic Coins, 3 Globs of Ectoplasm, and some amount of a non-tradable resource. If you’re not in a hurry, you can get 7 Mystic Clovers and a bunch of other stuff just by logging into the game on 28 different days. If you play competitive game modes, you’ll get Mystic Clovers just by playing enough.

Globs of Ectoplasm are obtained mainly by salvaging rare and exotic gear obtained by playing basically any part of the game. A few hundred years ago, Globs of Ectoplasm were worth so much that they were used as a higher-value version of currency, but now they’re common enough to be a non-issue.

What about coins?

Mystic Coins are a little harder to come by. You can buy them from other players, but of course they have to come from somewhere. The easiest method of getting Mystic Coins is, again, just logging into the game. On the 1st, 8th, 15th, and 22nd days of the 28 day cycle, you get 2, 4, 6, and 8 Mystic Coins (respectively). You don’t have to log in on consecutive days; you always get the next reward if it was a different day last time you logged in, no matter what.

You can also get Mystic Coins by winning automated PvP tournaments that happen multiple times per day, with a big one happening once per month. The biggest reward you can get from automated tournaments contains 100 Mystic Coins, which 10 players in the world can obtain each month. If you play a lot of World VS World, you can get 2 or 4 Mystic Coins from the Gold and Diamond tier skirmish chests.

Once per day, players can obtain a single Mystic Coin from the Ley-Line Anomaly, a boss that spawns in one of three zones every two hours. If Daily Mystic Forger is a one of today’s objectives, you can get a single Mystic Coin essentially for free.

Completing Daily Fractals of the Mists also gives a chance to get Mystic Coins – up to 9 per day, but doing so has a vanishingly small probability.

Recall that you need 77 Mystic Clovers to make a legendary weapon, or about 231 Mystic Coins. 231 Mystic Coins is a very long term goal, and this assumes you’re not getting Mystic Clovers from any other source.

There are a few one-time methods of getting Mystic Coins and a few ways to get them from seasonal events, but for the most part, those are the ways by which Mystic Coins enter the economy.

Except one.

The one method of obtaining Mystic Coins that’s going away is killing one of seven bosses known as “Fractal Challenge Mote Bosses”. These are very challenging boss fights that only a small portion of the community have even completed once.

These bosses drop 0 to 3 Mystic Coins, with the majority of kills giving 0.

With this change, the number of Mystic Coins you can obtain per day from Fractals of the Mists is changing from theoretically up to 30 but more reasonably 0-3 to theoretically up to 9 but more reasonably 0-2. Not a big deal, and it only really affects people who could consistently kill seven of the most challenging bosses in the game over and over every day without getting bored.

What’s replacing it?

Very simply, the repeatable boss fights in the upcoming expansion will allow players to obtain up to 10 Mystic Coins per week. There’s no random chance here; if you play enough, you will get all ten Mystic Coins every week.

We’re going from a tiny fraction of the community getting up to 30 mystic coins in a week to essentially the entire community having access to 10.

Alright, what else?

The final change mentioned in the blog post is that discounted Mystic Clovers were changing from 2 per day to 25 per week, and that the cost was changing from 1 Mystic Coin and 3 Globs of Ectoplasm to 2 Mystic Coins and 2 Globs of Ectoplasm.

Even with the increased Mystic Coin cost, you still save over 200 gold when crafting a legendary weapon on average. The 25 per week is split up between game modes, with 10 in Fractals of the Mists, 10 in Raids, and 5 in Strike Missions.

So what?

In short, don’t worry about it. The changes may negatively affect the liquid gold income of a very small group of players, but most should see increased access to the materials needed to craft legendary equipment.

And at the end of the day, if all you’re interested in is making as much money as fast as possible, the best way to do that is and always will be working a real life job and converting some portion of your paycheck into in-game funds through the gem store.

But most of us don’t work a video game. We generally try to play.

Published
Categorized as Ramblings

Mastodon is crumbling, by design

Several people have written articles about the problems in the Fediverse already, and every single one of them has been harassed constantly since they published their article.

Today I’m doing what none of them have done yet: I’m publishing a second article. I’ve been jobless since my previous post on this blog, and the harassment that started that day hasn’t gone away in the year since.

Published
Categorized as Ramblings

June 16th, 2020

Update (June 18th, 2020): The head administrator has stepped in to undo all of the changes I made, including the banning of the user that directly sent me death threats. I have requested that all my data be deleted from the forum. Under the GDPR, he has 1 month to comply.

Yesterday, I removed an administrator from the What the Daily WTF forum and issued 1 permanent and 4 temporary bans.

To an outside observer, this may have seemed like a sudden, drastic response. But this is a day I had been planning for quite some time. And it went more or less exactly as I had planned for.

Here’s what went down.

Published
Categorized as Ramblings

Part 1: Create the Entire Universe

Last time on Get into Dwarf Fortress, we downloaded Dwarf Fortress. This time, we’re going to set up our first embark. But first, we need to create the universe.

Start up Dwarf Fortress. On Windows, run Dwarf Fortress.exe, and on Linux or Mac OS, run the ./df script.

The Dwarf Fortress main menu screen.

Press Enter to open the simple world generator. There’s also an advanced world generator, but we don’t need that right now.

Part 0: Get into “Get into Dwarf Fortress”

16 of the 30 voters wanted a Dwarf Fortress tutorial.

That said, I’m going to use this first post to explain what I want to do with this series. First and foremost, I want this tutorial to be a living document. If something changes in Dwarf Fortress that invalidates one of my posts, I’m going to come back and fix it. If there’s something people ask me to explain in the comments, I’m going to consider writing a post explaining that.

Most importantly, however, I’m going to be very careful with this tutorial not to alienate new players by giving them way too much information at once. Each post is going to have a specific topic and won’t deviate from it.

This series was last updated for Dwarf Fortress version 0.44.12. I’m only writing that version number once for the whole series, because when a new version comes out, I’m updating everything, not just individual articles.

hello again

I’m back with my new WordPress blog. I didn’t import the old WriteFreely posts yet, and I’m not sure whether I will, but if people want them back I can definitely put the time in to restore them.

If you were following my blog on the fediverse, you just need to unfollow and re-follow.

That’s all for right now.

Published
Categorized as Ramblings