Search the Community

Showing results for tags 'server'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Oxygen Not Included
    • Oxygen Not Included FAQ
    • [Oxygen Not Included] - Developer log
    • [Oxygen Not Included] - General Discussion
    • [Oxygen Not Included] - Suggestions and Feedback
    • [Oxygen Not Included] - Bug Tracker
    • [Oxygen Not Included] Art, Music & Lore
    • Community Challenges
    • [Oxygen Not Included] - Latest Content Update
    • [Oxygen Not Included] - Latest Animated Short
  • Don't Starve Together
    • Don't Starve Together FAQ
    • [Don't Starve Together] Developer log
    • [Don't Starve Together] General Discussion
    • [Don't Starve Together] The Forge
    • [Don't Starve Together] PS4
    • [Don't Starve Together] Xbox One
    • [Don't Starve Together] Bug Tracker
    • [Don't Starve Together] Trading
    • [Don't Starve Together] Server Bulletin
    • [Don't Starve Together] Dedicated Server Discussion
    • [Don't Starve Together] Mods and Tools
    • [Don't Starve Together] Tales of Life and Death
    • [Don't Starve Together] Suggestions and Feedback
    • [Don't Starve Together] The Gorge
    • [Archived Bugs]
  • Hot Lava
    • [Hot Lava Beta] - General Discussion
    • [Hot Lava Beta] - Suggestions and Feedback
    • [Hot Lava Beta] - Bug Tracker
    • [Hot Lava Beta] - Strats and Records
    • [Hot Lava Beta] - Developer Log
    • Hot Lava Beta Latest Update
  • Griftlands
    • [Griftlands] - General Discussion
  • Don't Starve
    • Don't Starve FAQ
    • [Don't Starve: Pocket Edition] iOS / Android
    • [Don't Starve] General Discussion
    • [Don't Starve] Mods and tools
    • [Don't Starve] Art, Music & Lore
    • [Don't Starve] Suggestions and Feedback
    • [Don't Starve] Videos
    • [Don't Starve] Bug Tracker
    • [Don't Starve] Trading
    • [Don't Starve] Testing Discussion (archive)
  • Klei Entertainment Games
    • Eets Munchies
    • [Invisible, Inc.] General Discussion and Strategies
    • Mark of the Ninja
    • Shank
  • Other Stuff
    • The Off-Topic Area
    • Forum Upgrade

Categories

  • Don't Starve
    • Custom Character and Skins
    • Game Modifications
    • Language Packs
    • Modding Tools, Tutorials & Examples
    • Custom Maps

Categories

  • Oxygen Not Included - [Early Access]
  • Don't Starve: Hamlet Early Access
  • Don't Starve Together
  • Don't Starve Together: The Gorge
  • Don't Starve Together: The Forge
  • Don't Starve Together: The Forge (Archive)
  • [Don't Starve Together] PS4
  • [Don't Starve Together] Xbox One
  • Don't Starve: Shipwrecked
  • Don't Starve: Shipwrecked [archive]
  • [Don't Starve Together] PS4 (archive)
  • [iOS] Don't Starve: Shipwrecked
  • Don't Starve: Hamlet Closed Beta (ARCHIVE)

Categories

  • Oxygen Not Included - [Early Access]
  • Don't Starve: Hamlet - Early Access
  • Don't Starve Together
  • [PS4] Don't Starve Together
  • [Xbox One] Don't Starve Together
  • Don't Starve: Shipwrecked
  • Hot Lava - [Open Beta]

Categories

  • Hot Lava - Beta Reports


Biography


Location


Interests


Occupation


Modder


Chester Kickstarter


Chester Kickstarter


Chester Kickstarter


Chester Kickstarter


Chester Kickstarter


Klei Featured Artist


Early Supporter


Early Supporter


Don't Starve


Don't Starve Together


Oxygen Not Included

Found 15 results

  1. 1. Download and install SteamCMD: Click here to download 2. Create three data folders for your servers: \\Documents\Klei\DoNotStarveTogether\MyDediServer \\Documents\Klei\DoNotStarveTogether\MyDediServer\Master \\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves 3. Start Don't Starve Together from Steam and click on the "Play!" button. 4. Click on the "Acct Info" button. 5. Click on the "Generate Server Token" button, and copy the token into a text editor. 6. Save the token file to: \\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster_token.txt 7. Copy and save the following text to: \\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster.ini 8. Copy and save the following text to: \\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\server.ini 9. Copy and save the following text to: \\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\server.ini 10. Copy and save the following text to: \\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\worldgenoverride.lua 11. Copy and save the following text to: \\Documents\Klei\StartDSTServers.bat 12. Checklist of all the files you should have now: 13. Double-click StartDSTServers.bat to start your dedicated servers!
  2. I wanted to share this since it took me a lot of effort to get it all working. This is my configuration for an Ubuntu server, running as a service. It has 1 master with 5 shards. 4 of the shards are stuck on each a different season with the 5th shard being caves used to interconnect them all. I followed the normal Linux dedicated server guides already available to get the basic "with caves" server going. Here is what I worked out from there: Note: I didn't keep track of where some of the original components came from because I wasn't intending to share when I began. (systemd script and sh script I modified, various forums I had to dredge to find all the small details, etc). I did heavily comment in many of these files to help anyone trying to poke around. So far, this setup has been working pretty well for me. Portals Master (overworld) 2-way portals = 6x to Caves 1-way portals = 1x to Autumn, 1x to Spring, 1x to Summer, 1x to Winter Caves (caves *srug*) 2-way portals = 6x to Master, 1x to Autumn, 1x to Spring, 1x to Summer, 1x to Winter Spring (overworld) 2-way portals = 1x to Caves, 2x to Winter, 2x to Summer 1-way portals = 1x to Caves, 1x to Autumn, 1x to Summer, 1x to Winter Summer (overworld) 2-way portals = 1x to Caves, 2x to Spring, 2x to Autumn 1-way portals = 1x to Caves, 1x to Spring, 1x to Autumn, 1x to Winter Autumn (overworld) 2-way portals = 1x to Caves, 2x to Winter, 2x to Summer 1-way portals = 1x to Caves, 1x to Spring, 1x to Summer, 1x to Winter Winter (overworld) 2-way portals = 1x to Caves, 2x to Autumn, 2x to Spring 1-way portals = 1x to Caves, 1x to Spring, 1x to Summer, 1x to Autumn dedicated_server_mods_setup.lua --Desynchronize Shards ServerModSetup("1396615817") -- Shard Configuration Mod ServerModSetup("595764362") I modified this Systemd script I found somewhere ## /etc/systemd/system/dontstarve.service [Unit] Description=Don't Starve Together Dedicated Server Wants=network-online.target After=network.target network-online.target [Service] ExecStart=/home/steam/run_dontstarve_dedicated.sh Restart=on-failure User=dontstarve [Install] WantedBy=multi-user.target # Security and Sandboxing NoNewPrivileges=yes PrivateTmp=yes PrivateDevices=yes ProtectKernelTunables=yes ProtectKernelModules=yes ProtectControlGroups=yes ProtectSystem=strict ProtectHome=read-only SystemCallFilter=~@mount ReadWritePaths=$HOME/dontstarve ReadWritePaths=$HOME/Steam ReadWritePaths=$HOME/.steam ReadWritePaths=$HOME ReadWritePaths=$HOME/.klei I modified this 'run_dont_starve_dedicated.sh' file I found somewhere #!/bin/bash steamcmd_dir="$HOME" # Location of steamcmd binary install_dir="$HOME/dontstarve" # Where you installed dst using force_install_dir in steamcmd cluster_name="MyClusterName" # The name of your cluster's folder in DoNotStarveTogether dir dontstarve_dir="$HOME/.klei/DoNotStarveTogether" # Path to Klie/DoNotStarveTogether directory containing cluster data # Fail on errors function fail() { echo Error: "$@" >&2 exit 1 } # Used to check if important things exists. function check_for_file() { if [ ! -e "$1" ]; then fail "Missing file: $1" fi } # For each shard, add: check_for_file "/path/to/shard's/server.ini" check_for_file "$HOME/steamcmd" check_for_file "$dontstarve_dir/$cluster_name/cluster.ini" check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt" check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini" check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini" check_for_file "$dontstarve_dir/$cluster_name/Spring/server.ini" check_for_file "$dontstarve_dir/$cluster_name/Summer/server.ini" check_for_file "$dontstarve_dir/$cluster_name/Autumn/server.ini" check_for_file "$dontstarve_dir/$cluster_name/Winter/server.ini" check_for_file "$install_dir/bin" # Launch steam and check for updates #$HOME/steamcmd +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit # Setup command to start master / shards run_shared=($install_dir/bin/dontstarve_dedicated_server_nullrenderer) run_shared+=(-cluster "$cluster_name") run_shared+=(-monitor_parent_process $$) # Change working directory to prevent errors finding things cd ${install_dir}/bin # Start shards using run_shared for each shard "${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' & "${run_shared[@]}" -shard Spring | sed 's/^/Spring: /' & "${run_shared[@]}" -shard Summer | sed 's/^/Summer: /' & "${run_shared[@]}" -shard Autumn | sed 's/^/Autumn: /' & "${run_shared[@]}" -shard Winter | sed 's/^/Winter: /' & # Sleep seems to help with errors if the master waits for the shards to get # rolling when there are several shards sleep 30 # Start Master "${run_shared[@]}" -shard Master | sed 's/^/Master: /' Caves/server.ini [NETWORK] server_port = 11001 [SHARD] is_master = false name = Caves id = 2 [STEAM] master_server_port = 27002 authentication_port = 8762 [ACCOUNT] encode_user_path = true Master/server.ini [NETWORK] server_port = 11000 [SHARD] is_master = true id = 1 [STEAM] master_server_port = 27001 authentication_port = 8761 [ACCOUNT] encode_user_path = true Autumn/server.ini [NETWORK] server_port = 11012 [SHARD] is_master = false name = Autumn id = 12 [STEAM] master_server_port = 27012 authentication_port = 8772 [ACCOUNT] encode_user_path = true Spring/server.ini [NETWORK] server_port = 11010 [SHARD] is_master = false name = Spring id = 10 [STEAM] master_server_port = 27010 authentication_port = 8770 [ACCOUNT] encode_user_path = true Summer/server.ini [NETWORK] server_port = 11011 [SHARD] is_master = false name = Summer id = 11 [STEAM] master_server_port = 27011 authentication_port = 8771 [ACCOUNT] encode_user_path = true Winter/server.ini [NETWORK] server_port = 11013 [SHARD] is_master = false name = Winter id = 13 [STEAM] master_server_port = 27013 authentication_port = 8773 [ACCOUNT] encode_user_path = true cluster.ini [GAMEPLAY] game_mode = endless max_players = 16 pvp = false pause_when_empty = true [NETWORK] cluster_description = Description Text cluster_name = Cluster Name is Server Name in Browser cluster_intention = social cluster_password = autosaver_enabled = true [MISC] console_enabled = true vote_enabled = false [SHARD] shard_enabled = true bind_ip = 127.0.0.1 master_ip = 127.0.0.1 master_port = 10889 cluster_key = SomethingUnique modoverrides.lua for shards only return { -- Shard Configuration Mod ["workshop-595764362"] = { enabled = true }, -- Desynchronize shards ["workshop-1396615817"] = { enabled = true } } modoverrides.lua for master only return { -- Desynchronize shards ["workshop-1396615817"] = { enabled = true }, -- Shard Configuration Mod portal setup ["workshop-595764362"] = { enabled = true, configuration_options = { -- 1 = master | 2 = caves | 10 = spring | 11 = summer | 12 = autumn | 13 = winter ["Connections"] = { ["1"] = { "2", "2", "2", "2", "2", "2" }, ["2"] = { "1", "1", "1", "1", "1", "1", "10", "11", "12", "13" }, ["10"] = { "2", "13", "13", "11", "11" }, ["11"] = { "2", "10", "10", "12", "12" }, ["12"] = { "2", "11", "11", "13", "13" }, ["13"] = { "2", "12", "12", "10", "10" } }, ["OneWayConnections"] = { ["1"] = { "10", "11", "12", "13" }, ["10"] = { "2", "11", "12", "13" }, ["11"] = { "10", "2", "12", "13" }, ["12"] = { "10", "11", "2", "13" }, ["13"] = { "10", "11", "12", "2" } } } } } caves worldgenoverride.lua return { override_enabled = true, preset = "DST_CAVE", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS" overrides = { -- MISC task_set = "cave_default", -- "classic", "default", "cave_default" start_location = "caves", -- "caves", "default", "plus", "darkness" world_size = "huge", -- "small", "medium", "default", "huge" }, } Winter shard worldgenoverride.lua return { override_enabled = true, preset = "SURVIVAL_TOGETHER", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS" overrides = { autumn = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" winter = "verylongseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" spring = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" summer = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" season_start = "winter", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random" }, } Spring shard worldgenoverride.lua return { override_enabled = true, preset = "SURVIVAL_TOGETHER", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS" overrides = { autumn = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" winter = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" spring = "verylongseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" summer = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" season_start = "spring", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random" }, } Summer shard worldgenoverride.lua return { override_enabled = true, preset = "SURVIVAL_TOGETHER", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS" overrides = { autumn = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" winter = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" spring = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" summer = "verylongseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" season_start = "summer", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random" }, } Autumn shard worldgenoverride.lua return { override_enabled = true, preset = "SURVIVAL_TOGETHER", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS" overrides = { autumn = "verylongseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" winter = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" spring = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" summer = "noseason", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random" season_start = "autumn", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random" }, } Additional tips Monitor logs from all shards in cluster with this command from the cluster folder watch "tail ./*/server_log.txt" When implementing desynchronize shards mod, you may need to enter console commands manually or delete your saves and reload your server to get it working. I left a discussion item mentioning this on the steam workshop page for the mod since the author didn't explain in any verbosity.
  3. Hello all, A while back I decided to start hosting a dedicated server for my discord, which is currently the closest thing to an official DS/T Discord (discord.gg/dontstarve) A bit after that and I recently noticed another in game server piggybacking off of mine's name/description in an attempt to confuse the users from my discord and leech off of it. I was unsure if there's anything that could or can be done, and as such contacted Peter asking about it. He suggested I post it here for more guidance on the subject. Again I'm not really sure if there's anything that can be done about it, and I'm pretty sure if I just change the name/description/password the other group is going to do likewise. However this has been confusing some of my users attempting to join the discord's dedicated server, and I'd prefer if this weren't the case.
  4. So I'm working on making code for a character a friend of mine is making where the character is not able to equip any torso clothes or even craft them, but he's able to craft backpacks and armors and can also use them. The equipping part is done, but the problem I'm having is with the code for removing recipes, as I'm trying to remove the recipes that do not include the backpack tag, do not count as armor but also are body slot items. However it keeps giving me an error in the line with removing the recipes and says that components is a "nil value". The removal of recipes code: -- Removing every clothing recipes that exists for this character inst.components.builder.ignorelist = { } function inst.components.builder:AddIgnoreRecipe( recname ) self.ignorelist[ recname ] = recname end function inst.components.builder:RemoveIgnoreRecipe( recname ) self.ignorelist[ recname ] = nil end local old_CanLearn = inst.components.builder.CanLearn function inst.components.builder:CanLearn( recname ) local ret = old_CanLearn(recname) return ret and self.ignorelist[ recname ] == nil end for k, v in pairs(AllRecipes) do if IsChestClothing(v.product) then inst.components.builder:AddIgnoreRecipe(v.name) end end The code that crashed the game: local function IsChestClothing(item) if item.components.equippable and item.components.equippable.equipslot == EQUIPSLOTS.BODY and not item:HasTag("backpack") and not item.components.armor then return true else return false end end Thanks in advance!
  5. Hi everyone. I can't see ammo for ranged weapon on my friend's server (when it is mine server then everything is alright). Everything works nearly fine, but I can't see bullets in the equipment and they are blocking my slots as invisible entities. I don't know where the problem might be located so I uploaded whole mod folder in .zip form. Ammo name is m16blt, if this will help to find out the source of the problem. Thank you in advance for any clues.
  6. This guide will help you set up a dedicated server on an Ubuntu machine (32 or 64-bit) 1. Install dependencies: 2. Install steamcmd. 3. Create your dedicated server folders: 4. Create your cluster_token.txt 5. Create your cluster.ini file. 6. Edit your cluster.ini file. 7. Create your Master server.ini 8. Create your Caves server.ini 9. Create your Caves worldgenoverride.lua 10. Create the script that will run the servers. 11. Give the script executable permissions 12. Run the script to start the dedicated servers:
  7. After poking around in removing a caves world from a client hosted server, I've decided to make a Guide, in case other people want to look into the same matter. Assuming, that's why you clicked here, good luck, and have fun . Small description why it doesn't work the way one thinks in the beginning Essentially the world data itself is not saved in the cluster_1..5, and instead in client_save/session/<crazy number>. That means, messing around with the files inside the cluster_1..5 folders doesn't really change things. IMO the easiest approach 1. Do a backup of your entire DST save folder. Things can always go south. 2. Create a second cluster in your client with the same settings as your old one, with the only exception, that it doesn't have caves. Not sure if really necessary, but better safe than sorry in the long run. Launch it once and then exit. 3. Open the DST_save_folder\client_save\saveindex with a appropriate text editor, and find and copy the session_id of your world you wanna keep. It should look somewhat like this: session_id="18396EA116AB2CFD", 4. Find the cluster you created in step 2. Replace that ID with the one you copied earlier. That should be it. (OFC there should be other approaches, such as renaming the folders with the appropriate IDs, etc. Feel free to experiment if you are interested, I haven't tested it though, so no guarantees there. (Backups!!!)) So what happened now? We linked both clusters to the one world you want to play on. Means your client uses on both servers the same world files. Changes you do on one file are also applied to the second one and vice versa. At this point you have the following choices: 1. Leave it as it is, and play on your caveless server world whenever you want to play caveless, with the option to login to the other to have a world with caves once again if you want to access cave resources (for example). 2. Delete the Cluster that has caves included. For this you probably have to copy your world files (DST_save_folder/client_save/session/<crazy number>) to a different location, since deleting the cluster will delete this folder as well, then delete the cluster and copy the world file back afterwards. Technicially this should also allow players to ADD caves to an existing world, just by creating a cluster with a caves world, and copying the ID of the caveless world there. It seems that is disallows any cave entrances though, so not sure how to fix that, but I guess someone will find a solution xD. Have fun If you have any questions, feel free to ask!
  8. A while ago I remember hearing that some client only mods like minimap hud can put more strain on servers. Is this true? If it's true, what causes the server to take a performance toll for client only mods (excluding obvious things like spamming actions)? When I looked into minimap hud I didn't find specifically what caused a performance loss. Is there something I could set up to get the game to print everything that is sent/received from the server from a specific mod? Even if it's encoded, it'd still be good for testing. This isn't about minimap hud specifically, it's just the best example of a client only mod affecting the server I can think of.
  9. By third world I mean one extra world and server in addition to the forest and the cave. I want to add a new world to the game and that will make the server contains three maps. Just imagine if the cave world was a mod addition to the base game. I know how to mod the world but I really have no clue with server stuffs. I want to know if anyone has done that before. If it is possible to set everything up with just an all-client mod, not needing to set up a dedicated server, please tell me how. Many thanks
  10. Hello All, It just occured to me I've never posted the link here to Don't Starve/Together, which is the closest thing to an official discord server the game has featuring: - 4000+ members and currently growing - actual game developers on the server - associated with the wikia and subreddit - unique community partners linked to our server - hosts events regularly for users to partake in If you're looking to find others in the community, talk about the games, or just hang out, it's the perfect place to do so! Anyone is welcome to join. Link: https://discord.gg/dontstarve
  11. Hello everyone! Some time ago i started working on a script that fully automates the procedure of running and updating a server. The following script is my as of now final result (fixes may occur if needed). It does the following in its current configuration: Update the game Start the Caves Start the Master Wait for 20 minutes Check for an update. If an update is not needed, go to 4. is needed, go to 6. Announce on the server that an update is needed and that the server will restart in 15 minutes Repeat the warning 5 and 1 minute/s before the shutdown so every player can plan ahead Shut down the Caves Shut down the Master Go to 1. You can also force a shutdown using the Ctrl + C command in the terminal window of the running script. The log gets hidden away. If you need to check it, you must open the server_log.txt files. If you followed this guide here, you should have everything correctly in place for the script to work. Remember to change your_cluster_name to the folder name of your cluster in ~/.klei/DoNotStarveTogether. For this script to work you need screen installed on your system, but chances are you already have it. #!/bin/bash #### User Variables; Set your preferences #### CLUSTER_NAME="your_cluster_name" MASTER_NAME="Master" CAVE_NAME="Caves" CHECK_UPDATE_FREQ="20m" DONT_STARVE_CLUSTER_DIR="$HOME/.klei/DoNotStarveTogether" DONT_STARVE_DIR="$HOME/dontstarvetogether_dedicated_server" #### Script Variables; Do not modify #### lv_file="/tmp/${CLUSTER_NAME}_latest_version" DONT_STARVE_BIN="./dontstarve_dedicated_server_nullrenderer" #### Functions #### function needs_update() { klei_url="https://forums.kleientertainment.com/game-updates/dst/" latest_version=$(curl -s $klei_url | grep -Po "\s+\d{6,}$" | head -n 1) if [[ -e $lv_file ]]; then current_version=$(head -n 1 $lv_file) fi echo $latest_version > $lv_file if [[ $current_version -lt $latest_version ]]; then echo "1" else echo "-1" fi } function exists() { if [[ ! -e $1 ]]; then failed "File/Dir not found: $1" fi } function failed() { echo "Error: $@" >&2 exit 1 } function command_m() { screen -S ${CLUSTER_NAME}_${MASTER_NAME} -p 0 -X stuff "$1^M" } function command_c() { screen -S ${CLUSTER_NAME}_${CAVE_NAME} -p 0 -X stuff "$1^M" } function stop_server() { command_m 'c_announce("Server stopped by force! Shutting down!")' sleep "2s" command_c 'c_shutdown()' command_m 'c_shutdown()' # The server gets 20 seconds to shutdown normally # sleep "20s" # Should the server still be running; Kill it # if screen -list | grep -q ${CLUSTER_NAME}; then command_c "^C" command_m "^C" fi exit 1 } #### Script routine #### trap stop_server 2 # Check for missing files # exists "$DONT_STARVE_CLUSTER_DIR/$CLUSTER_NAME/cluster.ini" exists "$DONT_STARVE_CLUSTER_DIR/$CLUSTER_NAME/cluster_token.txt" exists "$DONT_STARVE_CLUSTER_DIR/$CLUSTER_NAME/$MASTER_NAME/server.ini" exists "$DONT_STARVE_CLUSTER_DIR/$CLUSTER_NAME/$CAVE_NAME/server.ini" # Check for an update beforehand # needs_update 2>&1 >/dev/null while [[ true ]]; do # Force an update # mv "$DONT_STARVE_DIR/mods/dedicated_server_mods_setup.lua" "$DONT_STARVE_DIR/mods/dedicated_server_mods_setup.lua.bak" echo "Start updating the game." steamcmd +force_install_dir $DONT_STARVE_DIR +login anonymous +app_update 343050 validate +quit mv "$DONT_STARVE_DIR/mods/dedicated_server_mods_setup.lua.bak" "$DONT_STARVE_DIR/mods/dedicated_server_mods_setup.lua" # Check for DST binary # exists "$DONT_STARVE_DIR/bin" # Run Shards # cd "$DONT_STARVE_DIR/bin" echo "Starting ${CAVE_NAME}." screen -d -m -S ${CLUSTER_NAME}_${CAVE_NAME} $DONT_STARVE_BIN -cluster $CLUSTER_NAME -shard $CAVE_NAME echo "Starting ${MASTER_NAME}." screen -d -m -S ${CLUSTER_NAME}_${MASTER_NAME} $DONT_STARVE_BIN -cluster $CLUSTER_NAME -shard $MASTER_NAME # Checks for updates # while [[ true ]]; do # Check for updates every 20 minutes # sleep $CHECK_UPDATE_FREQ # If there is an update, we will start the shutdown process # result=$(needs_update) if [[ $result -gt 0 ]]; then echo "The server needs an update. Will restart in 15 minutes." command_m 'c_announce("Klei released an update! The server restarts in 15 minutes!")' sleep "10m" command_m 'c_announce("Klei released an update! The server restarts in 5 minutes!")' sleep "4m" command_m 'c_announce("Klei released an update! The server restarts in 1 minute!")' sleep "1m" command_m 'c_announce("Restarting now!")' command_c 'c_shutdown()' command_m 'c_shutdown()' break fi done # We wait till the game shuts down # echo "Waiting for shards to shut down." while [[ true ]]; do if ! screen -list | grep -q ${CLUSTER_NAME}; then echo "Shards are down. Restarting." break fi done done
  12. This guide will help you set up a dedicated server on Mac OS X. This commands in this guide must be entered in the "Terminal" application. The "~" at the beginning of directories and filenames is shorthand in the terminal for your home directory. 1. Install steamcmd. 2. Create your dedicated server folders: 3. Create your cluster_token.txt 4. Create your cluster.ini file. 5. Edit your cluster.ini file. 6. Create your Master server.ini 7. Create your Caves server.ini 8. Create your Caves worldgenoverride.lua 9. Create the script that will run the servers. 10. Give the script executable permissions 11. Run the script to start the dedicated servers:
  13. Version 2.0.3

    755 downloads

    Shard configuration mod Shard configuration mod allows server admins to make migration links between their individual servers/worlds/shards. This mod is made for dedicated servers and has no use in standart Don't Starve Together worlds created in client. This mod is also not needed if your dedicated servers run only two worlds/shards in one cluster (default connections works fine for 2 worlds/shards). If you are server admin and you want more than 2 connected worlds this is mod for you! After all servers are set up and online and simulation on them is paused, when first player connects to any server and simulation is unpaused the mod will set up portals in the world to be linked to other worlds. This mod uses standart 10 sinkholes generated in the world. If you manually create more, they will be used after server restart. If you want more than 10 connections from/to one world you have to create new sinkholes/stairs. Sinkholes not used are turned off and plugged. Steam workshop Mod is available on steam workshop How to setup this mod I created default preconfigured cluster with 3 shards. You can modify it as you wish. Download it here: DefaultCluster.zip Since mod version 1.10 it is also possible to create single directional connections. New mod setting called "OneWayConnections" was created which contains world that should be connected unidirectionally. Example mod overrride settings below: ["workshop-595764362"] = { enabled = true, configuration_options = { ["Connections"] = { ["1"] = { "11", "12" }, -- bidiractional between 1-11 and 1-12 ["11"] = { "12" } -- bidirectional between 11-12 }, ["OneWayConnections"] = { ["1"] = { "12", "12" } -- two unidirectional connections from 1 to 12 } } } Since mod version 2.0 the slave shards can synchronize connection data from master. Slave shards will ignore connection data in their modoverrides.lua. This behaviour can be disabled by setting SyncWithMaster to false of all shards. Shard config util I created an util to create modoverrides.lua that configures this mod. Create shards, set their shard_id. Create connections between shards and set connection count. Save it and you have modoverrides.lua which will work with this mod. You still have to include other mods you want to use. Also supports one way connections. This util is running in .NET 4.0 and won't start without it! The util is available for download from these forums by "Download this file" on the right.
  14. -persistent_storage_root Change the directory that your configuration directory resides in. This must be an absolute path. The full path to your files will be <persistent_storage_root>/<conf_dir>/ where <conf_dir> is the value set by -conf_dir. The default for this option depends on the platform: Windows: <Your documents folder>/Klei Mac OSX: <Your home folder>/Documents/Klei Linux: ~/.klei -conf_dir Change the name of your configuration directory. This name should not contain any slashes. The full path to your files will be <persistent_storage_root>/<conf_dir> where <persistent_storage_root> is the value set by the -persistent_storage_root option. The default is: "DoNotStarveTogether". -cluster Set the name of the cluster directory that this server will use. The server will expect to find the cluster.ini file in the following location: <persistent_storage_root>/<conf_dir>/<cluster>/cluster.ini, where <persistent_storage_root> and <conf_dir> are the values set by the -persistent_storage_root and -conf_dir options. The default is "Cluster_1". -shard Set the name of the shard directory that this server will use. The server will expect to find the server.ini file in the following location:<persistent_storage_root>/<conf_dir>/<cluster>/<shard>/server.ini, where <persistent_storage_root>, <conf_dir>, and <cluster> are the values set by the -persistent_storage_root, -conf_dir, and -cluster options. The default is "Master". -offline Start the server in offline mode. In offline mode, the server will not be listed publicly, only players on the local network will be able to join, and any steam-related functionality will not work. -disabledatacollection Disable data collection for the server. We require the collection of user data to provide online services. Servers with disabled data collection will only have access to play in offline mode. For more details on our privacy policy and how we use the data we collect, please see our official privacy policy. https://klei.com/privacy-policy -bind_ip <bind_ip> Change the address that the server binds to when listening for player connections. This is an advanced feature that most people will not need to use. -port <port_number> Valid values: 1..65535 The UDP port that this server will listen for connections on. This option overrides the [NETWORK] / server_port setting in server.ini. If you are running a multi-level cluster, this port must be different for each server. This port must be between 10998 and 11018 inclusive in order for players on the same LAN to see it in their server listing. Ports below 1024 are restricted to privileged users on some operating systems. -players <max_players> Valid values: 1..64 Set the maximum number of players that will be allowed to join the game. This option overrides the [GAMEPLAY] / max_players setting in cluster.ini. -steam_master_server_port <port_number> Valid values: 1..65535 Internal port used by steam. This option overrides the [STEAM] / master_server_port setting in server.ini. Make sure that this is different for each server you run on the same machine. -steam_authentication_port <port_number> Valid values: 1..65535 Internal port used by steam. This option overrides the [STEAM] / authentication_port setting in server.ini. Make sure that this is different for each server you run on the same machine. -backup_logs Create a backup of the previous log files each time the server is run. The backups will be stored in a directory called "backup" in the same directory as server.ini. -tick <tick_rate> Valid values: 15 .. 60 This is the number of times per-second that the server sends updates to clients. Increasing this may improve precision, but will result in more network traffic. This option overrides the [NETWORK] / tick_rate setting in cluster.ini. It is recommended to leave this at the default value of 15. If you do change this option, it is recommended that you do so only for LAN games, and use a number evenly divisible into 60 (15, 20, 30). Examples: The recommended way to run a two level server is with the following commands: dontstarve_dedicated_server_nullrenderer -console -cluster MyClusterName -shard Master dontstarve_dedicated_server_nullrenderer -console -cluster MyClusterName -shard Caves These two commands will run two dedicated servers using the following configuration files: <Your Klei Folder>/MyClusterName/cluster.ini <Your Klei Folder>/MyClusterName/Master/server.ini <Your Klei Folder>/MyClusterName/Caves/server.ini For the location of <Your Klei Folder>, see the explanation of the -persistent_storage_root and -conf_dir options above. For information on setting up a dedicated server, see one of the following guides: Dedicated Server Quick Setup Guide: Windows Dedicated Server Quick Setup Guide: Linux Dedicated Server Quick Setup Guide: Mac OS X