Today was officially the first day of a two week long holiday break for Xmas and New Years.  Two weeks is perfect for establishing those good life goals / habits like working out and studying new topics.  It's also a good time to start finishing my large backlog of projects.

The perfect fun an easy project to kick off my holidays is a Stardew Valley server.  Stardew Valley is a farming game much like Harvest Moon and I find to be very relaxing and fun to play with other people.  The drawback is that for multiplayer the game save lives with the host.  So for example when I play with my wife, I must be online in order for her to play our shared game.  Now what if I want to play with even more people, those people are dependent on me (or whomever is hosting the game) to be online.  In my experience not everyone is in the mood or available to play at the same time very often.

It will be nice if/when the creator of Stardew Valley releases a standalone server but in the meantime the mods have stepped in to fill the void.  The first essential mod for this setup is called Always on Server (https://www.nexusmods.com/stardewvalley/mods/2677).  This mod controls the host player so that when no one is online the mod will pause the game stopping in game time from progressing.  This is essential because Stardew Valley is a farming game and there are seasons and events that happen with the passing of in game time.  It'll also port the host player to and from the bed while other players are online so time can continue.

The second essential mod is called Unlimited Players (https://www.nexusmods.com/stardewvalley/mods/2213).  This removes the max cap of 4 players per game and lets an unlimited amount of people join.  I imagine that most people who play on my server won't make this their main character and already have their own game saves to play.  Removing the player cap on my server opens up the game to anyone who wants to join and spend time together but not make a commitment.  There are also map mods that increase the amount of map space as well as dividing up that space for more players and their cabins.

Stardew Valley with Always on Server mod running on an Ubuntu VM

The downfall of not having dedicated server software means I can't run my Stardew Valley server in headless mode.  I had to create a VM with the standard desktop version of Ubuntu and run the game as if I were playing it.  The Always On Server mod requires the game to be in focus which is ok for a VM who's sole purpose is running that game.

Server Load: Stardew Valley VM on CPU threads 16 through 23

I anticipated Stardew Valley to be a very light weight game but the 4 cores I dedicated to the VM usually average 60% load with just the host online. I even had to double the RAM for the VM to 8GB (Range 4GB to 8GB max).  I'm pretty sure a large part of the load is the mods I'm running and not the game itself.  

I haven't tested connecting to my server externally yet, but it ran fine playing it for an hour over my home network.  I may dedicate more cores to the VM because the performance may drop as more players start connecting.