Untitled Minecraft Launcher¶
This is a custom Minecraft launcher I made, which you can download! If you aren't looking for the documentation, go to here.
Anyway, here's the documentation:
The documentation¶
If I don't list something you want to do, try adding --help to what you are wondering about.
Initial setup¶
Once you have installed it from the main site, you will (should) have the command uml in your terminal. If not, something's wrong. Maybe make a Gitea issue (link on main site).
Quick Start¶
You should at least consider reading the rest of this, but heres some quick start stuff:
uml instances new "YOUR INSTANCE NAME" --version 26.1.2 # put it in "" double quotes if you are adding spaces, minecraft versions like 1.21.11 will also still work.
uml instances mod "YOUR INSTANCE NAME" # installs fabricmc modloader
uml launch "YOUR INSTANCE NAME" # launch can be replaced with the letter "l",
instance vs instances¶
Sorry about the bad naming, but here's the explanation, instances is for managing an instance as a whole, and instance lets you manage stuff INSIDE the instance. For example, instances lets you install fabric on the instance, and make a new instance, while instance lets you put a world inside the instance.
Instance¶
Each of these is ran like so:
<INSTANCE NAME> is the name of the instance to use, <CATEGORY> is the category to use (so far only mods, but soon worlds, shaders, and resourcepacks will be added), and <COMMAND> is the option to do.
mods¶
list¶
Ran like the following:
This just lists out every mod installed in this format: "HUMAN MOD NAME (MOD ID)"
Mod ID is what you use for actions to mods.
add¶
Ran like this:
Where <MOD PATH> is the path to the mod jar to add, this adds a mod to your instance, this will only make a difference if you have modded your instance (scroll down).
enable¶
Ran in this format:
Where <MOD ID> is the ID of the mod from the list command to add, this enables a disabled mod, making it be applied in the game.
disable¶
This is ran the same way as enable, but it disables a mod so it doesn't work in game. Enable undoes this.
delete¶
Ran in this way:
Where <MOD ID> is the ID of the mod from the list command to delete, this deletes a mod from your instance. YOU WILL NEED TO GET THE MOD AGAIN!
Instances¶
All instance related stuff (except launching) is in the uml instances subcommand, here is some features:
new¶
Running uml instances new will let you create a new instance, you run it in this format:
Replace <NAME> with your instance name, and <VERSION> with your instance version. This will create an instance.
NOTE:
Everything will be downloaded and authentication will be handled when you start the instance for the first time. Make sure you have internet for your first run.
rename¶
Running uml instances rename lets you rename an instance, ran in this format:
Replace <OLD NAME> with the current instance name and <NEW NAME> with the one you want it to be.
import¶
Running uml instances import lets you for now, import a modrinth .mrpack file.
THE COMMAND FORMAT WILL BE CHANGED LATER, as soon as I add more things to import from. The docs will be updated then.
You run it in this format:
<PACK FILE> is the path to your .mrpack, and [OPTIONS] can be the following ones (or multiple):
--name <NAME> lets you have a custom name for your modpack, instead of the default one from the modpack.
--yes lets you skip the confirmation dialog when importing.
If it cancels due to a suspicious path, that means that something in the modpack may be doing something suspicious (yes this happens, google "litematica path traversal vulnerabillity").
import-prism¶
This is the same format as normal import for an mrpack except the pack file is a path to your prismlauncher instance, and there is no --yes confirmation, as there is no confirmation.
mod¶
This command is run in the format of:
<INSTANCE NAME> is the name of your instance to install a modloader on, and [OPTIONS] can be these:
--loader <LOADER>, <LOADER> decides what modloader to install, by default without this it will install fabric, which is also currently the only supported modloader.
--loader-version <LOADER VERSION> lets you choose which modloader version to install. By default this is the latest.
unmod¶
This is run in the format of:
This command will remove a modloader from your instance, this will NOT remove mods, or their data, only the loader.
remove¶
This command lets you delete an instance, in the format of:
Adding --yes before the name will skip the confirmation. This command deletes an instance, all mods, the modloader, WORLD SAVES, and everything else in the instance folder. THIS COMMAND IS VERY DANGEROUS.
list¶
This command lists all available instances.
Launching an instance¶
IDK why i put this at the bottom, as this is the most important part of the program, but here's how you launch an instance:
Where <INSTANCE NAME> is the name of the instance to launch.
launch can also be replaced with the key L (lowercase) for quicker use, though this is not documented in the program.
And thats all of it! More features will probably be added later.
I found an issue/I have a question!¶
Make an issue on my Gitea (by clicking source code on the UML site), asking for help, I can MAYBE help you.
Nerd stuff¶
Is the code good?¶
No
Will [forge/neoforge/quilt/all the others, a ui, multiple account support, offline mode, and others] ever be added?¶
Maybe, if I feel like it.
Is this code good to learn from?¶
Maybe, not the best organized, inconsistent, missing features, not the best. You could maybe use it as what NOT to do, but it's also good in some spots (maybe)
Where is the part that actually launches Minecraft?¶
This is a question I always want to know in Minecraft launchers, but never get to... But since I have had user experience with launchers, I can tell you! In the source code from the main site, go to the src folder, and open launch.rs. Line 93-98 (programming formatters put long lines over multiple lines, wait that sentence makes no sense) :). If you want, look at the whole run function, that's all the stuff needed. Those repetitive vars.insert lines, are what add all the configuration stuff for minecraft to run.
What's the pleasefile?¶
This applies to a lot of my other projects too, a pleasefile is my custom command runner to quickly do stuff. I haven't released it yet but might at some point.
Well, you made it to the bottom of the file, congrats! (I write a lot). If you want, check out the rest of my site, or go play Minecraft.
Oh right and I need to include this:
Not affiliated with, endorsed by, or associated with Mojang Studios or Microsoft. Minecraft is a trademark of Mojang Studios. UML is NOT a trademark of me.
Okay bye.