diff --git a/docs/compiling_client.md b/docs/compiling_client.md
new file mode 100644
index 0000000..157d65e
--- /dev/null
+++ b/docs/compiling_client.md
@@ -0,0 +1,53 @@
+# Compiling Eaglercraft with support for EFI
+In recent updates of eaglercraft, compiling for EaglerForgeInjector has become a great deal more complicated. To enable reflection and disable obfuscation, follow these steps once you have an EaglercraftX workspace set up:
+
+
+1. In any files named `build.gradle`, set the `obfuscate` property to `false`.
+2. In any files named `build.gradle`, find any code that looks like this:
+ ```javascript
+ tasks.named("generateJavaScript") {
+ doLast {
+
+ // NOTE: This step may break at any time, and is not required for 99% of browsers
+
+ def phile = file(folder + "/" + name)
+ def dest = phile.getText("UTF-8")
+ def i = dest.substring(0, dest.indexOf("=\$rt_globals.Symbol('jsoClass');")).lastIndexOf("let ")
+ dest = dest.substring(0, i) + "var" + dest.substring(i + 3)
+ def j = dest.indexOf("function(\$rt_globals,\$rt_exports){")
+ dest = dest.substring(0, j + 34) + "\n" + file(folder + "/ES6ShimScript.txt").getText("UTF-8") + "\n" + dest.substring(j + 34)
+ phile.write(dest, "UTF-8")
+ }
+ }
+ ```
+ and delete it.
+3. Inside of the `src/teavm/java/net/lax1dude/eaglercraft/v1_8/internal/teavm/` folder, create a new file called `ForceReflection.java`, with these contents:
+ ```java
+ package net.lax1dude.eaglercraft.v1_8.internal.teavm;
+
+ public class ForceReflection {
+ public static Object myObject;
+
+ public static Object forceInit(Class iClass) {
+ myObject = new ReflectiveClass();
+ try {
+ myObject = iClass.newInstance();
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ return myObject;
+ }
+
+ public static class ReflectiveClass {
+ }
+ }
+ ```
+4. In the same folder, edit `MainClass.java` edit the start of the `main(String[] args)` method to look like this:
+ ```java
+ public static void main(String[] args) {
+ ForceReflection.forceInit(ForceReflection.class);
+ if(args.length == 1) {
+ //... rest of method
+ ```
+5. Finally, build an offline download by using `CompileJS.bat`/`CompileJS.sh` and then `MakeOfflineDownload.bat`/`MakeOfflineDownload.sh`.
+6. You can then upload the `EaglercraftX_1.8_Offline_en_US.html` into EaglerForgeInjector.
\ No newline at end of file
diff --git a/index.html b/index.html
index edaf423..31d159d 100644
--- a/index.html
+++ b/index.html
@@ -117,14 +117,7 @@
How do I compile my own unobfuscated unsigned Eaglercraft build?
- Once you have a local EaglercraftX workspace setup, in
- build.gradle
, set the obfuscate
property to
- false
. Then, run CompileJS.bat
(or .sh if on
- a unix-based os), and then run MakeOfflineDownload.bat
.
- The outputted offline download will have a much larger file size than
- other offline builds. This is the file you should select. (it should
- have a naming convention similar to
- EaglercraftX_1.8_Offline_en_US.html
)
+ tutorial here
How does this tool work?