QDResLoader

QDResLoader

Mod

A dead-simple resource loader that reuses existing functionality.

Client or server Utility

5,160 downloads
10 followers
Createda year ago
Updated9 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

So, you know how there's this really nice, battle-tested, and fast resource loading system in QSL? It's used for every mod. Wouldn't it be great if we could just reuse that, instead of needing a bloated Architectury-requiring overengineered mess that breaks when you so much as breathe on it?

That's what this is. 1.0 is 10 lines of Java code, including formatting:

new File("resources").mkdirs();
for (var t : ResourceType.values()) {
    ResourceLoader.get(t).getRegisterTopResourcePackEvent().register((ctx) -> {
        ctx.addResourcePack(new ModNioResourcePack(
            "QDResLoader resources", mod.metadata(), null, ResourcePackActivationType.ALWAYS_ENABLED,
            new File("resources").toPath(), t, null
        ));
    });
}

Since 1.0, some more features have been added to make it nicer to use and have some extra functionality, but it's still tiny regardless; just not "put the whole mod in your description" levels of tiny.

Harness the power of QSL Resource Loader in the resources directory. You already know the format; data goes in data, assets go in assets. Maybe you've got some zips you don't want to extract, maybe since you're managing them with Packwiz to update packs someone else manages? Cool, drop them in packs.

On first run, a QDResLoader-README.txt file will be dropped into resources to give you a quick explainer on how to use the mod. Here's what it says:

This directory is created and handled by QDResLoader. You can delete this README once any of the following things exist.

This directory itself is loaded as a datapack and resourcepack, so any pack.mcmeta will be considered (using a default provided by QSL if not present) and any data in "data", as well as resources in "assets" on the client, will be loaded.

You may also create a "packs" directory, and put directories, zips, or jars in there that will all be loaded as packs. For organization purposes, you may also create a "datapacks" or "resourcepacks" directory -- packs in those directories will only be loaded as one type instead of both.

The resources in the main directory cannot be disabled by users, but will be visible in the "Resource Packs" and "Data Packs" menu, and can be reordered. Packs in all three pack directories can be disabled as the user pleases, but are all enabled by default.

Jars are recognized as packs so you can take "datapack-as-mod" JARs and drop them here instead of in mods, if that's something you would like to do.

External resources



Project members

unascribed

Owner


Technical information

License
CC0-1.0
Client side
optional
Server side
optional
Project ID