

Calico; anti-lag improvements & client optimizations for WEBFISHING.
Calico aims to improve the performance of WEBFISHING in multiplayer scenarios.
Teemaw.Calico folder ends up in WEBFISHING\GDWeave\mods\WEBFISHING\GDWeave\configs\Teemaw.Calico.jsonVisit the Thunderstore page for Calico.
The Teemaw.Calico.json configuration file has the following schema and default values:
{
"DynamicZonesEnabled": true,
"LobbyIdsEnabled": false,
"LoadingWaitTimeoutEnabled": true,
"MapSoundOptimizationsEnabled": true,
"MeshGpuInstancingEnabled": true,
"MultiThreadNetworkingEnabled": true,
"PlayerOptimizationsEnabled": true,
"ReducePhysicsUpdatesEnabled": true,
"SmoothCameraEnabled": true
}
DynamicZonesEnabledNormally, 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.gdcres://Scenes/Map/Tools/transition_zone.gdcLobbyIdsEnabled (Experimental)Lobby codes can be "spoofed" by modded clients. Calico lobby IDs are unique to each lobby and cannot be spoofed. This option enables a new button in the Esc menu to view and copy this unique lobby ID. This will also enable searching for lobbies using this unique ID.
Files modified:
res://Scenes/HUD/Esc Menu/esc_menu.gdcres://Scenes/Menus/Main Menu/main_menu.gdcres://Scenes/Singletons/SteamNetwork.gdcLoadingWaitTimeoutEnabledAfter you join a lobby, the game enters a loading screen while you connect to other players. If you're joining a lobby with only a few players, and you're unable to connect to even one of them, you'll be stuck in a loading screen forever. This option fixes this by introducing a small timeout for each player you haven't connected to yet. The maximum amount of time you'll have to wait is ~12 seconds. When this is enabled, it may be possible that there are other players in the lobby that you cannot see or chat with.
File modified:
res://Scenes/Menus/Loading Menu/loading_menu.gdcMapSoundOptimizationsEnabledThis enables optimizations relating to sound effects of the map.
File modified:
res://Scenes/Map/Props/bush_particle_detect.gdcMeshGpuInstancingEnabledEnabling 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.gdcMultiThreadNetworkingEnabledThis 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.gdcPlayerOptimizationsEnabledThis enables patching of player scripts to optimize cosmetic loading, animation updates, sound effects, etc.
Files modified:
res://Scenes/Entities/actor.gdcres://Scenes/Entities/Player/guitar_string_sound.gdcres://Scenes/Entities/Player/held_item.gdcres://Scenes/Entities/Player/player.gdcres://Scenes/Entities/Player/sound_manager.gdcReducePhysicsUpdatesEnabled[!IMPORTANT]
It's highly recommended to setSmoothCameraEnabledtotrueif this option is enabled. Normally, the game camera's movement is tied to the physics update rate. If you enable reduced physics updates without smooth camera, it may feel like the game is running slower during camera panning or player movement.SmoothCameraEnabledwill decouple camera updates from physics updates.
This reduces the physics update rate to free up CPU cycles for other tasks. This will patch a few processes that are tied to the normal physics update rate such that they feel the same with a reduced update rate.
There are many game processes which are tied to the physics update rate. If you see animations being slow or weird, this is probably why. Like any issue you may have with the mod, please feel free to create an issue or PR.
Files modified:
res://Scenes/Entities/Player/Face/player_face.gdcres://Scenes/Entities/Player/player.gdcres://Scenes/HUD/playerhud.gdcres://Scenes/Minigames/Fishing3/fishing3.gdcres://Scenes/Singletons/globals.gdcSmoothCameraEnabledThis option decouples camera position updates from the physics cycle. This will help make the game feel more responsive
if your framerate is faster than the physics update rate. Normally, the game runs physics at 60Hz. Without this option
enabled, it may feel like your game is locked to 60fps during camera panning or player movement. This is much more
noticeable with the reduced physics update rate of ReducePhysicsUpdatesEnabled, so is highly recommended to be enabled
along with ReducePhysicsUpdatesEnabled.
Files modified:
res://Scenes/Entities/Player/player.gdcres://Scenes/Entities/Player/player_headhud.gdcres://Scenes/Entities/Player/tail_root.gdcIf Calico is causing your game to crash, it's likely that there is a conflict with another mod. Here are some general guidelines to help get your game running by disabling some of Calico's features.
[!TIP]
If you are experiencing a conflict using Calico with some other mod, feel free to open an issue or PR. While we work on a fix, try the following.
Try disabling PlayerOptimizationsEnabled.
Try disabling ReducePhysicsUpdatesEnabled.
Try disabling DynamicZonesEnabled, MeshGpuInstancingEnabled, MapSoundOptimizationsEnabled, or some combination of
the above.
Try disabling SmoothCameraEnabled, ReducePhysicsUpdatesEnabled, or both.
Try disabling MultiThreadNetworkingEnabled.
To build the project, you need to set the GDWeavePath environment variable to your game install's GDWeave directory (
e.g. G:\games\steam\steamapps\common\WEBFISHING\GDWeave). This can also be done in Rider with
File | Settings | Build, Execution, Deployment | Toolset and Build | MSBuild global properties or with a .user file in
Visual Studio.