MinecraftForge / Documentation

Read the docs MinecraftForge documentation
MIT License
465 stars 192 forks source link

Documentation not found that broadly explains config files & folders #467

Closed ejm554 closed 1 year ago

ejm554 commented 1 year ago

Some background:

I'm a hobbyist modpack maker, and I've learned the hard way that a mod can have multiple types of config files. For example:

"There is the client config which is for client things like rendering, there is the common config which is for everything else like Level generation, and the server config is for server stuff." - Source: user Luis_ST answering a question on one of the Forge Forums on 2021-10-06.

I also understand that there are multiple directories where configs can live, e.g.:

"The configs/files in defaultconfigs (or the folder that is set in configs/fml.toml) will be copied to the serverconfigs folder of any newly created world." -Source: user sciwhiz12 in a 2020 post in a Minecraft Forge forum.

Unfortunately, I can't find any documentation that explains these different types of config files & folders, at least for an audience like me. It seems that there is a probably a clear logic to it all. I'm not even clear if configs apply to vanilla Minecraft, or just modded Minecraft. I would assume the latter, but if I peek inside the .minecraft folder in a vanilla instance, there's a (usually empty) config folder.

My questions / suggestion:

  1. Is there a good source of documentation out there? If so, can you point me to it? (Note that I'm not looking for something that explains how to create or work with them programatically. I'm seeking a high-level, general explanation.)
  2. If there there isn't any existing documentation, would someone on your team be willing to write something and add it to your documentation site?
ChampionAsh5357 commented 1 year ago

The forge docs does provide some basic information on where the folders of the configuration live for each type. As for the general descriptions, it is deferred to their javadocs. The former pretty much sums it up in a simple table.

For a user, you really don't need to understand more than configs can live in three different folders for a given profile. It is up to the mod developer who provides those configurations for their mod to explain what each property does and where it can be set. Forge provides the API for creating configs, so the most we can do, in context of a typical user, is provide the location where the configs will be during game load (or world load for server configs).

ejm554 commented 1 year ago

Thanks for that useful information! Can you still answer a couple things, or direct me to a resource?:

  1. What is the purpose of /defaultconfigs, and how does it work? Is there documentation for that also? (Apologies if I missed it.) I understand that this folder can help me to create modpacks with altered configs, especially for individual worlds, but it's not clear to me how to use it correctly.

  2. Is this "config structure" built into Minecraft generally, i.e., vanilla, or is it an unofficial convention created by/used by mod makers?

ChampionAsh5357 commented 1 year ago
  1. To this, I can direct you to sci's explanation. Essentially, it's where you put server configs to be set whenever a new world is created since those are generated when the world is initially constructed, meaning you otherwise wouldn't be able to set them until the world opened for the first time.
  2. This is a Forge added configuration manager. I imagine other mod loaders use other configuration managers, or just don't have them and leave it up to the mod to implement themselves. Vanilla typically uses resource packs or datapacks.