Simple ESP (Extra Sensory Perception) template for Unity mobile games
⚠️ Note: This template is outdated as it uses Update/LateUpdate for ESP rendering
- 🎯 Enemy Line: Draws lines from screen center to enemies
- 📦 Enemy Box: Shows red boxes around enemies
- 📏 Distance Display: Shows distance to enemies in meters
- ⚡ Real-time Toggles: Enable/disable features during gameplay
- Install on jailbroken iOS device
- Launch Unity game
- Tap "Load" when Amethyst alert appears
- Requires JIT (Just-In-Time compilation) enabled
- Use tools like AltStore, Sideloadly, or similar
- Enable JIT in your sideloading tool
- Install and launch the game
make package # Generates .deb file in packages/ folder
make package install # Installs directly to deviceImportant: Before using make package install, update your device IP in the Makefile:
# In Makefile - Update this line with your device IP
THEOS_DEVICE_IP = 192.168.1.100 # Change to your device IPImportant: You need to update these offsets for your specific game:
// In Amethyst.xm - Update these offsets for your game
DobbyHook((void *)getRealOffset(0x4D4F624), ...); // Player Update function
*(void **)&get_transform = (void *)getRealOffset(0x48618E4);
*(void **)&get_position = (void *)getRealOffset(0x4881F10);
*(void **)&get_main = (void *)getRealOffset(0x47C9EA4);
*(void **)&WorldToViewportPoint = (void *)getRealOffset(0x47C8D40);
*(void **)&get_fieldOfView = (void *)getRealOffset(0x47C0568); How to find offsets:
- 🎯 Easy method: Check
dump.csfile from your game - 🔍 Advanced: Use tools like Ghidra or Hopper
- 📝 Search for: Unity function signatures
- 🔧 Update: Hex values in
getRealOffset()calls
// Search for: "public class Transform"
public class Transform : Component, IEnumerable {
// Look for this function:
// RVA: 0x4881F10 Offset: 0x4881F10 VA: 0x4881F10
public Vector3 get_position() { }
}Copy the Offset value: 0x4881F10
// Search for: "public sealed class Camera"
public sealed class Camera : Behaviour {
// Look for this function:
// RVA: 0x47C9EA4 Offset: 0x47C9EA4 VA: 0x47C9EA4
public static Camera get_main() { }
}Copy the Offset value: 0x47C9EA4
// Search for: "public sealed class Camera"
public sealed class Camera : Behaviour {
// Look for this function:
// RVA: 0x47C8D40 Offset: 0x47C8D40 VA: 0x47C8D40
public Vector3 WorldToViewportPoint(Vector3 position) { }
}Copy the Offset value: 0x47C8D40
// Search for: "public sealed class Camera"
public sealed class Camera : Behaviour {
// Look for this function:
// RVA: 0x47C0568 Offset: 0x47C0568 VA: 0x47C0568
public float get_fieldOfView() { }
}Copy the Offset value: 0x47C0568
// Search for: "public class Player" or "public class Character"
public class Player : MonoBehaviour {
// Look for these functions:
// RVA: 0x4D4F624 Offset: 0x4D4F624 VA: 0x4D4F624
void Update() { }
// OR
void LateUpdate() { }
// OR
void FixedUpdate() { }
}Copy the Offset value: 0x4D4F624
Common class names for Player (examples only - may be different):
Player,Character,PlayerController,GameManagerPlayerMovement,PlayerController,PlayerScriptGameController,PlayerManager,PlayerBehaviourMainPlayer,LocalPlayer,PlayerObjectHero,Avatar,Pawn,Actor
Note: These are just examples. Your game might use completely different class names!
- Enemy Line: Toggle in menu to draw targeting lines
- Enemy Box: Toggle to show enemy bounding boxes
- Enemy Distance: Toggle to display distance numbers
- Uses DobbyHook for function interception
- Unity Framework integration
- Core Graphics rendering
- Memory optimized with proper cleanup
amethyst-esp-template/
├── Amethyst.xm # Main ESP logic and hooks
├── esp/
│ ├── CGView.h # ESP rendering header
│ └── CGView.m # ESP drawing implementation
├── Macros.h # Utility macros and definitions
├── Makefile # Build configuration
├── control # Package metadata
└── README.md # This documentation
- Amethyst.xm: Main ESP functionality, player updates, and menu setup
- CGView.m: ESP rendering system (boxes, lines, distance display)
- Macros.h: Screen dimensions, color definitions, and utility functions
- Makefile: Theos build configuration and device settings
Code Modifications: AlexZero - Modified ESP logic and added improvements Menu UI Design: AlexZero - Modern interface and visual styling
andr (andrdev) - ESP system and core logic (modified by AlexZero, added improvements)
AlexZero - Original Creator
joeyjurjens - iOS Mod Menu Template for Theos
MJx0 - KittyMemory - Memory manipulation
dogo - SCLAlertView - Alert components
jmpews - Dobby - Hooking framework
For educational purposes only. Users responsible for compliance with local laws and game terms of service.
