Skip to content

Commit 3e71ab1

Browse files
authored
Update ShadowX.lua
1 parent 2746035 commit 3e71ab1

1 file changed

Lines changed: 122 additions & 55 deletions

File tree

ShadowX.lua

Lines changed: 122 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
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
1414
local 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
1819
local Players = game:GetService("Players")
@@ -22,6 +23,16 @@ local UserInputService = game:GetService("UserInputService")
2223
local TweenService = game:GetService("TweenService")
2324
local CoreGui = game:GetService("CoreGui")
2425
local 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
2738
local 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
103115
end
104116

105-
-- ESP System
117+
-- Fixed ESP System for R15/R6
106118
local 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))
192214
ShadowX.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
193215
ShadowX.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
199234
end
200235

236+
ProtectGUI(ShadowX)
237+
201238
-- Styling
202239
local mainColor = Color3.fromRGB(28, 28, 36)
203240
local accentColor = Color3.fromRGB(0, 120, 215)
@@ -208,14 +245,12 @@ local errorColor = Color3.fromRGB(255, 60, 60)
208245
local MainFrame = Instance.new("Frame")
209246
MainFrame.Name = "MainFrame"
210247
MainFrame.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)
213249
MainFrame.BackgroundColor3 = mainColor
214250
MainFrame.BackgroundTransparency = 0.1
215251
MainFrame.BorderSizePixel = 0
216252
MainFrame.ClipsDescendants = true
217253
MainFrame.Active = true
218-
MainFrame.Draggable = true
219254
MainFrame.Parent = ShadowX
220255

221256
-- UI Elements
@@ -229,7 +264,7 @@ UIStroke.Thickness = 2
229264
UIStroke.Transparency = 0.7
230265
UIStroke.Parent = MainFrame
231266

232-
-- Title Bar
267+
-- Title Bar with improved dragging
233268
local TitleBar = Instance.new("Frame")
234269
TitleBar.Name = "TitleBar"
235270
TitleBar.Size = UDim2.new(1, 0, 0, 40)
@@ -248,14 +283,14 @@ Title.Name = "Title"
248283
Title.Size = UDim2.new(1, -40, 1, 0)
249284
Title.Position = UDim2.new(0, 10, 0, 0)
250285
Title.BackgroundTransparency = 1
251-
Title.Text = "SHADOW X"
286+
Title.Text = "SHADOW X v3.3"
252287
Title.TextColor3 = accentColor
253288
Title.Font = Enum.Font.GothamBold
254289
Title.TextSize = 18
255290
Title.TextXAlignment = Enum.TextXAlignment.Left
256291
Title.Parent = TitleBar
257292

258-
-- Close Button
293+
-- Improved Close Button
259294
local CloseButton = Instance.new("TextButton")
260295
CloseButton.Name = "CloseButton"
261296
CloseButton.Size = UDim2.new(0, 30, 0, 30)
@@ -273,6 +308,43 @@ local UICorner3 = Instance.new("UICorner")
273308
UICorner3.CornerRadius = UDim.new(0, 6)
274309
UICorner3.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
277349
CloseButton.MouseButton1Click:Connect(function()
278350
local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3), {Size = UDim2.new(0, 400, 0, 0)})
@@ -562,7 +634,7 @@ end
562634

563635
local 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")
566638
end
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
598670
end)
@@ -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
@@ -847,7 +919,7 @@ end)
847919

848920
-- Credits
849921
local creditsText = [[
850-
ShadowX Premium Script v3.2
922+
ShadowX Premium Script v3.3
851923
852924
Credits:
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

869939
local creditsLabel = Instance.new("TextLabel")
@@ -880,11 +950,11 @@ creditsLabel.TextYAlignment = Enum.TextYAlignment.Top
880950
creditsLabel.TextWrapped = true
881951
creditsLabel.Parent = CreditsTab
882952

883-
-- Noclip loop
953+
-- Noclip loop with improved performance
884954
connections.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
@@ -894,6 +964,7 @@ end)
894964
-- Update on character spawn
895965
LocalPlayer.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)
913984
Players.PlayerAdded:Connect(UpdatePlayerList)
914985
Players.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
932992
game:GetService("Players").PlayerRemoving:Connect(function(player)
@@ -940,6 +1000,13 @@ game:GetService("Players").PlayerRemoving:Connect(function(player)
9401000
end
9411001
end)
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

Comments
 (0)