#dedicated-servers
1 messages · Page 17 of 1
ya it does take a bit to load, but seems reasonable for the size
I would also recommend you disable saving on player exit, if you have that enabled. The save is likely big enough to make it take a long while.
now that im thinking about it, the game instance is on the nvme but the actual save is in ~ so.. its on a slower disk, still raid but not NVME
Most notably, even if you time out, it will still likely load you up (while ignoring you), and then immediately notice your timeout. That also counts as "player leave" and it does trigger the save-on-leave.
So, at the risk of losing some more progress if it crashes... I would recommend disabling both of those options, so that your experience may be saner.
I have mine on a RAID-1 as well, but that doesn't matter.
If you look into the game log, you will find time information on the save process, itemized.
Look it up and find the entry on the write-to-disk performance. You will see that it takes maybe a second or two, at best.
How much time does it need to save < 30 MB of a file?
I would honestly recommend to the devs to sacrifice save file size in exchange for save/load speed improvements. Even a 500 MB save file is not an insane proposition in this day and age.
Even if you're expected to send it over the network to the server (which functionality is provided in the Manager).
If it means less memory scouring - and thus less of a "hiccup" at save time - I would welcome the change with open arms.
the server is on a 10g link and my client is at 1g so its not doing it over the wan
but I take your meaning
Regardless, uploading 500 MB once (directly through the Manager, or via FTP/SFTP/SCP or whatever have you) is still an acceptable price to pay for even halving the save time.
I could make a symlink for the save game over onto the NVME and work around the slower disk
Please read the log and see how long it takes to actually save the file first.
(besides, you can't symlink directories; you'd need to bind over it (mount -o bind))
Again, it's very likely that moving the save file to the NVMe will improve nothing, as it will shave your time by... maybe 2 seconds?
Is 2 seconds of gain enough for you?
okay, no, i see what you mean
In my view, it's not worth the time spent opening fstab in a text editor. ;)
fair enuf
Like I said - take a look at your tick rate. If it's dipping below 30, or is constantly low even, then the only thing that will help is a CPU upgrade (and, likely, considering your options on LGA771... a platform upgrade).
ok, sounds good, how do I check that?
You can see the tick rate when you look into the Server Manager, and select the server in question.
It is listed with the other params (name, game stage, time played etc.).
otw
You can also take a look while connected to the server and in-game (though obviously you will be unable to take any in-game actions with the menu open).
Good luck.
thanks for your help!
ok the level loaded, where do i find that log to determine how long the level load took, server side?
That prior screen grab was with me disconnected, once I loaded the level the server manager showed the following.
found the actual save, its' 4.4M not 27M, that was the entire save folder stucture
Found the log file:
not sure if that's the load time you were looking for but that doesn't seem excessive
Found some more, grepping for "Time":
Hello, having problem hosting a dedicated server. ports are open on router, inbound rule added on ports
Well, 4.4 MB of a save file is rather small. At 13s of save time, you have some headroom yet.
I'm not seeing a problem on this screen. The last four lines are related to Epic Online Services (i.e. the EPIC store), which was left unconfigured in this game.
oh, i thought that warning was the issue. When i try to connect to this server i get offline status. what should i check first?
Where are you trying to connect to and from?
trying to host on my workplace pc and connect from my house pc
an other thing is that on whatsmyip while ip is xxx.xxx.x.x the hostname is ppp-xxx-xxx-x-x.home.otenet.gr
This might be an issue? is it a setting i can change on the router?
The hostname matters not, I suppose... unless that's your work IP?
You will need to tell me more about the "workplace pc". What's the arrangement you have there?
i have a windows pc there running, installed steamcmd, opened ports on router and on the pc. im configuring it now via anydesk
Okay... "workplace PC" - is this at your work place? I assume you have cleared this with your employer and IT?
its my store, nothing special on the lan
Okay.
so what should i check first?
I assume your WAN IP in the shop is public?
how can i check if the ip is public?
Log onto the router, find WAN IP, check if whatismyip.com (as seen from your workplace) reports the same value.
oh its not youre right
Be extra sure you found the right page, because the next step is contacting your ISP to see if they can give you a public one.
found the ip address under DSL connection status. next to the ip address i see subnet mask 255.255.255.255
I'm not exactly familiar with DSL providers and their technology. Is the IP set up there within 192.168/16, 10/8, 172.16/12 or 100.64/10?
cheap server hosting anyone recommends?
Hi, has anyone had a home server and made a hardware change and the server does not run properly anymore?
I have a vps. Would it be a mistake to host a satisfactory dedicates server off of it?
the ip is 100.67.xxx.xxx @obsidian rune
You're behind CGNAT. Contact your ISP and request a public IP.
Is there an official host for satisfactory servers?
There are a bunch of hosting sites, but none is official iirc.
Ok thank you
just curious, where are dedicated server saves kept - and is it possible to download them to local save files?
nvm the question - I have my server with a hosting company, so I just had to access my server control panel
To answer your question anyway... they're kept in the local files of the user running the server (on Windows it's in %APPDATA%, on Linux - in ~/.config/Epic). And it is possible to download them, but the mechanism to do it through the in-game manager has not been implemented yet - so it's only possible via other access methods (like FTP).
Hello, I've been trying to setup my server, i had it working some months ago, and now i don't remember how to get it working again,
The server is run using pterodactyl
If anyone knows what im doing wrong then please help ;D
That No such file or directory might be a clue.
But I suppose you might be better off asking people in the Pterodactyl Discord server.
Is there a resource on uploading a local save to a server?
have a save that nobody can connect to, get either timeouts or buffer overflow errors. save loads fine in single-player. if i make a new session, players can connect to that just fine
what ports are needed to run a dedicated server? i see the wiki says 15777, 15000, and 7777, but is that for both steam and epic? or just one? reason I'm asking is a different site says those are for "PC" and theres different ports for Steam? just kinda confused
15777, 15000, and 7777 UDP are enough to join the game; Steam ports are for server indexes to allow join from Steam client directly I assume
so i want to make the server for me and a friend, and we're both playing through the steam version of the game. would it be ok to just do the 15777, 15000, and 7777, or would we need to do the others?
If You give him Your IP he will connect directly, only these ports needed
only the set of 3 you mean?
Yes, I have such setups.
ok cool. i assume he wouldn't need to change anything regarding his ports, right?
Client traffic goes via random high port numbers, so if ISP don't block the will be able to connect; usually no changes needed on client side
You have different client settings tan the others eg. max object limit. Your client loads fine, others can't. Just suspicion.
@novel yarrow you said you have this setup on your end? do you use the dedicated server steam app/tool to run it?
No, but I've made a guide. I'm running dedicated servers on Linux containers or bare-metal servers.
got it to work i think, at least on my end locally. how does saving work on servers? is there auto save? do i have to save manually, if so how?
What are the requirements for a dedicated server?
btw: is it normal, that an ideling server have a medium CPU load?
No one is connected and the factory is not running if no one is connected.
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
2930374 server 20 0 17,3g 8,5g 7692 S 21,9 27,7 336:05.15 UE4Server-Linux
It is hosted via docker (from wolveix/satisfactory-server) on a ubuntu-linux
client settings are identical
also, the save loads in single player on the same client. there is no "other client"
also, other saves work fine, it's just this save
also, just tested something: i loaded the save in single player, moved several hundred meters away, saved, and uploaded the save to the server. that save i can connect to. which means it has something to do with the area of the map i was in when i disconnected
i moved back to where i was before, and now i cannot reconnect to the server.
my guess is that something in the local chunk area isn't serializing/deserializing correctly, and it's causing the network protocol to go haywire. single player doesn't have to deal with this.
@grave creek @novel yarrow The "STEAM" ports are necessary (though I'm not sure if all of them are...) for STEAM's peer-to-peer session mediation to work properly... or so I gather, because those sessions also work if your NAT is completely shut. I believe that many of these are "cargo cult" port designations - for example, 27015 is the old Half-Life dedicated server port... ;]
"reliable buffer overflow" is usually triggered by too-long lists (knowlegde/tech trees, inventories, etc.). It's a common error on Unreal Engine. In fact, Satisfactory is one of the games that experience it the least. On ARK, DnL, or Conan - these are bread & butter.
It would seem so. Mine's idling (no power), consuming about 50% of a core.
Can you load the save in Single-Player?
i sorted out my issue: wall pipeline mounts are broken on dedicated server. see https://questions.satisfactorygame.com/post/6365904bca608e0803523db7
if you attempt to join a server with a pioneer who is in chunkload range of a wall pipeline mount, your attempt to join will fail with either a buffer overflow or a timeout
I checked my dedicated server on my remote system today and noticed that satisfactory has started up multiple instances of xrx all of them are consuming 100% of the clock speed of whatever core they were started on
I restarted the satisfactory server and they showed up immediately. Restarted the whole remote system and then started up satisfactory on the remote system and they immediately came back eating up all of the CPU.
It is a 6 core system with 16GB of ram and xrx is eating all of that precious CPU time. Thoughts?
a fresh install of the server client and copying the world file fixed it. No more xrx core death but it is odd
not sure what xrx is
xrx doesn't run in my container, so that might be a "feature" of your hosting service or the container you're using
xrx appears to be a tool used to provide remote desktop services, whcih is completely unnecessary for the satisfactory server
@blazing halo which log in the server file do you want me to find?
oh i tried again, same error so i clicked retry and again then it worked
One of these?
yes, those
I did tests - after building, after pushing some water, and after adding a pump to ensure flow. No issues reconnecting. Whatever it is, it's a problem with your save - which may indicate a bug, but it's more specific than "wall mounts are broken on the dedicated server".
when i started the server without -multihome=ip the server seemed to start up but was unreachable and after i added the multihome i started getting segmentation fault
That's interesting... Try -DisablePacketRouting instead.
Not sure why the developers decided to include this one. The principle of least concern applies.
Every new thing you include is potentially breakable, so why reinvent the wheel when implementations with long history of success (i.e. routers) already exist and are freely available.
so i replace the multihome with disablepacketrouting, i did that and still got the same message
I assume you're running the server on bare metal?
Well, as bare as it gets in this context.
What I mean is "with no additional managers, containers, virtualisations etc.".
thats kinda vague for me but im assuming i am,
How do you mean?
It's likely a bug in the server's code, but it must be something specific to your setup that triggers it. As far as I can tell, the game doesn't really have any issues running under Linux, so it must be your particular Linux (or hardware) configuration that's triggering it.
If you're running it under some sort of virtualisation or separation layers (Docket, VM, etc.), that might be introducing unexpected variables.
If your system is highly-customised (if, for instance, you're running a different/nonstandard libc), that might also be a factor.
im running ubuntu on its own machine where im already running a minecraft server
Do you use virtual routing and forwarding (VRF)?
no just regular port forwarding
Can you sysctl net.ipv4.tcp_l3mdev_accept and sysctl net.ipv4.udp_l3mdev_accept for me?
I want to know the value.
Okay, so that's not your issue.
Too bad. That one technically has a fix.
Hmm... ip a?
(you can probably copy & paste from the terminal window, instead of screenshotting)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 3c:7c:3f:bf:15:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.74/24 brd 192.168.1.255 scope global dynamic noprefixroute enp3s0
valid_lft 73965sec preferred_lft 73965sec
inet6 2600:1700:aea0:bf90::7cf/128 scope global dynamic noprefixroute
valid_lft 2579567sec preferred_lft 592367sec
inet6 2600:1700:aea0:bf90:90e3:dc14:8a03:62fc/64 scope global temporary dynamic
valid_lft 3461sec preferred_lft 3461sec
inet6 2600:1700:aea0:bf90:2129:7940:ec4a:a6c0/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3461sec preferred_lft 3461sec
inet6 fe80::add9:cdb0:3469:adcc/64 scope link noprefixroute
valid_lft forever preferred_lft forever
came up with the same
From what I can tell, the game has a bug with binding to virtual network interfaces.
Why do you have so many IPv6 addresses bound there anyway?
good question i have no idea
If you don't use IPv6, you can disable it globally by placing
# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
inside your /etc/sysctl.d/ folder in a .conf file.
If this is a virtual device issue, perhaps disabling it (if you're not using it) would clear things up. Disable it and reboot your server machine.
If you are using IPv6 for something, do this anyway - let's see if removing it clears things up for Satisfactory; you can always re-enable it later.
alright so i did all that and started the server with both multihomes and disablepacketrouting, still comes up with the error
Okay. So it seems the network code has a bug in there somewhere. Please go ahead and create a bug report. In it, pleace reference the one I referenced above (as it is likely related), but clearly state that you are not using virtual interfaces.
alright man i submitted a report with the details thank you very much for your help
Can you please link it here?
well that's a new crash
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000220
FactoryGame_FactoryGame_Win64_Shipping!AFGItemRegrowSubsystem::AddPickup() [D:\ws\SB-220602145101-842\UE4\Games\FactoryGame\Source\FactoryGame\Private\FGItemRegrowSubsystem.cpp:72]
i was driving a Truck...hit a rock that was a wee bit too big which pretty much insta-flipped the truck on its back
about a second later, i got out and spawned in the void, noticed my build list went to -1 across the board, and i attempted to exit because i figured it was a DS/client miscommunication thing
client crashed
server seems unaffected
on my end the truck was belly up against the electric pole there, and yeah, probably crashed because server disagreed with where client put me (my guess is 0 0 0)
culprit rock is on the left
when i rejoined, i was standing in the center on the top of the upside down truck
Entirely possible that these two are unrelated, actually.
Well, unrelated in the sense that one got triggered by circumstances resulting from the other, and not by direct code coupling.
I've not tried any mods with satisfactory as yet and wondered if they can be added in mid game on a dedicated server?
Hi guys, I have a question regarding dedicated servers.
I am currently playing a coop-game with a friend. We have 100 hours of playtime and my framerate isn't that good anymore. So I am planning to run a dedicated server on my second PC with my second steam account.
I have tried family sharing but the it kicked me out after a minute because I am not allowed to run to 2 steam games on 2 computers simultaneously.
Do I have to buy the game a second time then just for the dedicated server? 😦
The answer is no 🙂 You need anonymous logon via steamcmd.
Ok, thanks. I will take a look on that
It's on the wiki page.
Mods do not currently support dedicated servers at all.
That's a valid question, by the way... Farm Simulator, for example, requires you to purchase the base game in order to get the server, and since you can't run the same STEAM library on two separate PCs at the same time, you either have to host on your game PC, or buy it again.
FarmingSim series is another story, but that's correct. I have deployed DS for many games so far.
ah right thanks, that's unfortunate!
Pester the mod community. ;P
i'm increasingly thinking it's related to creature ai
i just had another similar incident; this one was recovered by going to a tamed doggo and petting it
i don't think it's necesasrily specific to tamed doggos; rather, there is probably some bug related to serialization of creature AI, which was overhauled in U6, that only arises in some edge cases
happened again, but "interacting" with a spider helped
I much more expect it to be related to your inventory than creatures.
does not appear to be
For three reasons:
- there is precedent: not just in Satisfactory but in other UE games; Conan is notorious for inventory overflows; Satisfactory had buffer overflow issues with containers before
- critter AI should not cause buffer overflows in the first place, as the amount of information that is being sent is tiny
- there is one more thing that is common between these issues: you (as in, the player character)
also, other people haev reported that tehy can recover this situation by using a save file editor to delete all creatures within ~400 meters of the pioneer
so i'm dubious of your reasoning
Can you point me to those reports?
Also, I'm not excluding the possibility that critters are related to this. I do however highly doubt that critter AI is related to this.
whatever
I have filled my reasons out. Please re-read.
yeah, not convinced
my reasoning rderives from "what did CSS change"
because that's where you always look first
One more reason that makes me doubt your claim of AI being related: you have already made a claim that turned out to be directly false, with just as much conviction.
So I assume the edits made to the norther part of the map, or the new ammo, are also likely culprits?
Wait... so if someone contradicts you, with evidence and reasoning, your response is essentially equivalent to plugging your ears and going "laa laaa laaa I can't hear you"... :D
Real mature. 😂
Also, fun fact: you forgot two things. First: the AI change was made quite a number of versions ago, so logically you would expect more people to report this, and for this to be reported sooner (ideally around the switch from EX to EA). And second: there's a chance, no matter how small, that this is a rare bug that has been around since before U6, too. Yes, you should first look to what's been changed, but this isn't a religion.
I tried but after starting the Server via command line (FactoryServer.exe -log - unattended) it sets up a windows error message occurs and it shuts down. :/
What sort of error message? Do you have a screenshot? We will need to know what it says.
It the standard windows error message "Satisfactory doesnot work anymore"
I dont know how the exact english translation is
What is your native language?
german
ohh. It seems if I just use the FactoryServer.exe it is working
let me check for a moment
Can you verify that you actually use -log -unattended instead of what you wrote?
(you wrote -log - unattended, that space does matter)
but there is no window/trayicon or anything else which indicates that the server is running?^^
let me check
.bat-file looks like this:
FactoryServer.exe -log -unattended
(do I have to add an "exit" as second line?
but I have tried both)
Update: If I just run the server by clicking the .exe it works
does it have any disadvantages this way?
(I got a kinda cryptic error message when I tried to join the first time. But the second time it worked)
Ok. It seems I was not very clever. One instance of the FactoryServer was already running in the background...
Now everythink works 🙂
Yes - it does not take any of the parameters specified in the .bat file when you run it directly.
That is one of the things you want to use -log -unattended for: these parameters will make the server leave the CMD window instead of closing it, so you will always know that a server is running.
Otherwise, as you just found out - it's very easy to launch it twice.
@rose valley can we petition to have the Windows version of the server have the same behaviour as the Linux one? As in - keep the CMD window, and only close it when a specific parameter (say -hide or something) is used. This will limit the issues with people being baffled with cryptic error messages and "stopped responding" when the actual issue is that there's a server already running. It would also resolve the confusion people have when the CMD window disappears (believing that the server closed, when it's in fact running in the background), and would help resolve support issues (because the concept of looking for a process - with a different name, no less - can be difficult for some people). The server executable doesn't seem to have any Windows Service-specific hooks anyway, so it's not like removing the CMD window has any practical benefits (and if someone wants to have it hidden - once they understand what they're asking for - it could be accomplished through the mentioned -hide parameter).
I would also personally recommend that the built-in router be disabled by default. People end up port-forwarding all 3 ports (as per the Wiki), so it serves no practical purpose - and from time to time it misbehaves, leading to problems with connecting that don't have an immediately obvious culprit (also, it leads to silliness such as connecting from IPv4 to IPv4 over IPv6). Having it on-by-default seems not very useful. May I ask for the rationale behind it, and behind making it enabled by default?
Thanks. How do I should down the server. Just clicking "X" (or is there an other recommended variant?^^). And where are the savegames saved? On my dedicated server PC or on the PC of the admin?
To shut the server down, hit the key combination Ctrl + C. This will signal the server to perform a gaceful shutdown.
Do not simply close the window using the [X], as that will terminate the program without giving it a chance to perform a proper shutdown.
The save games are located in the home directory of the user running the server.
Implenting the initial savegame was pretty easy. I could just upload my local savegame.
That is correct.
So do I have to copy/paste the savegame always when restart the server?
Which is not that much work, probably^^
No. It should remember the last save that was used.
Damn, it was soo close.. I've built small Beowulf Cluster to distribute the load and ran Satisfactory Dedicated Server on it.
Hydra proxy finds FactoryServer.sh on a NFS share and spawns multiple threads on distribution nodes.
However, it ain't gonna work. I can't split single process into multiple nodes. Even through invoking binary itself.
Okay, this is entirely out of the left field, but I gotta ask.
Are you Polish?
yeah ?
Cool. :D I thought so, but didn't think of confirming it until I saw "kedzior". :D I'm Polish too.
Running a dedicated server with 8GBs of ram is going to be a mistake isn't it?
I had no more on secondary node. This process was running concurently.
Considering that the official minimum is 12, and that a freshly-made world with a freshly-logged-in player is 8.01 GB? I would say so, yes.
ah no, it was large map already loaded, fresh startup ~6,5GB
Okay. So I really don't know much about clusters. Explain like I'm 5. What failed?
At idle, maybe.
Once you load it up with a map and an actual player, it reaches up to something like 7.8 GiB or so.
Coupled with the OS overhead (for me it's about 350 MiB), it goes up to a little over 8 GB.
At least on my system.
https://questions.satisfactorygame.com/post/63662340ca608e0803523df5 lmk if there needs to be added/changed
brilliant.
Yea it just dies lol.
I would like to see the server logs for that crash, too - not just the crash context/runtime, but also the log leading up to it. Could you post them here?
I kinda sorta failed to ask for them, because I saw blood in the water (a networking-related crash) and went hunting for any other reports. But yeah, it would be good to look them over.
The easiest way to get them is to wipe all logs, all crashes, and just... re-run the server, let it crash again. That would ensure you have the latest, and those should be the only ones there.
(backup the logs & crashes, just in case it miraculously works... xD)
And also... this I also failed to ask... Do you happen to run any services on the SF ports? That would be UDP/7777, UDP/15000, and UDP/15777. The command to check would be ss -lnup | grep ':7777\|:15000\|:15777'. It will list the ports, their bound addresses, and the processes which bound them - if any should match, that is.
It seems I failed to ask about a number of things in this case...
So, can you?
Believe it or not, that is the expected behaviour. 😂
yes, are the logs in the terminal itself or stored in a file somewhere. Also is the result of the ss -lnup supposed to be UNCONN 0 0 *:15777 *:*
Just checking back after a longer time - do dedicated server allow for modding by now? Because my mates and I think about renting one to play a bit of Satisfactory
will Satisfactory dedicated server have support for steams server listings?
Dedicated servers have allowed for modding since they were released. Mods do not support the servers yet, however.
I don't think there's going to be publicly hosted servers where people can just come and go at will?
Wonder why not, because of the client side issues?
No. Because the central mod dependency all mods depend on - SML (the loader) - doesn't support the DS. It came out before the DS was a thing.
Also, they'd have to somehow make dedicated MP stable for more than 4 players for public servers to even be considered.
If that's what Fwee is talking about.
Considering that the game is optimised for (or - the goal of the optimisation is) 4 concurrent players, I don't see it happening.
It should also include the executable identifier. Did you cut it out? ;]
The logs and crash reports are stored on disk, in the server's install folder somewhere.
The query protocol in use is different to what the standard STEAM query protocol is. Will it be supported in the future? No idea, I don't know the future. Is it likely that it will be supported? I personally don't think so. Player and game information is locked behind DTLS (a type of TLS/SSL encryption for UDP) as well, and there was a reason for that (I have to assume). STEAM server listings don't support that, either. Supporting the listing would necessitate this information be revealed in plain-text in transit.
Thank you for your reply, there is a lot more to it then I would have ever thought.
Getting the game info is also conditional on providing the password, if one was set. That's another thing the STEAM query protocol doesn't support. :)
not gonna happen, Satisfactory was born on EGS which means using their cross-platform query system which is why Steam and inter-play with EGS builds
they have no reason to go all in on the Steam ecosystem at this point, especially if it would exclusionary to the original backers on EGS
Steam's server query system is specific to the Stream ecosystem which dates back to Half-Life/GoldSrc
thanks for the info. I did not realize that it was a steam only feature.
it's Steam API which only plays nice with Steam API...Epic's is more agnostic
Actually, I don't really see that. The only thing you get from the query is the server's port and game version, if memory serves (I had a description somewhere, but for fuck's sake can't find it now).
I have tested my dedicated Server now. It is not laggy but it looks like it has a low tick rate or update rate or something like this. The items on the conveyor builds have some stop-and-go-effects and at the map the position of trains only seems to update every half second and are not fluently.
The CPU of my server is an i7-920 (with GTX1060 and 24GB RAM, don't ask why^^) but the CPU load never goes above 35%?
Or is it just a settings problem?
DS is largely single threaded and i7-920 isn't very fast
but the other things you've seen are normal because that's how the game is coded
players are divorced from the server simulation rate and players are only basically given a snapshot of the simulation
the more populated the server gets, the further the simulation speed drops
ahh ok. yeah I know the CPU would have been the bottle neck. But the problem seems to be more an "kosmetic" problem. If that's the case I can live with that^^
yeah, cosmetic...only have to be worried about conveyors when stuff isn't moving at all
ahh ok. When I hosted this game on my gaming PC everything is very fluently. (Except for the framerate dropping with every new factory 😄 )
But probably my friend who joined my then has seen this before then
Thanks
Thanks, but that's not what I was looking for. I meant Satisfactory's query protocol. Which, now that I look at those docs, has nothing to do with either.
The belts work the way they do because of predictive algos. Has nothing to do with tick rate. Same with train updates.
If your tick rate is solid at 30, you're not looking at "lag".
Yes, but if you're the host - you don't need to simulate anything, because all of the information is just a PCIe call away.
Thanks for the info 🙂
it's very likely EOS (Epic Online Service) based
Now, if only there was a place where requests could be made for future developments. 
On a more serious note, I'm busy with other, unrelated topics right now and will be so for a while longer. When I get around to giving dedicated servers their much needed second pass, I'll look through all the requests on the qa website.
As for the internal router, I'm more of the mindset that if something is a little buggy it needs to be fixed, not deleted. As far as I can tell, most people still open three ports because the wiki page doesn't even mention the fact that it's not needed by default. However, I don't want to go into an endless back and forth. It's Sunday and I'm off the clock. If you have specific feedback wrt to the packet router, please post it on questions.satisfactorygame.com
It's not though. It's a very simple protocol that I even described to another user some time ago in this channel. That is for the query port. The beacon port is where all the game information can be accessed through and that is built on the Unreal Engine AOnlineBeaconClient class with a layer of encryption underneath.
And it's all still subject to change, so that the data can be accessed by third parties in the future. (API?)
I do agree that it should be fixed. I just don't see why the confusion is worth having it be the default. There's a number of assumptions one makes about software like this, and those two break out of that assumption, causing confusion. It's all well and good having those features - as options. But I agree that back-and-forth isn't helpful.
More to the point: I was under the impression that the QA site uses votes, which implies that the least-voted-on issues may not even see development time at all. I thought it was important enough to bring it up directly. If you wish I didn't, I won't do it again.
I did also make an argument about low-hanging fruit before.
The voting system is for gameplay features and it helps us gauge community interest. For technically minded request, if we find them reasonable (as I do find your windows Vs Linux behavior request), we usually act on them regardless of the votes. Voted on or not, we read every request. The final judgement is with us, not the number of votes. So by all means, use it. Things we discuss here are subject to being forgotten about.
Thank you. That does make me feel more confident about the QA site.
I will take my propositions there, then.
If there is something I would appreciate is if you must ping me, do it during working hours. The rules say don't ping the Devs at all. I'm more flexible and okay with pings during work time although I may not show up for all of them.
Of course. For future reference, what's the timezone I should respect? I'm in Poland, so these may not align.
I could assume "Sweden", but remote work is a thing.
Sweden, so CET 🙂
Got it.
By the way, is there someone I can molest politely query about the protocols the game uses? I would like to read the game's status and provide RCON functionality.
Or put up a library on GitHub, whichever.
Ah, so we're on the same time. Hm. That'll be interesting, since you're probably at work when I am. :D
At any rate, thank you for responding.
My session seems to be private and I cant change to friends only
The dedicated server does not deal with sessions - all communication is IP-based.
It means that the server doesn't understand or think in terms of "sessions".
Talking about session privacy in the context of the dedicated server is invalid.
It means that connections to the server are not managed by any platform (either STEAM or EPIC).
"Sessions" are mediated by the platform, and are meant to connect players to each other. The server, in contrast, is a remote location to everyone, and all connect via IP communication.
Tell me what is unclear, but be specific please. I'll try to explain.
Ahh, ok.
After I set up the server, I claimed it as admin.
But my friend couldn't authenticate
But now he somehow could join.
Hi, I'm trying to run Satisfactory server on an ARM processor and I'm not having much success. Other emulated things work normally for me, but Satisfactory just doesn't. I know there is no official ARM support. Does anyone here have any experience with it?
I't won't work. Binary is UE4Server-Linux-Shipping: ELF 64-bit LSB executable
Even emulators won't start it? Like box64 for example.
Someone already did it and commented: running the Dedicated Server in an Emulator isn't stable nor recommended
😕
Yea. I'll just stick to standard multiplayer for now.
That reminds me @blazing halo, I never got to ask last time what you personally picked to run your serv : self-host at home or cloud platform ?
wait do i need to be on experimental to host a deticated?
Hey all, is there any good managmanet software for a DIY server? I have one running, but I don't like how i need to start up Satisfactory to check to see how many players are on it or other statistics,.
managment, rather
Hey could anyone lend me a hand? I am trying to relocate my server to a new VM but the Session name for my world save is "InvalidName" and no matter what I try I can't get the new satisfactory server to grab the old save file.
The world was created by a dedicated server to begin with, I think that's how this happened.
Self-hosted. I have a number of machines sitting around doing nothing (all consumer-grade), so why not.
No.
As far as I can tell, the protocol isn't public. I haven't seen any.
Thanks for the response!
There's a good one for Astroneer, so I was hoping that'd extend to Satisfactory. Maybe later. 😄
I should amend that it doesn't mean none exist, or will not exist. I did look for them, haven't found any yet.
Is there a fix for homing ammo shooting out of my feet? Can't effectively use it unless I'm airborne because it just collides w/ ground
It's why I stopped using it altogether. I think the devs envisioned it as an AA weapon more than anything else...
Thing is, you just don't have the time to switch ammo during an encounter... so you either have it always loaded, or learn to shoot with standard bullets.
And I suppose when you're precise enough with standard bullets, you don't need the homing ammo... 😄
Well, either that, or just get more of them to shoot. Turbo ammo + short bursts ftw.
Also, that's not a DS-specific issue.
Hi,
I've a problem setting up a dedicated server on Linux Debian 11. I follow the Wiki but can't connect to my server with the game client.
The only thing i can see is : LogOnline: Warning: STEAM: Failed to initialize Steam, this could be due to a Steam server and client running on the same machine. Try running with -NOSTEAM on the cmdline to disable.
This is the only game server running.
This is a non-issue. The game uses neither STEAM nor EPIC integration.
You will need to show us a log excerpt from around connection time.
Oky, I have a lot of timeout :
Nov 07 23:26:14 ds04 UE4Server-Linux-Shipping[54672]: LogNet: Error: UEngine::BroadcastNetworkFailure: FailureType = ConnectionTimeout, ErrorString = UNetConnection::Tick: Connection TIMED OUT. Closing connection.. Elapsed: 30.01, Real: 30.01, Good: 30.01, DriverTime: 101.07, Threshold: 30.00, [UNetConnection] RemoteAddr: xx.xxx.xxx.x:64033, Name: IpConnection_2147482517, Driver: IpNetDriver_2147482527 IpNetDriver_2147482527, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID, Driver = IpNetDriver_2147482527 IpNetDriver_2147482527
Nov 07 23:26:14 ds04 UE4Server-Linux-Shipping[54672]: LogGame: Error: Network Error Recived: Type: ConnectionTimeout, MSG: UNetConnection::Tick: Connection TIMED OUT. Closing connection.. Elapsed: 30.01, Real: 30.01, Good: 30.01, DriverTime: 101.07, Threshold: 30.00, [UNetConnection] RemoteAddr: xx.xxx.xxx.x:64033, Name: IpConnection_2147482517, Driver: IpNetDriver_2147482527 IpNetDriver_2147482527, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
Can you show me more around that time (before then, preferably)? Or just the whole log, if you can.
did it again, truck crash into water, forced me out...spawn under the world with -1 items
didn't crash this time, but a trend this makes
after reconnecting...
always the truck and always after shenanigans
:/ now i feel a crash coming
yip
not the same as the last truck crash...this one was kind of random
[2022.11.08-09.39.07:124][392]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x000001fad8590008
[2022.11.08-09.39.07:124][392]LogWindows: Error:
[2022.11.08-09.39.07:124][392]LogWindows: Error: [Callstack] 0x00007ffcc5f88440 FactoryGame-Engine-Win64-Shipping.dll!<lambda_18c34fe7df1e14af65b55b97f7d6ab2b>::operator()() [D:\ws\SB-220602145101-842\UE4\Engine\Source\Runtime\Engine\Private\PhysicsEngine\BodyInstance.cpp:3085]
i'm by myself in the server this time
PhsyX? what the hell
AFGWheeledVehicle::OnIsSimulatedChanged() [D:\ws\SB-220602145101-842\UE4\Games\FactoryGame\Source\FactoryGame\Private\WheeledVehicles\FGWheeledVehicle.cpp:2764]
one of the vehicles must have derped
didn't take down the DS, just me
Sounds like it, yeah.
Make sure to drop a bug report on the qa site 🙂
My guess is that the physicsengine tries to simulate an invalid object on the client side, possible desync or similar. Could be a million reasons really because Access violation is mega broad.
After a mishap like that, you're usually left in an inconsistent state, as evidenced by <lambda_18c34fe7df1e14af65b55b97f7d6ab2b>::operator()().
(most likely a lost pointer)
Most likely yep.
I've noted such weird behavior using higher tickrate on the server (for example, tickrate=120 setting), which causes desync errors and teleportations of the player. 🤣
usually a manual edit of the save is enough to temporarily resolve it. just delete the vehicle and reupload the save
though the deeper issue still exists of course
tickrate is probably like 10 here...populated world...not the fastest CPU in the server
so I just rejoined my dedicated server that I host, and it spawned me in the hub with an empty inventory like I was a new player. I remembered where I was when I logged out before, and my player is sitting there. how did this happen? am I able to get back the stuff from my original inventory?
kill your previous self
Any idea what the cause of this crash was?
if you don't have a weapon and can't get a weapon... might have to start the world over
only the first player to connect is given the stuff to start over
doesn't have crash trace
it crashed immediately after autosaving tho
Right, thank you.
I attempted to log into the server after last nights session.
It exceeded the 180 second initial connection timeout I have configured and when I checked the crash directory a fresh folder was there.
Hopefully it hasn't rolled back to the previous save.
check the file in the Log folder
the one it copies to the Crash folder never has the trace
it copies it before the trace is completed
didn't know i was doing damage. got it. thanks
just beware that it might happen again
i went from my name to like 278 (a number) then eventually back again
but yeah, killing the idle player will drop their player crate so you can get the stuff and move on
There's no crash info in this log. You will need to fetch the corresponding crash context XML file.
roh roh, DS died...
it didn't it...kicked me out upon save completition in DS
log doesn't really say anything other than that
There's the file from the log folder corresponding to the crash.
And the XML file from the crash folder.
Beacon shenanigans. Interesting...
Can you try adding a -multihome=0.0.0.0 to skip the built-in router?
Or are you the guy that gets a crash on that?
Because I fail to remember. :D
I don't have a problem with routing. It was just a random crash on loading in earlier today.
Oh, okay.
In that case, report it and move on?
I guess.
It's a weird moment to crash, but it happens right on connect, and I can see you're routing through 127.0.0.1 so.
Yup yup, figured you or others were practiced at reading the logs and might spot something glaringly obvious.
Apart from using the somewhat-troublesome built-in router? No.
I mean, long save times (80+ seconds), but you already know that.
Is -multihome=0.0.0.0 a switch on the service?
It disables the built-in router, and - in this case - restricts the server to IPv4.
In server parlance, 0.0.0.0 basically means "all available IPv4 interfaces".
Yup well aware of the save time. I have the timeout set to 180 seconds
That might be a good idea to disable IPv6 anyway.
Who uses it...
Which is kind of a problem, because it really should be used more widely. Unfortunately, it's not.
Software tends to do dumb things with it, too.
Like, the Satisfactory dedicated server, for example. xD
yup it used to mess with exchange servers
There's the crash...
[2022.11.08-11.39.34:222][383]LogGame: Succesfully saved a local backup with name: valebridge.net_autosave_3-11.08.22-11.39.34.sav
[2022.11.08-11.39.34:224][383]LogGame: Write Backup to Disk and Cleanup time: 0.023 seconds
[2022.11.08-11.39.47:850][383]LogServer: Opening a new route from '192.168.0.101:55950' to '127.0.0.1:15000'
[2022.11.08-11.39.47:850][383]LogWindows: Error: === Critical error: ===
[2022.11.08-11.39.47:851][383]LogWindows: Error:
[2022.11.08-11.39.47:851][383]LogWindows: Error: Fatal error!
[2022.11.08-11.39.47:852][383]LogWindows: Error:
[2022.11.08-11.39.47:852][383]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000001e3180768
That's not enough info, in case you might want to know. It tells you what happened, but it doesn't tell you what it was doing when it happened.
exactly but that's when it went belly up
You'll want to include at least the first two lines from the call stack. (The whole thing if you can.)
At any rate, I nearly religiously subscribe to Ockham's razor - Numquam ponenda est pluralitas sine necessitate. The built-in router is unnecessary if you know basic networking, and it only gets in the way, doing stupid things while it's at it.
Like this:
[2022.11.07-18.11.48:484][504]LogServer: Opening a new route from '192.168.0.101:56493' to '127.0.0.1:15000'
[2022.11.07-18.11.48:484][504]LogNet: NotifyAcceptingConnection: Server OnlineBeaconHost_2147360892 accept
[2022.11.07-18.11.48:484][504]LogNet: NotifyAcceptingConnection accepted from: [::ffff:127.0.0.1]:52852
Because it makes perfect sense to route IPv4-to-IPv4 traffic over IPv6. Doesn't it?
Yes, it's the loopback, so I'm not sure if it even touches the IPv6 stack. Still.
And if it's meant to limit the number of ports to one,
what use does it have over LAN?
And, if you ask me, it makes little sense... how big a host would you have to be, to be running over 21 000 instances of the server?
I mean, sure, I get the idea... 1 < 3... but still.
A host can't even cope with 1 currently
Ok, I add the multihome switch to the arguments I guess?
Yeah, -multihome=0.0.0.0. Note the space.
And I doubt it's going to improve. But for argument's sake, let's say a huge hosting company that virtualises this shit.
... timing. ;D
I have to ask. I really have to ask. How much shit would you need to be running, before you start running out of available ports to assign?
Before cutting 2 ports per instance becomes worth it?
Looks right.
cool thanks Kad, I'll give that a whirl.
I mean, I don't use NSSM, but as far as launch arguments - it looks OK.
Keep in mind that you will need to have the three ports (7777, 15000, 15777) open in the firewall (if you're using one).
It was in the wiki and seemed fairly straightforward
If you're port-forwarding, you will need to forward those as well, if you haven't already.
With the internal router disabled, the game will actually make use of all three.
Yup that's been in place since I set it up
The funny part is: every tutorial I've seen (even the one on the Wiki) tells you to open/forward all three. Nobody ever mentions the built-in router.
(the router makes it so that all communication happens on one port, and it then distributes it by connecting from itself to itself locally)
Thanks for your help Kad
Sure thing.
cant connect to server, could this be the cause? LogOnline: Warning: OSS: EOSSDK-LogEOSP2P: NAT Detection failed, unable to resolve host
got another crash, this time getting out of the explorer (nothing extraordinary leading up to that)
gonna submit it + the truck crash that had the same signature
I've been noticing creature respawns in powered factories on dedicated servers lately, but I haven't seen any mention of respawns in factories since August here. Anyone else having this issue? Sometimes it happens with fully powered factory built all around, and sometimes it's when you're tearing down and rebuilding something, as soon as you pull the last powered item it's like all the creatures queued up, not waiting a couple of day cycles to spawn.
This one in the picture showed up just now at a fully powered Aluminum factory on the border of Gold Coast and Rocky Desert, at the bauxite node way up high, so not much chance of it just wandering by from somewhere else.
After update 6 every creature respawned on my server and some slugs too which is nice.
I'm fairly certain I've not found every single creature inside a structure.
For instance I had a spitter and 3 crab hatchers inside an oil pumping chamber.
I knew there was a but after 6 where creatures would respawn when they shouldn't, but I thought they fixed that. Haven't noticed slugs respawning yet, but definitely seeing hostile respawns in powered areas.
Hi All. Looking for some help setting up and running a dedicated server. Please speak to me as if I am completely computer illiterate. It is the first time I ever set up a dedicated server. Also apologize in advance if I ask dumb questions. I am running a linux server. I got the game installed. when I try to run the file ./factoryserver.sh
I get a return message that says Refusing to run with the root privileges. what and why is that?
You are trying to start the server as the user root, which is not allowed as that user has the highest level of authorizations and it couls pose a security threat. You should be running the server with any other user account
Ah!
in that case... how do I go in using other user account?
actually... let me try to search the web and see how I can create and login using different user account on linux server first! thanks 😄
@jovial haven thanks! it "worked" I was able to run the command... but I don't know if the server is up. just got a bunch of messages scroll up (also a lot of error messages as well)
👀 don't get in a vehicle while it's saving only way out is to drive into water
seriously, so many problems with DS would be fixed if it locked players during saving like SP does
No, that is unrelated. Where are you connecting from, and where are you connecting to?
i tried to join a server from a friend and then the game crashed
Try again, it's likely a one-off.
👍
It would do you good to read up a little bit more on hosting services in general. You sound like someone who's willing to learn and look for their own answers - that's good. You'll be doing a lot of it. ;]
Hey people, I want to set up DNS so people can join via domain name instead of typing the IP address. I have trouble making the SRV record though
You need A record type.
huh
I did make one
wanna try it out for me? I am currently at work but I can remote access my server at home
I'm also at work 😉
I have no such issues, over 7k hours on DS up.
I guess I was thinking too difficult about it
my router manufacturer includes a DDNS option so I wound up just using that through their config
Yea my router only has port forwarding, but since I have a domain name anyways, I usually just use that for any game server I make
You don't really need a SRV record - it's useful, but when you know exactly where and what you're connecting to - it's unnecessary.
Besides, that only really makes sense when your service uses one port. Most game servers use multiple.
And even then, the client app in question must be aware that it can use SRV records. Most aren't aware.
Yea you're right. I just autopiloted to making an srv record and didn't really stop to think I guess lol
I suppose Satisfactory could benefit from a SRV record, since with the built-in router it can present as one port.
But then, it would actually have to look for it, and there's no info on what it should be. _sf._udp.domain.com? :D
It works now, The A record works fine
I tried _FactoryGame._udp.domain.com, lol
I guess the correct question would be: does Satisfactory support SRV?
I doubt it
Otherwise there would be something on the wiki page, I guess
or my experimenting worked
but it didn't
Not necessarily... the Wiki page doesn't mention anything about the built-in router, but it exists.
The only way would be to actually record the DNS queries Satisfactory makes when connecting to a server.
Or just ask Bogdan. He would know. xD
It would probably be something _sfquery._udp, _sfbeacon._udp and _sfgame._udp for completeness.
Or just _satisfactory._udp. Or, like you proposed, _factorygame._udp.
It would suck if they used the internal project type for the identifier, though... that would imply it's a UE thing, and there's a number of games identifying themselves as 'ShooterGame'. :D
(at least CONAN identifies as 'ConanSandbox' :D)
Thats kind of funny
I have this .com domain so its easier for my friends to remember what to connect to
currently have a satisfactory and a minecraft server running. But maybe conan replaces one of them in the future if they want to get into it
Same here. Have to rely on DDNS, but that's not an issue.
Oh right, another question
I can change the server name. But it wont change the session name of the server for some reason
Yuh?
I want to keep the save but I want to change the name of it so something more professional
Ah, yes... I'm not sure how to manage those. Last time I changed the save name, it refused to load it until I changed it back.
I'm not sure if I failed to change the file name, or if it's saved in the file.
Mine is worse... I actually made a fairly bad typo and never noticed. :D
I tried it twice, the first time it crashed completely and the second time it refused to load up the save lol
Sure I made a backup already
- save the game under a new save
- change the session name
- restart the server
- manually load the save you saved
See if it changes back to the old session name, or not.
is there a command for restarting the server without using Quit and manually booting the batch file again?
I tried "restart" and "reboot" but it doesn't work
Not as far as I'm aware. It has the internal restart process, but I'm not sure it can be triggered manually.
Another thing to ask Bogdan.
Maybe we should keep a list of questions, to post on the Questions page... xD
based idea
That works too... unless it crashes without exit, which it sometimes does - at least to me... :D
Oke so I save the game under a custom save file
Changed the session name
Nope, doesn't work
it changed back to the previous session name
lol

Anyone know what this is about?
If the server has nobody connecting in 300 seconds it wont connect anyone anymore and I have to reboot it
I think I effed up somewhere...
The server will just show up as offline and it wont do anything anymore
with 0.0.0.0 you mean the internal ip of the server I presume?
No, I mean literally 0.0.0.0 as it'll make it latch onto all available IPv4,
which is the default without it anyway.
You CAN substitute it with your IP, if you want.
Note that this will disable IPv6.
My ISP refuses to give ne IPv6 so thats fine
(which, I find, is actually a good thing with Satisfactory... 😂)
Will it spell trouble for friends that only have an IPV6 address?
I know a goober that for some reason has no public ipv4 address at all.
Does he have NO IPv4 at all? Or just not a public one?
Does your server have a proper IPv6 assigned from a pool given to you by your ISP?
Does your server have a proper IPv6 assigned from a pool given to you by your ISP?
Then what's the problem? If his network hookup is IPv6-only
he won't be able to connect ANYWAY.
oh damn you're right
In fact, he won't be able to reach anything that isn't on IPv6.
I should grab more coffee
So basically, most of the Internet is invisible to him. :D
That doesn't sound right. but indeed a lot of stuff is broken for him
- so I assume he has SOME IPv6-to-IPv4 tunnel set up somewhere.
somewhere yea
Right
and then distribute IPs from it via your router to your internal machines.
There shouldn't be a problem then I guess
My ISP doesn't even support IPv6, so... I just kill support for it on the system level.
That way no app/service can become confused.
Like Satisfactory. xD
I needed to learn how to calculate ipv4 addresses in binary when I was still in school for some reason
never needed that info since, but thats completely unrelated
The server seems to not cave in after 300 seconds now!
success, awesome. Thanks for the help
Why 0.0.0.0 instead of an actual local IPv4 ? Eg. -multihome=192.168.0.11
Is anyone else noticing weird delays on dedicated servers after a few days of building? Long seconds or minutes before power switch readings show the grids, or fluids reach machines to start production, etc
I am guessing its just the server grinding to a halt because too much is happening?
Maybe see what hardware its on
I'm running it on my own pc, the hardware is more than sufficient :p
Right, yea that should indeed, be sufficient lol
So you are running the server, plus satisfactory on the same machine? Isn't that like, a bit counteractive?
Why not just host your game at that point
If it makes sense to you I guess? lol
I wouldn't know why the performance decreases then. Only thing I can think of now is perhaps checking the logs, but you're probably ahead on that
I currently got a server running with around 9 hours of playtime on it. Still absolutely fine performance wise. I'll see if the same problem you have occurs
how much memory does the host you're running both on have?
Currently using 47% of my cpu's memory
ahh ok, I know my server is using at least 10gb so I could easily see hitting a low memory amount if you're also running the client and say chrome and some other stuff
I've got 32gb on this pc
ok probably not that then
More then enough yea
I dont know how much ram speed affects it
but I doubt it would
I doubt a ton unless it's REALLY old stuff
it's a good pc.
If you say so
how's the game run without the dedi server running? pretty normal?
I am assuming the people connecting to your server report the same performance problems?
Even when you are not there
There aren't any performance problems for moving around, jumping, etc
It's all with the automated systems
is this just visual stuff like the conveyors glitching their items off the belt a bit?
the power switching one I guess sounds worse than that
Na, though belts are def glitchy, that happens during solo playthroughs not on a server
yeah that's pretty common but not a functionality issue
One example: I hooked a single packager to a refinery producing fuel, one pipe and no junctions between them
it took nearly two minutes for the packager to realize that it was being supplied with fuel before it began packaging
the pipe supplying the packager was full, it wasn't a headlift issue, etc
oh that does sound like a really long time unless it's a HUGE connector or uphill >=10m or something like that
Yea so the server just has trouble keeping up with all that is going on then.
I'm sorry I think that's a big assumption
I think this is a coding issue, not a hardware issue
when you log onto it what's the "average tick rate" in the server joiner screen say?
30
oof, yeah something is slow 😄
I dont really see any other option, unless its a coding issue yes. But if so I will stumble upon the same problem soon. So I guess ill keep you updated
0.0.0.0 is essentially the same as * in most contexts - it means "all available interfaces" instead of specifying any one of them.
What is your TPS? It's available on the server management page.
Ah, right, you said 30.
Then yes, it sounds like there's a bug there somewhere. Can you record the issue on video?
Is 30 the default? I'm browsing an optimization guide now that suggests upping the default to 120
30 is the default, and you technically shouldn't need more than that. Making it faster means there will be less time to do things.
oh I'm not sure I realized it had a default - mine started 120ish and usually creeps down as the world grows 😆
I did that also (tickrate 120) which corrupted all saves later due desync issues. Performance was outstanding however ended up in full server restore.
interesting - I assume if it's 30 for the default then it was overridden to 120 somewhere in the docker setup I borrowed
yep NetServerMaxTickRate=120
[/script/onlinesubsystemutils.ipnetdriver]
MaxClientRate=104857600
MaxInternetClientRate=104857600
NetServerMaxTickRate=120
LanServerMaxTickRate=120
MaxNetTickRate=400
InitialConnectTimeout=300.0
ConnectionTimeout=300.0
Until this change all was fine, but after that respawn under ground, teleportation issues etc.
yeah that looks identical to mine at the moment
I however haven't noticed issues or corruptions so far (probably 70hr of game time)
Where did you get your server? Because when I say default 30, I mean that by default, it's limited to 30.
Remember, folks: everything happens on a tick. That means that events have to wait for the next tick to fire and get handled. That also means that the game has to do a lot of stuff every tick - update the variables, update the players, process new player input, and so on. The higher the tick rate, the less time per 1 tick.
At a tick rate of 120, the game has a little more than 8 ms to perform actions.
Increasing the tick rate does have a reason: if your hardware is capable, it will make the experience smoother, more granular. But it has downsides as well.
https://github.com/wolveix/satisfactory-server with only a couple small changes I think
And if your hardware can't keep a tickrate of 30, what makes you think it'll be able to keep 120? :D
oh it's been pretty stable, but also it's a newer computer and running almost only satisfactory server most of the time 😆
I'm not talking to you specifically, just in general.
People ask how to increase the tickrate, and they get told which file to change. What they're actually asking is "how to make the server run faster", and increasing the tickrate won't help since it's a ceiling, a limit.
If the CPU can't keep 30, increasing it won't help at all.
yeah that's a good warning then
I hadn't really considered the 120 since it worked out of the box for me
I'm running 60 myself.
Figured - just 1 player, the CPU can handle it.
Doubt I'd want to go beyond that, tho'.
I guess I know what numbers to fiddle with if my server goes to crap later 😆
You really dont need to change the tickrate, when your world gets big enough - even with one player it will unlikely run at a constant 30
And keep in mind, that the clients must also be able to keep up with the server.
My dedi is on a 8700k w/ 32gb mem, world save takes about 55 seconds currently when I am connected the avg tick rate hovers around 23-25
In terms of the clients, they dont really need to keep up unless you travel around and load in all objects across the map
I can pop in to a very unbuilt area and get 140fps, but when I travel to my nuclear setup, across the north of the map my framerate drops to around 60-70 average
Nice... that must be a pretty big save. I'm on a 3770 myself.
Quick question, are mods able to run on dedicated servers?
No mods on dedi yet, unfortunately
The save file is 14.1MB, not sure how to translate that into real world - but yeah its pretty large
remove trees, add size - kinda funny how that works
Hmm, kk. Could I run the full client through Epic on one PC (without a character in the world) and login to it with a steam based full client?
You can't run the game client without a character loaded in.
The most painful thing for me, is that you can't run the game client without graphics. :D It would do as a quick & dirty modded "server". Alas. I don't want that sort of load on my electrical bill.
though technically, the steam client and the epic client gives ya 2 different characters, even if you connect the accounts
is IGPX supported by satisfactory? 😄
I wonder if setting a windowed mode with framerate limit and absolute minimum settings would help with that, suppose its worth a shot
Oh, might have my acronym wrong, its the GPU built into the CPU
integrated graphics processor
Yeah, I believe the common term is IGP ^
Well... it doesn't officially support them, but there's Reddit evidence to suggest that it does work. For a given definition of "work".
iGPU, actually.
anything works, if you set it to run at like 320x240 ;D
Actually have a GTX 560 in this PC
It would still engage the 3D performance levels, regardless. That's a power draw you don't want for a server. But eh.
If you can foot the bill, have fun.
if you wanna go the long route of calling it an integrated graphics processing unit : >
Actually, "iGPU" is more recognisable than "IGP" in terms of acronyms.
Not sure about expanding them.
Ive definately seen alot of tech media refer to it as IGP, semantics either way - gets the point across
I haven't. Maybe we're in different circles.
Yeah, set the res really low, windowed and graphics quality lowest - should work to run a pseudo dedicated w/ mods
i think its called something entirely different in some BIOSes aswell, so what ever floats yer boat : >
i usually set it to the absolute lowest available resolution, go window mode - and then minimize 😄
resolution scaling at minimum too, if available
Still, it does have disadvantages. Not every 3D-capable program likes to share.
i'd kill such a program with fire
And like I said, the GPU will still enter the 3D performance mode, so it'll draw extra power for basically no reason at all.
For something that's supposed to run 24/7, that's something to consider.
out of curiosity, how damn high is your power price if you're worried about like 30 watts? 😛
Yes, well - the worst offenders are old games (if you're trying to run one, you probably don't want to kill it with fire) and "industry standard" software you probably can't function professionally without.
GTX 560 is a 150w card.. plus the other system components, granted probably wont be 100% load but 30w is not probably not going to be the only power draw difference
brings me back to trying to run Heroes of might and magic 3, in window mode ^^
and nothing is stopping you from underclocking it - and setting your own power limit : >
Just by bringing the voltages up, it'll be consuming considerably more power at idle.
Also, my tier 4 power cost from power company (southern california) is $0.47/kwh.. so yeah adds up when its on 24/7
But eh. It won't be the full experience, at least.
I wish GeForce Now supported mods.
my power costs about a tenth of that - heh
How does that actually work, that the dedicated server is able to save the game without having the players getting paused?
Mine's $0.15/kWh, but that's in Poland, so the realities are a little different.
Sure you can underclock it, but also is that affecting the "server" tickrate - at that point its better to just run the save in normal SP
Would underclocking the GPU affect the tickrate, though?
With a 55 second save time.. its really fun too! You get absolutely no warning that an autosave is happening and everything basically just freezes
55sec for 14MB is kinda insane though
I would imagine the hosted tickrate/simulation must be tied to FPS somehow or another, but just speculation
14MB is not the problem, its entity serialization that takes pretty much all of that time
[2022.11.09-05.58.02:119][271]LogGame: World Serialization (save): 52.134 seconds
[2022.11.09-05.58.04:191][271]LogGame: Compression: 2.066 seconds
[2022.11.09-05.58.04:191][271]LogGame: Write To Disk: 0.003 seconds
[2022.11.09-05.58.04:191][271]LogGame: Write Backup to Disk and Cleanup time: 0.004 seconds
[2022.11.09-05.58.04:257][271]LogGame: Total Save Time took 54.272 seconds
But players in the game don't notice the saving right?
Well its an M.2 NVME so yeah
Its sort of weird when its happening on the client
Basically, if I have a object selected, I can take at most 3-5 actions like building belts or foundations and then once its completed it "catches up" and happens all at once
luckily i havent encountered any save longer than 2 seconds since i started playing in upd2 ^^
Sometimes, it will just not let me change my entity selection or anything aside from moving
Movement is also fun, often times it will catch up and I will be in a completely different spot or dead if it happens at a very inopportune time when jetpacking/landing from a high place - luckily that doesnt happen as often since you dont immediately die from 100% health fall damage anymore
that ive encountered on a mates server however, and things disappearing from the game world, but still being partially there, just not visible or interactable, but solid 😛
Oh yeah that happens with explody rocks, trees or creatures when they die all the time
he also had some trees that never died - so u could keep cutting them down for all eternity and get resources forever ^^
I don't think I can go back to vanilla 😦
Well.. I build the entirety of that massive map completely in Vanilla, so its doable.. just time intensive
When U7 hits, I will create a new U7 map and do it all again, full Vanilla
Uhhh, negatory. Disk speed makes no difference for Satisfactory saving.
This 55s save is only the U6
He was remarking on the write time vs compression/serialization.. so sure it does - 0.003 seconds to write 14MB
My HW is capable to run my map with 44k objects at stable tickrate 120. However I'm running virtualization layer on both ends (srv and client) and it may cause some.. unexpected issues 🤣
How do you see tickrate?
Mine takes 0.027s to save to a 5400 RPM RAID-1. That's not an appreciable difference - even at 10x the time - when the serialization takes 15 seconds. :D
Server Manager.
Very true, agreed the write time is trivial in pretty much all cases
ah right of course
If I may seem aggressive about some stuff, that's mainly because I want to avoid giving people the wrong idea. Yes, the disk makes a difference... but if someone is having save-time issues, swapping out their HDD for an NVMe will not resolve the issue. :D
I think BLAndrew's save (in SP w/ mods granted) takes 10 MINUTES to save.. so that would probably be a point where disk speed would have at least a slightly noticeable impact as I would expect that save file to be in the hundreds of MB - overall still negligible in the overall save process
Unfortunately.
Yeah understood, no worries - just wanted to clarify it as well. HDD vs SSD vs NVME SSD is unlikely to show any improvement at all in 99% of players
True, I'd expect it would take a few seconds. But yes, still nowhere near any significance.
Hell, this might be the one game where putting the save onto a RAM disk would actually make it worse. In the microseconds range, likely, but still.
Which, I will admit, is something I considered before I opened the log for the first time.
Thankfully, the devs decided to put in a detailed timing breakdown in there, and it quickly clarified why putting the save data on a superconducting CPU-tied static RAM chip wouldn't help.
Save it to the L2 cache for max performance!
Doubt it'd fit. L3? 😂
Ah you right, the 5600x3d has 96M L3 and only 4M L2
I'm on the 3770, remember... xD
Like 1 MB L2, and 8 MB L3.
It would still be a tight fit, but...
... at least for mine, it might work.
Would play merry hell with the CPU, but theoretically...
I wonder if you can even address the processor cache as a usable disk area
And you know what? I wonder how many devs uttered that phrase in the '80s... :D
I would go out on a limb and say the count would be nonzero.
Like that one guy that didn't put in a program loop into the PDP-40 (I think?) program he was writing,
because by the time the loop finished, the drum rolled over.
Hmm... L3 isn't directly accessible, but it might be possible to structure the program in such a way as to make "pockets" with values you want. It would then be a "simple" matter of joining them to form a contiguous virtual space.
I don't think it would make any appreciable difference vis-a-vis RAM. It would still be a little marvel, though. :D
Writing it would be a pain, I suppose. It'd likely need to be hand-optimised assembly.
hmm, getting error 33
hmm, ill try vanilla
omg, average tickrate 17... thats not going to work
Was that an existing save or new?
existing
Ouch, I do notice that it does take a minute or two stabilize for some reason when starting up larger saves
What if you arent connected?
Let me check. Do mind that its running on a i5-4670K, 16 GB memory on WIndows.
tr 30 when I'm not on it
Exactly what mine does, keep in mind a tickrate lower than 30 is still certainly playable
I do get alot of misconnected belts/pipes and when fast building machines (batteries in particular) you get alot of "double" entities, where there are literally two of the exact same building in the same position
I dont know if that is related to tickrate or just a generic bug/experimental dedicated however
Jup, still 17 after a few minutes
That's... not great.
But considering it's a larger save...
As long as you can accept that things will be a bit wonky and adjust your behaviour accordingly, it's playable.
Still. There's a point where loading the save into SP is more workable.
In the meantime, I've been working hard and here are some results to share.
I've ran Satisfactory Dedicated Server on few computing clusters, some of them were:
Beowulf Cluster - a high-performance parallel computing cluster from inexpensive personal computer hardware
Parallel Virtual Machine - software tool for parallel networking of computers
Docker Swarm cluster - most modern solution, allows containers to be scaled across multiple Docker daemons
The most promising was PVM, since it spawns process on each node concurently and gives output on the main thread.
On non-clustered server single process is spawned, it has up to 40 sub-processes with unique PIDs, which I assume are the workers. That workers need to be split between computing nodes to get best performance in computing tasks (like calculations on very large map) and results have to be returned back to the main thread. This process is also very resource-hungry, both in CPU cycles and RAM used; so that should be also split between the nodes.
In case of Swarm there is a possibility that if docker-compose could contain config of one container type haproxy for UDP redirection and the second one for the game that spawns multiple processes via commandline switch like --threads=2 could be scaled up via docker service scale Satisfactory=2 command.
Current status:
Beowolf - spawns process on each node (so 3 independent servers are deployed)
PVM - spawns process on each node (so 3 independent servers are deployed)
Swarm - spawns multiple processes on the same node, I'm still investigating this
It seems likely it could be good test bench for Google Cloud Agones, which utilise Kubernetes. It's open-source, multiplayer, dedicated game-server hosting.
Good afternoon
Not sure I understand where you are going with the cluster thing - is this similiar to Clusterio? You "input" resources from nodes and "output" to other nodes - basically making the factory distributed across instances with a central/master database that tracks things submitted to the cluster
Or are you just running multiple independent instances? In which case where does the clustering component come in?
I'm trying split workload of single instance.
Isnt the main loop essentially single threaded? How are you distributing the instance?
PVM is parallel - which doesnt exactly work in terms of process distribution if you are waiting on something from another node
@inner onyx What I see when I join the server, also the CPU usage in TaskMgr on the server goes from about 8-10% to 20-30%. Adding the player seems to add significant overhead
Apparently I am mixing up the terms Distributed and Parallel - either way the same question is posed, how are you syncing the differences between the instances?
can i have the adresse?
When building giga-bases in Factorio - i've used a mod called Clusterio that does what I described above, but its basically individual worlds/instances that submit items to the "cluster" and each member instance can pull/push from the cluster. This eliminates the distributed/parallel processing latency issues that come with this. I've built a Clusterio cluster that contained ~15 instances across 5 physical machines in my house
Satisfactory server is on shared storage - NFS. Same path on each node. I can execute same binary on each node via cluster tools. They're spawning indepedently, if I could make one master listener and several working nodes it could work. But that requires implementation in the code.
And here I was thinking you're virtualising the one instance amongst the cluster.
But eh, I guess that'd be too much to ask. And hell, I know nothing about clusters other than "they exist". :D
eh i got a gtx 1650 Ti and a Intel(R) Core(TM) i7-10750H CPU @2.60GHz
32 GB of rams
You wanted to join my dedicated? I suppose
I wonder how (insanely) difficult it would be to virtualise multiple cores into one "virtual" CPU with their combined power. I mean, we'll have to go there eventually.
yuh
I dont think I have the ports open, one sec
k
Yeah, that doesnt really work that way - the problem is network latency
With high tier true distributed (or even parallel) clusters you are talking Infiiband type networks that are in the microseconds of latency and 100Gbps links
well, i got on most of the games i play around 7 of ping and 570 mb/s
I've seen a few of these types in the field of clusters but they are typically for simulation of fluid dynamics or other very specialized applications like video encoding
Apparently Terraria uses 7777 so its already forwarded lol
ok
I'm surprised you don't change your port assignments. I group based on game.
(my SF is running on 20010/20011/20012)
I host alot of stuff for other friends and they are usually too stupid to input ports
That 8700k machine atm is only Satisfactory, so those other ports were already in there from previous
I see.
I have IB network, but not using these cards atm.
And you're friends with them why?
I mean, mayhap "minions" be a better term?
;]
someone got a session id?
Cause playing solo is boring in alot of games.. Terraria, Space Engineers, Valheim, Factorio - honestly aside from normal Half-Life DS stuff not very common to run into port overlap between games
I sent you the IP in PM Ryan, you have to add it to Server Manager
So they're warm bodies. Okay.
😁
Ah, the good old days where game servers took 50 megabytes of RAM... :D
(and could still overwhelm a 16-port 10/100 switch hub into dropping connections with just 7 players :D)
Simply running the exe from the same path/share/whatever doesnt really mean that its automatically clustered, the individual processes need to be aware of eachother and work together in that fashion
What you are essentially doing is just saving disk space by not storing the binaries and content locally, instead streaming it over the network
That's why I mean that requires implementation in the code.
Right, which is something that CS is extremely unlikely to undertake - the return on investment simply isnt there
This is something that could be done with mods however
I'm not really sure what it'd achieve. Unless you can bind the machines together to present a virtual (distributed) CPU, I'm not really sure if it'll help performance at all. Unless that's not the point?
I mean, if it could be parallelised easily, it would already make more efficient use of modern CPUs.
It would in fact be an extremely severe performance detriment with the current system, imagine introducing network-level latency to previously memory constrained operations that happen on-chip
is the eh Intel(R) Core(TM) i7-10750H CPU @2.60GHz good enough to run a server?
(still, there's an idea... decouple the main ticker into multiple schedulers, only loosely coupled, and try that)
Is my thinking, yes.
The 10750H is a mobile chip and would run a smaller dedi just fine, just not into megabase territory
alr
i'm supposed to get an i9 with the rtx 3090 or 4090 if avaible i've saved up for over 3 years
i'm still unsure of if it is a good idea or not to buy it
It seems to be 23% faster in single-core than my own, according to UserBenchmark. So I would have to say yes?
alr
Unless you need the cores, I would stick to an i7, i9 is really for productivity where the core count is really necessary
it can apparently get overclocked to 6GHz or to 9GHz i forgot it's one of these
Sure, on LN2 in benchmark/lab scenarios.. lol
I would still wait and see what the GPU market does. The 4xxx series just released. Getting a good 3xxx series might be viable. I remember when GPUs were actually available for their stated MSRP, you know...
i'm trying to learn blender right now
yup
Learning blender vs actually using blender as your job wherein 10m vs 7m renders are important is where the i9 matters
On your own machine.. not really relevant for the instance cost difference
It does, at that.
And we're not talking 10m vs 7m, we're talking 10 hours vs 20 hours.
Well - that depends on what is being rendered too
i've checked and i've been for 200 hours on it ..
201 to be more exact
Does it matter if its left on to render while you are sleeping? Ultimately its up to you on those durations vs cost
I sometimes run CLI renders on our studio server. Not a great machine, but it runs 24/7, as opposed to our 3D artist's PC.
Typ. render times between 4 and 6 hours. She can probably squeeze it down to 3-4.5, but it's useful to have her do other things.
i don't let it run while i sleep
Understood, just shifting cost from CPU into more (or faster) memory for instance is a better usage of $$$ imo in the long run
Better cooling, better storage, etc
It really depends on what you're doing.
If you're doing video compression or running builds, core count is king.
I'm a poor polishfag. Sponsor me. 😂
what will i get in exchange?
i'll take your soul.
A minion? :D
you're
In that case.. Intel probably isnt the answer either - use Ryzen
soul.
I'm an IT tech. I'm not sure I came equipped with one.
13900k $732 vs 7950x @ $630 and its still better at Blender
You want gaming performance? Intel is the current king
true..
Assuming you care about the difference between 260 and 240 fps.
Exactly hah
I'm still on a 1080p60 display. I'm not even sure why I have the GTX1080.
I mean, it might make a difference on a 240 Hz display, in terms of competetive play.
lol
Still, 0.1%tile 80 fps is damn respectable for Cyberpunk.
mhm
is there like a list of servers to join somewhere?
When I started getting disconnected from my dedi (before figuring out how to adjust the timeout settings) I heavily reviewed upgrading my main rig (9900k w/ 32gb DDR4-3200) and replacing the 8700k (32gb ddr4-2133) but the difference in save time was only 2-4 seconds
I guess the 7900X is my next upgrade target (on 3900X currently). Seems more like an evolution than a revolution, which is exactly what I'll appreciate.
There is not, you need to use LFG channel
I would suggest waiting until the X3D variants release, slated for Q1-23 and seeing if performance is better
got it, thanks
I'm not planning to upgrade now, so no worries. I'm currently in the red, due to the galloping inflation.
I feel that, I couldn't justify the ~$1400 USD for the new mobo/cpu/mem for that miniscule performance gain
The 7900X would be an upgrade, according to benchmarks. But yeah, not just yet.
One point in favor (which will not change with time, thankfully) is that my current rig will need to be retired anyway (due to the memory gen change), so it'll replace the 3770 in the game server.
I'm quite looking forward towards losing the 32 GB constraint.
I can't go up, but I can go sideways.
Lol, so I created a VM on Azure... Tikrate 7 max 10...
... about in-line with what you'd expect, I suppose? Maybe a little low, actually... But good to know.
Not if I'm getting 17 tickrate on my PC right next to me running an old i5-4670K
Changed to a different VM family type, now getting about tickrate 12...
While @novel yarrow is getting 120 tr....
yeah that was LXC container on Proxmox host while connected to the server with around 44k objects on a map
....over VPN.
This is my daily setup, tr 120 was set for a test.
What SKU on Azure?
if you are using a low end SKU like B-series, gonna get crap performance
Probably want at least a D or E v4
D4ds v4 (4vCore, 16 GiB memory) They run on a Intel Xeon Platinum 8272CL processor, which runs at a base speed of 2.5Ghz and can achieve up to 3.4Ghz all core turbo frequency
Wow that is surprisingly low for that sku
Granted its a server proc vs desktop, so makes sense
There is a more compute-oriented SKU, let me find that I think its F series
My node2 has i7-7700K CPU @ 4.20GHz (no OC).
My desktop CPU i5-4670K runs at top speed 3.76 GHz, so maybe a newer gen CPU doesn't really matter?
The performance is really a combination of IPC capability and memory
On server hardware, you are getting into ECC stuff which will (generally) have lower clock than a desktop counterpart
There are high freq Xeon's though, so frequency isnt everything
Well, yeah thats why expected more as well, its running on DDR3 1333 MHz ...
Thats incredibly slow in this day and age
I know, thats why i'm flabergasted at why its so slow on the Azure VM
The box will also be virutalized, which is going to inhibit bandwidth between memory and CPU cache as they are going to run the machines at high workloads to maximize the hardware investment, so you are competing for resources
Can you try to change the sku to Dv5?
Standard_D4_v5 is 4 cores and 16gb mem, and more importantly is IceLake Xeon (3rd gen)
Thats probably the best youll get from them for a reasonable cost, even with reserved instance going to be a bit expensive per month
Requesting to increase quota for thos from 0 to 4 vCPU 😛
And this is also the reason why game hosting companies exist - they use alot of desktop processors for games that are heavy on single thread
Not great experience with game server hosting services
Yep, I agree - thats why I have my own server room and my own box for dedi stuff 😄
Also the benefit of <10ms always on LAN
D4ds v5 gives me a tr of 19
but how large is Your save ?
Game just runs smoother, depends of view distance on a belt 👍
being right next to it i see half of pieces of belt empty, but throughput is full belt speed.
or is that network related?
You mean this ?
That belt thing happens at midgame and laterfor me
Damn D4v5 still not enough tick, can you send me your save? I want to load it up on my dedi and see what it gets
Its less obvious with T1 and T2, but once I get into steel and things are "movin and groovin" - it happens everywhere
No difference, the same on tr = 120.
doesn't seem to happen on singleplayer ?
Yeah, doesnt occur on single player
Hey all, is there a way to verify that I've set up the network settings correctly for dedicated server? I followed this guide: https://satisfactory.fandom.com/wiki/Multiplayer, and have set all of the configs for Engine, Game, and Scalability, then set each ini to readonly. My client then also has had these changes and altered to readonly, but I never break 64kb/s - which is surprising because this is a tier 8 factory spanning many areas, with my save time being around 62 seconds. Is this expected? Should it be surging higher?
Is there a reason you expect to see more bandwidth usage?
Also, did you set it on both the client and server?
Just that I still get all the weird multiplayer bugs - trains rubber banding, delays in building items, random pops to other spots. This is the first time I've loaded up after a while and it got me thinking that maybe I should check everything out.
but if that's a normal experience, I'll accept it
Yeah.. that just happens unfortunately. Welcome to Experimental Dedicated Servers 🙂
Damn, I was hoping you guys had a magic fix lol
For one, that's a tutorial for MP settings, not DS. Many of the same settings apply, but just wanted to point it out.
Second, the network settings were clearly done by someone who doesn't understand how that works, and only the game's logic actually prevents you from breaking your game this way. :D
And third - the amount of data you're seeing has much more to do with time than it does bandwidth. It doesn't matter if you have 1000 mbps if all the game needs to send is 2 bytes.
I did apply these network related settings to my dedi (mine is Windows not Linux), I did not notice a difference in item belt issues, building issues (having to place lifts, belts, power poles/cables multiple times), train rubberbanding or any of the other weird MP-related things that just dont happen in SP
https://www.reddit.com/r/SatisfactoryGame/comments/yis7mv/deploying_32player_satisfactory_dedicated_server
And Kad is exactly right, the game will only send/recieve what it needs to, not what is necessarily "available". Bandwidth isnt the only network factor either, latency also plays a role
Fair points all of them, I figured it was true but was hoping for the magic fix
Take this for example:
[/Script/Engine.GameNetworkManager]
TotalNetBandwidth=104857600
MaxDynamicBandwidth=104857600
MinDynamicBandwidth=10485760
This might work really well... if all you have is 1 player. Otherwise, if the Max is ever reached, you'll start seeing bandwidth allocation conflicts. Someone forgot to take the number of players into account. The MaxDynamicBandwidth shouldn't match TotalNetBandwidth, it should be scaled to TotalNetBandwidth / maximum number of players.
I remember this post! I am actually running it on proxmox, and forgot about this, I'll try applying some of them!
Here's how the game works, basically.
The game runs on a scheduler. This scheduler takes various tasks - calculations, data sending, data receiving, data processing, update replication, stuff like that. Basically - whatever needs to happen for the game to continue running. It handles updating the production, updating belts, updating critter AI and positions, updating player positions and actions, and making sure every player is seeing the same thing at the same time.
This scheduler runs on ticks. It's ran for every tick, and things must complete before the next tick can happen.
By default, the game runs at 30 ticks per second. That means that the scheduler runs 30 times every second, and has 1/30 = 33.3 milliseconds to complete all of its assigned tasks.
Not sure that is true, the UE4 engines API shows MaxDynamicBandwidth is calculated after splitting TotalNetworkBandwidth - my interpretation is that it is dynamically based on connected players (cant post the unrealengine link but if you google it, the API docs are easy to find)
Yeah, I understand all of that, was hoping that my network was the bottleneck but essentially didn't want to admit the server CPU is the bottleneck
I know exactly which doc you're speaking of, and it's not exactly clear on the issue.
Note the pinned core
But whether it actually allows you to cause issues or not, it still creates an illusion that you shouldn't hold onto.
Yeah, i'm no developer for sure - just relaying what I think the doc is stating, either way the you are correct in that what is needed is sent/recieved
That would be the main loop and the reason why large builds cause low framerate and in the case of a dedicated, tickrate below 30
Please remember that the game settings are balanced in such a way as to allow 4 concurrent players observing thousands of kilometers of belts and hundreds of machines. Some sacrifices had to be made to allow for that to actually work even with big factories.
I'm actually hoping that the scheduler is intelligent enough to not execute everything on every tick. Some things need updating less frequently than others, and tick "space" could be freed for other, more pressing tasks.
Since you can consider even up to 100 milliseconds to be - for all intents and purposes - "at the same time", you can for example split your data between ticks. What does it matter if you receive some part of the data 33 ms "too late" in that context?
