Back to mods
BSDHacks project artwork

Modrinth · Minecraft mod

BSDHacks

Hacks to make Minecraft run better on FreeBSD and with mismatched LWJGL versions. Probably also helps with other BSDs?

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which BSDHacks release matches 1.20.3?

Updated 18 days ago
Best match for your filters 1.0
Game version 1.17, 1.18, 1.18.1
Loader nilloader

BSDHacks 1.0 targets 1.17, 1.18, 1.18.1 with nilloader. It must be installed on the client. Do not install it on the dedicated server. No extra mods listed for this file.

Where it goes

Is BSDHacks required on the client, server, or both?

It must be installed on the client. Do not install it on the dedicated server.

Client Required
Dedicated server Not supported
Loader for this release nilloader
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This file is marked client-only.

What else does BSDHacks 1.0 need?

1.0 on 1.20.3. Every mod below is checked against that same setup.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add BSDHacks without breaking your instance.

Built for BSDHacks 1.0 on 1.20.3. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 1.0. It targets 1.17, 1.18, 1.18.1 with nilloader; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    It must be installed on the client. Do not install it on the dedicated server.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 1.0. It opens that exact file at the source.

About this project

What does BSDHacks add?

BSDHacks

Hacks to make Minecraft run better on FreeBSD and with mismatched LWJGL versions.

(Probably also helps with other BSDs?)

Current Fixes

Sodium crashing the game on start due to the mismatched LWJGL version

[main/ERROR]: The game failed to start because the currently active LWJGL version is not compatible.
Installed version: 3.4.3-snapshot
Required version: 3.3.1
It appears you are using Prism Launcher to start the game. You can likely fix this problem by opening your instance settings and navigating to the Versionsection in the sidebar.
For more information, please see: https://link.caffeinemc.net/help/sodium/runtime-issue/lwjgl3/gh-2561

Fixed by setting -Dsodium.checks.issue2561=false during premain.

(~1.20.1) Vorbis audio not playing

This is caused by an internal NoSuchMethodError on STBVorbisInfo.mallocStack that gets swallowed by the weird async CompletableFuture bullshit Mojang is doing. LWJGL removed these methods after a pretty long deprecation period.

mallocStack methods get dynamically patched back in to all classes that are shaped like they should have one.

(~1.20.1) World icons do not work

[IO-Worker-35/ERROR]: Caught exception in thread Thread[IO-Worker-35,10,main]
java.lang.NoSuchMethodError: 'int org.lwjgl.stb.STBImageResize.nstbir_resize_uint8(long, int, int, int, long, int, int, int, int)'
	at net.minecraft.class_1011.method_4300([NativeImage.resizeSubRectTo]:630)
	at net.minecraft.class_757.method_3181([GameRenderer.method_3181]:1024)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(Thread.java:840)

nstbir_resize_uint8 had the wrong return type, and was changed to long. Additionally, all the non-suffixed methods got removed.

The broken variant of this method is patched back in, delegating to nstbir_resize_uint8_srgb.

(~1.21.1) Useless GLFW Init Errors

Some variant of the following exception will be displayed instead of the actual GLFW error:

java.lang.NoSuchMethodError: 'boolean org.lwjgl.util.tinyfd.TinyFileDialogs.tinyfd_messageBox(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence, boolean)'

The return type was changed from boolean to int. The old method is patched back in.

(~1.20.1) Useless GLFW Init Errors 2

java.lang.IllegalStateException: Failed to initialize GLFW, errors: GLFW error during init: [0x1000E]63553497619776
	at knot//com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:75)
	at knot//com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(RenderSystem.java:847)
	at knot//net.minecraft.class_310.<init>(class_310.java:483)
	at knot//net.minecraft.client.main.Main.main(Main.java:211)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:514)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:115)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)

Vanilla prints the raw pointer value of the GLFW error message instead of following it and reading the string.

The code is patched to use MemoryUtil.memUTF8.

Known Unfixed Problems

(Flywheel 1.21.1) Random SIGSEGV/SIGBUS after joining a world

No idea as to a cause for this yet. Setting the Flywheel backend to flywheel:off works, but is not ideal. Using the Epsilon GC also fixes it...?

Nothing that actually uses Flywheel needs to be rendering or even installed for the game to crash.

Project description from Modrinth.

Pick your setup

BSDHacks by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

32 available setups

Showing the newest 12 of 32 game versions. Older files are in the list below.

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

BSDHacks versions and loaders

1 of 1 releases match

Looking for an older file? The official Modrinth project page is in Resources.