toes-Socks icon

Socks

Socks is an evolving (work-in-progress) library to facilitate joy in Webfishing mod development

Last updated a week ago
Total downloads 2016
Total rating 0 
Categories Libraries
Dependency string toes-Socks-0.1.1
Dependants 4 other packages depend on this package

This mod requires the following mods to function

toes-NoNameFix-1.0.0 icon
toes-NoNameFix

Hotfix for annoying no-name chat bug, by Toes & Balls

Preferred version: 1.0.0

README

Toes.Socks

WebFishing development library

About

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.

The Players module is borrowed from BlueberryWolf's but with performance and developer-experience improvements at the cost of being backward-compatible. Nonetheless, you should find Socks.Players will suit your existing needs without many changes. In addition, our modules introduce convenient utilities to make mod building more straightforward. The Socks.Chat module was created to address the naturally opaque and cumbersome process of hooking into the game's chat methods.

Be aware that while Socks is very much usable today in your mods, it is not feature complete, yet, and quite liable to introduce breaking changes with future releases. At this time, I have released it primarily for the purpose of using with my own mods, as a dependency.

Usage

Documentation is included within the source files so be sure to check it out!

Example

func _ready():
	Players = get_node_or_null("/root/ToesSocks/Players")
	Chat = get_node_or_null("/root/ToesSocks/Chat")

	Chat.connect("player_messaged", self, "_on_player_messaged")


func _on_player_messaged(message: String, player_name: String, is_self: bool):
    if is_self: return

    print(player_name + ": " + message)

    var response = "Hi, %n!"
    Chat.send(response % player_name)

Example projects

Help

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. If you need general help building mods, I suggest joining the Webfishing Modding Discord.