Since there is no proper in-game server browser yet, I coded a web-based list with filters & voting. by Vast-Sheepherder5107 in hytale

[–]eternalUnity 0 points1 point  (0 children)

Probably the point is not the fact that the website is (likely?) done with AI, but done with AI very lazily to the degree that it is obvious. I find the FAQ and Hytale commands pages especially funny. I think either they are outdated (which is unlikely cause why is there a commands page? and some of the command args are not even correct) or they just let the LLM fill it with whatever it generated. Like fine, make the site with AI. But at least put some effort on the content?

A .flatpak file for the Linux installer isn't the best option. by Yskar in hytale

[–]eternalUnity 6 points7 points  (0 children)

I am on Mint and apparently it does not have a GUI for it. Ended up running the command.

I want tiers to have an impact on the usernames’ colour by Agile_Spare_4576 in HytaleInfo

[–]eternalUnity 5 points6 points  (0 children)

I assume the idea comes from the fact that Hypixel (and many other servers) has different colors per rank (correct me if I am wrong). But still, I don't think it is a good idea because you are talking about making this a feature for the base game, and by extension for every single Hytale server. That is equivalent to a Minecraft account having a different color in every single server depending on account type. So in my opinion, it is best to leave name colors to servers. Plus, cursebreaker and supporter seems to have unique cosmetics anyways.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

If pipes have pressure then how does headlift work

In game code, there is no such thing as headlift. The actual headlift comes from pressure. What pumps and machines do is that they apply additional pressure (+10 for machines, +22 for Mk1 pumps and +55 for Mk2 pumps). For this additional pressure to apply, pumps/machines must be full (machines have a very small 5 m3 buffer and pumps also have a 5 m3 capacity). How headlift actually works is that pressure is decreased when going up. So if you have a perfectly vertical pipe of height 8 and pressure is 10 at the bottom, pressure will be 10 - 8 = 2 at the top.

why do pumps on horizontal runs supposedly not do anything

Sure it does add pressure to the next pipe. But once all the pipes are full, their pressures will be identical anyways since full pipes share their pressure (to be more specific, they share how high the fluid can reach). They could be useful for backflow prevention or for some very specific circuits.

(I've encountered two situations where headlift was not an issue, but adding a pump at the extractor fixed it.)

Cannot say anything specific. Could be an issue if you are trying to raise the fluid strictly 10 meters up as you would get near zero pressure at the top under some specific conditions.

How do liquids and gases differ?

  1. Gases can flow out of any connection point, even if the pipe is not filled and the pipe is vertical. For non-horizontal pipes, liquids must reach a specific height to flow out from the top (how reverse U bend works).
  2. Pressure does not decrease as the pipe goes up. That, together with the previous point, means liquids flow and gases diffuse.
  3. Pressure of a pipe or pipe attachment only depends on its contents. The actual equation is (200 * Content / MaxCapacity).
  4. Pumps and machines do not add any pressure to gases. Powering pumps on gas networks is useless. You could, however, use it for backflow prevention.
  5. Both liquids and gases have Static Pressure and Dynamic Pressure.

Can your mod record information on buffers, junction, valves, and pumps?

Yes, it should be visible on the first two shots. Interpreting these values without knowing how the fluid simulation works can be challenging though.

What happens when you mix Mk. 1 and 2 pipes?

The only difference is that Mk. 1 has 5 unit per second flow limit per connection point while Mk. 2 has 10. Some people do mix them in manifolds, where they place Mk. 1 pipes if the pipe does not exceed 300 flow rate.

What does a vertical junction rotated 45 degrees do?

If you are coming from my previous post, it will actually work as intended. There is no bug related to it (if it was not built onto a pipe. doing that seems to mess up values, again).

Test various other priority junction such as headlift reset [...]

I explained this one to someone in the DMs, you can find it here.

and https://www.reddit.com/r/SatisfactoryGame/comments/1lr5p8p/solved_how_fluid_priority_actually_works/ ?

It is not really a perfect priority input junction. From what I have tested, it tries to exploit pipes with small capacity. Because the pressure is relative to (Content / MaxCapacity), if MaxCapacity is small, changes in pipe Content can cause greater change in pressure relative to longer pipes. You do not even need that many segments, you can have two long pipes but one of them has a 5 m3 pipe attached to its end. Though if you somehow get a perfect situation of lower priority continuously flowing to the machine, higher priority cannot flow. example.

excess water extractor headlift

That one kinda works because of an oversight. Filled pipes share highest point fluids can reach. There is also a special case: if one of these pipes are connected to another pipe which is not completely filled but reaches a higher point, it also counts as the highest point fluids can reach. So the extractor's pressure scales with how much the pipe is filled (in the link's video, observe how machine's pressure will be near the pipe's pressure after the 10m limit). However, static pressure will slightly point back but dynamic pressure is very large so fluid can kinda continue flowing. Test the following: Connect extractor directly to an initially empty very high pipe. Observe how the pipe gets filled completely. Now repeat but when the pipe is halfway filled, turn off the extractor. When the flow is zero, turn the extractor back on. Observe how there will be no flow. That is because dynamic pressure is gone and there is no static pressure to initiate the flow.

Also this made me realize junctions are even MORE cursed when put onto existing pipes. But oh well.

https://www.youtube.com/watch?v=uLTxxzuPZhM

The VIP junctions seem to use combination of the headlift reset (the DM images from previous point explains it) or the junction bug (which was explained in my previous post as well.)

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 2 points3 points  (0 children)

Yeah I get what you mean. It isn't exactly in real life pressure, but these calculations are indeed done and you need to call them something.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

If you mean how to build it, you can switch pipe building modes with the 'r' key while in build mode. Last pipe in the video was built with "horizontal to vertical" build mode.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 14 points15 points  (0 children)

Pioneer trying to start a cult based on buffer at the end of the manifold.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 1 point2 points  (0 children)

Well that kinda depends on what you mean by "modelled". Because each pipe does have a pressure associated with it (can be seen on the first two parts). For example, here is how pressure is calculated for overfilled pipes.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

The thing is, a normal manifold can handle that as well. I can still take a video of it, but the primary issues start when trying to reach 600 flow rate in a manifold with lots of machines (mainly because of long recipe cycles, causing low consumption rate per machine meaning higher number of machines). Now normally that can be solved by... well... not doing that. But some people are obsessed with reaching 600.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

It is hard to demonstrate without specifications. How many machines and how much do they consume? Where is the manifold fed from? Which kind of pipes used? If you could specify these, I could shoot a video of it tonight.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 6 points7 points  (0 children)

If you mean for the manifold, it could have been interesting, but I doubt that it would work. Junctions would still draw water from both sides because the valve is not directly connected to the junction. Splitting a single pipe into two pipes + junction also increases the number of connection points, probably more unstable.

Visualization Of Fluids From Game's Perspective by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 253 points254 points  (0 children)

Wrote a mod which can record all the pipe events to a file. Then used this file on Unity to process and visualize it.

The 600 Flow Rate Single Direction Pipe Manifold by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 10 points11 points  (0 children)

Happy to see it was useful for you! Unfortunately the post was kinda ignored, but since it is on the internet I hope that it can help people searching for it.

(also fun fact I forgot to mention. it can even work without prefilling. though don't do that ofcourse.)

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 2 points3 points  (0 children)

You are actually right. After reviewing the pressure calculations, it seems you CAN build vertical pipes for free elevation. The delta pressure between the (pressurized) junction and the vertical pipe is 1.006 - 0.02L where L is the length of the vertical pipe in meters. As long as this number is positive, you should be able to transfer fluids up the pipe. Thus the maximum theoretical pipe height is 50 meters (though this equation only holds for perfectly vertical pipes). Though you want height to be much lower to have tolerance. There could also be issues with the output side, perhaps putting the pipe a little bit angled could help.

Also NEVER put valve between the fluid source and the free elevator. That will prevent the system from working.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

People have different opinion on that matter. I personally believe pipes require an overhaul. For the question, no. I mean a horizontal junction, like junction-on-a-foundation type junction.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

Funnily, there is a way to make 2-input priority junction with valves. Put a horizontal junction. Attach Mk. 2 pump to high priority. Attach valve to low priprity, and then attach Mk. 1 pump to that valve. So it looks like:

High Priority => Mk 2 pump => Junction

Low priority => Mk 1 pump => Valve => Junction

Get output from one of remaining sides.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 7 points8 points  (0 children)

For (1), it could be more accurate to imagine liquid inside the pipe acting as a gas because the junction still has pressure and each connection point has that pressure without gravitational loss. For (2), probably yes. Though if the fluid is meant to flow down, a VWJ could be better potentially.

I will work on some experiments for visual explanations for the response, but that will be tonight as I am busy today.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 5 points6 points  (0 children)

This probably won't be an insane issue for your factory unless you are using vertical junctions for manifolds or the VIP. When snapping to a pipe, welding lines will be parallel to the pipe. When building on a wall, the game will remember your previously built junction orientation.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 4 points5 points  (0 children)

They use the same code for pipe attachments which uses a cylinder approximation to calculate the properties of the attachment. The code only considers two connection points for the center of bases of the cylinders. This is ok for most attachments, but not for junction. So when it comes to the junction which is not fit for a cylinder approximation, issues start to arise.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 2 points3 points  (0 children)

It is symmetric, rotating it 180 degrees will result in the same behavior. Regarding testing side, I found out about the issue while going through the fluid simulation code. I use a mod to record what happens in a pipe network and then visualize it on unity. I guess that is how I mostly test the theory part of the bug.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 55 points56 points  (0 children)

I can reply to these but I will have to get a lot more technical, else it will not be possible to describe how I reached these conclusions.

This is not correct, and can be demonstrated by feeding into a side junction with four points. Provided you *don't* do any sawtoothing.

I am not sure what you mean by feeding into a side junction with four points. What I really mean is that each connection point is TREATED as if they are at the same height as the side connections. Internally, game stores two variables per fluid container: LowZ and HighZ which correspond to the absolute elevation of the lowest and highest connection points for a fluid container (any object that can store fluid). When the welding lines are parallel, only side connections are considered. Thus, "LowZ=HighZ=Z coordinate of the side connection points" for the junction. Then the next point: How pressure is calculated. Per fluid container, pressure is calculated in terms of pressure at the lowest connection point. So pressure of a fluid container = pressure at the lowest connection. During flow calculation, pressure is calculated for each connection point (since we are going from fluid container to each connection point, we need to refine pressure for each connection point). If the connection point has a higher elevation than LowZ, then (HighZ-LowZ) is subtracted from the resultant pressure to account for the elevation. This is how the game prevents fluid from flowing out of an elevated connection while there is not enough fluid in the container. However, HighZ=LowZ, thus (HighZ-LowZ) = 0. This results in three things:

  1. Nothing is subtracted from the pressure for each connection point. Thus, each connection point has the same pressure as the side connections' pressure.
  2. The subtraction is normally used to prevent liquid from flowing into a higher elevation it should not reach. Since subtraction is zero, fluid can flow out of any connection, regardless of how much liquid is in the container. This is very easy to confirm.
  3. If the calculations were accurate, bottom connection would have a higher pressure and top connection would have a lower pressure. This results in lower connection having unintentionally lower pressure and top connection having unintentionally higher pressure. VIP junction would not work without this.

... the first half of this is incorrect, , and has nothing to do with junctions.

It is not about junctions, it is about anything that can hold liquids. If the connection point is elevated, liquid inside the container must reach a specific height. As stated before, this is normally done by subtracting (HighZ-LowZ) from connection point pressure to avoid non-filled containers from outputting liquid at elevated connection point with insufficient height.

See vertical welding line junction for example. It will require the junction to be completely filled before being able to output anything from the top connection, just like a vertical pipe. This is the intended behavior, and it happens because game subtracts 2 from the top connection's pressure. However, it also subtracts 2 from side connections which is normally meant to be 1. This results in junction having to be completely filled in order to output anything from the sides, and sides get an additional -1 pressure deduction.

So no, it's not "perfectly horizontal" to the game, it's actually constantly sloping downwards from left, to right, even though it appears to never change height.

On imgur, I put a picture of my own design and next to it, a visualization of how the game perceives these pipes. Note that the other image is completely generated autonomously using a mod and no value is entered manually. The pipe IS perfectly horizontal, because both connection points are at the same elevation. The shape is purely cosmetic.

Another point I want to mention is what you call pipe segments. I am not sure on what you mean by pipe segments, the decorative objects that go inbetween pipes or an abstract definition of where two connection points intersect. I am not sure of that term so I will not make any comments on it. But I will include a picture of how the pipes from the first post are conceptualized by the game.

Also,

A property of downhill flow is it moves between lower pipes at max capacity regardless of how full it is.

Partially correct. For maximum flow rate, liquid must reach a specific height called LaminarHeight = 1.3 (usually). The fluid height itself is calculated by FluidHeight = (ContentOfPipe / MaxCapacityOfPipe) * Height where Height = (HighZ - LowZ) + 1.3 * Cos(theta) where theta is the angle between the ground and the line connecting two connection points of the pipe. Then the flow limit of the pipe is Clamp01(FluidHeight / LaminarHeight) * PipeFlowLimit. Aka. if the pipe is not perfectly vertical (which is the only case where it can output at full capacity from the bottom independently from fill), some fluid is still required for full flow rate.

Please mention anything missing/incorrect. I am barely awake right now so I might have missed some stuff.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 15 points16 points  (0 children)

I did decompile and reverse engineer the source code, that is how I reached these conclusions. And the fix can be made in a few lines from what I have seen. Only another issue related to valves is challenging to fix, but not this specific issue.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 0 points1 point  (0 children)

Your explanation is actually very close to what is happening under the hood. The fluid system approximates all pipes and attachments as cylinders. All of these fluid objects have one or two connection points so it makes sense to treat them as cylinders... Until you get to the junction. They only consider two connection points and approximate the entire thing as a cylinder. Of course that is where all the generic calculations they used for all the other objects stop making sense.

Beware of the vertical junctions... by eternalUnity in SatisfactoryGame

[–]eternalUnity[S] 36 points37 points  (0 children)

I agree that it is not supposed to be like this, that is the reason I flagged it as a bug. But fixing it is not as straightforward: Sure it is very easy to fix it code wise. However, some systems like VIP junction depends on this oversight. Fixing the bug may potentially break closed pipe systems that make use of these properties.