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 !