Factorio

Factorio

View Stats:
Gauron Aug 15, 2023 @ 12:04am
Have anyone found a solution to the UPS issues?
Okay so im keeping this generic because getting the same advices about entity decrease, no nuclear and the rest are practically just bad workarounds for the game's core issue.

The moment your base gets too big, the enemies too numerous or you just using the "wrong" type of transportation too much the game speed starts to tank as it cant handle that many entities.

Turning off core gameplay elements like the biters and pollution helps but thats equal to saying if your leg hurts just chop it off. Designing a base with the idea that everything should take the least amount of entities in is also just some workaround.

Has anyone found a way to boost the UPS drastically with a mod or with manipulating the game files yet?
Originally posted by brian_va:
Originally posted by Gauron:
Originally posted by brian_va:
And just scanning the list of names, there's probably over 10000 hours of playtime experience responding to you. If there was a magic mod, someone would know of it. The only ups mod I remember was ups up, and it basically disabled biters, pollution and stuff you can do in game now.
I basically just hoped that as time moves on someone might found something new to boost UPS.

You know kind of the same way as people in other games wait for that one modder who can perform the miracle and change the way the game is played or fix an old bug or just revive the game (like how the old fans of Firefall wait).
this is a rare example of a dev that really cares. the game probably spent a couple years extra in early access because 95% perfect wasn't good enough.

in all fairness, yes, it would amazing if a modder or the devs found a way to push performance forward significantly. i think the upcoming engine update will be a good step forward, but thats not really something a modder could do, and i wouldn't expect there to be a significant increase either, the game is already very well optimized. its playable on a switch, after all.
< >
Showing 61-75 of 85 comments
Zefar Aug 20, 2023 @ 10:56pm 
Originally posted by knighttemplar1960:
That would be incorrect. Every pipe section used is calculated. 11 pipes takes more processing time than 2 pipe to grounds that stretch the same distance. I won't try to explain it further because others have all ready done the job.

These are links that can be found in the Factorio wiki that explain it. the 2nd one is a 20 page dissertation.
https://forums.factorio.com/viewtopic.php?f=18&t=19851
https://www.reddit.com/r/factorio/comments/6w9kwi/factorio_and_fluid_mechanics_science_facts_myths/
Those two topics are from 6 YEARS ago. I think Fluids have gotten their code changed a bit.
Edit: https://www.factorio.com/blog/post/fff-274
Yup they updated it in 2018 which is 5 years ago. They mention performance improvement on it as well.


Also in the Space Exploration mod I was pumping various new power plants with new pumps that reaches 10000 or 20 000 fluid per second and I needed 4 of them. I had to have about 20+ normal pumps to even supply the water for it.
I also used the same system to pump oil from sources outside of my base.

It did not really affect my UPS at all and majority of my base is still producing stuff. Specially fluids because I was pumping them into barrels to send to space.
This constant too because I use up those barrels of petroleum all the time.


Originally posted by knighttemplar1960:
That was not the point being made. Every active chunk takes more processing time. Keeping your base small and not activating chunks that you are not going to use saves processing time and UPS.

Space Exploration is a good mod to check this on but on normal mode you'll need to explore A LOT and I mean A LOT in order to get sluggish performance from the map coverage.

We're talking about zooming out to max level and explore all of that area.
Whatever your pollution reaches will not be an issue.

Originally posted by knighttemplar1960:
We've all ready covered how reducing the number of entities on the map reduces the drag on UPS. The OP did not want a mod that reduced entities or to hear advice about reducing entities. He considered those "bad workarounds".

In any case none of this advice solves UPS draw in a vanilla game and using direct insertion and keeping logistic networks and bot use to the minimum has also all ready been covered.

The things I mention are the only real stuff that is going to affect the performance. Other than exploring your map to the very edges. Because yes that'll cause problems but just avoid doing that.

When I've had FPS issues in Factorio those are the things I need to look over in order to improve it.

I brought up the building that removes pollution as an example of how it does nothing to performance. You can let it be smog city and it won't be a problem. I didn't bring it up so he can use it.
Last edited by Zefar; Aug 20, 2023 @ 11:17pm
PunCrathod Aug 21, 2023 @ 7:05am 
Originally posted by Zefar:
Originally posted by knighttemplar1960:
That would be incorrect. Every pipe section used is calculated. 11 pipes takes more processing time than 2 pipe to grounds that stretch the same distance. I won't try to explain it further because others have all ready done the job.

These are links that can be found in the Factorio wiki that explain it. the 2nd one is a 20 page dissertation.
https://forums.factorio.com/viewtopic.php?f=18&t=19851
https://www.reddit.com/r/factorio/comments/6w9kwi/factorio_and_fluid_mechanics_science_facts_myths/
Those two topics are from 6 YEARS ago. I think Fluids have gotten their code changed a bit.
Edit: https://www.factorio.com/blog/post/fff-274
Yup they updated it in 2018 which is 5 years ago. They mention performance improvement on it as well.
The post is from 6 years ago because the fluid system has not changed since then. What that FFF-274 is talking about never got included into the game. The rest of your what does and does not affect ups and why is just speculation based on incomplete data and mostly wrong.
Last edited by PunCrathod; Aug 21, 2023 @ 7:05am
knighttemplar1960 Aug 21, 2023 @ 8:07am 
Originally posted by PunCrathod:
Originally posted by Zefar:
Those two topics are from 6 YEARS ago. I think Fluids have gotten their code changed a bit.
Edit: https://www.factorio.com/blog/post/fff-274
Yup they updated it in 2018 which is 5 years ago. They mention performance improvement on it as well.
The post is from 6 years ago because the fluid system has not changed since then. What that FFF-274 is talking about never got included into the game. The rest of your what does and does not affect ups and why is just speculation based on incomplete data and mostly wrong.
Indeed. The wiki is kept very much up to date. If the links were no longer valid they would have been removed from the wiki.
Maltsi Aug 21, 2023 @ 8:17am 
Originally posted by PunCrathod:
Originally posted by Zefar:
Those two topics are from 6 YEARS ago. I think Fluids have gotten their code changed a bit.
Edit: https://www.factorio.com/blog/post/fff-274
Yup they updated it in 2018 which is 5 years ago. They mention performance improvement on it as well.
The post is from 6 years ago because the fluid system has not changed since then. What that FFF-274 is talking about never got included into the game. The rest of your what does and does not affect ups and why is just speculation based on incomplete data and mostly wrong.
out of curiosity, do you know/remember why they didn't include the new fluid mechanics they talked about? because that looked pretty nice change
Vyndicu Aug 21, 2023 @ 8:32am 
Originally posted by Maltsi:
out of curiosity, do you know/remember why they didn't include the new fluid mechanics they talked about? because that looked pretty nice change

All I could find was that they ran into problems and decided to back out of the new fluidbox algorithm. There was some fluidbox optimization that did release with the 0.17 patch.

Originally posted by Factorio Fact Friday #283:
The fluids
We were testing the algorithm, and there was a lot of back and forth, but the time was running by and there were some problems not that easy to fix. To prevent things from getting broken in a ways we couldn't anticipate and not to potentially delay the release any further, we decided to split the change.

So the fluid mixing prevention and fluid update optimisations are in 0.17, but the new algorithm was put aside for further research.

Source: https://www.factorio.com/blog/post/fff-283

Edit: Forget to link to the blog.
Last edited by Vyndicu; Aug 21, 2023 @ 9:00am
RiO Aug 21, 2023 @ 12:57pm 
Originally posted by Zefar:
Loaders, just search for them on mod sites. I think they are pretty popular.
Loaders; real loaders - not faked ones that use a system of hidden inserters, like the Miniloader does - are the inverse of UPS-heavy. In a saturated environment they are far less CPU-cycle consuming than inserters, because:
  • They do not have to swing an arm that actively tracks against belt speed, availability of items passing by, etc.
  • They do not have to take into account complex interplay with possible other inserters operating in the same tile that may pre-empt them, leading them to need to compute and redirect the arm to the next viable item.
  • They do not have to care about stack limits, recipe times, etc. Basically: they just pump into the assembling entity's interface until bursting.
  • Because they pump an inventory full until bursting, they are far less prone to the sleep;wake-up;sleep;wake-up cycle of inserters. Sleeping and waking of entities is expensive. (Among other things, it requires recomputing the load on the electric grid.)

Loaders get a bad rep for basically two reasons:
  1. Mods like Miniloader which are implemented using multiple very rapidly swinging inserters along with some scripting to try and keep their timings nailed down to match belt speed. They have all the UPS-downsides of multiple inserters including additional scripting that tries to constrain them and keep them in lock-step with belt-speed.
  2. Mods that do use the native loader prototype; but add prohibitively expensive scripting to make the loader prototype capable of loading inventory into and out of trains. Which is where most people wanted to use loaders for high throughput, but the real loader prototype originally couldn't natively interact with vehicle inventories. So it had to be done via very expensive Lua scripting. (This has since been rectified. Native loaders do support interacting with trains and other vehicles now.)

Originally posted by Zefar:
The amount of items you have in your Logistic Network. If you have millions of items each they are going to eat up a ton of UPS to keep track of it.
It's not so much the number of items that matter as the number of inventories connected into one logistics network and the number of inventory grid cells to scan through to find those items.
If you have a logistics network with hundreds of logistics warehouses with hundreds of inventory slots each, that are all jam-packed with nothing but billions upon billions of iron ore, then finding a provider chest from which an order can be created to pull ore is trivial.
Meanwhile, if you have that same scale of network and warehouses and have one a single satellite stored that needs retrieval, then if you're in bad luck it's at the very, very. very end of a linear table-scan.

Originally posted by Zefar:
Factorismo. Those Warehouses you can enter. For me these ate up A LOT of UPS in my Space Mod and even when I removed most of the heavy ones they where still at 1 point because I had a few left.
Factorissimo eats approximately as much UPS as anything that uses multiple surfaces. Space Exploration included. It's just that you're prone to scaling up the number of surfaces in use much faster with slapping down 20 or so factory halls, than you are likely to rocket yourself to 20 different planets to settle.

Originally posted by Zefar:
I liked to use Warehouses mod which gave a storage building 2000 slots and they could come in any color. So I liked to horde a lot of items. Which lead me to have millions of certain items. At most I had 19 million of Iron plates or so.
But I noticed in my run of Space Exploration that the amount of items I had was actually bad. When I reduced the all of the items so I had less than 900 000 max of one item the game would run better.
It's not the amount of items that matters. It's the size (in number of slots) of the inventories that each inserter; loader; or bot has to scan through to find the correct item to pull out; to find the correct stack it can add an item on to; or find the first empty slot to create a new stack if no such stack could be found.
Last edited by RiO; Aug 21, 2023 @ 12:58pm
Gucky Aug 21, 2023 @ 2:36pm 
Best CPU for the game is the 5800X3D or 7800X3D. The 3DV-Cache gives the Game a big boost.
< white > Aug 21, 2023 @ 7:01pm 
I think you don't quite understand the problem.... So I will use an analogy to explain it in an easy way.

If you have a bucket and start filling it with water, It will eventually overflow.

When you say: I'm looking for a solution that fixes the problem... not workarounds...

Then I ask to you... how could you solve a bucket of 1 Liter overflowing?

Two solutions:

1-.You yourself stop the water flow and work within your 1 Liter Limit.
2-.Buy a BIGGER Bucket :)

Now, what happens if you Get a Bigger bucket (2 Liters let's say), if you start filling it with water, It will eventually overflow again.

Yes you have a bigger amount of contained water, but ultimately, You will be always limited to the physics in our world.

Same within the game.
1-. It's limited to how well optimized it is (how much space and resources uses to reach the same results)
But at the end, resources are limited, so that means you will always get to a point where the you spend all your computer resources (computing capacity)
And Factorio has a reputation of being well optimized.

2-. It's limited by your computer capacity(your bucket/capacity)

Optimizing it's not infinite. There is a max optimization that can be reached.

And computer capacity its also finite.

So when people tells you... there is no solution. They mean. Either you get a BIGGER Bucket or Limit yourself.

Devs will try to optimize the game but optimization has a limit. (You can not create anything out of nowhere, well optimized means it will use full amount of your computer resources to create something equal in capacity with no lose, but they cannot magically increase your computers UPS out of nowhere)
brian_va Aug 21, 2023 @ 7:10pm 
i think they understood the problem they were trying to solve, they just wanted a mod to fit 1.5 L in a 1.0 L bucket without changing the capacity.
Last edited by brian_va; Aug 21, 2023 @ 7:12pm
< white > Aug 21, 2023 @ 8:01pm 
Originally posted by brian_va:
i think they understood the problem they were trying to solve, they just wanted a mod to fit 1.5 L in a 1.0 L bucket without changing the capacity.

And so, we now know that's impossible. It would be like saying, I want to download a program that increases the cycles of my CPU, or increases the size of my Ram.

No program can do that, you either limit and optimize the resources with no lose (like fitting many objects of different sizes and shapes in a box without leaving empty spaces) and/or increase the capacity of the box.
Avocado Aug 21, 2023 @ 8:42pm 
1. Get faster ram. Not just faster mhz but lower CAS latency
2. Buy a CPU with more L3 cache size
Gauron Aug 22, 2023 @ 9:52am 
Originally posted by sam:
Two solutions:

1-.You yourself stop the water flow and work within your 1 Liter Limit.
2-.Buy a BIGGER Bucket :)

4. You compress the water inside the bucket so more fits in.
5. You apply an abosrtive material to the bucket so it can hold more inside without spilling out.
6. Apply gravitonal anomaly to increase the capacity of the bucket.
7. Use dark magic and ask the Yearning One to make the water smaller.

Now when i meant workaround, you kind of missed the point with your example as its too simple to see the problem.

A better example would be the old wolf, goat and cabbage problem.

The workaround way is the classic solution to the problem:

The wolf does not eat cabbage, so the crossing can start with the goat.

The man leaves the goat and returns, puts the cabbage in the boat and takes it across. On the other bank, he leaves the cabbage but takes the goat.

He leaves the goat on the first bank and takes the wolf across. He leaves the cabbage with the wolf and rows back alone.

He takes the goat across. The wolf does not eat cabbage, so the crossing can start with the goat.

The man leaves the goat and returns, puts the cabbage in the boat and takes it across. On the other bank, he leaves the cabbage but takes the goat.

He leaves the goat on the first bank and takes the wolf across. He leaves the cabbage with the wolf and rows back alone.

He takes the goat across.


What i ask for is a non-workaround way to do it. Which could be:

- Segmenting the boat so you can move all them together without each reaching the other.
- Modifying the goat so it doesnt eat the cabagge and is no longer seen as food for the wolf.
- Increasing the capacity of the boat so the wolf and the cabagge can be moved at the same time.
- Removing the boat and just making each swim to the other side.
- Deleting the wolf as there are better alternatives that dont eat goats.
- Perform a surgery on the old man so hes now a superior being who can carry all together to the other side in the same boat without any problems.


On a sidenote, how do you guys keep ignoring that i even marked the thread answer a discussion with someone else stating that i really did hoped for a kind of miracle solution like those skyrim mods where someone shaves off pebbles from the map to increase FPS.
brian_va Aug 22, 2023 @ 10:20am 
It can still be discussed, there's no supervision to enforce otherwise
Drizzt Aug 22, 2023 @ 10:44am 
Originally posted by Gauron:
On a sidenote, how do you guys keep ignoring that i even marked the thread answer a discussion with someone else stating that i really did hoped for a kind of miracle solution like those skyrim mods where someone shaves off pebbles from the map to increase FPS.
i think the crux of the matter was your implication that there was a UPS "problem" with the game that needed solving

when in fact this is a game which has far fewer UPS problems than other games that similarly do not impose building limitations on the player

any game that does not limit the amount the player can build will eventually run up against the hardware limitations of the user's machine, and the software limitations of the operating system/drivers/programming language etc - even if its own code is as perfect as it could possibly be

and this game has received some serious optimisation attention by the developers - and so it will run on a potato and still be playable to a factory size large enough to launch a rocket - while also being extremely scalable based on the power of each player's system

and you do appear to have understood and accepted that with the post that you marked as the answer

now it's not unlikely that there is still room for further performance enhancements by the devs - which may come when they release their upcoming Expansion - since i expect they will have put any significant optimization projects which would require significant engine rewrites into that bucket - rather than rip apart the code of their flagship (and only) game while it is fully released and complete, and able to run to rocket launch on the relatively weak Nintendo Switch - as well as on my previously alluded to i3, 4GB, integrated graphics potato laptop

but any optimisation changes that they may be planning would almost certainly not be possible by traditional mods, and no one has (afaik) seen it necessary to try hacking the executable part of the game with drop in dlls, since as mentioned the engine does not have bugs that require fixing that way, is massively optimised, and the modding system gives access to pretty much every aspect of every game feature - with more added when modders or the devs notice things they want are missing

i would say that the only kind of mod that might "help" the way you want might be one that removes all rocks or trees etc - but i am not sure if that would improve UPS - and is probably achievable using the map customisation, and so would not need a mod

also.....

i think your comparison with Skyrim ruffled some feathers because that game and its developer's apparent attitude to polish and bug fixing is pretty much the antithesis of what we have seen with Factorio

don't misunderstand - i am a fan of Skyrim, and of Fallout 4 - but both of those games still suffer from severe engine bugs to this day - with Fallout 4 requiring third party executable code to prevent the loading time being tied to the frame rate - and both games have entire patch projects to fix thousands of bugs, many of which can be game breaking

and that is a massive publisher with maybe hundreds of millions of dollars

whereas this tiny company with one game has polished their game so hard that it requires no mods to "fix" it - and has sensational performance

so it was not a great comparison


so anyway - it appears you have accepted that you were looking for something essentially impossible - which would only be possible for a game which had been less well tended by its makers

however - maybe you will find some extra UPS improvements for your megabases on your current hardware following the engine updates that will accompany the Expansion
Last edited by Drizzt; Aug 22, 2023 @ 12:13pm
< white > Aug 22, 2023 @ 10:45am 
Originally posted by Gauron:
Originally posted by sam:
Two solutions:

1-.You yourself stop the water flow and work within your 1 Liter Limit.
2-.Buy a BIGGER Bucket :)

4. You compress the water inside the bucket so more fits in.
5. You apply an abosrtive material to the bucket so it can hold more inside without spilling out.
6. Apply gravitonal anomaly to increase the capacity of the bucket.
7. Use dark magic and ask the Yearning One to make the water smaller.

Now when i meant workaround, you kind of missed the point with your example as its too simple to see the problem.

A better example would be the old wolf, goat and cabbage problem.

The workaround way is the classic solution to the problem:

The wolf does not eat cabbage, so the crossing can start with the goat.

The man leaves the goat and returns, puts the cabbage in the boat and takes it across. On the other bank, he leaves the cabbage but takes the goat.

He leaves the goat on the first bank and takes the wolf across. He leaves the cabbage with the wolf and rows back alone.

He takes the goat across. The wolf does not eat cabbage, so the crossing can start with the goat.

The man leaves the goat and returns, puts the cabbage in the boat and takes it across. On the other bank, he leaves the cabbage but takes the goat.

He leaves the goat on the first bank and takes the wolf across. He leaves the cabbage with the wolf and rows back alone.

He takes the goat across.


What i ask for is a non-workaround way to do it. Which could be:

- Segmenting the boat so you can move all them together without each reaching the other.
- Modifying the goat so it doesnt eat the cabagge and is no longer seen as food for the wolf.
- Increasing the capacity of the boat so the wolf and the cabagge can be moved at the same time.
- Removing the boat and just making each swim to the other side.
- Deleting the wolf as there are better alternatives that dont eat goats.
- Perform a surgery on the old man so hes now a superior being who can carry all together to the other side in the same boat without any problems.


On a sidenote, how do you guys keep ignoring that i even marked the thread answer a discussion with someone else stating that i really did hoped for a kind of miracle solution like those skyrim mods where someone shaves off pebbles from the map to increase FPS.


4-. Compression is another name for optimization, is finite. You can not compress something until you have nothing. And to do so you also have to put more energy (resources into it) to compress something. (That's entropy working, there's always a lose)
Also you can not compress and decompress resources during the game, That means another process to calculate.

5-. Applying an absorbing material (akka another container )means putting more resources into it, the same you would do on a computer. And the absorbing material will have the volume of the water plus the material, so you will have a bucket overflowing faster, This makes the issue worse than helping. If the absorbing material is outside the bucket that means you are putting an extra container. (Extra CPU, Extra Ram). Factorio is a software, It can not physically put more than it is, a software, the limit is reaching the 100% optimization. You will still have UPS problems too if you exceed the limit.

6-. Even blackholes collapse (evaporates, they are finite), the most compact you can get is nuclear fusion and the energy is meaningless in that state (Entropy again), There is no potential energy. In that system. Unless you increase the boundaries of the system and let the energy balance itself against another system (Again, more need for space and the resources of a black hole)

Mate, you are trying to defy physics, and Physics do work, your computer is bound to that.
Last edited by < white >; Aug 22, 2023 @ 10:45am
< >
Showing 61-75 of 85 comments
Per page: 1530 50

Date Posted: Aug 15, 2023 @ 12:04am
Posts: 85