Absolutely not.

Two very different games made in two very different engines.

That isn’t how programming works.

```
void draw_ESP_box(Ped ped, int red, int green, int blue, int alpha) {
Vector3 pedPosition = ENTITY::GET_ENTITY_COORDS(ped, FALSE);
int screenResX, screenResY;
float screenX, screenY;
GRAPHICS::_GET_SCREEN_ACTIVE_RESOLUTION(&screenResX, &screenResY); // use this to correct for screen ratio
if (GRAPHICS::_WORLD3D_TO_SCREEN2D(pedPosition.x, pedPosition.y, pedPosition.z, &screenX, &screenY) == TRUE) {
GRAPHICS::DRAW_RECT(screenX, screenY, 5.0f / (float)screenResX, 5.0f / (float)screenResY, red, green, blue, alpha);
}
UI::SET_TEXT_OUTLINE();
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, pedPosition.x + 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, pedPosition.x + 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z - 0.75, pedPosition.x - 0.5, pedPosition.y - 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
GRAPHICS::DRAW_LINE(pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z - 0.75, pedPosition.x - 0.5, pedPosition.y + 0.5, pedPosition.z + 0.75, red, green, blue, alpha);
}
void doESP() {
Ped playerPed = PLAYER::PLAYER_PED_ID();
std::vector<Ped> peds;
const int ARR_SIZE = 1024;
Ped worldPeds[ARR_SIZE];
int numPedsInWorld = worldGetAllPeds(worldPeds, ARR_SIZE);
for (int i = 0; i < numPedsInWorld; i++) {
if (ENTITY::DOES_ENTITY_EXIST(worldPeds*) && !ENTITY::IS_ENTITY_DEAD(worldPeds*) && worldPeds* != playerPed)
peds.push_back(worldPeds*);
}
for (std::vector<Ped>::iterator pedIterator = peds.begin(); pedIterator != peds.end(); ++pedIterator)
{
//Remove this if you want to see everyone or people behind walls.
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(playerPed, *pedIterator, 17)) { // 17 is a recommended value
draw_ESP_box(*pedIterator, 168, 77, 77, 175);
}
else {
draw_ESP_box(*pedIterator, 0, 19, 174, 175);
}
}
}
```

Here’s a snippet of an (singleplayer) ESP hack for GTAV.

That works by calling natives thanks to ScriptHook. There’s no such thing for Rust.

That being said, you don’t have to use ScriptHook to make a hack for GTAV either, but you definitely would not be banned in Rust for cheats in GTAV.