Better Drawing
Key RequiredUniversal

Better Drawing

Universal ScriptCatBoyCatBoy 12.7K views 682 executesUpdated Jul 28, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•61 lines (1861 chars)
-- example ussage:
local BetterDrawing = loadstring(game:HttpGet("https://raw.githubusercontent.com/dementiaenjoyer/Better-Drawing/refs/heads/main/Main.lua"))();

local Players = game:GetService("Players");
local Workspace = game:GetService("Workspace");

local Camera = Workspace.CurrentCamera;
local LocalPlayer = Players.LocalPlayer;

local Round = math.round;

local function Update()
    for _, Player in Players:GetChildren() do
        local Character = Player.Character;
        local Root = Character and Character:FindFirstChild("HumanoidRootPart");

        if (not Root) or (Player == LocalPlayer) then
            continue;
        end

        local ScreenPosition, OnScreen = Camera:WorldToViewportPoint(Root.Position - Vector3.new(0, 0.5, 0));
        local Distance = ScreenPosition.Z;

        if (not OnScreen) then
            continue;
        end

        local Scale = (2 * Camera.ViewportSize.Y) / ((2 * Distance * math.tan(math.rad(Camera.FieldOfView) / 2)) * 1.5); -- Found this somewhere cant remember where

        local Width, Height = Round(3 * Scale), Round(4 * Scale);
        local Size = Vector2.new(Width, Height);

        local Position = Vector2.new(Round(ScreenPosition.X - (Width / 2)), Round(ScreenPosition.Y - (Height / 2)));

        local Outline = Drawing.new("Square");
        Outline.Visible = true;

        local Box = Drawing.new("Square");
        Box.Visible = true;
        
        -- Box
        do
            Box.Color = Color3.new(1, 1, 1);
            Box.Thickness = 1;

            Box.Size = Size;
            Box.Position = Position;
        end

        -- Outline
        do
            Outline.Color = Color3.new(0, 0, 0);
            Outline.Thickness = 3;

            Outline.Position = Box.Position;
            Outline.Size = Box.Size;
        end
    end
end

BetterDrawing:Init(Update);

Features & Information

What is Better-Drawing? Better-Drawing is a custom wrapper for Roblox's Drawing API that makes it way easier to work with visuals like ESPs, boxes, text, and more. The main benefit is that it automatically handles cleanup so you don’t have to manually remove elements or clear them every frame. Once you're done using a drawing (like when a player disappears), it gets deleted automatically. That means cleaner code and fewer performance issues. Credits to dementia enjoyer check out his GitHub here: https://github.com/dementiaenjoyer/Better-Drawing
#better drawing#esp#cache#roblox#easyier esp

Community Comments (5)

OnzabirrOnzabirrJul 28, 2025

This is cool

@Onzabirr really?

OnzabirrOnzabirrJul 30, 2025

@gorillatagplayer555 Yes, Makes drawing simpler

depsodepsoadminAug 1, 2025

Gangalang

GojoahhahshahwhGojoahhahshahwhNov 18, 2025

It's for wich game

More Scripts for Universal Scripts