A new map has been added to Physbox this month! Conch Street, by spongeis5, takes us to a familiar underwater location. Special thanks to spongeis5 for permitting me to add their map to the game.

Have you created a map and want to see it featured in Physbox? Send a DM on Discord! (username is zonical)
The title is not an exaggeration. The networking code in Physbox was god damn terrible. It was hastily written, filled with spaghetti, and couldn't actually handle two players properly. I've gone ahead and rewritten a lot of the game loop this week to make networking functional. There are definitely some bugs, and I've had to turn off damage immunity for the moment as it's not playing nice (maybe my networking code is still busted). Feel free to invite a friend to play Physbox with you, and let me know how stable it is.
One of the biggest changes this month is the addition of teams to Physbox. There are currently two teams, Red and Blue, and the code is almost ready to support multiple team configurations (Red vs Blue, Blue vs Green, Red vs Yellow vs Orange, etc.). You can select a team when you connect to the server, and you can change teams in the pause menu. Players and bots will also wear shirts and pants featuring the team's colour.

Gamemodes can also support teams. Deathmatch has been updated to support teams, where each team has their own kill counter. The first team to reach the required number of kills wins.

There are still some minor fixes and tweaks to make to the team system, such as the aforementioned addition of different team configurations and autobalance, but those will come at a later time.

Bots have received a gameplay pass this month.
  • Bots now spawn with clothes - either a tracksuit or team clothing.
  • Bots will no longer swarm a single prop and fight for who gets to pick it up. Bots will only consider props if they have not been marked as "interested" by another bot.
  • Bots will not throw props until they are fully charged.
  • Bots "update" more frequently (down from 3s per update to 1.5s).
  • Bots now have a proper avatar in the scoreboard and winner display (temporary art).
  • The Create Lobby screen has maxplayer set to 8 and bots set to 7 by default. Bots can still be disabled if desired.
Overall, bots should now pose an actual threat to players, and should be more fun to play against.
Thrusters have been in the game for a while, but I haven't mentioned them until now. Thrusters push players up into the air, which has to potential to add a layer of verticality to maps. Only players can use thrusters at the moment, but I want to support bots and props in the future. You can find these on Dockyard and Conch Street.
There have also been some stability improvements this month. Most of these are invisible to the player, but it's worth mentioning.
  • Refactored the way damage is transmitted between different parts of the game code. This used to use the built-in DamageInfo struct included in s&box, but this has now been changed to a custom struct derived from DamageInfo. This allows for code to be much cleaner and safer.
It also allowed me to get rid of this snippet of code, which I thought was too humorous not to share.
// HACK: This is fucking terrible. For some godforsaken reason,
// the bots do not place nice with PositionHeldObject and HeldProp.
// I've tried everything I can think of, but HeldProp just randomly
// goes null sometimes and throws an exception. It's probably something
// to do with the prop pickup code, but I don't even know where to begin
// to look. Maybe when I am smarter, I can get rid of this stupid
// exception blocker.
try
{
    if ( HeldGameObject is not null && HeldProp is not null )
    {
       PositionHeldObject();
    }
}
  • The killfeed should now render names and prop killfeed icons much more reliably, thanks to the aforementioned damage transmission changes.
  • Props that are destroyed while held by a player should now be cleaned up properly. In addition, propls held by the player are now properly ignored in collision interactions.
  • Props now spawn correctly over the network once again.
  • Props should no longer throw exceptions when broken.
I thought the game was lacking some non-diegetic sounds, so I added some announcer voicelines for the timer system this week. These were recorded by yours truly.
December 2025 Update
14 December 2025
🎁 Added
  • Conch Street map by spongis5.
  • Teams - currently only Red and Blue.
  • Team select screen when joining a server with teams enabled.
  • Team select button in the pause menu when joining a server with teams enabled.
  • Servers will now go into "hibernation" when no players are connected.
  • Announcer countdown - plays on 60, 30, 10, 5 to 1 seconds remaining.
🧼 Improved
  • Team support for Deathmatch.
  • Object collision processing is now run per client instead of just on the host.
  • Refactored the way damage is transmitted between different parts of the game code.
  • Killfeed rendering.
  • Bots now spawn with clothes - either a tracksuit or team clothing.
  • Bots will no longer swarm a single prop and fight for who gets to pick it up. Bots will only consider props if they have not been marked as "interested" by another bot.
  • Bots will not throw props until they are fully charged.
  • Bots "update" more frequently (down from 3s per update to 1.5s).
  • Bots now have a proper avatar in the scoreboard and winner display (temporary art).
  • The Create Lobby screen has maxplayer set to 8 and bots set to 7 by default. Bots can still be disabled if desired.
  • Moved the gamemode selection button on the Create Lobby screen to be closer to the top.
  • Player and bot initialisation improvements.
  • Spawnpoints can be set per team in the Editor.
  • Prop spawners can now be set per gamemode in the Editor.
🪛 Fixed
  • Physbox should now support networking properly.
  • Props now spawn for other clients again.
🚯 Removed
  • Damage immunity on spawn for players (temporary, will add back soon).
⚠️ Known Issues
  • Networking might still be a bit wonky.
people
Log in to reply
You can't reply if you're not logged in. That would be crazy.