DataStores Access and Storage Updates

you gonna be fine gng you never made a voxel game so stop speaking for people :heart:

1 Like

He has valid concerns. Take a game like plane crazy for example. High detail players will struggle because their builds can easily exceed thousands of blocks per save files. Reducing the data amount per player will cripple the game and make updates that people actually care about delayed, or perhaps even abandoned while the upcoming data issues take precedent. And all that is not to even mention the struggles the game could face implementing new blocks now that the data will be so heavily capped

1 Like

games like plane crazy have premade blocks iirc. all you need to is assign a few bytes for each block name and call it a day, and also store colors if any

1 Like

In plane crazy each block is premade, but color and material data will have effects going forward, not to mention specialty blocks with functionality like actuators blocks, seats, and control data. Each material also has data for physical properties that are considered in the game’s physics calculations. I just don’t see this being as scalable as it was considering the new update, and I’m extremely concerned about that bottlenecking innovation in not only sandbox games, but also any massive rpgs, story games, and player driven roleplay communities.

1 Like

I can’t be downplaying this if I have a real experience and real data to show for all this. You, and several of the people saying this isn’t good, aren’t approaching this with an extensive overview of your data architecture and a review of your observability dashboards.

The problem with this armchair experatism is that if you haven’t actually built out your systems (i.e. done the work), stress tested it and reviewed the impact it has, then you’re purely driving fear in hypotheticals and that completely drowns out important information that others need to be seeing. You can’t dismiss everyone as “misinformed” if they disagree with you, and even moreso if you reply to someone providing a real battle-tested solution with what you assume will be a problem. The experience in question I’m working on has 3 million visits, by the way.

So show that then, don’t just say you have it - prove it. Show your data structure and how much you’ve optimised it. Show a top player who’s pushed the extent of your experience’s offerings and how big their data file(s) actually are. No one, neither I nor the people saying you’re overreacting, have ever denied these use cases - but you aren’t relying with substantive, real data at all, which is the exact problem.

Half of you will realise that if you actually look at your dashboards, you are going to find that you are flying far under the limit and that there was never anything to be worried about, and then you lose your ammunition to say “Roblox bad” when they’re actually increasing their offering. If so many of you are running into the problems you claim to have, then there wouldn’t just be ONLY 30 experiences ON THE ENTIRE PLATFORM that are pushing or over the limits. Period.

There’s no way you read my post explaining how much data I save and said I use tiny bits of data? I think you missed the part where I mentioned that I save data up to 16 times over for character class data alone.

No it won’t. If you want to be taken seriously, then provide screenshots of your DataStores dashboard and information on your structure, otherwise you’re just spamming fearmongering nonsense here and not being helpful towards explaining troubles you’re actually having.

If this actually affected you, you would have been messaged and you would’ve been able to detail the exact problem your experience is running into. If you don’t build out your systems and actually see this in action, then you’re just making up problems that don’t exist to call this update bad.

I speak for myself. My point has always been: stop spamming the thread with armchair experatism. If you have real criticisms, then show real data so Roblox can better understand your problems. Stop talking in problems you haven’t actually had. Actually show that you have players that are exceeding several MB in data and that your current total allotment isn’t enough.

Someone in the thread earlier replied with an announcement from a developer saying they were using 12TB of data with only 6TB allotted; that’s a real example of a real problem. What about you? Are you consuming 4TB of data with only 1TB allotted? Show up with numbers, not fantasies.

I’ve listened well and still say that you aren’t providing anything substantive to the thread until you provide real metrics.

3 Likes

21.5KB is 0.0215MB. It’s not even close to 0.1MB. For 105 keys? You have insanely small data consumption. You don’t hit the maximum value per DataStore key limit (4MB), much less come close to hitting the lifetime player increase (1MB per lifetime player).

Which is what I mean that developers here don’t really understand how big a megabyte actually is and that’s probably what’s scaring them about this update, all while not realising the amount they’re offering is significantly larger. Remember: 100MB is the baseline, and most experiences aren’t even hitting close to this number. This is everything from player data to global storage needs like leaderboards.

The per-key limit is still 4MB, and increases by 1MB every time a unique player simply joins. So the reality of the matter is that you actually get 5MB per player slot.

Close. The ~30 experiences mentioned in the thread are the only ones with that concern. The rest of the developers here need to put boots to ground and develop out their systems then stress test them to the absolute maximum and show that this could affect them for real instead of assuming it will.

People need to be mindful of doing the following before saying this will be an issue for them:

  • Check your observability dashboard. Roblox gave this tool for you to forecast your data usage and almost no one who’s saying this will affect them posted a single screenshot of their dashboard. Why not? Are you scared of actually being proven wrong by the numbers and losing ground in saying this update is bad?

  • Share your data structure. How well have you optimised? What is the extent of your saved data? What steps have you taken on your end to the best of your ability to keep data concise and minified? Are you prioritising functionality or readability, and can you forego some readability if you have a predictable structure (e.g. represent some things by a letter instead of a full word)?

  • Share your game design. Don’t tell us what you’re going to do; tell us what you have done. What is the full extent of things people are allowed to do in your experience? Have you considered any intuitive limitations or ways to naturally encourage small files (e.g. incentivising the sale of buildings for more powerful ones so they don’t have old ones lingering)? Do you allow save files and how many? Have you studied other games outside of Roblox that are freeform building and can you take any lessons from them, such as if they also limit players in some ways?

  • Share some tests. If you have a data structure written out, stress test it. Fill it with dummy data to the maximum extent that you realistically expect to allow, and don’t just say “unlimited”. Most developers don’t know how to shard data so the grander assumption should’ve already been of having player saves each be 4MB maximum… which you literally can still do.

I think part of the problem is that developers missed this very important piece of clarification:

Your current use cases are almost entirely unaffected. The ONLY difference now is that your total storage limit scales based on how many people are playing your experience. Everything else is INCREASING. Quite literally, the baseline amount of storage per experience is MORE THAN WHAT MOST EXPERIENCES USE IN TOTAL RIGHT NOW.

Just FYI: a reminder that all the posts I’ve made in this thread are as someone developing a massive story-driven RPG game. I realise I should probably provide a link to it at this point:

You’re welcome to look up some information on this game besides some technical details I’ve shed in this thread and see how involved the game is. For all that it is, ~100KB is still our top players’ biggest save file, which barely even tickles any limits.


tl;dr: Bottom line, if you aren’t seeing something like the below:

You’re worrying for nothing until you’ve done everything you can and end up with an image like this on your observability dashboard.

5 Likes

Tell me you don’t know anything about sandbox games without telling me. Sandbox games data scale over time, not per player. Data is constantly generated even if new players dont join. Especially when it comes to voxel games like the one im making, we are at constant risk of hitting data limits.

I already compress my data, and only save the changes, best case scenario you will be using 4 bytes for 1 voxel (position, voxel type). Thats 250K blocks per 1MB. The issue is thats 250K changes to blocks, not only ones you place. Might seem a lot at first but you will be surprised how quickly players eat away that limit.

This is completely ignoring that voxel data is often times more per block because you need to have more than 256 blocks to make a good game. You also have extra metadata you store on occasion like rotation, state etc. Realistically, you can fit around 100K blocks into 1MB while being completely “safe” that you wont pass 1MB per player. Imagine if minecraft told you this after you caused 100K blocks worth of changes:

"Sorry you have hit your data limits, undo your changes to play further :pleading_face: "

Worst thing when it comes to my game, my worlds aren’t bound to players. They are all persistent worlds and part of a mass map. This means any change done on any world is saved. It was going to be one of the main features of my game. You may tell me “Just don’t do that” but that is the point, why should I remove my game features because roblox decided to screw everyone over 30 games using bit too much data. I may stop using roblox altogether then, because this also sets precedent to further limitations down the road.

Like I told the other person, you can sit here and continue to spam the thread up with armchair experatism and tell everyone who disagrees with you that they’re wrong and have no clue what they’re talking about, but until you show real data, it’s hard to take your criticisms seriously, and it’s just burying useful replies and people with real problems, which is beyond annoying to see.

Show a picture of your observability dashboard.

I am well aware of what creating a sandbox game entails, it doesn’t take effort to figure that out, but 90% of the people in this thread are not creating infinite virtual worlds, rather they are creating experiences that desire construction in a limited environment.

Breaking news: Minecraft worlds don’t allow infinite building either, their form of limitation is world bounds, very large world bounds, and they can do that based on how their data infrastructure works. Roblox is no different, except developers here are expecting Roblox to provide them absolutely infinite amounts of storage to make absolutely infinite worlds, which most games of the sandbox genre, if not all of them, don’t even allow. All of them place intuitive limits in some way.

You’re on the Roblox platform, so that means you have to work within Roblox’s limitations. It’d be a different story if you were paying for your own storage then go crazy but you aren’t, Roblox pays for you. You have to meet at the middle with what they offer and what you ask for and how much financial resources they can afford to put towards this, whether or not their whole data infrastructure is cheap or not.

The same goes for when people keep making feature requests to not have the 20-minute disconnection; it exists for a reason and Roblox doesn’t support that use case. Roblox supports the most they can, and sometimes they increase that offering, and that’s for you to work within. You can ask for more, and I don’t deny you that, but while more doesn’t exist, these are the limits you have to respect. And from what I can tell, you don’t have a real case scenario still after 3 days of spamming the thread up with armchair experatism, and are still talking about what “could” happen to you instead of what IS happening to you now.

Someone already replied to you about replying to threads like this. Deja vu. I would get tired of not listening to anyone for three days too.

Anyway here’s my observability dashboard:


2 Likes

I told you about my usage already. Again its not about how much I am using right now, its about scalability.

I am.

Minecraft saves all generated data. Their data usage is horrible. But they can afford it thanks to access to the filesystem.

The point isnt this. Roblox is downgrading their platform constantly. Just because it doesn’t affect you now doesn’t mean future updates wont affect you.

Corporate greed apologists is crazy indeed.

You gave me a use case, not analytics. Show a picture of your observability dashboard showing that your experience is undergoing stress because it’s close to the data limit. You’ve never shown a single picture or shared a single design format through all your posts.

Well, there you go. Minecraft’s limitation is the user’s filesystem. Roblox is a cloud platform, so the limitation is how much storage they can purchase. If they can afford it, they will buy more, as they have done in the past when DataStores originally adhered to a 256KB value limit and dramatically decreased throughput.

And ask yourself if you need to. Every game has or is naturally limited in some fashion or form. This is the point of where intuitive design choices in my previous posts come into play. To me, it sounds like you are not doing any of that and just throwing everything possible into a DataStore. Have you truly done everything you can to bring down the amount of data you’re tracking? And if so, again, then detail your architecture and show a picture of a world pushing limits. You never will though because you don’t have an actual case of this happening, right? It’s all about “what-ifs” not “what is”.

It will never not be funny to me that Roblox developers will throw around the most sorrowfully negative comments and ad hominems against people who disgaree with them.

I simply believe in providing clear, concise and proper criticism with real data because then that’s how we strive for better, by actively showing that the majority of us are hamstrung by no longer supporting absolutely infinite data storage (not financially scalable) and instead scaling it by players (therefore allowing larger experiences to thrive).

There needs to be some kind of metric to allow it to scale, and players are the best way there, even knowing that such types of games rely on global data more than anything. The alternative, one that I’ve advocated for, is to allow developers to be able to purchase more capacity on their own. But until you’re purchasing your own storage, this isn’t “corporate greed apologism”, but being pragmatic about the fact that Roblox is offering all of what they do for free.


In short: you can keep exhausting yourself and everyone else by saying you “might” have issues, but don’t expect to be taken seriously if you aren’t actually having those issues. Deploy your game, get a stress test going, share some real analytics. Otherwise you’re just spamming negativity and fighting made-up demons to get your daily quota of “Roblox bad”.

2 Likes

image
Happy now? I wish it was as simple as you said. I wouldn’t be here complaining if it didn’t affect my game.

Roblox tells you that they support experiences of any type. I didn’t expect wonders but I did expect them to not downgrade their engine. 3 times. In the span of 10 months.

I wish I haven’t so I could improve it further. But I have. It doesn’t get more compressed than this. And way to assume that I made a whole voxel game in Roblox and ignored compression completely. You are completely assuming I know nothing about how data or games work.

Your words:
image
image


After I showed you evidence, told you that I wouldn’t be here complaining if I did have other options and told you that I am complaining because roblox is making 30 game’s problem the entire platforms problem, if you are still defending roblox, then yeah you are a corporate apologist who is on the mentality of “It doesn’t affect me, surely everyone else is wrong, dumb and stupid if they criticize my beloved platform”.

2 Likes

Could be possible with http service and having players sign up to a cloud database or something

Yes, that is way better, you have an actual case scenario where you are shooting over the projected budget of your game. This is what you should’ve provided from the start. So now the next step is to assess your architecture and game design principles within the limitations of the Roblox platform as far as the current offerings go.

It is entirely true that Roblox says they want to support as many different experiences as possible, but you do have to fundamentally remember that Roblos is a distributed platform hosting millions of experiences and services for free that you would otherwise have to both architecture and pay for yourself. Limits are a natural consequence of this.

Developers and Roblox need to meet down the middle. It is not feasible and financially tenable long term to actually offer infinite storage (it never is, they just buy more if they need to) to every single type of experience on the platform. This is done by Roblox increasing their offerings as their financials show promise, and by developers pushing for more but also working with what Roblox does give and designing their experiences with this in mind.

Sure, it doesn’t always feel great to gut features when there’s a shortcoming on some end, but this doesn’t just apply to DataStores. So ultimately if you need more than what is offered, it’s time to start considering other options or distros of your own (i.e. move some of your data storage off-platform and bear the costs as well).

Quite the contrary actually. Like I said before, because I have zero information on how you architectured your data systems because you hardly provided any, I have to make broad and worst case assumptions, but also make sure and ask these questions to keep you grounded.

I’m not assuming your personal knowledge; I’m assuming your current structuring and design principles expecting infinite storage rather than finite, without potentially considering that limits might eventually get imposed.

Notice that I’m speaking in general statements and not tunnel visioning on compression because that is only one aspect of reducing data storage. There are many other factors, from game design to naturally encouraging minified builds, that go into this topic. There is no one single strategy that fits all games; everything must be considered. That’s the point of me discussing game design.

Out of the 13 posts you’ve made on this thread:

  • Your first post is off-topic, complaining about completely unrelated issues and talking about having to abandon your “voxel game” without explaining why you would need to.
  • Your second post similarly says “data heavy small games” will be affected, doesn’t explain why.
  • Your third post provides a use case but no analytics and fearmongers over nothing. (Really? “Roblox will make higher player counts paid too?” This is just outright silly.)
  • Your fourth post is just saying the same thing as what someone else said: consider purchasing your own storage that you can do whatever you want with. There’s a lot of good providers out there that offer pay-as-you-use. I do encourage staying on platform as much as possible but other providers shouldn’t be ruled out.
  • Your fifth post provides no information.
  • Your sixth post says people who have small-but-dedicated playerbases will hit the limits fast. I showed you my observability dashboard for an experience meeting this exact statement. I’m assuming you mean in general since you didn’t specify if the “small game” in question was a sandbox game or not. In my case, I have a story-driven RPG with extensive data requirements, and the only reason I’m at 200GB is because I have tons of dummy data that hasn’t been deleted yet.
  • Your seventh and eighth post are pure fearmongering.
  • Your ninth post is made up on pure assumptions for a case you don’t know about. You don’t know how Oaklands stores data, nor their requirements, likely haven’t looked into if they impose any gameplay limitations to help reduce this if at all and if they were one of the 30 experiences contacted by Roblox for direct support on working with the limits.
  • Your tenth post talks about “expressing concerns” but still only talks about a “what-if” and doesn’t include any actual analytical data anywhere, and you’re already talking about how Roblox will “impose more limits” when Roblox themselves says they’re working on doing their best to increase their offering.
  • Your eleventh post starts to shed a bit more light on your requirements, but still shows zero analytics on a real environment.
  • Your twelfth post is just purely “Roblox bad”.

You said you showed evidence but I checked your entire post history and it wasn’t until your thirteenth post - this one - that you actually started to show even a little bit of effort to provide information on your circumstances. No one should have to fight you this hard to get information. If you have a real problem, your very first post should contain screenshots of the dashboards Roblox provides showing that you’re in the warning zone, details about your circumstances, and requests for help on reducing; or, alternatively, ask good questions about the future of DataStores and if more can be expected.

Constructive criticism is good; whining and complaining without providing substantive feedback doesn’t help anyone, either Roblox to get an idea of the problems you face or anyone else from seeing a real scenario where they might be troubled by the new limits. There is a massive difference between “omg roblox limiting update bad games are done for its over we all lose” and “my experience has extensive data saving requirements but we’re also punching over the limits we do have” or “is there any chance that the budget could be increased in the future?”.

If all you do is call this update bad and don’t deeply explain why, then who benefits besides your own entertainment? No one has analytics or information on what you’re dealing with in order to clearly see what even though you’ve done everything you possibly could and also work within the platform’s constraints, you’re still falling through and need help either through rearchitecturing your data or hoping Roblox increases their offering.

So once again: I’m not defending Roblox, I’m simply pressing you to improve the way you provide feedback, because your posts aren’t constructive feedback, they’re just hollow whining and arguing with other users. If you’ve known me or seen my post history, you would know that I don’t “defend Roblox” and when I want something done I’m persistent about getting answers but I make sure to provide my exact circumstances, why what Roblox has now (or lacks) destroys my ability to create on the platform, and what I want to see.

2 Likes

i’m not gonna Argue here since this is not the place for it.

but i will make few points clear

you are still in wrong you didn’t even read what i said.

3 million visits is nothing i have multiple games that have reached 40 million visits and above
and your still telling me what my issue is not real.

and also if your Simulator game not using any data ofc it isn’t.

please don’t educate people when you have 0 to no Experience into the matter
and when they tell your in dead wrong call it armchair experatism

we do use own systems and architecture. i would explain in great details how it works and how is done but this is not the place to talk about it.

and 3rd i don’t have to provide you any metric , my issues is still the same if i had a metric or not.
the types of games i make and enjoy are in danger and will have to actively make the game worse to follow these new limits.

please don’t be rude to people and don’t call their issues armchair experatism
what you are doing is right now is exactly called armchair experatism you are not effected by the any of the changes and your playing down what and many of my colleague take into issue.

i can get into metric to all the details and use but if you would like to know about please dm me.

1 Like

If you have many more million visits than me then you have access to far higher limits lol. I’m not even sure why you’re pretending like you’re concerned: you have an allotment of 1.63TB and used 40.3GB (which is 0.04TB). You’re barely even close to your own experience’s limits and this is even after it’s been wrecked by DataStore2 (not your fault). Heck, you haven’t even had a chance to see what your new consumption would look like after undoing DS2’s wreckage.

I didn’t even reply to you up until the first time you replied to me when I said it was upsetting that this thread was getting spammed up with nothing substantial, which is that you suggested you would be affected by the new limits. You are so unaffected that you could duplicate your existing data 5 times over and you wouldn’t even be at 25% usage of your total budget.

Not sure why you’d call my game a simulator when it isn’t, lol. It’s very much a heavily involved dungeon-crawling RPG with heavy requirements for data storage and yet my accounts have yet to pass 200KB worth of data. 98% of games on the platform will remain unaffected. The remaining 2% are building games; 1% of which refer to the 30 experiences affected, and the other 1% being any other building game that’s yet to surface their issues.

You guys can continue to say I have zero experience in the matter but at least I was brave enough to provide screenshots and information about my data architecture and observability dashboard instead of waxing hypotheticals, so the posts really speak for themselves. Optimisation is one of the things I focus on with my experience and if you need more information about what I do with data then simply ask and I’ll be happy to provide. Weird how disagreeing is “having zero experience”.

This literally is the place to talk about your architecture and metrics. Roblox reads these threads and combs them for substantive feedback to improve their products. This literally is the place you want to explain how these limits affect you and show exactly how they do. Rhetorical question: what do you think is more informative, the post that shows analytics or the post that says “these will hurt me” and then it never actually does? This happens with every major Roblox update, even the introduction of the client-server model was no different, and look at how many of those complaints held water. Now it’s just the expectation to adhere to it.

My main point, and what has always been my point, is that until you show a real case scenario of being affected by this limits, then you haven’t put enough effort into proving that these will affect you, and it makes it more difficult for Roblox to understand the urgency to revise their limits.

It shouldn’t take people more than 2 replies of back-and-forth banter to get you to finally provide real details, metrics, analytics and your observability dashboard. Between you and me, we aren’t affected by these limits. And nearly everyone else won’t be either. Building games may, but maybe they should show actual data and forecasts with real numbers. Empirical evidence goes a long way to getting support or convincing Roblox they need to do better.

Do keep in mind that all of this goes into affect in 2026, a whole year from now. There is still plenty of time for Roblox to assess community need so long as the community is clear about it. Don’t fight me and your fellow developers; start by giving proper details about your circumstances.

2 Likes

Let me cut this short, I am not obligated to provide any info to you or others for that matter, unlike your claims, I did tell that the issue here is how the data storage scales in my first posts. I know many game owners of similar genre’s personally, know how they handle data. All of them are affected and are scrambling for solutions. I do not care if you don’t believe me or think that I am lying, overexxagerating or else, just because your inexperience doesn’t allow you to imagine “How can you use more than 1MB per player on average? :thinking:”.

If Roblox was competent they would fix the issue of 30 games issue individually by telling them to fix their data, not make it the 99.99% of the platform’s problem.

I wish this wasn’t an issue for me. It is. So here I am complaining so maybe Roblox can realize they are hurting the platform. Roblox doesn’t even fix longstanding bugs and completely ignores years old feature requests, they do not care about “constructive criticism”, if they did, we wouldn’t be here. They will only act if there is enough backlash. Of course I am going to be harsh if they say something and do otherwise, thats called false advertising.

This isn’t the first time I got threathened in the devforum, told that I don’t know anything, over criticism. Oh well, guess thats what happens with a majority kids based platform. I hope from this point on Roblox introduces further limitations.

As for my final thoughts, yeah ur smart, im dumb. Should have gotten good. This suddenly isn’t a problem because Colbert told me so! Yay.

1 Like

Roblox discovered through their own heuristics that the limits they’re offering now are the best solution between giving small experiences a hefty boost and attempting to accommodate larger experiences. And, they’ve also mentioned many times that they are open to improving in the future.

100% agree that you aren’t obligated to provide anything, but if you don’t, then no one has any idea of what real problems you’re facing, so the constant doomposting isn’t helpful for Roblox to know why the new limits are hurting you.

It’s okay to discuss the scaling being too low to accommodate a certain niche of experiences, that should be encouraged. Bring your use case to the table, absolutely. Though if you want to be helpful to others, then give some actual information as well. I could very well join in on the “NEW LIMITS BAD” hate train and hide the fact that my bad data architecturing and uncleaned data is the reason I feel that way. I don’t because I know what my problems are and explored this through analytical means because I have a live experience with real players to sample from. That is my encouragement to other developers in the thread: spin up a server, get analytics, post 'em, and it’ll improve the discussions that happen internally about this.

Roblox provides a wealth of analytical tools at your disposal to help you work within the platform’s existing limitations, but if you can’t be bothered to even use them, then how is Roblox going to know it’s a problem with their offering and not just bad architecturing on your behalf? That’s the beauty and importance of providing information. You don’t have to, yes, but in turn no one knows your circumstances and just has to assume something.

Some experiences’ player data can exceed 1MB in size and this is not including if you offer save files, yes, but remember that a key’s value still can’t exceed 4MB. Part of the 100MB baseline, to which most experiences don’t cross, is for having wiggle room for overflow.

Plus, it’s not like every single player of yours is maxing out their data. People just randomly joining to check things out and then leaving without ever playing again provides you that increase. Players with barely any data and who don’t return are the sacrifice for your more dedicated players to be able to expand evermore. Your top players are never going to threaten your budget that badly. Again, this is an assumption on my part, since I don’t know what test scenario you used that resulted in you being 300MB over your allotment or if that’s your current live data, which then absolutely I agree you’re in trouble and need some help either from imposing gameplay limitations or from Roblox increasing their base offering.

Let me be clear again: I’m not saying don’t complain. I’m saying don’t complain without going into detail about your circumstances or without providing SOME kind of screenshot of an observation dashboard showing danger signals. Only when you’ve done everything you can and you’re still in the yellow do you have a real problem on your hands that you should make Roblox aware of for help.

1 Like

Whatever you say :+1: , you are right after all I cannot be right I don’t know better. Good day

1 Like

I don’t think continuing this discussion here will be productive, take it to a DM if you want.

13 Likes

I think changing the requests to per experience is much better for cross server interactions, such as messaging service, memorystore or match making, where some datastore requests may be “off loaded” to one server on behalf of the cross server interaction, without intervening with the limits of the server itself and potentially impacting players in one server. This will literally eliminate any type of such worry or consideration of looking into custom implementations of when and where to off load requests. Awesome change.