MoonVeil-Docs/content/docs/compatibility.md
2025-08-15 13:26:42 -05:00

36 lines
1.6 KiB
Markdown

---
weight: 999
title: "Luraph Compatibility Guide"
description: "Compatibility guide for Luraph"
icon: "article"
date: "2025-05-01T18:47:58-05:00"
lastmod: "2025-05-01T18:47:58-05:00"
---
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.
{{% table %}}
| Luraph Macro | MoonVeil Alias |
| ----- | ----- |
| `LPH_ENCFUNC` | `MV_ENC_FUNC` |
| `LPH_ENCSTR` | `MV_COMPRESS` |
| `LPH_ENCNUM` | `MV_NO_OP` |
| `LPH_CRASH` | `MV_CRASH` |
| `LPH_NO_VIRTUALIZE` | `MV_OMIT` |
| `LPH_JIT` | `MV_NO_OP` |
| `LPH_JIT_MAX` | `MV_NO_OP` |
| `LPH_NO_UPVALUES` | `MV_NO_OP` |
| `LPH_LINE` | `MV_LINE` |
| `LPH_OBFUSCATED` | `MV_OBFUSCATED` |
{{% /table %}}
{{% alert context="info" text="`MV_NO_OP` isn't user accessible, and is only used to provide source compatibility." /%}}
A minor difference between Luraph and MoonVeil is that MoonVeil does not automatically virtualize your script (outside of the [Virtualize Script](/docs/options/virtualization/) option). Instead, you can selectively virtualize blocks using the [MV_VM](/docs/macros/mv_vm) or [MV_ENC_FUNC](/docs/macros/mv_enc_func) macros. This gives you much granular 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](/docs/macros) which are not available in Luraph.