Skip to content

Exunys/Exunys-ESP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌌 Exunys ESP Visitors

This project represents a collection of visuals / wall hacks (Tracers, ESP, Boxes, Head Dots & Crosshair). This script is also undetected because it uses Synapse X's Drawing Library. It has modulized support for NPCs & parts and it offers a very simple and easy to use wrapping and unwrapping system.

This project's source is optimized, organized and simplified to the maximal level to be executive, fast, stable and precise.

This project is in beta testing, feel free to create pull requests (you will get credited), issues or just contact me on any of my linked platforms.

This project has been inspired from AirHub which has an improved version of my old examplery discontinued wall hack script. It has a FPS-styled look which looks beautiful for any game.

This project is used in the new AirHub V2 where you can use and edit the configuration through a GUI (it also includes a really fast Aimbot).

The chams element from this module has been shelved. If you want to use an even more premium version of this module (sadly you cannot integrate it, made specifically for exploiting) refer to Exunys's most recent project, X-Ro which also features more optimizations, working chams, skeleton ESP and highlights.

image

❗ Notice

This project has been written and tested with Synapse X and Electron. However, I will do my best to modularize support for every exploit. So far, the required functions for this module to run are listed below:

Dependencies (required functions & libraries):
  • Libraries & Methods:

    • Drawing
      • Drawing.new (function)
      • Drawing.Fonts (table)
    • debug
      • debug.getupvalue (function)
  • Functions:

    • getgenv
    • getrawmetatable
    • gethiddenproperty
    • cloneref
    • clonefunction

This project also uses Exunys' Config Library as a way of storing user settings, meaning, your script executor must support the dependencies for the module if you want the configuration storing & loading functions in the ESP module to function.

πŸ“œ License

This project is completely free and open source. However, that does not mean you own the rights to it. Please read this document for more information. You can reuse or integrate this script or any system from this project into your own repositories, as long as you credit the developer, Exunys (me).

πŸ“‘ Update log (DD/MM/YYYY):

14/04/2023
  • [v1.0b] First (BETA) release
15/04/2023
  • [v1.0.3b] Optimizations, bug fixes, silenced errors
18/04/2023
  • [v1.0.8b] Optimizations & bug fixes, added distance parameter for wrapping
19/04/2023
  • [v1.1.1b] Optimizations, bug fixes, improved Restart interactive method, added new core function for getting the local users's positions and more...
31/08/2023
  • [v1.1.3b] Added a variable that changes the teammates' visuals' color to differ from the enemies (team color) and made the script return the environment
18/08/2024
  • [v1.1.4b] Packed the module to a singular file with support for any executor and more...
22/08/2024
  • [v1.1.5b] Added screen resolution stretching
29/08/2024
  • [v1.1.6b] Shelved chams & bug fixes

πŸ“‹ Documentation

The documentation for the methods of this module can be found here.

πŸ‘‹ Introduction

First of all, to implement the module in your script's environment you must use the function loadstring like below:

local ESPLibrary = loadstring(game:HttpGet("https://raw.githubusercontent.com/Exunys/Exunys-ESP/main/src/ESP.lua"))()
-- ESPLibrary and getgenv().ExunysDeveloperESP is equivalent.

The code above loads the module's environment in your script executor's global environment meaning it will be achievable across every script.

The identificator for the environment is ExunysDeveloperESP which is a table that has configurable settings and interactive methods.

The table loaded into the exploit's global environment by the module has a metatable set to it with a __call metamethod, meaning you can call the table which would wrap every player in the game and render a crosshair.

ExunysDeveloperESP()
-- or
loadstring(game:HttpGet("https://raw.githubusercontent.com/Exunys/Exunys-ESP/main/src/ESP.lua"))()()

This is a pointer to the Load method. Loading the module this way would be a faster alternative.

ExunysDeveloperESP.Load()

This module has customizable settings for every drawing property and other miscellaneous properties with unique functions. You can see the configurable settings below.

The script's configurable settings
getgenv().ExunysDeveloperESP = {
	DeveloperSettings = {
		Path = "Exunys Developer/Exunys ESP/Configuration.cfg",
		UnwrapOnCharacterAbsence = false,
		UpdateMode = "RenderStepped",
		TeamCheckOption = "TeamColor",
		RainbowSpeed = 1, -- Bigger = Slower
		WidthBoundary = 1.5 -- Smaller Value = Bigger Width
	},

	Settings = {
		Enabled = true,
		PartsOnly = false,
		TeamCheck = false,
		AliveCheck = true,
		LoadConfigOnLaunch = true,
		EnableTeamColors = false,
		TeamColor = Color3.fromRGB(170, 170, 255),
		StretchScreenResoultion = false,
		StretchAmount = 0.75
	},

	Properties = {
		ESP = {
			Enabled = true,
			RainbowColor = false,
			RainbowOutlineColor = false,
			Offset = 10,

			Color = Color3.fromRGB(255, 255, 255),
			Transparency = 1,
			Size = 14,
			Font = DrawingFonts.Plex, -- Direct2D Fonts: {UI, System, Plex, Monospace}; ROBLOX Fonts: {Roboto, Legacy, SourceSans, RobotoMono}

			OutlineColor = Color3.fromRGB(0, 0, 0),
			Outline = true,

			DisplayDistance = true,
			DisplayHealth = false,
			DisplayName = false,
			DisplayDisplayName = true,
			DisplayTool = true
		},

		Tracer = {
			Enabled = true,
			RainbowColor = false,
			RainbowOutlineColor = false,
			Position = 1, -- 1 = Bottom; 2 = Center; 3 = Mouse

			Transparency = 1,
			Thickness = 1,
			Color = Color3.fromRGB(255, 255, 255),

			Outline = true,
			OutlineColor = Color3.fromRGB(0, 0, 0)
		},

		HeadDot = {
			Enabled = true,
			RainbowColor = false,
			RainbowOutlineColor = false,

			Color = Color3.fromRGB(255, 255, 255),
			Transparency = 1,
			Thickness = 1,
			NumSides = 30,
			Filled = false,

			OutlineColor = Color3.fromRGB(0, 0, 0),
			Outline = true
		},

		Box = {
			Enabled = true,
			RainbowColor = false,
			RainbowOutlineColor = false,

			Color = Color3.fromRGB(255, 255, 255),
			Transparency = 1,
			Thickness = 1,
			Filled = false,

			OutlineColor = Color3.fromRGB(0, 0, 0),
			Outline = true
		},

		HealthBar = {
			Enabled = true,
			RainbowOutlineColor = false,
			Offset = 4,
			Blue = 100,
			Position = 3, -- 1 = Top; 2 = Bottom; 3 = Left; 4 = Right

			Thickness = 1,
			Transparency = 1,

			OutlineColor = Color3.fromRGB(0, 0, 0),
			Outline = true
		},

		Crosshair = {
			Enabled = true,
			RainbowColor = false,
			RainbowOutlineColor = false,
			TStyled = false,
			Position = 1, -- 1 = Mouse; 2 = Center

			Size = 12,
			GapSize = 6,
			Rotation = 0,

			Rotate = false,
			RotateClockwise = true,
			RotationSpeed = 5,

			PulseGap = false,
			PulsingStep = 10,
			PulsingSpeed = 5,
			PulsingBounds = {4, 8}, -- {...}[1] => GapSize Min; {...}[2] => GapSize Max

			Color = Color3.fromRGB(0, 255, 0),
			Thickness = 1,
			Transparency = 1,

			OutlineColor = Color3.fromRGB(0, 0, 0),
			Outline = true,

			CenterDot = {
				Enabled = true,
				RainbowColor = false,
				RainbowOutlineColor = false,

				Radius = 2,

				Color = Color3.fromRGB(0, 255, 0),
				Transparency = 1,
				Thickness = 1,
				NumSides = 60,
				Filled = false,

				OutlineColor = Color3.fromRGB(0, 0, 0),
				Outline = true
			}
		}
	}

	-- The rest is core data for the functionality of the module...
}
Previews

image (ESP with factory settings)

image (Crosshair with factory settings)

d4209590921119d9c7f6e263674fc32e.mp4

The settings for the video above:

ExunysDeveloperESP.RenderCrosshair()

ExunysDeveloperESP.DeveloperSettings.RainbowSpeed = 2.5

local CrosshairProperties = ExunysDeveloperESP.Properties.Crosshair

CrosshairProperties.RainbowColor = true
CrosshairProperties.Position = 2

CrosshairProperties.Size = 18
CrosshairProperties.Thickness = 2

CrosshairProperties.Rotate = true
CrosshairProperties.RotateClockwise = false
CrosshairProperties.RotationSpeed = 10

CrosshairProperties.PulseGap = true
CrosshairProperties.PulsingBounds = {0, 24}

CrosshairProperties.CenterDot.Color = Color3.fromHex("#FFFFFF")

Wrapping & unwrapping objects (Players / Parts / NPCs)

Wrapping objects:

<string> Hash | ExunysDeveloperESP:WrapObject(<Instance> Object[, <string> Pseudo Name, <table> Allowed Visuals, <uint> Distance])

Unwrapping objects:

<void> | ExunysDeveloperESP.UnwrapObject(<Instance/string> Object / Hash)

❗ Notice

It is more recommended you store & parse hashes (given from the WrapObject method) for unwrapping the proxies with precise results.

For players, the method WrapObject will only wrap & work on the parsed player object (class type: "Player") if the player has a character achievable by OBJECT.Character.

Example program showcasing the part ESP - (WrapObject & UnwrapObject)
for Index, Value in next, workspace.Landmines:GetChildren() do
	local Part = Value:IsA("Model") and gethiddenproperty(Value, "PrimaryPart")
    
	if not Part then
		continue 
	end
    
	local Hash = ExunysDeveloperESP:WrapObject(Part, "Landmine "..Index, {Tracer = false})

	task.delay(3, ExunysDeveloperESP.UnwrapObject, Hash)
end
a4ffe0c4a95812a3984f9d6bfa0da89c.mp4

These 2 methods also apply to players & NPCs (anything with a character).

Example program showcasing the ESP Module for NPCs
ExunysDeveloperESP:WrapObject(workspace.Dummys.Dummy, "Dumb Dummy")

-- The object parsed in the first parameter is a model that has an R15 character rig and a humanoid (which is a dependance)
b17e9ea843504b0f4bae84787111b696.mp4