The free and open source solution to update Minecraft.
Alternatives To Flowupdater
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Adventure553396 hours ago6April 17, 202084mitJava
A user-interface library, formerly known as text, for Minecraft: Java Edition
6 months ago36gpl-3.0TypeScript
Minecraft Add-on Editor | We strive to provide the best development experience possible
3 months ago189gpl-3.0TypeScript
Next generation of bridge., the Minecraft Add-On editor
3 months agogpl-3.0Java
A template for creating minecraft plugin from 1.8 to 1.19
12 days ago13July 01, 20221gpl-3.0Java
The free and open source solution to update Minecraft.
Vscode Bedrock Development Extension58
15 days ago3bsd-3-clauseJSON
An extension that provides support for files such as: .mcfunction, .json and .lang. Features include: completion, validations, formatters, diagnostics, cheat-sheets, code-actions, generation of files, and development tools to help develop Minecraft Bedrock Addons or Minecraft Education Edition.
Okaeri Configs53
3 months ago4mitJava
Simple Java/POJO config library written with love and Lombok
5 months ago1mitC#
Cross-platform Minecraft Launcher library for .NET
20 hours agomitJSON
Enhances the vanilla experience with optimization, accessibility & compatibility using complex modification.
Nbt2json3222 years ago12October 22, 20213mitGo
A command line utitlity and module that reads NBT data and converts it to JSON or YAML for editing and then back to NBT again
Alternatives To Flowupdater
Select To Compare

Alternative Project Comparisons

version discord-shield


Check the Wiki to know how to use FlowUpdater and more information. Currently, all the documentation (only on GitHub, the documentation in the code is up-to-date) isn't up-to-date because I don't have the time currently to make the tutorial.

Legal and fork notices ⚠️

The CurseForge integration works with an API Key which is mine at the moment. You CAN'T use this key for other purposes outside FlowUpdater. If you wish to fork this project, you HAVE TO use your own API Key.



First, create a new VanillaVersion, specify arguments. Then build the version :

VanillaVersion version = new VanillaVersionBuilder().withName("1.15.2").build();

NOTE : Builders are all static classes except ForgeVersionBuilder.

You have to put the version you want as parameter, you can set a snapshot (you must set the withSnapshot parameter to true) if you want or latest. The most of FlowUpdater objects are buildable: Build a new UpdaterOptions object: I'm not enabling the re-extracting of natives at each update (withReExtractNatives(true)) because FlowUpdater know which natives must be extracted.

UpdaterOptions options = new UpdaterOptionsBuilder().build();

Note that currently UpdaterOptions is useless unless you want to use a custom ExternalFileDeleter or you want to disable the silent reading.

Then, instantiate a new FlowUpdater with FlowUpdaterBuilder#withXArguments#withAnotherArgument#build. Check the code/JavaDoc for more information.

FlowUpdater updater = new FlowUpdaterBuilder().withVanillaVersion(version).withUpdaterOptions(options).withLogger(someCustomLogger).build();

Don't forget to add a progress callback if you want to make a progress bar!

Finally, call the update function :



(You need to setup a vanilla updater !)

First, in your vanilla version builder, change the version type to VersionType.FORGE. Next, make a List of Mod objects (except if you have no mods to install).

List<Mod> mods = new ArrayList<>();
mods.add(new Mod("OneMod.jar", "sha1ofmod", 85120, "https://link/of/mod.jar"));
mods.add(new Mod("AnotherMod.jar", "sha1ofanothermod", 86120, "https://link/of/another/mod.jar"));

You can also get a list of mods by providing a json link : List<Mod> mods = Mod.getModsFromJson("https://url.com/launcher/mods.json");. A template is available in Mod class.

You can get mods from CurseForge too:

List<CurseFileInfo> modInfos = new ArrayList<>();
// project ID and file ID
modInfos.add(new CurseFileInfo(238222, 2988823));

You can also get a list of curse mods by providing a json link : List<CurseFileInfo> mods = CurseFileInfo.getFilesFromJson("https://url.com/launcher/cursemods.json");.

Then, build a forge version. For example, I will build a NewForgeVersion.

AbstractForgeVersion forgeVersion = new ForgeVersionBuilder(ForgeVersionBuilder.ForgeVersionType.NEW)
            .withOptiFine(new OptiFineInfo("1.16.3_HD_U_G3")) // installing OptiFine for 1.16.3, false = not a preview
            .withFileDeleter(new ModFileDeleter("jei.jar")) // delete bad mods, don't remove the file jei.jar if it's present in the mods' dir.

Finally, set the Forge version corresponding to the wanted Forge version :


That's all!


(You need to setup a vanilla updater !) In your vanilla version builder, change the version type to VersionType.MCP. Finally, set to vanilla version builder a MCP version :

.withMCP(new MCP("clientURL", "clientSha1", 25008229));

If you set an empty/null string in url and sha1 and 0 in size, the updater will use the default minecraft jar. Example on client-only mcp downloading :

.withMCP(new MCP("https://mighya.eu/resources/Client.jar", "f2c219e485831af2bae9464eebbe4765128c6ad6", 23005862));

You can get an MCP object instance by providing a json link too : .withMCP("https://url.com/launcher/mcp.json");. Nothing else to add :).


(You need to setup a vanilla updater !)

First, in your vanilla version builder, change the version type to VersionType.FABRIC. Next, make a List of Mod objects like for a ForgeVersion.

Then, build a Fabric version.

FabricVersion fabricVersion = new FabricVersionBuilder()
            .withFileDeleter(new ModFileDeleter("sodium.jar")) // delete bad mods ; but it won't remove the file sodium.jar if it's present in the mods' dir.

Finally, set the Fabric version corresponding to the wanted Fabric version :


That's all!

External Files

With FlowUpdater, you can download other files in your update dir! In your FlowUpdaterBuilder, precise an array list of ExternalFile (can be got by ExternalFile#getExternalFilesFromJson).

About json files...

All json files can be generated by the FlowUpdaterJsonCreator !

Post executions

With FlowUpdater, you can execute some actions after update, like patch a file, kill a process, launch a process, review a config etc... In your FlowUpdaterBuilder, precise a list of Runnable.

And all it's done !

Popular Minecraft Projects
Popular Json Projects
Popular Games Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.