# Thread: PUBG - 3D ESP source code [source]

1. ## PUBG - 3D ESP source code [source]

Hi MPGH!!

A simple box helps to estimate the enemy's distance.
In this topic,
you will learn the drawing method 3D box around each athlete.
You can add boxes for easy / crouching players in different sizes.
If you always want to have a box size,
you can calculate the size of the box by the bone: PUBG - in the ESP (skeleton) WallHack [source of the following code],
but in reality it is not so necessary

Code:
```public void Draw3DBox(FMinimalViewInfo POV, AActor actor)
{
float l, w, h, o;
l = 60f; w = 60f; h = 160f; o = 50f; //box size for standing player

float zOffset = -100f;

if (actor.Type == ActorTypes.Vehicle) //vehicles have a bigger box
{
zOffset = 50;
l = 200f; w = 160f; h = 80f; o = 0f;
}

//build box
Vector3 p00 = new Vector3(o, -w / 2,0f);
Vector3 p01 = new Vector3(o, w / 2, 0f);
Vector3 p02 = new Vector3(o - l, w / 2, 0f);
Vector3 p03 = new Vector3(o - l, -w / 2, 0f);

//rotate rectangle to match actor rotation
float theta1 = 2.0f * (float)Math.PI * (actor****tation.Y) / 180.0f;
Matrix rotM = Matrix****tationZ((float)(theta1 / 2)); // rotate around Z-axis

Vector3 curPos = new Vector3(actor.Location.X, actor.Location.Y, actor.Location.Z + zOffset);
p00 = Vector3.TransformCoordinate(p00, rotM) + curPos;
p01 = Vector3.TransformCoordinate(p01, rotM) + curPos;
p02 = Vector3.TransformCoordinate(p02, rotM) + curPos;
p03 = Vector3.TransformCoordinate(p03, rotM) + curPos;

RawVector2 s00 = W2S(p00, POV);
RawVector2 s01 = W2S(p01, POV);
RawVector2 s02 = W2S(p02, POV);
RawVector2 s03 = W2S(p03, POV);
RawVector2[] square0 = { s00, s01, s02, s03, s00 };

DrawLines(square0);

// top rectangle
p00.Z += h; s00 = W2S(p00, POV);
p01.Z += h; s01 = W2S(p01, POV);
p02.Z += h; s02 = W2S(p02, POV);
p03.Z += h; s03 = W2S(p03, POV);

RawVector2[] square1 = { s00, s01, s02, s03, s00 };
DrawLines(square1);

// upper/lower rectangles get connected
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
}```

Code:
```public void DrawLines(RawVector2[] point0)
{
if (point0.Length < 2)
return;

for (int x = 0; x < point0.Length - 1; x++)
DrawLine(point0[x], point0[x + 1],);
}```  Reply With Quote

2. ## The Following 12 Users Say Thank You to mirose001 For This Useful Post:

aggelos13e (07-26-2018),ahmed9620 (08-14-2018),dod916 (09-02-2018),drakon023 (09-20-2018),jameelnekola2002 (08-06-2018),kevinsawhn (11-28-2018),lozici1 (01-01-2019),musty1994 (09-07-2017),shyamguvala (09-10-2018),thbenicio (09-09-2018),tual666 (04-26-2019),xxbalxx (08-07-2018)

3. you could give the source code in a file:\  Reply With Quote

4. how to apply the code ?   Reply With Quote

5. ## The Following 4 Users Say Thank You to ben12397 For This Useful Post:

CarlosSA (11-26-2018),Chandoggie (11-30-2018),miguelcara12 (08-25-2018),sekkbykill (04-02-2019)

6. isnt this the source from UC ?  Reply With Quote

7. Originally Posted by mirose001 Hi MPGH!!

A simple box helps to estimate the enemy's distance.
In this topic,
you will learn the drawing method 3D box around each athlete.
You can add boxes for easy / crouching players in different sizes.
If you always want to have a box size,
you can calculate the size of the box by the bone: PUBG - in the ESP (skeleton) WallHack [source of the following code],
but in reality it is not so necessary

Code:
```public void Draw3DBox(FMinimalViewInfo POV, AActor actor)
{
float l, w, h, o;
l = 60f; w = 60f; h = 160f; o = 50f; //box size for standing player

float zOffset = -100f;

if (actor.Type == ActorTypes.Vehicle) //vehicles have a bigger box
{
zOffset = 50;
l = 200f; w = 160f; h = 80f; o = 0f;
}

//build box
Vector3 p00 = new Vector3(o, -w / 2,0f);
Vector3 p01 = new Vector3(o, w / 2, 0f);
Vector3 p02 = new Vector3(o - l, w / 2, 0f);
Vector3 p03 = new Vector3(o - l, -w / 2, 0f);

//rotate rectangle to match actor rotation
float theta1 = 2.0f * (float)Math.PI * (actor****tation.Y) / 180.0f;
Matrix rotM = Matrix****tationZ((float)(theta1 / 2)); // rotate around Z-axis

Vector3 curPos = new Vector3(actor.Location.X, actor.Location.Y, actor.Location.Z + zOffset);
p00 = Vector3.TransformCoordinate(p00, rotM) + curPos;
p01 = Vector3.TransformCoordinate(p01, rotM) + curPos;
p02 = Vector3.TransformCoordinate(p02, rotM) + curPos;
p03 = Vector3.TransformCoordinate(p03, rotM) + curPos;

RawVector2 s00 = W2S(p00, POV);
RawVector2 s01 = W2S(p01, POV);
RawVector2 s02 = W2S(p02, POV);
RawVector2 s03 = W2S(p03, POV);
RawVector2[] square0 = { s00, s01, s02, s03, s00 };

DrawLines(square0);

// top rectangle
p00.Z += h; s00 = W2S(p00, POV);
p01.Z += h; s01 = W2S(p01, POV);
p02.Z += h; s02 = W2S(p02, POV);
p03.Z += h; s03 = W2S(p03, POV);

RawVector2[] square1 = { s00, s01, s02, s03, s00 };
DrawLines(square1);

// upper/lower rectangles get connected
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
DrawLine(new RawVector2(square0.X, square0.Y), new RawVector2(square1.X, square1.Y));
}```

Code:
```public void DrawLines(RawVector2[] point0)
{
if (point0.Length < 2)
return;

for (int x = 0; x < point0.Length - 1; x++)
DrawLine(point0[x], point0[x + 1],);
}```
Hi friend, can you help me with this code?  Reply With Quote

8. Can you at least credit the guy from uc ?  Reply With Quote

9. Please, put the credit for the real creator and screen proof with functional code.

"People who dont know how to use the codes, google it, stop to be lazy and receive eas things  Reply With Quote

10. Originally Posted by Blitzard Please, put the credit for the real creator and screen proof with functional code.

"People who dont know how to use the codes, google it, stop to be lazy and receive eas things
well we just retarded and don't know what shoud we search :|  Reply With Quote

11. Originally Posted by M.A1380 well we just retarded and don't know what shoud we search :|
Then you literally shouldn't be on this forum lmao.  Reply With Quote

12. Originally Posted by M.A1380 well we just retarded and don't know what shoud we search :|   Reply With Quote

13. ## The Following User Says Thank You to Blitzard For This Useful Post:

xsharptail (09-23-2017)  Reply With Quote

15. ## The Following User Says Thank You to Vqnishhh For This Useful Post:

felipehesper (05-05-2019)

16. no one tell him  Reply With Quote

17. why im new but id love to get into it just tell me what to use to do it ill figure everything else out  Reply With Quote

18. ## The Following User Says Thank You to Vqnishhh For This Useful Post:

GamerRalf (06-29-2019)

19. This code is a snippet and teaches you how to draw boxes around players, you need to complete the code to get your wall hack and even they you still need to bypass battle eye  Reply With Quote

20. ## The Following User Says Thank You to Lolzyouz721 For This Useful Post:

Xtiv3n (08-28-2018)

21. Good find hopefully we can apply some anti-cheat to it and actally use it one day  Reply With Quote