Skip to content

Instantly share code, notes, and snippets.

gist
@TrueCP6
TrueCP6 / forge-to-fabric-ports.md
Last active October 19, 2024 18:27
A list of decently sized Forge mods ported or being ported to Fabric
@TheGlitch76
TheGlitch76 / a_1.16.4.txt
Last active January 2, 2021 03:29
SpecialBunny statistics
collected 2021-01-02 at 02:30 UTC
Total mods: 2781
Total mods using MCreator: 97 (5.0% of Forge mods)
Total mods with core mods: 56 (2.9% of Forge mods, 3.0% excluding MCreator)
Total mods with access transformers: 471 (24.5% of Forge mods, 25.9% excluding MCreator)
Forge mods using Mixins: 220 (11.4% of Forge mods, 12.1% excluding MCreator)
Fabric mods using Mixins: 728 (85.9% of Fabric mods)
Fabric: 847 (30.4%) Forge: 1915 (68.8%) Both: 14 (0.5%) Forge 1.12 or below: 1 (0.0%) Neither: 4 (0.1%)
@Sturmlilie
Sturmlilie / apitrace-tutorial.md
Last active November 15, 2024 23:36
Debugging OpenGL issues in Minecraft mods using apitrace

Apitrace tutorial

Debugging OpenGL issues in Minecraft mods using apitrace

In the transition of Minecraft version 1.14 to 1.15, Mojang introduced some sweeping changes to the way rendering is performed; while the internal code still relies on GL1-era immediate-mode, block and entity renderer classes now provide their vertices to a specific RenderLayer* which are later rendered in ordered batches.

These changes broke a majority of Minecraft mods; in the process of porting a mod to 1.15, I had to frequently rely on a tool called “apitrace”, and I thought a quick how-to might come in handy for others struggling with similar problems. Apitrace allows capturing every OpenGL call an application makes, and later replaying these calls and inspecting the entire GL state machine at each rendering step.

For this tutorial, I am using the MultiMC launcher.

First step: Install apitrace

@quat1024
quat1024 / mod mod things.md
Last active January 21, 2023 04:10
Minecraft Modding Resources
@quat1024
quat1024 / fix it.md
Last active February 23, 2021 07:23
Fix stuff being broke in IntelliJ.

What

When compiling mods in recent versions of IntelliJ, weird things start happening:

  • With ForgeGradle 2 (1.12-), none of the assets show up in-game (language keys, models, textures etc)
  • Broken hotswapping.
  • Potentially other Bad, Terrible Things that are yet to be discovered.

How

@quat1024
quat1024 / we out here reloadin.md
Last active January 19, 2020 11:42
Probably Very Wrong Overview of Resource Reloading in 1.14.4/Fabric

TL;DR

If you want to load some resources or data in Fabric 1.14 or 1.15, do this:

ResourceManagerHelper.get(ResourceType.ASSETS).registerReloadListener(new SimpleResourceReloadListener<MyResource>() {
  @Override
  public Identifier getFabricId() {
    return new Identifier("some_identifier", "that_describes_this_task");
  }
@7coil
7coil / application.js
Created January 24, 2019 01:28
This application turns numbered pictures in a `frames` folder into the `project` folder as hashed files, and creates the corresponding JSON to insert into the project.
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const compare = (a, b) => parseInt(a.replace(/\D/g, ''), 10) - parseInt(b.replace(/\D/g, ''), 10);
const data = fs.readdirSync('./frames')
.sort(compare)
.map((file, index) => {
const hash = crypto.createHash('md5').update(fs.readFileSync(`./frames/${file}`)).digest('hex');
@williewillus
williewillus / primer.md
Last active September 23, 2024 02:37
1.13/1.14 update primer

This primer is licensed under CC0, do whatever you want.

BUT do note that this can be updated, so leave a link here so readers can see the updated information themselves.

1.13 and 1.14 are lumped together in this doc, you're on your own if you just want to go to 1.13 and not 1.14, for some reason.

1.15 stuff: https://gist.github.com/williewillus/30d7e3f775fe93c503bddf054ef3f93e

Things in Advance

  • ResourceLocation now throw on non-snake-case names instead of silently lowercasing for you, so you probably should go and change all those string constants now. More precisely, domains must only contain alphanumeric lowercase, underscore (_), dash (-), or dot (.). Paths have the same restrictions, but can also contain forward slashes (/).