Skip to main content

General Settings

Name
string
required
The name for the ESP setting.
Model
Instance
required
The object instance that will be used for ESP.
TextModel
Instance
Optional object instance for text display in ESP.
Visible
boolean
default:"true"
Determines if the ESP is visible.
Color
Color3
default:"Color3.new()"
The main color for the ESP instances.
MaxDistance
number
default:"5000"
Maximum distance at which the ESP will be displayed.
StudsOffset
Vector3
default:"Vector3.new()"
Offset for the ESP’s position in studs.
TextSize
number
default:"16"
Size of the text in ESP if applicable.
ESPType
string
required
The type of ESP adornment. Types: Text, SphereAdornment, CylinderAdornment, Adornment, SelectionBox, Highlight.
Thickness
number
default:"0.1"
Thickness of the ESP instance.
Transparency
number
default:"0.65"
Transparency of the ESP instance.
These settings are only for the SelectionBox ESPType.
SurfaceColor
Color3
default:"null"
The surface color of the ESP adornment.
These settings are only for the Highlight ESPType.
FillColor
Color3
default:"Color3.new()"
The fill color of the ESP adornment.
OutlineColor
Color3
default:"Color3.new(1, 1, 1)"
The outline color of the ESP adornment.
FillTransparency
number
default:"0.65"
The transparency of the ESP’s fill.
OutlineTransparency
number
default:"0"
The transparency of the ESP’s outline.
All Adornment Types use already existing Color and Transparency setting, no need to add them again to the settings table.
Enabled
boolean
default:"false"
Enables or disables the tracer.
Color
Color3
default:"Color3.new()"
The color of the tracer line.
Thickness
number
default:"2"
Thickness of the tracer line.
Transparency
number
default:"0"
Transparency of the tracer line.
Transparency for tracers is opposite to Roblox.
From
string
default:"Bottom"
Starting position for the tracer line. Types: Top, Bottom, Center, Mouse.
Example:
Tracer = {
    Enabled = true,
    Color = Color3.fromRGB(255, 100, 100),
    Thickness = 2,
    Transparency = 0,
    From = "Bottom"  -- or "Top", "Center", "Mouse"
}
Enabled
boolean
default:"false"
Enables or disables the arrow ESP.
Color
Color3
default:"Color3.new()"
The color of the arrow.
CenterOffset
number
default:"300"
Offset for the center position of the arrow (distance from screen center in pixels * 0.001).
Arrow only shows when the target is off-screen.
Example:
Arrow = {
    Enabled = true,
    Color = Color3.fromRGB(255, 100, 100),
    CenterOffset = 300
}
Enabled
boolean
default:"false"
Enables or disables the 2D box ESP.
Color
Color3
default:"Color3.new()"
The color of the 2D box outline and fill.
Thickness
number
default:"1"
Thickness of the 2D box outline.
Transparency
number
default:"0"
Transparency of the 2D box outline (0 = opaque, 1 = invisible).
Filled
boolean
default:"false"
If true, fills the 2D box with a semi-transparent background.
Box2D creates a rectangular bounding box around the target on your screen.
Example:
Box2D = {
    Enabled = true,
    Color = Color3.fromRGB(255, 100, 100),
    Thickness = 2,
    Transparency = 0,
    Filled = true
}
Enabled
boolean
default:"false"
Enables or disables the 3D box ESP.
Color
Color3
default:"Color3.new()"
The color of the 3D box lines.
Thickness
number
default:"1"
Thickness of the 3D box lines.
Transparency
number
default:"0"
Transparency of the 3D box lines (0 = opaque, 1 = invisible).
Box3D creates a 3D wireframe box showing all 8 corners of the target’s bounding box.
Example:
Box3D = {
    Enabled = true,
    Color = Color3.fromRGB(100, 255, 100),
    Thickness = 2,
    Transparency = 0
}
Enabled
boolean
default:"false"
Enables or disables the skeleton ESP.
Color
Color3
default:"Color3.new()"
The color of the skeleton lines.
Thickness
number
default:"1"
Thickness of the skeleton lines.
Transparency
number
default:"0"
Transparency of the skeleton lines (0 = opaque, 1 = invisible).
Skeleton ESP automatically detects R6 and R15 rig types and draws lines connecting character joints.
Example:
Skeleton = {
    Enabled = true,
    Color = Color3.fromRGB(255, 255, 255),
    Thickness = 1,
    Transparency = 0
}
OnDestroy
BindableEvent
default:"null"
Event triggered upon destruction of the ESP.
OnDestroyFunc
function
default:"null"
Function executed when the ESP is destroyed.
BeforeUpdate
function
default:"null"
Function executed before updating all of the ESP instances (after the distance check). The ESP table is passed as an argument to the function.
AfterUpdate
function
default:"null"
Function executed after updating all of the ESP instances. The ESP table is passed as an argument to the function.

Library Functions

ESPLibrary:Clear

Removes all active ESP instances from the library.
ESPLibrary:Clear()

ESPLibrary:Destroy

Completely destroys the ESP library and cleans up all resources. After calling this, you must reload the library using the loadstring.
-- Clean up and unload the library
ESPLibrary:Destroy()

-- To use the library again, you need to reload it
local ESPLibrary = loadstring(game:HttpGet("https://raw.githubusercontent.com/mstudio45/MSESP/refs/heads/main/source.luau"))()

Creating ESP Instance

Creates a new ESP instance with the specified settings. Returns an ESP object that you can use to control the ESP.
local ESPInstance = ESPLibrary:Add({
    -- ESPSettings here
})
Example:
local ESPInstance = ESPLibrary:Add({
    Name = "Target",
    Model = workspace.Part,
    Color = Color3.fromRGB(255, 100, 100),
    ESPType = "Highlight",
    MaxDistance = 1000
})
See the Examples page for more detailed usage examples.

ESP Instance Functions

When you create an ESP instance, it returns an object with several functions and properties:
Deleted
boolean
Indicates if the ESP instance is deleted.
Destroy
function
This function deletes the ESP instance.
ESPInstance:Destroy()
Show
function
This function makes the ESP instance visible.
ESPInstance:Show()
Hide
function
This function makes the ESP instance invisible.
ESPInstance:Hide()
ToggleVisibility
function
Toggles the visibility of the ESP instance.
ESPInstance:ToggleVisibility()
SetEveryColor
function
Sets the color for all ESP elements at once (Main Color, Fill, Outline, etc).
ESPInstance:SetEveryColor(color, includeComponents)
ParameterTypeDescription
ColorColor3The new color to apply.
IncludeComponentsboolean?If true, also updates colors for components like Tracers, Boxes, etc.
Example:
-- Update only main colors (Highlight, SelectionBox, Text)
ESPInstance:SetEveryColor(Color3.fromRGB(255, 0, 0))

-- Update everything including tracers, arrows, boxes etc.
ESPInstance:SetEveryColor(Color3.fromRGB(0, 255, 0), true)

Updating ESP instance

You can modify ESP settings after creation by editing the CurrentSettings table:
Not every setting can be updated dynamically. Settings like Model and ESPType cannot be changed after creation.
Basic syntax:
ESPInstance.CurrentSettings.SettingName = NewValue
Examples:
-- Change the ESP name
ESPInstance.CurrentSettings.Name = "New Name"

-- Change colors
ESPInstance.CurrentSettings.Color = Color3.fromRGB(255, 0, 0)
ESPInstance.CurrentSettings.FillColor = Color3.fromRGB(255, 100, 100)
ESPInstance.CurrentSettings.OutlineColor = Color3.fromRGB(255, 255, 255)

-- Change max distance
ESPInstance.CurrentSettings.MaxDistance = 2000

-- Enable/disable components
ESPInstance.CurrentSettings.Tracer.Enabled = true
ESPInstance.CurrentSettings.Arrow.Enabled = false
ESPInstance.CurrentSettings.Box2D.Enabled = true

-- Change component colors
ESPInstance.CurrentSettings.Tracer.Color = Color3.fromRGB(0, 255, 0)
ESPInstance.CurrentSettings.Box3D.Thickness = 3