promotional bannermobile promotional banner

RainJava

Runtime Java compiler with Mixin injection and ASM transformation support

RainJava

 

Write Java Code Inside Minecraft. Reload Instantly. No Restarts.

 

RainJava is a powerful in-game scripting mod that brings the full Java language into Minecraft. Write, compile, and execute Java code while the game is running — modify behavior, inject methods, transform bytecode, and see changes immediately without restarting.

 

---

 

What You Can Do

 

Live Coding

 

Create Java scripts that execute at startup, when the server starts, or during client setup. Edit code in any text editor, save the file, and use `/java reload` to apply changes instantly. The built-in Eclipse compiler handles everything automatically, even if your system has no Java compiler installed.

 

Mixin Injection

 

Write Mixin classes directly in source form to inject code into any Minecraft method. Target the beginning of a method with `@Inject.At("HEAD")`, catch return points with `"RETURN"`, or intercept the final exit with `"TAIL"`. All game classes are available for modification with full IDE-style autocomplete support.

 

CoreMod & ASM Transformation

 

For deep modifications, write CoreMod plugins that transform raw bytecode before the JVM sees it. Access every instruction, field, and method of any loaded class. This is the same power level as traditional Forge coremods, but accessible through simple Java source files that compile on demand.

 

Asset & Data Packs

 

Bundle custom textures, models, sounds, recipes, loot tables, and tags directly in your RainJava project. The `assets/` and `data/` folders work exactly like standard resource and data packs, loaded automatically with your scripts.

 

---

 

How It Works

 

Place Java source files in the `RainJava/` folder inside your Minecraft directory. The folder structure determines when code runs:

 

- `startup/` — Executes once when the game initializes

- `server/` — Executes each time the server starts

- `client/` — Executes during client setup

- `mixins/` — Mixin classes for runtime method injection

- `coremod/` — CoreMod plugins and ASM transformers

 

Every script declares a simple `init()` method. The framework discovers, compiles, and executes automatically. Errors appear in dedicated log files and in-game chat via the `/java errors` command.

 

---

 

Essential Documentation

 

Every installation includes a comprehensive `README.txt` in the `RainJava/` folder. This file contains complete reference material for package declarations, Mixin syntax, injection points, CoreMod architecture, available commands, and troubleshooting — all available offline without internet access.

 

The README is updated with each release to reflect current API behavior and supported features. Consult it first for syntax questions, error messages, or advanced usage patterns.

 

---

 

Commands

 

- `/java reload [startup|server|client]` — Hot-reload scripts without restart

- `/java hand getId` — Display held item registry ID

- `/java hand getClass` — Display held item Java class name

- `/java errors [type]` — Show compilation and runtime errors in chat

 

---

 

Requirements

 

- Minecraft 1.20.1 with Forge

- Java 17 or higher

- Compatible with standard Forge mods and Mixin systems

The RainJava Team

profile avatar
  • 4
    Followers
  • 9
    Projects
  • 45.7K
    Downloads

More from RainMelodyView all

  • NoUnsafe project image

    NoUnsafe

    • 23
    • Mods

    A CoreMod plugin that detects and logs Unsafe usage during class loading to help debug JVM crashes and security issues.

    • 23
    • March 16, 2026
    • Mods
  • RainAPI project image

    RainAPI

    • 22
    • Mods

    Core library for RainJava featuring embedded ECJ compiler, Javassist bytecode tools, and ASM transformation pipeline. Enables dynamic Java compilation and class modification at runtime.

    • 22
    • February 20, 2026
    • Mods
  • MoreEventsJS project image

    MoreEventsJS

    • 33.0K
    • Mods

    It adds more events for kubejs

    • 33.0K
    • February 6, 2026
    • Mods
    • +1
  • SetCraftJS project image

    SetCraftJS

    • 895
    • Mods

    You can use it to create set effects

    • 895
    • January 8, 2026
    • Mods
    • +1
  • NoUnsafe project image

    NoUnsafe

    • 23
    • Mods

    A CoreMod plugin that detects and logs Unsafe usage during class loading to help debug JVM crashes and security issues.

    • 23
    • March 16, 2026
    • Mods
  • RainAPI project image

    RainAPI

    • 22
    • Mods

    Core library for RainJava featuring embedded ECJ compiler, Javassist bytecode tools, and ASM transformation pipeline. Enables dynamic Java compilation and class modification at runtime.

    • 22
    • February 20, 2026
    • Mods
  • MoreEventsJS project image

    MoreEventsJS

    • 33.0K
    • Mods

    It adds more events for kubejs

    • 33.0K
    • February 6, 2026
    • Mods
    • +1
  • SetCraftJS project image

    SetCraftJS

    • 895
    • Mods

    You can use it to create set effects

    • 895
    • January 8, 2026
    • Mods
    • +1