

Socks is an evolving (work-in-progress) development library for GDWeave mods. Our motivation publishing this library is primarily to share these solutions and utilities we've written to address problems we've personally encountered while making mods, with the hopes you might be able to spend more time focused on fun than overcoming technical roadblocks.
Check out Better Webfishing Mod Template for a template/guide to making mods which patch over the game's code.
Sockpuppet pixel art by okayo top hat
onready var Players = get_node("/root/ToesSocks/Players")
onready var Chat = get_node("/root/ToesSocks/Chat")
var currently_worn_hat := "hat_none"
var is_lobby_owner := false
func _ready():
Chat.connect("player_messaged", self, "_on_player_messaged")
Players.connect("ingame", self, "_on_ingame")
Players.connect("outgame", self, "_on_outgame")
func _on_player_messaged(message: String, player_name: String, is_self: bool):
if is_self: return
Chat.send("Hi, %s!" % player_name)
func _on_ingame() -> void:
# Initialize mod, once we are in-game
currently_worn_hat = Players.get_cosmetics()["hat"]
is_lobby_owner = Players.local_player == Players.get_lobby_owner()
func _on_outgame() -> void:
# Teardown in prep for next lobby
currently_worn_hat = "hat_none"
is_lobby_owner = false
Please feel free to submit RFC issues with ideas for
new utilities or even modules. I can be reached on Discord @toes for discussion, collaboration, or questions. I recommend avoiding the Webfishing modding Discord server.
[!TIP] You can reach out to me for help with building your mod project.