This is a Frequently Asked Questions sheet for Caveblazers Together mod.
The mod can be downloaded from Steam or itch.io.
Donations are accepted through itch.
Click on sections to expand/collapse them.
Quick display controls: Categories · Sections · Everything ·

Features
How to play with people
Steam
Friends UI

If you have the other player(s) on your friends list, things are easy:

  • One person picks Host [2] and sends invitations to others
  • Others open the game and accept the invitation or pick Join [3] and then "join game" in the Steam friends list
  • Host adjusts delay (if necessary) and picks Start
Matchmaking

If you do not have the other player(s) on your friends list (e.g. you've found people to play with on Discord), you can use the Matchmaking menu - it allows to create and search for public lobbies.

As of 2022, you are somewhat unlikely to find someone through matchmaking without coordinating prior.

DRM-free

Off-Steam, things require a little knowledge:

  • One person picks Host and enters a port to use.
    If you are playing over LAN or use a VPN service (ZeroTier, Radmin, Hamachi), you will not have to look into port forwarding.
    Also make sure that the game is allowed in Windows Firewall if that's enabled.
  • Other people pick Join and enter IP-port to connect to.
    If you're playing over internet, you'll need the host's external IP.
    For VPN services, you'll need the host's simulated IP (usually shown in the VPN tool's UI).
    For LAN, host can find their local IP using ipconfig in cmd.
  • Host adjusts delay (if necessary) and picks Start
Online FAQ
Crossplay

If you are using a Steam version while others don't, you may switch to non-Steam networking in the main menu.

Limits

The mod can be played with up to 4 players both locally and online.

Technically this isn't a hard limit, but the game doesn't really scale beyond 4P and neither does netcode (4 players already need 10 connections total, Sum(1..N-1)).

Can you join mid-game?

Having such a feature requires being able to save/load a run, which isn't something that game can do nor something that I can quickly implement.

If you have an unstable connection, consider using /timeout.

Troubleshooting desyncs

If a game says “Desync!” and disconnects, that means that something caused the game state to diverge between players to the point of no recovery.

The first thing you can do is fetch the screenshot from each player (inside %LOCALAPPDATA%/Caveblazers/desyncs/<date and time>) and compare them. If screenshot sizes do not match, that means that not all players can run the game same resolution as the game’s host - try adjusting resolution from the main menu options or running windowed.

In rare cases it is possible that the shared savefile gets out of sync. If that happens, you can navigate to %LOCALAPPDATA%/Caveblazers/withUsers in Explorer (or press Win+R, paste that, and press Enter) and manually copy the files from a specific directory over to other player(s) (note: directories are named after the Steam IDs of other players in the session) or remove them (if you did not enable progression).

If that’s not it, do /tracksync while on main menu (not while on blue menu), and send the set of desync files from each player to steam discussions or Discord for me to look at. Ideally with information as to what you were doing prior to desync.

Troubleshooting lag

If the game is dropping frames while playing online, there can be a few reasons for this:

  1. There are issues with connection quality between players. You can hold Tilde (` / ~) key to view connection quality graph. Red areas indicate where the game didn’t have information on time and had to wait up. For small fluctuations, adjusting latency via /delay can help, but generally you should try to ensure that latency is stable between players for a good experience.
  2. Someone opened multiple multiple instances of the game by accident - in this case Steam starts splitting incoming data between them at random, and things don’t go very well. This can be checked via Task Manager.
  3. Steam bugged out. This is a possibility if you have stable latency towards players in other games but not in CBT. In this case having everyone restart Steam usually helps.
  4. One of the players is struggling to run the game at full framerate at the time. Networking increases CPU load a bit, and so do additional players running around with their own screen-sized views; For devices with multiple GPUs it is possible for the game to default to the less suitable one (e.g. laptops with NVidia GPUs commonly also have an Intel integrated GPU), so it’s something to check early. If all else fails, adjusting settings (mostly resolution and whether background is enabled) can help , /q toggle lighting being an additional option.
Compatibility
Steam

The mod can be downloaded through Steam an this time this is the most convenient method for an average user.

GOG

The mod can be used with GOG version of the game.

Currently, the mod is unable to detect whether you own the Arena Mode DLC as there is not an easy way to do so.

DRM-free

The mod can be used with DRM-free versions of the game, such as a GOG build without GOG client launcher... and I think that's it, given that the Humble Store currently sells Steam keys for the game.

Switch

I don't know what you've expected, but no, the mod is not available on Switch and will probably never be available on Switch, for it is forbidden to mod games on console even if I was somehow willing to spend those extra weeks (months?) getting it to actually function well on Switch. This is what you get with "closed garden" platforms. My condolences, etc.

Pirated copies

It is not possible to guarantee that a mod will work with pirated copies and I will not offer support for these, but at the very least you should ensure that all players are running the exact same build of the game.

Chat commands

Chat can be entered by pressing T.

Game behaviour commands
/startmode (mode)

Changes game start behaviour. Mode can be:

  • normal: Standard behaviour
  • quick: Drops you into the first shop with 400g, skipping the first level

Example: /startmode quick to enable quick-start

/revmode (mode)

Changes revival behaviour. Mode can be:

  • normal: Standard behaviour (half of items/blessings are lost)
  • arena: Arena-like behaviour (only stat bonuses are lost)

Example: /revmode arena

/aim360

Toggles 360-degree aiming.

Is particularly nice with mouse aiming (enable in keyboard controls menu), but mind that this also enables 360-degree aiming for any other entities (allies, enemies) so you may grow to regret your decision.

/framerate (number)

Changes the game’s framerate. Useful for playing with >60hz if all players have hardware that can take it.

Example: /framerate 144

Inventory behaviour commands

The following affect how different aspects of inventory management work:

/keepondrop [player number]

Toggles whether inventory should stay open after dropping an item.

If player number is specified, only does that for specific player.

Example: /keepondrop would toggle this for all local players

Example: /keepondrop 2 would toggle this for P2

/autosort [player number]

Toggles inventory auto-sorting. Items are sorted by group, starting from primers to equippable items to usable items to potions.

Example: /autosort would toggle this for all local players.

Example: /autosort 1 would toggle this only for P1.

/invts (factor)

Changes how fast the time goes while someone has inventory open.

This feels weird in online multiplayer.

Example: /invts 0.3 for the game to slow down to 30% speed while someone has inventory open.

Networking commands
/timeout (number of seconds)

Changes connection timeout.

Useful if you are playing with someone that has internet connection drop for a minute every once in a while.

Example: /timeout 15000 would patiently wait for up to 15000s=250m for player to come back

/delay (number of milliseconds)

Changes expected network latency much like you can on lobby screen. Used for troubleshooting lag.

Example: /delay 100 would change it to 100ms.

Debug commands

The following are intended for workarounding bugs or for ad-hoc setups.

It is possible to crash the game with these if not careful.

The entire list can be viewed from auto-completion in chat (type /q and use arrow keys to scroll), so I’m going to note a few noteworthy ones here,

/q toggle lighting

Toggles lighting system. Combined with resolution options and toggling background in settings, this can help to squeeze out some performance out of setups that cannot usually run the game at full speed.

/q toggle altbg

Toggles background drawing behaviour between normal and alternate. Only applies to the person doing the command. A slightly less radical solution than disabling background drawing completely, alternate behaviour can be faster on some computers.

/q give item (name)

Gives you the specified item by name. There are too many to list so make good use of in-game auto-completion after typing /q give item

/q give blessing (name)

Like above, but for blessings.

/q set nextboss (name)

Changes what the next boss is going to be. Good for trying things out. Mind that while you may set this to a non-boss object for fun, you’ll become trapped in the boss room and will have to use /q level to get out.

/q level (index)

Transits to the given level. In r54, auto-completion will show options, but till then,

/gml (code)