1- -- ShadowX Premium Script v3.2
2- -- Universal (Executor/LocalScript)
1+ -- ShadowX Premium Script v3.3
2+ -- Fixed Version for Delta/R6/R15/All Executors
33
44--[[
5- Credits :
6- - UI Design: ShadowX Team
7- - Fly System: Advanced inertia flight
8- - ESP System: Optimized rendering
9- - Core Scripting: ShadowX Dev Team
10- - Special Thanks: Infinite Yield for inspiration
5+ Changelog :
6+ - Fixed ESP for R15 bodies
7+ - Improved GUI dragging
8+ - Delta executor compatibility
9+ - Better noclip implementation
10+ - R6 character force
1111]]
1212
1313-- Environment detection
1414local isExecutor = (syn and true ) or (protect_gui and true ) or
15- (getgenv and true ) or (is_sirhurt_closure and true ) or false
15+ (getgenv and true ) or (is_sirhurt_closure and true ) or
16+ (identifyexecutor and true ) or false
1617
1718-- Services
1819local Players = game :GetService (" Players" )
@@ -22,6 +23,16 @@ local UserInputService = game:GetService("UserInputService")
2223local TweenService = game :GetService (" TweenService" )
2324local CoreGui = game :GetService (" CoreGui" )
2425local Lighting = game :GetService (" Lighting" )
26+ local StarterGui = game :GetService (" StarterGui" )
27+
28+ -- Force R6 character (fix for ESP and body issues)
29+ if LocalPlayer .Character then
30+ LocalPlayer .Character :BreakJoints ()
31+ end
32+ LocalPlayer .CharacterAdded :Connect (function (char )
33+ local humanoid = char :WaitForChild (" Humanoid" )
34+ humanoid .RigType = Enum .HumanoidRigType .R6
35+ end )
2536
2637-- Main variables
2738local selectedPlayer = nil
@@ -58,6 +69,7 @@ local function StartFly()
5869 flyBodyGyro = Instance .new (" BodyGyro" )
5970 flyBodyGyro .MaxTorque = Vector3 .new (math.huge , math.huge , math.huge )
6071 flyBodyGyro .P = 10000
72+ flyBodyGyro .D = 500
6173 flyBodyGyro .Parent = humanoid .RootPart
6274
6375 -- Flight control function
@@ -102,10 +114,19 @@ local function StopFly()
102114 if connections .flyLoop then connections .flyLoop :Disconnect () end
103115end
104116
105- -- ESP System
117+ -- Fixed ESP System for R15/R6
106118local function CreateESP (player )
107119 if not player or not player .Character then return end
108120
121+ -- Wait for body parts to load
122+ local function waitForParts (char )
123+ local root = char :FindFirstChild (" HumanoidRootPart" ) or char :WaitForChild (" HumanoidRootPart" , 3 )
124+ local head = char :FindFirstChild (" Head" ) or char :WaitForChild (" Head" , 3 )
125+ return root and head
126+ end
127+
128+ if not waitForParts (player .Character ) then return end
129+
109130 -- Remove existing ESP if any
110131 if espFolders [player ] then
111132 espFolders [player ]:Destroy ()
@@ -115,15 +136,16 @@ local function CreateESP(player)
115136 local character = player .Character
116137 local espFolder = Instance .new (" Folder" )
117138 espFolder .Name = player .Name .. " _ESP"
118- espFolder .Parent = character
139+ espFolder .Parent = CoreGui
119140
120- -- Highlight
141+ -- Highlight with fixed properties
121142 local highlight = Instance .new (" Highlight" )
122143 highlight .Name = " Highlight"
123144 highlight .Adornee = character
124145 highlight .FillColor = Color3 .fromRGB (255 , 50 , 50 )
125146 highlight .OutlineColor = Color3 .fromRGB (255 , 255 , 255 )
126147 highlight .FillTransparency = 0.5
148+ highlight .DepthMode = Enum .HighlightDepthMode .AlwaysOnTop
127149 highlight .Parent = espFolder
128150
129151 -- Name Tag
@@ -169,7 +191,7 @@ local function CreateESP(player)
169191 healthFill .Parent = healthFrame
170192
171193 -- Update health
172- connections . healthChanged = humanoid .HealthChanged :Connect (function ()
194+ connections [ player .. " healthChanged" ] = humanoid .HealthChanged :Connect (function ()
173195 healthFill .Size = UDim2 .new (humanoid .Health / humanoid .MaxHealth , 0 , 1 , 0 )
174196 healthFill .BackgroundColor3 = Color3 .fromHSV (humanoid .Health / humanoid .MaxHealth * 0.3 , 1 , 1 )
175197 end )
@@ -178,7 +200,7 @@ local function CreateESP(player)
178200 espFolders [player ] = espFolder
179201
180202 -- Cleanup when character changes
181- connections . characterRemoving = player .CharacterRemoving :Connect (function ()
203+ connections [ player .. " characterRemoving" ] = player .CharacterRemoving :Connect (function ()
182204 if espFolders [player ] then
183205 espFolders [player ]:Destroy ()
184206 espFolders [player ] = nil
@@ -192,12 +214,27 @@ ShadowX.Name = "ShadowXPremium_"..tostring(math.random(1, 10000))
192214ShadowX .ZIndexBehavior = Enum .ZIndexBehavior .Sibling
193215ShadowX .ResetOnSpawn = false
194216
195- if isExecutor then
196- ShadowX .Parent = CoreGui
197- else
198- ShadowX .Parent = LocalPlayer :WaitForChild (" PlayerGui" )
217+ -- Improved GUI protection
218+ local function ProtectGUI (gui )
219+ if isExecutor then
220+ if protect_gui then
221+ protect_gui (gui )
222+ elseif syn and syn .protect_gui then
223+ syn .protect_gui (gui )
224+ elseif getgenv ().protectgui then
225+ getgenv ().protectgui (gui )
226+ elseif gethui then
227+ gui .Parent = gethui ()
228+ else
229+ gui .Parent = CoreGui
230+ end
231+ else
232+ gui .Parent = LocalPlayer :WaitForChild (" PlayerGui" )
233+ end
199234end
200235
236+ ProtectGUI (ShadowX )
237+
201238-- Styling
202239local mainColor = Color3 .fromRGB (28 , 28 , 36 )
203240local accentColor = Color3 .fromRGB (0 , 120 , 215 )
@@ -208,14 +245,12 @@ local errorColor = Color3.fromRGB(255, 60, 60)
208245local MainFrame = Instance .new (" Frame" )
209246MainFrame .Name = " MainFrame"
210247MainFrame .Size = UDim2 .new (0 , 400 , 0 , 500 )
211- MainFrame .Position = UDim2 .new (0.5 , 0 , 0.5 , 0 )
212- MainFrame .AnchorPoint = Vector2 .new (0.5 , 0.5 )
248+ MainFrame .Position = UDim2 .new (0.5 , - 200 , 0.5 , - 250 )
213249MainFrame .BackgroundColor3 = mainColor
214250MainFrame .BackgroundTransparency = 0.1
215251MainFrame .BorderSizePixel = 0
216252MainFrame .ClipsDescendants = true
217253MainFrame .Active = true
218- MainFrame .Draggable = true
219254MainFrame .Parent = ShadowX
220255
221256-- UI Elements
@@ -229,7 +264,7 @@ UIStroke.Thickness = 2
229264UIStroke .Transparency = 0.7
230265UIStroke .Parent = MainFrame
231266
232- -- Title Bar
267+ -- Title Bar with improved dragging
233268local TitleBar = Instance .new (" Frame" )
234269TitleBar .Name = " TitleBar"
235270TitleBar .Size = UDim2 .new (1 , 0 , 0 , 40 )
@@ -248,14 +283,14 @@ Title.Name = "Title"
248283Title .Size = UDim2 .new (1 , - 40 , 1 , 0 )
249284Title .Position = UDim2 .new (0 , 10 , 0 , 0 )
250285Title .BackgroundTransparency = 1
251- Title .Text = " SHADOW X"
286+ Title .Text = " SHADOW X v3.3 "
252287Title .TextColor3 = accentColor
253288Title .Font = Enum .Font .GothamBold
254289Title .TextSize = 18
255290Title .TextXAlignment = Enum .TextXAlignment .Left
256291Title .Parent = TitleBar
257292
258- -- Close Button
293+ -- Improved Close Button
259294local CloseButton = Instance .new (" TextButton" )
260295CloseButton .Name = " CloseButton"
261296CloseButton .Size = UDim2 .new (0 , 30 , 0 , 30 )
@@ -273,6 +308,43 @@ local UICorner3 = Instance.new("UICorner")
273308UICorner3 .CornerRadius = UDim .new (0 , 6 )
274309UICorner3 .Parent = CloseButton
275310
311+ -- Improved dragging system
312+ local dragging
313+ local dragInput
314+ local dragStart
315+ local startPos
316+
317+ local function updateInput (input )
318+ local delta = input .Position - dragStart
319+ MainFrame .Position = UDim2 .new (startPos .X .Scale , startPos .X .Offset + delta .X , startPos .Y .Scale , startPos .Y .Offset + delta .Y )
320+ end
321+
322+ TitleBar .InputBegan :Connect (function (input )
323+ if input .UserInputType == Enum .UserInputType .MouseButton1 then
324+ dragging = true
325+ dragStart = input .Position
326+ startPos = MainFrame .Position
327+
328+ input .Changed :Connect (function ()
329+ if input .UserInputState == Enum .UserInputState .End then
330+ dragging = false
331+ end
332+ end )
333+ end
334+ end )
335+
336+ TitleBar .InputChanged :Connect (function (input )
337+ if input .UserInputType == Enum .UserInputType .MouseMovement then
338+ dragInput = input
339+ end
340+ end )
341+
342+ UserInputService .InputChanged :Connect (function (input )
343+ if input == dragInput and dragging then
344+ updateInput (input )
345+ end
346+ end )
347+
276348-- Close animation
277349CloseButton .MouseButton1Click :Connect (function ()
278350 local tween = TweenService :Create (MainFrame , TweenInfo .new (0.3 ), {Size = UDim2 .new (0 , 400 , 0 , 0 )})
562634
563635local function GetRootPart (player )
564636 local character = GetCharacter (player )
565- return character :FindFirstChild (" HumanoidRootPart" ) or character :FindFirstChild (" UpperTorso" )
637+ return character :FindFirstChild (" HumanoidRootPart" ) or character :FindFirstChild (" UpperTorso" ) or character : FindFirstChild ( " Torso " )
566638end
567639
568640-- Update player list
@@ -592,7 +664,7 @@ AddButton(PlayersTab, "Teleport to Player", function()
592664 local myRoot = GetRootPart (LocalPlayer )
593665
594666 if targetRoot and myRoot then
595- myRoot .CFrame = targetRoot .CFrame
667+ myRoot .CFrame = targetRoot .CFrame * CFrame . new ( 0 , 0 , - 3 )
596668 end
597669 end
598670end )
@@ -630,7 +702,7 @@ AddButton(PlayersTab, "Copy Outfit", function()
630702 fake .CanCollide = false
631703
632704 local weld = Instance .new (" WeldConstraint" )
633- weld .Part0 = myChar :FindFirstChild (" HumanoidRootPart" ) or myChar :FindFirstChild (" UpperTorso" )
705+ weld .Part0 = myChar :FindFirstChild (" HumanoidRootPart" ) or myChar :FindFirstChild (" UpperTorso" ) or myChar : FindFirstChild ( " Torso " )
634706 weld .Part1 = fake
635707 weld .Parent = fake
636708 end
847919
848920-- Credits
849921local creditsText = [[
850- ShadowX Premium Script v3.2
922+ ShadowX Premium Script v3.3
851923
852924Credits:
853925- UI Design: ShadowX Team
@@ -856,14 +928,12 @@ Credits:
856928- Core Scripting: ShadowX Dev Team
857929- Special Thanks: Infinite Yield for inspiration
858930
859- Features:
860- - Improved Fly with inertia
861- - Working ESP with health bars
862- - God Mode
863- - Noclip
864- - Player utilities
865- - Weapon system
866- - Admin tools
931+ Changelog:
932+ - Fixed ESP for R15 bodies
933+ - Improved GUI dragging
934+ - Delta executor compatibility
935+ - Better noclip implementation
936+ - R6 character force
867937]]
868938
869939local creditsLabel = Instance .new (" TextLabel" )
@@ -880,11 +950,11 @@ creditsLabel.TextYAlignment = Enum.TextYAlignment.Top
880950creditsLabel .TextWrapped = true
881951creditsLabel .Parent = CreditsTab
882952
883- -- Noclip loop
953+ -- Noclip loop with improved performance
884954connections .noclipLoop = RunService .Stepped :Connect (function ()
885955 if noclip and LocalPlayer .Character then
886956 for _ , part in ipairs (LocalPlayer .Character :GetDescendants ()) do
887- if part :IsA (" BasePart" ) then
957+ if part :IsA (" BasePart" ) and part . CanCollide then
888958 part .CanCollide = false
889959 end
890960 end
894964-- Update on character spawn
895965LocalPlayer .CharacterAdded :Connect (function (character )
896966 local humanoid = character :WaitForChild (" Humanoid" )
967+ humanoid .RigType = Enum .HumanoidRigType .R6
897968
898969 humanoid .WalkSpeed = walkspeed
899970 humanoid .JumpPower = jumppower
@@ -913,20 +984,9 @@ end)
913984Players .PlayerAdded :Connect (UpdatePlayerList )
914985Players .PlayerRemoving :Connect (UpdatePlayerList )
915986
916- -- GUI Protection
917- local function ProtectGUI (gui )
918- if isExecutor then
919- if protect_gui then
920- protect_gui (gui )
921- elseif syn and syn .protect_gui then
922- syn .protect_gui (gui )
923- elseif getgenv ().protectgui then
924- getgenv ().protectgui (gui )
925- end
926- end
927- end
928-
929- ProtectGUI (ShadowX )
987+ -- Initialization animation
988+ MainFrame .Size = UDim2 .new (0 , 0 , 0 , 0 )
989+ TweenService :Create (MainFrame , TweenInfo .new (0.5 ), {Size = UDim2 .new (0 , 400 , 0 , 500 )}):Play ()
930990
931991-- Cleanup
932992game :GetService (" Players" ).PlayerRemoving :Connect (function (player )
@@ -940,6 +1000,13 @@ game:GetService("Players").PlayerRemoving:Connect(function(player)
9401000 end
9411001end )
9421002
943- -- Initialization animation
944- MainFrame .Size = UDim2 .new (0 , 0 , 0 , 0 )
945- TweenService :Create (MainFrame , TweenInfo .new (0.5 ), {Size = UDim2 .new (0 , 400 , 0 , 500 )}):Play ()
1003+ -- Notification function
1004+ local function Notify (text )
1005+ StarterGui :SetCore (" SendNotification" , {
1006+ Title = " ShadowX" ,
1007+ Text = text ,
1008+ Duration = 3
1009+ })
1010+ end
1011+
1012+ Notify (" ShadowX Premium v3.3 loaded!" )
0 commit comments