Делался на базе башрута, у кого что не получается или нету нужных утилов пишите коменты добавлю Created By Amnesia Client public class TargetHUD extends Module { private boolean show; private double healthBarWidth; private String enemyNickname; private double enemyHP; private double enemyDistance; private EntityPlayer entityPlayer; private Entity entity; public TargetHUD() { super("TargetHUD", Keyboard.KEY_NONE, Category.DISPLAY); } @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent e) { RayTraceResult objectMouseOver = mc.objectMouseOver; if (objectMouseOver != null) { if (objectMouseOver.typeOfHit == RayTraceResult.Type.ENTITY) { entity = objectMouseOver.entityHit; if (entity instanceof EntityPlayer) { entityPlayer = (EntityPlayer) entity; enemyNickname = entityPlayer.getName(); enemyHP = entityPlayer.getHealth(); enemyDistance = entityPlayer.getDistance(mc.player); show = true; } else { show = false; } } else { show = false; } } } @SubscribeEvent public void onRender(RenderGameOverlayEvent e) { if (!e.getType().equals(e.getType().TEXT)) { return; } if (show && mc.world != null && mc.player != null) { float x2 = DragScreen.xTarget; float y2 = DragScreen.yTarget; ScaledResolution sr = new ScaledResolution(mc); final float scaledWidth = sr.getScaledWidth(); final float health = Math.round(enemyHP); double hpPercentage = health / 20; hpPercentage = MathHelper.clamp(hpPercentage, 0, 1); final double hpWidth = 97.0 * hpPercentage; final int[] counter = {1}; final String healthStr = String.valueOf(Math.round(enemyHP)); RenderUtils.drawRectWithGlow((int) (x2 + 125.0), (int) (y2 - 9.5), (int) (x2 + 270), (int) (y2 + 28f), 6, 15, new Color(0xFF000000, true)); //хп бар// hpPercentage = MathHelper.clamp(hpPercentage, 0, 1); final double hpWidth2 = 97.0 * hpPercentage; Gui.drawRect((int) (x2 + 166.0f), (int) (y2 + 3.0f), (int) (x2 + 166.0f), (int) (y2 + 20f), new Color(0, 0, 0, 255).getRGB()); RenderUtils.drawCircle((float) x2 + 252, (float) ((float) y2 + 9.5), (float) 0, (float) hpWidth * 4, 12, false, rainbow(300)); Gui.drawRect((int) (x2 + 166.0f), (int) (y2 + 3.0f), (int) (x2 + 166.0f + this.healthBarWidth), (int) (y2 + 100.0f), new Color(0, 248, 255).getRGB()); mc.fontRenderer.drawStringWithShadow(healthStr, x2 + 206.0f + 46.0f - mc.fontRenderer.getStringWidth(healthStr) / 2.0f, y2 + 6f, -1); FontUtils.normal.drawString("Name:", x2 + 162, y2 - 1.0f, -1); FontUtils.normal.drawString(entity.getName(), x2 + 161, y2 + 10.0f, -1); try { drawHead(Objects.requireNonNull(mc.getConnection()).getPlayerInfo(entity.getUniqueID()).getLocationSkin(), (int) (x2 + 128), (int) (y2 - 6)); } catch (Exception ignored) { } } } public void drawHead(ResourceLocation skin, int width, int height) { GL11.glColor4f(1, 1, 1, 1); mc.getTextureManager().bindTexture(skin); Gui.drawScaledCustomSizeModalRect(width, height, 8, 8, 8, 8, 30, 30, 64, 64); } public static Color rainbow(int delay) { double rainbowState = Math.ceil((System.currentTimeMillis() + delay) / 20.0); rainbowState %= 360; return Color.getHSBColor((float) (rainbowState / 360.0f), 0.5f, 1f); } @Override public void onUpdate(RenderGameOverlayEvent e) { } }