Информация MoonLoader мотивация на новаторство.

И так, начну с того, что новаторство ВСЕГДА выходит за пределы нативных функций. Даже при должном желании, вы не сделаете ничего нового имея нативные функции.
Новаторство делится на 2 части, одна из них крайне легкая, другая посложнее.
1. Математическое новаторство, заключается не в том что вы делает открытие в области математики, а находите применение какой либо формуле или методу в луа кодинге.
2. Реверс гта, это самое необузданное, самое сладкое и клондайк для новаторства.

Тут я хочу рассказать именно про реверс, что он вам даст, и как его применить.
Я зареган относительно недавно, но изучил разные темки на форуме, в пример хочу привести navmesh который делают рейкастом лучами из неба, https://www.blast.hk/threads/198094/.
В моем понимании рейкаст это очень дорого, дешевле выдернуть из памяти топологию моделей. Как бы знаем при моделировании любая модель разбивается на треугольники. Они уже известны игре, и по сути это быстрее и точнее чем рейкаст.

Как ваще игра понимает, что перед ней стена, дорога или гора? Всё это коллизия, которая при стриминге ложится в память в виде готовых структур. Нам не нужно просить игру эй, пусти луч и скажи куда он ударился, тратя процессорное время на просчет пересечений. Мы можем просто прийти, как к себе домой, и забрать эти вершины и индексы треугольников.

Чтобы вы понимали, как этот весь фарш устроен в адресах и смещениях, держите всё на блюдечке:
Lua:
-- Базовые адреса (SA 1.0 US)
local ADDR = {
    MODEL_INFOS   = 0xA9B0C8, -- CModelInfo::ms_modelInfoPtrs массив указателей на об
    BUILDING_POOL = 0xB74498, -- CPools::ms_pBuildingPool здания
    OBJECT_POOL   = 0xB7449C, -- CPools::ms_pObjectPool обьекты
}

-- Смещения структур
local OFF = {
    MI_COLMODEL   = 0x14,   -- CBaseModelInfo: смещение до CColModel*
    CM_DATA       = 0x2C,   -- CColModel: смещение до ссылки на CCollisionData
    
    -- CCollisionData (самый сок)
    CD_NTRIS      = 0x04,   -- Количество треугольников (u16)
    CD_PVERTS     = 0x14,   -- Указатель на массив вершин (CVector*)
    CD_PTRIS      = 0x18,   -- Указатель на массив треугольников (CColTriangle*)
    
    TRI_SIZE      = 8,      -- CColTriangle: u16 a,b,c (индексы вершин) + инфа о материале
}
У каждого объекта на карте есть свой ModelIndex (ID модели). Игра хранит массив указателей на данные этих моделей по адресу MODEL_INFOS (0xA9B0C8). Мы берем нужный нам ID, прыгаем по адресу и по смещению 0x14 забираем указатель на CColModel (модель коллизии).

Вместо того чтобы городить циклы, спамить тяжелыми нативными рейкастами, ловить просадки фпс и собирать кривой navmesh по точкам из воздуха, вы можете через ffi один раз прочитать этот массив треугольников нужного объекта. Вы получаете идеальную, стопроцентную геометрию меша в той точке, где он реально находится. Это работает моментально, потому что мы просто берем то, что игра уже посчитала за нас.

Именно поэтому кодинг и вайбкодинг топчутся на месте, потому что авторы бояться лезть туда, куда обычно не надо лезть, а могли бы уже давно там хз машины летающие, киберпанк, ну короче будущее.

Не ссыте, пробуйте, если не умеете, спросите ИИ, если умеете то делайте. Столько всего можно сделать, было бы желание.
Реверсить через иду не обязательно, есть уже готовый реверс свежий https://github.com/gta-reversed/gta-reversed
Но если чего то не хватает, руки в ноги и вперед реверсить!!!

Превентивно отвечу, а че я сам ниче не делаю? делаю, кусок кода я откуда взял?