MoonVeil provides a compatibility layer to support users which already use Luraph’s suite of Macros.

Many of Luraph’s macros do features or optimizations that are already built into MoonVeil. Though MoonVeil will still accept scripts which try to use these macros, they will have no effect. Below is a table of compatibility between Luraph and MoonVeil.

Luraph MacroMoonVeil Alias
LPH_ENCFUNCMV_ENC_FUNC
LPH_ENCSTRMV_COMPRESS
LPH_ENCNUMMV_NO_OP
LPH_CRASHMV_CRASH
LPH_NO_VIRTUALIZEMV_OMIT
LPH_JITMV_NO_OP
LPH_JIT_MAXMV_NO_OP
LPH_NO_UPVALUESMV_NO_OP
LPH_LINEMV_LINE
LPH_OBFUSCATEDMV_OBFUSCATED

A minor difference between Luraph and MoonVeil is that MoonVeil does not automatically virtualize your script (outside of the Virtualize Script option). Instead, you can selectively virtualize blocks using the MV_VM or MV_ENC_FUNC macros. This gives you much more control over the obfuscation process, enabling you to have much better performance.

Though you can use Luraph’s macros in MoonVeil, MoonVeil additionally provides many other macros which are not available in Luraph.