A native webfishing installer for macos
1# Webfishing MacOS Installer
2
3An installer for a native version of webfishing on macos
4
5## Why??
6
7Webfishing is a game I love, however, it is poorely running on Whisky for macOS due to some unknown reason.
8
9While searching for some solutions I stumbled across a [blog article](https://mae.wtf/blog/28102024-webfishing-mac) made by [@vimaexd](https://github.com/vimaexd),
10it worked well in singleplayer, however as of now the multiplayer no longer works and this is why I decided to make this installer after figuring out how to patch this issue.
11
12
13## Prerequisite
14- Root privileges
15- Steam
16
17## Installation
18
19To run the app, you can double-click on it, doing so will put the build folder inside your home directory `/Users/[you]/build`
20
21You can also run it from the command line and doing so will put the build folder inside the current working directory.
22
23## Implemented Patches
24
25- renaming `steam_id_remote` dictionnary key to `remote_steam_id` to fix network spam detection that resulted in timeouts
26- prevent the game from crashing when saving the options by not setting any values to `OS.windowed_borderless` because setting a value to it crashes the game somehow
27
28
29## How to install a mod?
30
31When running the software for the first time and building webfishing, you'll notice that a `mods` folder has appeared in the folder where the installer is.
32
33In order to install a mod, just copy a mod folder in it, a mod folder has a `manifest.json` file in it.
34
35After that, run the installer again ! It will tell you in the terminal if the mod is installed or if something went wrong.
36
37Here's a small mod list : [link to the mod list](modlist.md)
38
39## How to make a mod?
40
41As you can see in the `example_mods` folder, a mod has typically two folders and a single `manifest.json` file having the following structure:
42```jsonc
43{
44 "name": "Ship Mod", // Mod name
45 "author": "Estym", // Author
46
47 "pck_info": { // (Optional)
48 "directory": "pck", // Relative folder path to where the mod resources are
49 "resource_prefix": "res://Mods/Ship/" // Resource path prefix for the mod resources
50 },
51
52 "patches": [ // Array of patches
53 {
54 "resource": "res://Scenes/Entities/Player/player.gdc", // Resource to patch
55 "patch_file": "patch/player.patch" // relative file path to the patch file
56 }
57 ],
58
59 "deps": [] // Dependencies for the mod (Optional)
60}
61```
62
63### Notes:
64- The patch files are made by using `$ git diff [original_file] [modded_file] > file.patch`
65
66## Credits
67
68[@vimaexd](https://github.com/vimaexd) for their blog post !
69
70[Godot RE Tools](https://github.com/GDRETools/gdsdecomp) for the amazing tooling that allows me to patch the game !