Jump to content

SylenThunder

Moderators
  • Posts

    7,144
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by SylenThunder

  1. Oh, and another thing I've been noticing since a16...

     

    I get this error in the log of whatever server isn't the first one to start....

    2017-07-16T10:09:54 1.099 INF Failed to register the log file writer: Sharing violation on path /home/sdtd/engine/sdtd.log2017-07-16T10:09:54 1.102 INF   at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
     at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
     at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
     at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0 
     at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding) [0x00000] in <filename unknown>:0 
     at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
     at SdtdLog.Init () [0x00000] in <filename unknown>:0 
    UMA Overlay loading took 1185 ms
    

     

    I did go through and checked the a15 logs, and don't see this happening.

  2. Right now there is Alpha 16 b1 running on my server. I want to deploy another instance for example with Alpha 15.2 or Alpha 16 b1 modded. How do I do this? There is only one 'engine' folder, where the 7dtd files/mods are stored.

    You would need to do a manual install in a separate folder. Possibly run as a separate user also so you can identify which process is which later if needed.

     

    - - - Updated - - -

     

    Going to do some testing with Ubuntu 17.04 and see how it goes.

    So far everything is peachy except for this one error in stop.sh

     

    Trying to gracefully shutdown.../usr/local/lib/7dtd/commands/stop.sh: line 49: warning: command substitution: ignored null byte in input
    Waiting for server to shut down...
    1/5
    2/5
    Done

     

    As near as I can tell, they are still shutting down like they should. I've compared files and setups with my 16.04 server, and there is no difference in the script.

  3. ...Yeah, that's been in like forever ... should really fix this. Think it's like an empty var due to the string parsing or something like that.

    The only time I ever see it like that is before the servers are fully started. Once the server is finished booting up so players can join, it will display properly.

  4. Just some a16 Experimental Updates....

     

    The script does not create the following items in the config file.

      <property name="BedrollDeadZoneSize"  value="15"/>     
     <property name="BloodMoonEnemyCount"  value="8" />     
     <property name="HideCommandExecutionLog"    value="0"/>   
     <property name="MaxUncoveredMapChunksPerPlayer"  value="131072"/>     
     <property name="ServerAdminSlots"   value="0"/>    
     <property name="ServerAdminSlotsPermission" value="0"/>      
     <property name="ServerDisabledNetworkProtocols" value="UNET"/>      
     <property name="ServerReservedSlots"  value="0"/>     
     <property name="ServerReservedSlotsPermission" value="100"/>      

     

    The following line is removed.

      <property name="EnemySenseMemory" value="60"/>

     

    Also, just a general note on changes...

     

    Default server port has been 26900 for ages, but script still uses 25000.

    LandClaim Size default is now 41. I think the script uses either 30 or 7. I can never remember.

     

     

     

    Almost forgot, EnemySenseMemory will prevent your server from starting.

    OOh, found another one. EnemySpawnMode is not 0-5 or whatever it was. It's True or False. Again, incorrect input will prevent it from starting.

  5. How Much RAM Does the Game Use?

     

    OK, so using Process Explorer to monitor solely Private memory allocated by the client. This is only the RAM being used by the process, not shared, virtual, or the page file.

     

    Now, the system for this test...

    Intel Core i7-3930K

    16GB RAM

    GTX660Ti

     

    For this test, I logged into a MP server I play on regularly, went from my base into the nearest town. Then killed a few Z's.

     

    [TABLE=class: grid, width: 500, align: center]

    [TR]

    [TD]Starting Up[/TD]

    [TD]3.2GB[/TD]

    [/TR]

    [TR]

    [TD]On Server Selection Screen[/TD]

    [TD]3.3GB[/TD]

    [/TR]

    [TR]

    [TD]Connecting to the server[/TD]

    [TD]5.4GB[/TD]

    [/TR]

    [TR]

    [TD]In-game Forest biome[/TD]

    [TD]5.7GB[/TD]

    [/TR]

    [TR]

    [TD]Approaching an average town[/TD]

    [TD]6.2GB[/TD]

    [/TR]

    [TR]

    [TD]Exploring the town[/TD]

    [TD]6.5GB[/TD]

    [/TR]

    [TR]

    [TD]Back on the startup screen[/TD]

    [TD]6.0GB[/TD]

    [/TR]

    [TR]

    [TD]After closing the client, before release[/TD]

    [TD]2.8GB[/TD]

    [/TR]

    [/TABLE]

     

     

    Then I started a new Navezgane map...

     

     

    [TABLE=class: grid, width: 500, align: center]

    [TR]

    [TD]Starting Up[/TD]

    [TD]3.2GB[/TD]

    [/TR]

    [TR]

    [TD]On Server Selection Screen[/TD]

    [TD]3.3GB[/TD]

    [/TR]

    [TR]

    [TD]Connecting to the server[/TD]

    [TD]4.2GB[/TD]

    [/TR]

    [TR]

    [TD]In-game NW Wasteland biome[/TD]

    [TD]5.2GB[/TD]

    [/TR]

    [TR]

    [TD]In-game Forest biome[/TD]

    [TD]5.9GB[/TD]

    [/TR]

    [TR]

    [TD]In-game farm / Diersville approach[/TD]

    [TD]6.3GB[/TD]

    [/TR]

    [TR]

    [TD]Diersville Hospital after travelling through center[/TD]

    [TD]6.6GB[/TD]

    [/TR]

    [TR]

    [TD]Exploring the town and killing Z's[/TD]

    [TD]6.9GB[/TD]

    [/TR]

    [TR]

    [TD]Back on the startup screen[/TD]

    [TD]6.2GB[/TD]

    [/TR]

    [TR]

    [TD]After closing the client, before release[/TD]

    [TD]2.5GB[/TD]

    [/TR]

    [/TABLE]

     

    So very similar results. I spent a bit longer in-game doing this test, and traveled greater distances. This likely accounts for the slightly larger numbers. It also probably gives a more accurate example.

     

    I would imagine that if you have less RAM than this available, it's just going to start dumping to swap/pagefile/whatever you want to call it. I'll have to set up a different config to test on the laptop that only has 8GB RAM, and build another PC with only 4GB RAM.

  6. Why are only 8 players supported? When can we have more?

     

    I'm going to refer to a recent post my madmole on this....

     

    speaking of which where say on the list is optimizing for 32 players?

     

    Its not on the list. This was originally a SP game but we decided to support 8 coop, then later added 8 dedi. At some point if we can make some optimizations we'll increase it some, but optimizations can be pie in the sky, so we are never going to promise support for an unknown. Besides, most people who play this game play 2-4 player pve with friends. Its not a pvp game and never will be. The goal was to make the zombies such a threat that people would have to band together to survive and wouldn't have TIME to kill other players because of impending doom.

     

     

    ROFL No, it's not. In fact, it's 136 SqKm SMALLER than the default map size for A16. I did the math. Most servers, especially the good ones, run at 50 people playing at once. There is no way a map this tiny is going to work for that. I know you have said that "the game is made for 8 people" before. But, here's the thing, you make the game for your player base, not for you. And I can promise you that your player base doesn't want tiny little 64 sqkm maps. Now, if your goal is to stop people from playing the game, then by all means, continue the way you are going with A17.

     

    It was not designed for 8 people just because we felt like it. That number was so players could have a good experience based on the performance of the game. Every player adds overhead and slows down the server. Too many and it becomes a lag fest, then we get the blame.

  7. Seed names work the same on both consoles.
    Which make me wonder why in the world I stuck it here instead of in the MP forum. Moving to MP. I'd stick it in General Discussion, but there's too many sticky threads there already.
  8. Is there any way to change the teleport command to only allow teleport between friends or have an accept/deny? the tele command can easily be abused by players.

    Not with the basic commands. I believe that the Botman server manager allows this to some extent, but I've only grazed over it's features atm. I don't have personal experience with it.

  9. Someone finally visited that area and now she's gone. I have no one on the map right now, yet there are 19 Hostiles spread out all over the place. I thought they were supposed to despawn if no one is online. Is that still true?

    I think if they are honed in on a player they do not.

  10. Yeah, it's en_US. I'm starting to get some odd errors on the 32-bit running now. Nothing really apparent, but after the server has been up a while it starts doing weird things. I was initially thinking it was just due to system load being too high, but after monitoring it for a bit the past few days, system load appears to be just fine. So I'm either having core issues with 16.04, or something more sinister is happening, and with my luck that's a hard drive. (Since that's the only component I don't have a spare for.)

    Going to have to crawl into the basement and poke the hardware this weekend. It really irks me that the CPU's are SSE3, but the system is only capable of reading SSE2. LOL.

  11. I manually edited the scripts so that when I used --experimental, it would get the stable_u52 version.

     

    I was getting that when I had wiped the Engine folder and was re-installing. Because for some reason, even using --force it only verifies the files, and does not actually install the different version.

     

    That's odd with the bootstrapper. I swear when I ran it after the system wipe it ran the installers for the pre-requisites and they failed because they were already installed. I'll have to try that again this weekend.

     

    So far I absolutely cannot run either the stable, or the experimental u52 version at all. (Not in 32-bit nor 64-bit) I've stuck with the stable 32-bit version for now. More experimentation is needed to figure out why the u52 builds cannot read xml files in 64-bit and give pulseaudio errors in 32-bit.

     

    When a15 hits, I'll probably just have to give up hosting because I cannot afford newer hardware.

  12. Lately when I'm running the scripts, I get the following errors. I can't say for certain that I've never had them before, but I just started noticing as I'm still tinkering with this damn server build I've got going on.

     

    root@7DTD:~# 7dtd.sh updateengine --experimentalLocal buildid:     1189196
    
    
    Continue? (yn) y
    Updating...
    Redirecting stderr to '/root/Steam/logs/stderr.txt'
    [  0%] Checking for available updates...
    [----] Verifying installation...
    Steam Console Client (c) Valve Corporation
    -- type 'quit' to exit --
    Loading Steam API...applicationmanager.cpp (3091) : Assertion Failed: CApplicationManager::GetMountVolume: invalid index
    applicationmanager.cpp (3091) : Assertion Failed: CApplicationManager::GetMountVolume: invalid index
    applicationmanager.cpp (3242) : Assertion Failed: m_vecInstallBaseFolders.Count() > 0
    Created shared memory when not owner SteamController_Shared_mem
    OK.
    
    
    Connecting anonymously to Steam Public...Logged in OK
    Waiting for license info...OK
    applicationmanager.cpp (3242) : Assertion Failed: m_vecInstallBaseFolders.Count() > 0
    Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)

    In this particular instance, I'm attempting to update to the experimental_u52 version, which in the end, it doesn't actually do anyway since it just verifies the files without actually making any changes. I'll have to wipe the folders and re-install it to get the u52 build.

     

    The assertion failures concerns me a bit though. I don't know if it's nothing, or if it's a sign of a deeper issue in my server I haven't noticed yet.

     

    Oh, and just for reference. This is a clean Ubuntu 16.04 install with using this package.

     

    P.S. Something else I noticed on the initial run. It looks like you added the pre-requisite installers into the initial build install.

  13. Installing and Running a Dedicated Server

     

    OK, this one is going to need a lot more meat to it, but I'll start with the basics.

     

    First, lets cover the many different ways to run a dedicated server.

    • Installing the dedi build locally through Steam and running it.
    • Installing the dedi build locally via SteamCMD.
    • Setting up a separate PC to host the dedi server. (Windows or Linux are most common)
    • Renting a server in the "cloud". (Most expensive option, usually Windows server)

     

    Your choice in how you host will largely depend on your hardware and network availability, stability, and how much load you need to support. It doesn't take super fast hardware, but you do need a good amount of RAM, a very stable system, and decent bandwidth.

     

    My personal favorite is to use a local dedicated machine for the server with Linux. You can pick whatever flavor you like, but I find Ubuntu to be one of the easiest to set up.

    A great thanks to Alloc on this for creating the Server Management Scripts and Server Fixes. Not only does a full setup take less than 15 minutes, but with his fixes you get loads of extra features that are extremely helpful for hosting a full-time dedi server.

    https://7dtd.illy.bz/wiki

     

    Here is a simple guide to installing the dedicated server on Windows using SteamCMD. (Easy to do on a dedicated box without Steam installed.)

    https://developer.valvesoftware.com/wiki/7_Days_to_Die_Dedicated_Server

     

    For local install, you can just install the server via your Steam client from the Library > Tools menu. Then you'll follow a similar configuration as is laid out in the above link for SteamCMD.

     

    Don't forget to open/forward your ports in your modem/router if you are hosting a local dedi.

     

    Later I will add some more detailed information on setups, and using rented servers. I mostly wanted this done before I forgot about it though. :)

  14. A guide to migrating save files.

     

    DISCLAIMER: Each new build (Stable or Experimental) requires that you start a new save. If you are playing an older save on a new build, you should expect to encounter problems/bugs. Starting with a15, it may be possible to continue from one stable build to the next, but you will not experience any new content. (You also may still get errors and bugs.)


    OK, so you want to move your saves from one computer to another. Or from a SP game to a P2P MP game, or to a dedi. Or from dedi to SP, or any number of possible combinations. First, you need to know where the files are. Then you need to know where to put them.

     

    Now, for the SP games, we already covered the paths above so I'll refrain from repeating that. Those same folder paths will also cover the P2P MP games launched from your local client.

     

    The location of your dedicated MP save folders will differ though, and it depends largely on how the server was set up and configured.

     

    Windows 2008-16 server will typically be using the same folder as your local client would in "%appdata%\7DaysToDie". It is possible that they were set up in a different folder such as "\SteamCMD\7_Days_to_Die_server\Saves".

     

    Linux will differ even more depending on which Linux build you are using, and the way you set up the dedicated server. I personally recommend only using Alloc's dedicated server scripts.

     

    If you are using Alloc's scripts to create the instance, it will be in the following folder.

    /home/sdtd/instances/<instance name>

     

    If you know other common save locations, please feel free to PM me and let me know so I can add them.

     


     

    Now that you have found your saves, all you need to do is copy the data over.

     

    If you have a Navezgane map, It will be saved in Saves\Navezgane\<name of save\.

    If you have a Random Gen map, It will be saved in Saves\Random Gen\<name of save\.

    With a17 there is an additional folder in your gameclient directory. 7 Days to Die\Data\Worlds\[WORLD_NAME]

    As of a18/19 the generated worlds are now stored in "%appdata%\7DaysToDie\Generated Worlds\[WORLD_NAME]"

     

    In the Save folder root of a MP game, there will be a file named "players.xml" which contains basic information about the players and their last login information. It also contains land claim block information if they have placed one. In the folder you will have a "Player" folder which contains the character information, inventory, and personal map for each player on your server. The "Region" folder contains all of the region files that make up the land in the map.

     

    You will just need to copy the data you wish to migrate out of the original save folder, and into it's new home, following the same structure within the save folders. If you are migrating to a Linux dedi, be sure to check the file permissions after you have moved them over. They should be 644 on the files in the Saves Root, and 755 on all of the other files. Owner:group should be the same as the user account used for the dedi installation. (i.e. sdtd:sdtd if you are using Alloc's install script)

  15. [sP] Where are my saves at?

     

    In the Windows client they would normally be located in the following folder.

     

    Windows XP (because some people still use it, even though no one supports it.)

    C:\Documents and Settings\<User>\AppData\Roaming\7DaysToDie

     

    Windows Vista/7/8/10

    C:\Users\<User>\AppData\Roaming\7DaysToDie

    C:\Games\Steam\SteamApps\common\7 Days to Die\Data\Worlds\WORLD_NAME

     

    NOTE: On the Windows PC's the AppData folder is hidden. You can access it directly for the logged in user by entering %appdata% into the address bar of Windows Explorer.

     

    Linux

    <User>/.local/share/7DaysToDie

    <Install Path>\7 Days to Die\Data\Worlds\WORLD_NAME

     

    MacOS

    <User>/Library/Application Support/7DaysToDie

    <Install Path>\7 Days to Die\Data\Worlds\WORLD_NAME

     

    These locations are assuming standard client installs.

     

     

    In the "7DaysToDie\SavesLocal" folder, you will find your locally stored data from the MP servers you have logged into and played.

     

    In the "7DaysToDie\Saves" folder, you will find your local profile and SP save games.

     

    In the "7 Days to Die\Data\Worlds" folder, you will find the saved world data for each map. The folders are named on the Generated map name.

     


     

     

     

    Moving Save Location to Another Drive

     


    This is especially helpful when you are short of space on your 😄 drive, or wish to move your save data to a faster drive for better performance.

    1. Open the Steam Client
    2. Navigate to your Games Library
    3. Right-Click on 7 Days To Die in the left navigation bar.
    4. Click Properties
    5. Click on the Local Files Tab
    6. Click the "Browse Local Files" Button
      -This will open a Windows Explorer Window. The next Steps Take Place in Windows Explorer
    7. Copy serverconfig.xml and rename the copy to serverconfig.SP.xml (or any other name you'll remember).
    8. Open serverconfig.SP.xml in notepad and edit the save path to where you want the 7DTD Gamesaves to be stored.
      Note: Most of the serverconfig.xml properties are ignored when running the Client version of the game, but that property does carry over correctly.
      Here is an example from my file:
      <property name="SaveGameFolder" value="D:\GameSaves\7DTD\Saves" />
    9. Save as serverconfig.SP.xml
    10. In the steam client.
    11. Right Click 7 Days To Die and select properties
    12. General Tab, Click Set Launch Options button.
    13. Place the following in the box:
      -configfile=serverconfig.SP.xml

       

    Now when you start the game it will use your path for the save files.

    NOTE: You probably want to move your old save files from "%appdata%\7 Days To Die\Saves" to the new location.

  16. [DEDI] How to fix issue with "IOException: Too many open files"

     

    Now this is an issue you will likely only see on a Linux dedicated server. However, if you have a rather large Random World Map, it is a very real issue. What surprised me even more, was how very little documentation there is on this. That may be due to a smaller number of servers using Linux. Even though Linux is faster with a lower resource overhead, most paid server hosts use Windows for easier management.

     

    In any case, you've attempted to start your server, and it just isn't running. It appears to shut down moments after starting it up.

     

    If you check the logs for the server, you will see the following inside of them....

    2024-06-21T05:12:13 0.024 WRN The open files limit is too low (1024) and may cause crashes. Recommended is at least 10240. Follow these steps to increment it:
    - Open /etc/security/limits.conf with a text editor: 'sudo editor /etc/security/limits.conf'
    - Add or update the line: 'a22test soft nofile 10240'
    - Save the file and exit the editor
    - Apply the changes: Log out and back in or restart the system
    In this example "a22test" is the user account that is attempting to start the server. Your message will contain the user name according to the user account you are using.

     

    By default, Linux sets the hard file limit at 1024. Basically, you have so many open client/save files that this limit is being exceeded with the client files open, and the other standard processes. 

     

    To correct the issue, you will need to increase your hard and soft file limits.

     

    Step 1. Run "ulimit -a". You will likely see an ouput similar to this.

    core file size (blocks, -c) 0
    data seg size (kbytes, -d) unlimited
    scheduling priority (-e) 0
    file size (blocks, -f) unlimited
    pending signals (-i) 515561
    max locked memory (kbytes, -l) 64
    max memory size (kbytes, -m) unlimited
    [color=#FF0000]open files (-n) 1024[/color]
    pipe size (512 bytes, -p) 8
    POSIX message queues (bytes, -q) 819200
    real-time priority (-r) 0
    stack size (kbytes, -s) 8192
    cpu time (seconds, -t) unlimited
    max user processes (-u) 515561
    virtual memory (kbytes, -v) unlimited
    file locks (-x) unlimited
     

     

    Step 2. Open /etc/security/limits.conf with your favorite editor, and follow the instructions provided in your error message.

     

    Step 3. Go to the following section of the file where you see this...

    #*               soft    core            0
    #root            hard    core            100000
    #*               hard    rss             10000
    #@student        hard    nproc           20
    #@faculty        soft    nproc           20
    #@faculty        hard    nproc           50
    #ftp             hard    nproc           0
    #ftp             -       chroot          /ftp
    #@student        -       maxlogins       4
     

     

    Then you will add this line of code...

    a22test soft nofile 10240
    Again, in your case "a22test" will be different.

     

    Now the bottom of your file should look like this....

    #*               soft    core            0
    #root            hard    core            100000
    #*               hard    rss             10000
    #@student        hard    nproc           20
    #@faculty        soft    nproc           20
    #@faculty        hard    nproc           50
    #ftp             hard    nproc           0
    #ftp             -       chroot          /ftp
    #@student        -       maxlogins       4
    a22test soft nofile 10240
    
    # End of file
     

    Step 4. Reboot the machine/container to apply the new file limit and you should be good to go. Depending on the size of your map, you may need to increase the file limits. At one point I ended up just making mine unlimited because with two RWG servers I was having to double the limit every couple of days.

     

    Step 5. Run "ulimit -a" again to verify the change. It should now look like the following.

     

    Now you should be good to go!

     

    Note that you may also encounter the following error...

    2024-06-21T05:12:13 0.026 WRN The vm.max_map_count setting is too low (65530) and may cause crashes. Follow these steps to increment it:
    - Open /etc/sysctl.conf with a text editor: 'sudo editor /etc/sysctl.conf'
    - Add or update the line: 'vm.max_map_count=262144'
    - Save the file and exit the editor
    - Apply the changes: 'sudo sysctl -p'

     

    As you did above, simply follow the instructions to update the file. Validate the results with sudo sysctl -p.

  17. Why are you telling me to exclude the program from my Antivirus software?

     

    Antivirus software is a must-have in today's age of computing if your PC is attached to the internet at all. (Some will argue otherwise, but for 95% of PC users this is a simple fact.)

    Unfortunately, the scans that it runs on active processes can have an negative impact in your game clients performance. Since we trust Steam, and their vetting process, to prevent us from being sent malware through games we purchase, we can safely trust them as a publisher. As such, I recommend excluding the entire Steam folder rather than just your 7DaysToDie folder under SeamApps\Common.

    In fact, I keep all of my games from trusted publishers in a "Games" folder, and have excluded that entire folder. Steam, Origin, and other such tools all reside inside of this folder, along with individually purchased games from other companies I trust.

    You will also need to exclude your save folder in %appdata% It will be in C:\Users\<userName>\AppData\Roaming\7DaysToDie   Mine for example is C:\Users\sylen\AppData\Roaming\7DaysToDie

     

    How to exclude the program from your Antivirus software.

    Truly, the biggest hurdle in doing this is figuring out how to perform the exclusion in your particular software. As such, I have compiled a list of the top 10 Antivirus solutions and am providing links to their instructions. Microsoft Security Essentials does not make the top 10 by any stretch, but I'll include it just because it is common if you haven't purchased a real AV solution.

     

    1. BitDefenter (#1 for 4 years straight BTW)

    2. Kaspersky (Used to be that Kaspersky and AVG were heavy contenders for #1 and #2, but Kaspersky has held #2 solid for a while.)

    3. McAffee

    4. Norton (Page 44)

    5. F-Secure

    6. Avira

    7. Panda (It's from 2012, but it's the best they have available)

    8. Trend Micro

    9. BullGuard (You'll have to scroll down the page a bit for the instructions.)

    10. eScan

    11. Avast!

    12. AVG (I think the biggest thing keeping AVG from ranking higher is the large number of false positives and the high impact on system performance)

    13. G Data

    14. Norman (It's convoluted, but the instructions are there)

    15. ESET NOD32

    16. Microsoft Security Essentials

     

    If you don't have one of the above programs, just do what I did to get the above links. Go to the website for your antivirus software, go to the support section, search for "exclude folder", then follow the instructions to exclude the entire client directory. (Alternatively, you can also Google "nameofantivirus exclude folder".)

×
×
  • Create New...