about tweaks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
info:tweak [2014/12/12 12:40]
mumfrey created
info:tweak [2014/12/17 16:56]
mumfrey
Line 1: Line 1:
 ~~META:​title=about tweaks~~ ~~META:​title=about tweaks~~
 +~~NOTOC~~
  
 What are '​Tweaks'?​ What are '​Tweaks'?​
Line 14: Line 15:
  
 It is the last capability which makes **Tweakers** so powerful, since hooking into the game's [[ClassLoader]] allows almost unlimited control over the game's internal code. It is the last capability which makes **Tweakers** so powerful, since hooking into the game's [[ClassLoader]] allows almost unlimited control over the game's internal code.
 +
 +Differences to "Core Mods"
 +==========================
 +
 +**Forge ModLoader (FML)** has a capability for a mod to elect to become a *"core mod"* which sounds very similar to the features just described for Tweakers above, and this is no coincidence. This is because **FML** is a **Tweak** itself and chooses to delegate its power to "core mods" which require it, any **Tweak** can do this and LiteLoader does so as well, although it doesn'​t make a distinction between "core mods" and "​regular mods" and simply lets any mod supply [[transformers|Class Transformers]] if it wants to.
 +
 +In a nutshell, a "core mod" accepts delegated power from a **Tweaker** without becoming a **Tweak** itself, this makes it dependent on the first **Tweaker** and not on the Tweak System directly.
 +
 +How do they work?
 +=================
 +
 +Whilst it is incredibly powerful, the Tweak System itself is actually incredibly simple. It leverages a library called [LaunchWrapper](https://​github.com/​Mojang/​LegacyLauncher) originally written by [[people:​cpw]] for Mojang in order to allow them to run old versions of Minecraft inside the new launcher. To use **Tweak**s, **LaunchWrapper** is simply added to the game environment and the game's **main class** is replaced with **LaunchWrapper'​s main class**. Tweak classes can then simply be specified on the command line using ''​--tweakClass''​ arguments.
 +
 +
 +Multiple Tweaks and CascadedTweakers
 +====================================
 +
 +

Login