It’s been 3 weeks since the last dev blog and a lot has happened so let’s dive into each one.
Player Data Backend
I built a simple backend API which acts as a store for player data. It tracks player data such as sanity, aliens killed, victories, rounds played, etc. Game servers connect via a HTTP API and are authenticated with an API key to read/write to this backend.
There is a little dashboard for me to view/edit player data;

Admins and Bans
I also built an admin system where you can define Moderators, Admins, and Super Admins. Players with these roles can kick, ban, perma ban, unban other players. Super admins can change the roles of other players. The admin list and ban list can be synced with the backend server as well.

Once again, this is a super simple and generic UI, it’s not meant to be pretty.

Optional
Right now none of this is required to run a Morbus server. You can still run a game server without connecting to the backend.
Alien Selection
Previously when we were picking who should be the first brood alien we just took the player list and randomly chose one player. This is fine as a v1 but it needed to be a bit more nuanced.
Now each player has a weight, and players with higher weights are more likely to be selected. We have a set of rules, which can be activated under certain circumstances which raise or lower the weight of a player.
The default weight of a player is 100
Lowering Weights
These rules lower weight, making a player less likely to be selected;
Brand New
Brand new players (who have less than 5 rounds played) have their weight lowered to 0, meaning they will never be selected as a Brood Alien. This rule only activates if less than half the players qualify as “brand new” as a bootstrapping safety mechanism.
New-ish
New-ish players (6-10 rounds played) have their weight ramp up from 50 to 100, or a 50% – 0% reduction. Therefore a player with 6 rounds played has a weight of 50, and by the time they hit 10 rounds played they’ll have a weight of 100.
Recent Alien
Players who recently were the initial alien have their weight multiplied by 0.5x the next round, then 0.75x the round afterwards. By the 3rd round this penalty is removed.
Low Sanity
Players with low sanity have their weight reduced. From a sanity of 1000 to 400 the weight is reduced from 1.0x to 0.0x, so a player with 700 sanity would have their weight reduced by 50%
Increasing Weights
These rules increase weights for players
Alien kills
As a human, if a player kills a swarm alien they get +1% weight. A Brood alien kill gives +5% weight. This bonus keeps stacking until the player is chosen as alien next.
Underdog Human Win
If humans win and less than 25% of players were human at the end of the round then all surviving players receive a 10% bonus to their weight. This bonus will stack and also persist across rounds until the player is chosen as an initial alien.
Stored in the backend
All of this data is stored in the backend with the players data, so it will persist across rounds and play sessions.
Item Weight
Items now have a “weight” stat and picking them up will contribute to your “carried weight” which is displayed at the top of your inventory.

Hovering over the carried weight panel switches the UI to show you the weight of each item you are carrying as well as color coding the items. The carried weight panel also shows you the impact your carried weight has on your speed.
How much each item weighs and the amount of movement penalty will need to be tweaked and balanced in the future.
New Map!
I’ve always loved the original Garry’s Mod Parasite map, which is the gamemode Morbus was inspired from. I decided to make a copy of it in S&Box.



With the addition of this map we have 4 maps which I think is a solid base. The maps could use additional work to texture and polish them but that’s work for the future.
Spectator Mode
I added spectator mode in, which allows you to just fly around and spectate. When i made Morbus in Garry’s Mod i loved doing this and watching people play.
Leave a Reply