JavaProgArgOverride
Enable you to override the target main class's Java Program arguments with arbitrary arguments using Mixin (by SpongePowered). And without changing cmdlines(in Task Manager or Htop)!
About this Mod
Before Running This Mod
This mod is designed for advanced Minecraft users / mod developers. If you do not know how Java handles Program arguments, don't run it.
WARN: ANY COMMAND CAN BE EXECUTED THROUGH THIS MOD LOADING, INCLUDING WHICH IS MALICIOUS. THE AUTHOR WILL NOT BE RESPONSIBLE FOR ANYTHING CAUSED BY RUNNING THIS MOD.
Mod Synopsis
This mod is a simple but powerful tool for overriding Java Program arguments.
How to Use This Mod
This mod uses 2 Java Properties: rege.rege.misc.javaprogargoverride.Util.overridingArgs (called overridingArgs below for convenience) and rege.rege.misc.javaprogargoverride.Util.overridingArgsType (called overridingArgsType below for convenience).
This is a simple example that works (for client-side):
1. Create overrideargs.py at the root directory of the Minecraft instance with following content:
#!/usr/bin/env python
from sys import stdin, stdout
stdout.write(stdin.read())
stdout.write(" --fullscreen")
2. Edit the content of Java Properties arguments (e.g. “Settings/Java arguments” in Prism Launcher), add these: -Drege.rege.misc.javaprogargoverride.Util.overridingArgs="python overrideargs.py" -Drege.rege.misc.javaprogargoverride.Util.overridingArgsType=exec.
3. Launch the game, and you will find that the Minecraft window is created in a fullscreen state.
Explanation of the example:
- This mod will first check whether Property
overridingArgsis present. If no, this mod will do nothing. - There are 2 types available for Property
overridingArgsType:plainandexec. The default isplain. If it isplain, then the arguments specified byoverridingArgswill be directly used as the overriding arguments, in UNIX-Shell-styled format. If it isexec, then the arguments specified byoverridingArgswill be executed as a command (like Batch / Shell commands), the arguments to be overridden will be passed into STDIN in UNIX-Shell-styled format. The STDOUT of the command will be used as the overriding arguments, in UNIX-Shell-styled format.- For example, raw argument string
arg1 'arg2' "arg3" \a\r\g\4will be resolved as 4 argumentsarg1,arg2,arg3andarg4; raw argument stringarg\\1 'arg\\2' "arg\\3" 'a'"r"g\''4' ""will be resolved as 5 argumentsarg\1,arg\\2,arg\3,arg'4and ``(empty string); raw argument string"arg\"1" 'arg'\'"2" "arg\\\\3" arg\ \\4will be resolved as 4 argumentsarg"1,arg'2,arg\\3andarg \4. - For example, arguments
--width,1800,--heightand1200will be passed to STDIN as--width 1800 --height 1200; arguments--version, ``(empty string),--gameDirand/home/this/is/a/path/with/"doubles"/'singles'/and/s p a c e s/and/even/\backslashes\will be passed to STDIN as--version '' --gamedir /home/this/is/a/path/with/\"doubles\"/\'singles\'/and/s\ p\ a\ c\ e\ s/and/even/\\backslashes\\.
- For example, raw argument string
- Appending arguments only is recommended (output the original arguments by using e.g.
sys.stdout.write(sys.stdin.read())in Python,System.out.write(System.in.readAllBytes())in Java andcat -in Shell Script). But if you want, you can even make full use of the arguments!
Notice
This mod is “Client-side optional, Server-side optional”, and client-side and server-side version of this mod work independently, and they have nothing to do with each other.
The client-side mod JAR will not be run on the server-side and vice versa. Please ensure you are running the correct version of the mod JAR on the correct side.
If the argument format (by overridingArgs or the STDOUT when overridingArgsType is exec) is incorrect, Minecraft will crash:
- Quote not close, for example: If the raw argument string is
python "overrideargs.py,java.lang.IllegalArgumentException: quote at index 7 not closedwill be thrown. - Unexpected escape character(
\) at the end of the raw argument string, for example: If the raw argument string ispython overrideargs.py\,java.lang.IllegalArgumentException: unexpected escape at the endwill be thrown. - Command not found, for example: If the raw argument string is
pyhon overrideargs.py,java.io.IOException: Cannot run program "pyhon": error=2, No such file or directory(may vary by operating system) will be thrown.
Report Issues
Please leave a comment about your issue under the gist.
Available Versions
How to Install JavaProgArgOverride on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set babric Loader
In the panel under "Egg", select the babric loader and matching Minecraft version (26.2-pre-2).
Install Mod
Open the mod browser in the dashboard and search for "JavaProgArgOverride". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
26.2-pre-2, 26.2-pre-1, 26.2-snapshot-8 (+830 more)
Server-side
✓ RequiredRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
JavaProgArgOverride server crashes on startup – what to do?
Most common cause: wrong babric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (26.2-pre-2). You can switch loaders with one click in the panel.
Is JavaProgArgOverride compatible with babric and fabric and legacy-fabric and quilt?
JavaProgArgOverride officially supports babric, fabric, legacy-fabric, quilt for Minecraft 26.2-pre-2, 26.2-pre-1, 26.2-snapshot-8. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with JavaProgArgOverride – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if JavaProgArgOverride consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install JavaProgArgOverride with just one click on your server.