FOV Changer
Change your FOV in BONELAB with adjustable increment steps (1/5/10/15/20/25/30) and a one-click reset to Bonelab's default FOV.FOV Changer (BONELAB / MelonLoader / BoneLib mod)
Lets you change your field of view in-game via BoneMenu, with a one-click reset to default, and a Credits tab.
What it does Adds a FOV Changer page to BoneMenu A Mod Enabled toggle — flip it off and the mod releases control of the camera's FOV entirely (handy if another mod also touches FOV) A Field of View slider (bounded 40–360) for direct fine control
-
Increase FOV / - Decrease FOV buttons that step by whatever increment amount is currently selected Keyboard shortcuts — Page Up / Page Down by default — that do the same thing as the +/- buttons without opening the menu (rebindable via the config file, see Keybinds page) A Reset FOV to Default button that resets to Bonelab's default (90) Every game launch, FOV always starts fresh at 90 — your in-session changes are intentionally not saved between play sessions A Print Current Status button that logs your current FOV/step to console An Increment Amount sub-page with buttons to pick how much each press of +/- (or keypress) changes the FOV by, in this order: 1, 5, 10, 15, 20, 25, 30 — this choice is remembered between sessions A Keybinds sub-page showing your current increase/decrease keys A Credits sub-page crediting nicebud Prints a credits message ("Creator: nicebud") to the MelonLoader console on load Periodically re-applies your FOV (every 0.5s, not every frame) in case a level load or avatar swap resets the camera, without the overhead of a per-frame check Requirements BONELAB with MelonLoader installed BoneLib installed as a mod (its DLL must sit in your Mods folder) .NET 6 SDK to build Build Open FOVChanger.csproj and update <BonelabDir> to point at your actual BONELAB install folder (the one containing MelonLoader\ and Mods). From this folder, run: dotnet build -c Release The compiled FOVChanger.dll will be in bin\Release\net6.0. Install Copy FOVChanger.dll into your BONELAB Mods folder (...\BONELAB\Mods). Make sure BoneLib.dll is also in that Mods folder. Launch the game. Check the MelonLoader console — you should see:
FOV Changer loaded! Credits: nicebud Creator: nicebud
In-game, open BoneMenu (default: press the menu button bound in BoneLib) and look for the FOV Changer page. manifest.json
Included for packaging/uploading the mod to Thunderstore or mod.io. Before publishing:
Update "website_url" to your mod's page/repo. Update the "dependencies" entry to match the exact BoneLib version/author namespace you're building against (the one included is just a placeholder — check the BoneLib Thunderstore page for the current package string, e.g. Author-PackageName-Version). A Thunderstore upload also needs an icon.png (256x256) and a README.md (already included here) alongside manifest.json. Rebinding the keyboard shortcuts
The increase/decrease keys are stored in UserData\MelonPreferences.cfg under the FOVChanger category, as IncreaseKey / DecreaseKey. Change them to any Unity KeyCode name (e.g. Equals, Minus, RightBracket) and restart the game.
Notes If your BoneLib version's BoneMenu API differs slightly (method names for creating float sliders, bools, functions, or pages do shift between releases), you may need to tweak the CreateFloat / CreateBool / CreateFunction / CreatePage calls in FOVChanger.cs to match the exact signatures in your installed BoneLib.dll. You can check these by inspecting BoneLib.dll with a tool like ILSpy or dnSpy, or by checking the BoneLib source/docs for your version. The increment-step buttons don't mutate the slider's internal drag-step (that's a method, not a settable property, in some BoneLib versions and caused a compile error). Instead they set which amount the +/- FOV buttons and keybinds move by, which sidesteps that entirely. The FOV itself is deliberately kept out of MelonPreferences (it's a plain in-memory field), so it's guaranteed to reset to 90 on every launch — only your increment/keybind/enabled preferences persist to UserData\MelonPreferences.cfg. The camera reference is cached instead of calling Camera.main every frame (which is a hidden scene lookup under the hood), and is only re-resolved when it goes null.
