V2Engine is a desktop version of the V2Runtime which was made for Hudder (A minecraft mod that allows one to modify their game's hud to their liking).
The V2Runtime started as a simple markup language lacking very critical parts of a complete programming language (functions, arrays, etc.). But as time passed I added more and more features to the point where it was not only turing complete, it had almost all the features of a complete programming language.
And so, I decided to make a desktop fork of it. It was fairly easy since the V2Runtime itself was mostly detached from the game and used removable abstraction layers.
This is pure Java, no helper dependencies or smt.
Although it is based on Hudder, uses the same runtime and mostly has the same code, the syntax is not at all the same and there are some added features which I did not put into hudder (explained later).
Requires Java 21 to be installed, JRE 21 For windows users.
- (Unix) Using the install script remotely:
bash <(wget -qO- https://raw.githubusercontent.com/NGSpace/V2Engine/refs/heads/main/install.sh) - (Unix) Using the install script locally: Download it from git and run it
- (Unix) Manual installation: Download the shell script and jar and put them both in the desired installation folder and add the folder to PATH (optional)
- (Windows) Embrace extend extinguish: Use WSL
- (Windows) Privacy: Install Linux Mint
- (Windows) Manual installation: Fine, the jar is crossplatform, use it on your shitty operating system
- Methods don't exist
- Functions can now be created without always returning a value
- All the minecraft-related functions no longer exist.
- "import" keyword now exists in-place of the "load" method.
- Variables no longer need to be wrapped in {}
- All text is now treated as statements.
- The return method is now just a keyword.
- So is the break variable.
- All statements are seperated by a ;.
- Basic conditions don't exist anymore.
v2engine.v2:
import ~/Desktop/import.v2;
r=11;
log(str(r,true));
log(testfunc("strings"));
warn("I love colors");
err("angy");
import.v2:
#def testfunc, test
return "result=" + test;
#if true
log("test");
Because I fucking can.