Calico
Calico; anti-lag improvements & client optimizations.
About this mod Author’s original text
Calico
Calico; anti-lag improvements & client optimizations for WEBFISHING.
About
Calico aims to improve the performance of WEBFISHING in multiplayer scenarios.
Improvements & optimizations
- Dedicated thread for compression and sending packets
- Dedicated thread for receiving and decompressing packets
- GPU instancing of common meshes (all trees, logs, bushes, mushrooms, etc.)
- Smoothing camera panning/motion by decoupling it from physics updates
- Reducing physics update rate
- Skipping cosmetics loading for players that have not changed
- Optimize player animation updates
- Other player processing optimizations (caught item, held item, sound effects)
- QoL features
- Grant other users moderation permissions to kick, ban, and unban
- Lobby IDs which cannot be spoofed for joining lobbies
- Other bug fixes
Install
(Recommended)
Visit the page for Calico.
Manual
- Download the latest release zip
- Unzip into your WEBFISHING directory such that the Teemaw.Calico folder ends up in WEBFISHING\GDWeave\mods\
- Optionally edit the configuration file in WEBFISHING\GDWeave\configs\Teemaw.Calico.json
- You're done!
Configuration
The Teemaw.Calico.json configuration file has the following schema and default values:
{
"DynamicZonesEnabled": true,
"LobbyQolEnabled": true,
"MapSoundOptimizationsEnabled": true,
"MeshGpuInstancingEnabled": true,
"MultiThreadNetworkingEnabled": true,
"PlayerOptimizationsEnabled": true,
"ReducePhysicsUpdatesEnabled": false,
"SmoothCameraEnabled": true,
"ZzCompatOverrideMayCauseCrash": false
}
DynamicZonesEnabled
Normally, the game will load and hold all zones (shop, aquarium, islands, etc.) in the scene tree regardless of where
your character currently is. Enabling this will dynamically attach and detach zones from the scene tree as you move
between them.
Files modified:
- res://Scenes/Map/main_map.gdc
- res://Scenes/Map/Tools/transition_zone.gdc
LobbyQolEnabled
This brings a few QoL features to lobbies:
- Peer moderators - hosts running Calico can grant other Calico users permissions to kick, ban, and unban.
- Lobby IDs - unique to each lobby and cannot be spoofed.
- A new button in the Esc menu lets you see and copy this ID.
- Other players with Calico installed can join with this ID.
- Fixes a bug in vanilla where player names are blank in some places.
Files modified:
- res://Scenes/Entities/Player/player.gdc
- res://Scenes/HUD/Esc Menu/esc_menu.gdc
- res://Scenes/HUD/Playerlist/player_entry.gd
- res://Scenes/HUD/Playerlist/playerlist.gd
- res://Scenes/Menus/Main Menu/main_menu.gdc
- res://Scenes/Singletons/SteamNetwork.gdc
MapSoundOptimizationsEnabled
This enables optimizations relating to sound effects of the map.
File modified:
- res://Scenes/Map/Props/bush_particle_detect.gdc
MeshGpuInstancingEnabled
Enabling this will reduce the number of GPU draw calls by combining calls for multiple copies of the same mesh into a
single call. Game objects which currently benefit from this include trees, bushes, mushrooms, water, etc.
File modified:
- res://Scenes/Map/main_map.gdc
MultiThreadNetworkingEnabled
This enables dedicated send and receive threads for sending and reading network packets. Packet compression and
decompression are also offloaded from the main thread.
File modified:
- res://Scenes/Singletons/SteamNetwork.gdc
PlayerOptimizationsEnabled
This enables patching of player scripts to optimize cosmetic loading, animation updates, sound effects, etc.
Files modified:
- res://Scenes/Entities/actor.gdc
- res://Scenes/Entities/Player/guitar_string_sound.gdc
- res://Scenes/Entities/Player/held_item.gdc
- res://Scenes/Entities/Player/player.gdc
- res://Scenes/Entities/Player/sound_manager.gdc
ReducePhysicsUpdatesEnabled (Disabled by default)
[!IMPORTANT]
It's highly recommended to set SmoothCameraEnabled to true if this option is enabled. Normally, the game camera's
movement is tied to the physics update rate. If you enable reduced physics upda
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
- For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
- Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.
Install locations vary a lot between mods — the bundled readme is the most reliable guide. Most WEBFISHING mods need the GDWeave loader; the bundled readme explains where files go.
Install these first, or the mod will not work: