Skip to content

Commit e0565eb

Browse files
committed
Figure out CurseForge and vanilla, reformat
1 parent ea50947 commit e0565eb

File tree

1 file changed

+45
-13
lines changed

1 file changed

+45
-13
lines changed

docs/launcher-differences.md

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,48 @@
11
# Launcher Differences
22

3-
Launchers have some subtle differences between them which can cause a lot of confusion for mod developers. This page tries to document these differences.
3+
> This page is a work in progress.
44
5-
This page is written from a 1.7 Forge mod developer's perspective.
5+
Launchers have some subtle differences between them which can cause a lot of confusion for mod developers. This page tries to document these differences.
66

77
If a launcher has a (?) mark, that means I have not tested it firsthand and the information about it was derived from other users.
88

9-
Tip: [NotEnoughVerbosity](https://github.com/LegacyModdingMC/NotEnoughVerbosity) can be used to force some launchers to use the standard logging configuration, with a trace-level `fml-client-latest.log`.
10-
11-
> This page is a work in progress.
9+
Tip: [NotEnoughVerbosity](https://github.com/LegacyModdingMC/NotEnoughVerbosity) can be used to force all launchers to use Forge's logging configuration, which is:
10+
- On [1.7.10](https://github.com/MinecraftForge/MinecraftForge/blob/1.7.10/fml/src/main/resources/log4j2.xml): an all-level `fml-client-latest.log`, a not very useful `latest.log`, and a sometimes useful `fml-junk-earlystartup.log`
11+
- On [1.12.2](https://github.com/MinecraftForge/MinecraftForge/blob/1.12.x/src/main/resources/log4j2.xml): a trace-level `debug.log`, and a not very useful `latest.log``
1212

1313
## MultiMC/PolyMC/PrismLauncher
1414

1515
These three launchers are all based on the same codebase.
1616

1717
No issues known. This is the golden standard as far as launchers go.
1818

19-
Logging: Uses [the standard logging configuration](https://github.com/MinecraftForge/MinecraftForge/blob/9274e4fe435cb415099a8216c1b42235f185443e/fml/src/main/resources/log4j2.xml) (with a trace level `fml-client-latest.log`, a not very useful `latest.log`, and a sometimes useful `fml-junk-earlystartup.log`). I have no idea how the GUI log works.
19+
### Logging
20+
21+
Uses Forge's logging configuration.
2022

21-
Java runtime: User provided
23+
I have no idea how the GUI log works.
24+
25+
### Java runtime
26+
27+
User provided.
2228

2329
## Official Launcher
2430

2531
### Modern (2.x)
2632

27-
Uses [the vanilla launcher config](https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/6605d632a2399010c0085d3e4da58974d62ccdfe/client-1.7.xml) even in modded instances.
33+
Versions are defined in `.minecraft/versions/<version>/<version>.json`. Mod loader installers define their own versions here.
34+
35+
#### Logging
36+
37+
For logging purposes the important fields are `inheritsFrom`, which lets a version inherit the settings of another version, and `logging`, which is where logger configs are defined.
38+
39+
The Forge 1.7.10 installer (and even Fabric 1.20.4) doesn't override the `logging` field, therefore [the vanilla logger config](https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/6605d632a2399010c0085d3e4da58974d62ccdfe/client-1.7.xml) is used.
40+
41+
I've found references ([1](https://bugs.mojang.com/browse/MC-123285), [2](https://wiki.vg/Debugging)) to a GUI option that allows changing the logging config, but it's nowhere to be found.
42+
43+
#### Java version
44+
45+
By default it uses the one defined by the Mojang API. For 1.7.10 this is 8u51. A custom one can be set on the "Edit installation" screen.
2846

2947
### Legacy (1.x)
3048

@@ -34,17 +52,25 @@ Deletes extra items from the assets directory (`$launcherDir/assets`).
3452

3553
## CurseForge Launcher
3654

37-
(?)
55+
It's just a frontend for the vanilla launcher. It has its own copy of it, and every time an instance is launched, it generates a launcher profile then launches it.
56+
57+
### Logging
58+
59+
It uses the vanilla config by default, but this can be changed by enabling "Enable Forge debug.log" in the settings. Despite what the name says, all this does is put `"logging": {},` in the generated launcher profile, which cancels out the logger profile inherited from the vanilla profile. This setting is permanent - instances launched while it was active will keep the "no logging" property set even after the option is disabled. (This is defined in `.baseModLoader.versionJson` in `minecraftinstance.json` in the instance directory).
3860

39-
Java runtime: Downloads 8u51. A different version can be forced if a mystery CF-specific flag is set<sup>[[*](https://github.com/GTNewHorizons/Angelica/issues/82#issuecomment-1871629459)]</sup>. (The flag in question seems to be `-version:1.8+`.)<sup>[[*](https://old.reddit.com/r/feedthebeast/comments/4kq9ks/how_do_i_change_the_default_version_of_java_that/d3hiod2/)]</sup>
61+
### Java runtime
62+
63+
Uses the same version as vanilla by default. This can be overridden for Java 8 by using Java's [`-version` flag](http://web.archive.org/web/20090228125625/http://blogs.sun.com/ksrini/entry/java_launcher_tricks_with_multiple). For example, `-version:1.8+` will choose the newest `1.8` version installed on the system. Only versions of Java installed system-wide can be used this way, portable installs won't work (e.g. on Windows it checks the `Computer\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8\JavaHome` registry string).
4064

4165
## Technic Launcher
4266

43-
Uses [LaunchWrapper's logger config](https://github.com/Mojang/LegacyLauncher/blob/a4801b70f8a0148c6e6279ec2e91527e8019e1c8/src/main/resources/log4j2.xml) (which is based on vanilla 1.7.2's) due to incorrect classpath ordering.
67+
Uses [LaunchWrapper's logger config](https://github.com/Mojang/LegacyLauncher/blob/a4801b70f8a0148c6e6279ec2e91527e8019e1c8/src/main/resources/log4j2.xml) (which is based on vanilla 1.7.2's) due to [seemingly incorrect classpath ordering](https://github.com/TechnicPack/LauncherV3/issues/350).
4468

4569
## ATLauncher
4670

47-
Logging: Uses a custom log configuration ([example from a 1.7 Forge instance](https://github.com/LegacyModdingMC/wiki/blob/master/references/launchers/atlauncher/client-1.7.xml)).
71+
### Logging
72+
73+
Uses a custom log configuration ([example from a 1.7 Forge instance](https://github.com/LegacyModdingMC/wiki/blob/master/references/launchers/atlauncher/client-1.7.xml)).
4874

4975
- On the disk, only a `latest.log` is created.
5076
- The same log is shown in the GUI.
@@ -54,7 +80,13 @@ Logging: Uses a custom log configuration ([example from a 1.7 Forge instance](ht
5480
- It tries to remove sensitive information from the log, for example all occurrences of the launcher's path are replaced with `**USERSDIR**`.
5581
- There's an option to configure the verbosity in the settings, but it doesn't seem to do anything.
5682

57-
Java runtime: Downloads 8u51 by default. A custom install can be provided.
83+
### Java runtime
84+
85+
Downloads 8u51 by default. A custom install can be provided.
86+
87+
## GDLauncher
88+
89+
It's a mystery. When I try to create an instance, it just keeps redownloading assets over and over again.
5890

5991
## TLauncher
6092

0 commit comments

Comments
 (0)