What I have learned modding WEBFISHING
The many mistakes and things that I have learned while modding WEBFISHING
9 minutes to read
I have been writing mods for a game called WEBFISHING.
If you have not heard of WEBFISHING, it is a game where you just relax with your friends and fish. It's very popular and played by thousands daily.
To get why I even modded this game in the first place, we have to backtrack to Doko Demo Issyo.
Onsen Town: the game that made me go insane #
I am going to keep this very short to be honest so we don't get off-track.
After I figured out BPM, I decided to try on Onsen Town. Before this, everybody who tried to reverse engineer this game quit due to how annoying it is.
I hated it, from pulling old Android school-assigned tablets from my closet to praying that Frida would not crash, this game suuuuucked to reverse. After a while, I recreated the current scripts with frida-il2cpp-bridge and gave up.
In Gen2 (a discord I am very active in), Wesley and some of his friends were playing a little game as Webfishing. I decided to play for some reason to reverse the game and play with him. I had decide to purchase it on Steam with the very little amount of crypto I had left from farming to reverse and have a good time.
The Beginning #
When I purchased the game, after a few hours of playing. I pulled out gdsdecomp and started to tinkle around with WEBFISHING in the community server Discord in the first few hours.
I found a bypass to the BBCode exploit (patched in v1.09, don't try my method!). I sent a message packet to the server with [rainbow]Hello World![/rainbow] and bypassed all sanitization. This is also how I met West (the creator of WEBFISHING) after I reported the exploit to him!
I learned a lot about how the games inner functions work and the many interesting things about this game but a single ping changed me and made me stop datamining.
Mod Loaders #
It began with a ping from Sulayre (creator of Lure and Catcher) saying that he created a mod loader. It was very basic using Godot autoload and custom PCKs.
I never used Catcher at all since I was into datamining at this time but at the same time, NotNite created GDWeave. Once Sulayre found out about GDWeave and NotNite found the community server, he stopped support on Catcher and everybody started to work on their first few mods.
It is now the main mod loader that everybody uses to this day and this is when I wrote QuickGamble and begin my mod journey.
QuickGamble #
The first mod that I wrote was QuickGamble once GDWeave was released. It was a really basic mod, it just made scratch tickets faster with a button and I used direct source modification.
1 - Never use direct source modification #
This was a mistake that I made, it breaks very quickly when things are updated and is not recommended by any WEBFISHING modder. It was a very rookie mistake.
This mod was a very small mod and not much happened. I had to learn C# tokenization which I struggled at with first and got into a fight with NotNite about why my code was not working.
I did not understand that Tokens are just fractions of a function and I was setting a function waiter and messing everything up.
Once QuickGamble worked fine, I wrote the mod that I am mostly known for and is currently the #1 non-library mod on Thunderstore, Fishing+
Fishing+ #
This was another mod that adds basic stats to the game. I wrote this just after I woke up from a long session of tokenization.
It was another basic mod like QuickGamble. I am not going to go thru the entire process of how to setup things and I want to talk about the many mistakes I made writing Fishing+.
The 1.4.0 incidents: when everything broke on me #
On 11/4/2024, I would release the 1.4.0 update which would make me go insane through sloppy mod managers (Hook Line and Sinker) and me (BashfulBuckets).
2 - Always test your code for mod conflicts #
Before deploying, test your mods with the top mods, modern mod managers should help you bulk install on Thunderstore. Please don't cause another incident like me.
When I wrote the auto collect buddies mod, I forgot to add a single new line which when both mods collide to each other caused game crashes on startup.
Then, I also released Patient Lure which upset many people and when people used Hook Line and Sinker to disable it, it would break the config.
What was happening is that pyoid serialized unknown objects as strings so an array would turn into a string. The mod Tacklebox also broke but caused less side-effects.
Broken Godot UI #
When 1.5.0 released, I worked on a player panel to fix both issues which was really helpful. What I didn't realize is that it was broken on screens.
3 - Always add anchoring on your UIs #
It might seem really simple but before this I had never touch Godot in my life. I was very new and was coming in at a very starting point.
Summary #
In my opinion, you should always try out new things. Before I learned WEBFISHING modding and Godot in general, I had never even opened the executable for Godot editor.
Webfishing modding made me learn a lot of how to write mods and some of the mistakes I made like not add anchoring to UIs.
In general, never rush your mods.
- Previous: Reverse engineering the BPM file format