Runtime inspection toolkit for Unity IL2CPP applications — explore classes, methods, fields, and live objects in real time.
Project description
unity_helper
Runtime inspection toolkit for Unity IL2CPP applications — explore classes, methods, fields, and live objects in real time.
✨ Overview
unity_helper is a Python toolkit for runtime inspection of Unity applications using the IL2CPP scripting backend.
It provides reflection-like capabilities, allowing you to dynamically explore and interact with internal game structures directly from Python.
🚀 Features
- Inspect Unity assemblies (images)
- Explore classes, methods, and fields
- Call methods dynamically at runtime
- Read and modify field values
- Interact with live Unity objects (Camera, Rigidbody, etc.)
- Designed specifically for IL2CPP environments
⚡ Quick Start
from unity_helper import Il2cpp
ref = Il2cpp()
# Get a Unity class
time = ref.get_class_from_name(
'UnityEngine.CoreModule.dll',
'UnityEngine',
'Time'
)
print(time.name)
📦 Installation
pip install -U unity_helper
🧰 Requirements
- Windows (64-bit)
- Python 3.11+
- Target application using Unity IL2CPP
🧪 Examples
🔹 Class & Method Inspection
time = ref.get_class_from_name(
'UnityEngine.CoreModule.dll',
'UnityEngine',
'Time'
)
print('Time info:', time.name, time.object, time.type, time.instance)
for method in time.list_methods():
print(
'Method info:',
method.name,
method.address,
method.methodInfo,
method.is_static,
method.param_count
)
🔹 Calling Methods
import ctypes
set_timeScale = time.find_method('set_timeScale')
if not set_timeScale.is_static:
time.instance = 123456789
set_timeScale(ctypes.c_float(5))
Using ctypes directly:
new_set_timeScale = ctypes.WINFUNCTYPE(
ctypes.c_void_p,
ctypes.c_float
)(set_timeScale.address)
new_set_timeScale(5.0)
🔹 Field Access
for field in time.list_fields():
print('Field:', field.name, field.type, field.is_static)
example_field = time.find_field('example_field')
if not example_field.is_static:
time.instance = 123456789
example_field.value = 9999
🔹 Working with Unity Objects
main_cam = ref.get_main_camera()
rigidbody = ref.get_RigidBody(123456789)
Rigidbody
velocity = rigidbody.velocity
velocity.y = 10
rigidbody.velocity = velocity
pos = rigidbody.position
print(pos.x, pos.y, pos.z)
Camera
fov = main_cam.fov
main_cam.fov = fov + 10.0
main_cam.enabled = not main_cam.enabled
print(main_cam.name)
🔹 Finding Objects
player = ref.find_object('Player')
player = ref.find_object_with_tag('Player')
🔹 Assemblies & Classes
for image in ref.list_assemblies():
print(image)
for clazz in ref.list_classes_in_image('Assembly-CSharp.dll'):
print(clazz.name)
🎯 Common Use Cases
- Runtime debugging of Unity applications
- Reverse engineering IL2CPP builds
- Building tooling and automation scripts
- Inspecting and modifying live game state
- Creating game mods
⚠️ Important Notes
- This is a Python script that must be executed within the game's process.
- It does not work as a standalone script and cannot interact with external processes.
- Running it outside of the game environment will not work.
📄 License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unity_helper-1.0.4.tar.gz.
File metadata
- Download URL: unity_helper-1.0.4.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55e136de240594d3ff00fa9eb23bf59aa66ed74e59b1b18b18268c6ad3342b65
|
|
| MD5 |
229c960c156657d9af2f9a12c7f015d0
|
|
| BLAKE2b-256 |
34028f48ce353d5656e96125ae3175df3d90a76b4d4ae9461293e06a65fa6eaa
|
File details
Details for the file unity_helper-1.0.4-py3-none-any.whl.
File metadata
- Download URL: unity_helper-1.0.4-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a303f8779375767e7d2b0dc2811b21645e45e4d684d492fca1cc7c9e031b9ba3
|
|
| MD5 |
a99151b9f1ed88a6f6e2632751968e5b
|
|
| BLAKE2b-256 |
62608d6a44abd08d38e7586a7a3c04682db93a9b5662729e505d267b86e3d929
|