--[[ СЫН ХУЙНИ — ULTIMATE V3 FAB • Табы • Эпичная надпись • Частицы • Исправленный тумблер TP RightControl — открыть/закрыть Тестируй в приватке. ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local Camera = workspace.CurrentCamera local T = { Bg=Color3.fromRGB(10,10,16), Bg2=Color3.fromRGB(18,18,28), Glass=Color3.fromRGB(255,255,255), Card=Color3.fromRGB(24,24,36), CardHover=Color3.fromRGB(36,36,54), Accent1=Color3.fromRGB(130,90,255), Accent2=Color3.fromRGB(0,200,255), Accent3=Color3.fromRGB(255,80,180), Success=Color3.fromRGB(0,220,140), Danger=Color3.fromRGB(255,70,90), Text=Color3.fromRGB(255,255,255), TextDim=Color3.fromRGB(140,140,170), } local function corner(i,r) local c=Instance.new("UICorner",i); c.CornerRadius=UDim.new(0,r or 10); return c end local function stroke(i,c,t,tr) local s=Instance.new("UIStroke",i); s.Color=c or T.Accent1; s.Thickness=t or 1; s.Transparency=tr or 0; return s end local function grad(i,c1,c2,r) local g=Instance.new("UIGradient",i); g.Color=ColorSequence.new(c1,c2); g.Rotation=r or 0; return g end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name="SynHujniGui" ScreenGui.ResetOnSpawn=false ScreenGui.IgnoreGuiInset=true ScreenGui.ZIndexBehavior=Enum.ZIndexBehavior.Sibling ScreenGui.DisplayOrder=999 ScreenGui.Parent=PlayerGui -- ФОН: ЧАСТИЦЫ local FXLayer = Instance.new("Frame") FXLayer.Size=UDim2.new(1,0,1,0) FXLayer.BackgroundTransparency=1 FXLayer.ZIndex=1 FXLayer.Parent=ScreenGui task.spawn(function() while FXLayer.Parent do local star=Instance.new("Frame") local size=math.random(2,5) star.Size=UDim2.new(0,size,0,size) star.Position=UDim2.new(math.random(),0,1.05,0) local pool={T.Accent1,T.Accent2,T.Accent3} star.BackgroundColor3=pool[math.random(1,3)] star.BorderSizePixel=0 star.ZIndex=1 star.Parent=FXLayer corner(star,999) local dur=math.random(5,11) local drift=(math.random()-0.5)*0.2 TweenService:Create(star,TweenInfo.new(dur,Enum.EasingStyle.Linear),{ Position=UDim2.new(star.Position.X.Scale+drift,0,-0.05,0), BackgroundTransparency=1, }):Play() task.delay(dur+0.1,function() star:Destroy() end) task.wait(0.1) end end) -- ========================================== -- ЗАГРУЗКА -- ========================================== local Loader = Instance.new("Frame") Loader.Size=UDim2.new(1,0,1,0) Loader.BackgroundColor3=T.Bg Loader.BorderSizePixel=0 Loader.ZIndex=50 Loader.Parent=ScreenGui local Aura=Instance.new("Frame") Aura.Size=UDim2.new(0,700,0,700) Aura.Position=UDim2.new(0.5,-350,0.5,-350) Aura.BackgroundColor3=T.Accent1 Aura.BackgroundTransparency=0.92 Aura.BorderSizePixel=0 Aura.ZIndex=50 Aura.Parent=Loader corner(Aura,999) grad(Aura,T.Accent1,T.Accent3,45) task.spawn(function() local h=0 while Aura.Parent do h=(h+0.003)%1 Aura.BackgroundColor3=Color3.fromHSV(h,0.85,1) task.wait(0.03) end end) task.spawn(function() local dir=1 while Aura.Parent do local target=dir>0 and 760 or 640 dir=-dir TweenService:Create(Aura,TweenInfo.new(2,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{ Size=UDim2.new(0,target,0,target), Position=UDim2.new(0.5,-target/2,0.5,-target/2), }):Play() task.wait(2) end end) local LogoHolder=Instance.new("Frame") LogoHolder.Size=UDim2.new(0,0,0,110) LogoHolder.Position=UDim2.new(0.5,-350,0.5,-180) LogoHolder.BackgroundTransparency=1 LogoHolder.ZIndex=51 LogoHolder.Parent=Loader TweenService:Create(LogoHolder,TweenInfo.new(0.8,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=UDim2.new(0,700,0,110)}):Play() local TEXT="СЫН ХУЙНИ" local Shadow=Instance.new("TextLabel") Shadow.Size=UDim2.new(1,0,1,0) Shadow.Position=UDim2.new(0,0,0,10) Shadow.BackgroundTransparency=1 Shadow.Font=Enum.Font.GothamBlack Shadow.Text=TEXT Shadow.TextColor3=Color3.fromRGB(60,20,120) Shadow.TextTransparency=0.4 Shadow.TextSize=72 Shadow.ZIndex=50 Shadow.Parent=LogoHolder local GlowOutline=Instance.new("TextLabel") GlowOutline.Size=UDim2.new(1,0,1,0) GlowOutline.BackgroundTransparency=1 GlowOutline.Font=Enum.Font.GothamBlack GlowOutline.Text=TEXT GlowOutline.TextColor3=T.Accent2 GlowOutline.TextTransparency=0.6 GlowOutline.TextSize=72 GlowOutline.ZIndex=50 GlowOutline.Parent=LogoHolder local OuterStroke=Instance.new("TextLabel") OuterStroke.Size=UDim2.new(1,0,1,0) OuterStroke.BackgroundTransparency=1 OuterStroke.Font=Enum.Font.GothamBlack OuterStroke.Text=TEXT OuterStroke.TextColor3=T.Accent1 OuterStroke.TextTransparency=0.15 OuterStroke.TextSize=72 OuterStroke.ZIndex=51 OuterStroke.Parent=LogoHolder local Logo=Instance.new("TextLabel") Logo.Size=UDim2.new(1,0,1,0) Logo.BackgroundTransparency=1 Logo.Font=Enum.Font.GothamBlack Logo.Text=TEXT Logo.TextColor3=Color3.fromRGB(255,255,255) Logo.TextSize=72 Logo.ZIndex=52 Logo.Parent=LogoHolder local LogoGrad=Instance.new("UIGradient") LogoGrad.Color=ColorSequence.new({ ColorSequenceKeypoint.new(0,T.Accent1), ColorSequenceKeypoint.new(0.25,T.Accent2), ColorSequenceKeypoint.new(0.5,T.Accent3), ColorSequenceKeypoint.new(0.75,T.Accent2), ColorSequenceKeypoint.new(1,T.Accent1), }) LogoGrad.Parent=Logo local LogoStroke=Instance.new("UIStroke") LogoStroke.Color=Color3.fromRGB(0,0,0) LogoStroke.Thickness=2 LogoStroke.Transparency=0.3 LogoStroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual LogoStroke.Parent=Logo local Wave=Instance.new("Frame") Wave.Size=UDim2.new(0,120,1,0) Wave.Position=UDim2.new(0,-120,0,0) Wave.BackgroundColor3=Color3.fromRGB(255,255,255) Wave.BackgroundTransparency=0.75 Wave.BorderSizePixel=0 Wave.ZIndex=54 Wave.Parent=LogoHolder corner(Wave,999) task.spawn(function() local r=0 while Logo.Parent do r=(r+1.5)%360 LogoGrad.Rotation=r task.wait(0.03) end end) task.spawn(function() local dir=1 while Logo.Parent do local size=dir>0 and 76 or 70 dir=-dir for _,lbl in ipairs({Logo,Shadow,GlowOutline,OuterStroke}) do TweenService:Create(lbl,TweenInfo.new(0.9,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{TextSize=size}):Play() end task.wait(0.9) end end) task.spawn(function() local dir=1 while LogoHolder.Parent do local offset=dir>0 and -4 or 4 dir=-dir TweenService:Create(LogoHolder,TweenInfo.new(1.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{ Position=UDim2.new(0.5,-350,0.5,-180+offset), }):Play() task.wait(1.4) end end) task.spawn(function() while GlowOutline.Parent do TweenService:Create(GlowOutline,TweenInfo.new(1,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{TextTransparency=0.15}):Play() task.wait(1) TweenService:Create(GlowOutline,TweenInfo.new(1,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{TextTransparency=0.7}):Play() task.wait(1) end end) task.spawn(function() while Wave.Parent do Wave.Position=UDim2.new(0,-120,0,0) TweenService:Create(Wave,TweenInfo.new(1.6,Enum.EasingStyle.Linear),{Position=UDim2.new(1,0,0,0)}):Play() task.wait(1.8) end end) task.spawn(function() task.wait(0.3) Logo.Text="" GlowOutline.Text="" OuterStroke.Text="" Shadow.Text="" for i=1,#TEXT do local part=string.sub(TEXT,1,i) Logo.Text=part GlowOutline.Text=part OuterStroke.Text=part Shadow.Text=part task.wait(0.07) end end) local Sub=Instance.new("TextLabel") Sub.Size=UDim2.new(0,500,0,22) Sub.Position=UDim2.new(0.5,-250,0.5,-68) Sub.BackgroundTransparency=1 Sub.Font=Enum.Font.GothamBold Sub.Text="PREMIUM • PLAYER FINDER • V3" Sub.TextColor3=T.TextDim Sub.TextSize=12 Sub.ZIndex=51 Sub.Parent=Loader local SubGrad=grad(Sub,T.Accent1,T.Accent2,0) task.spawn(function() local r=0 while Sub.Parent do r=(r+0.6)%360 SubGrad.Rotation=r task.wait(0.03) end end) local BarBg=Instance.new("Frame") BarBg.Size=UDim2.new(0,460,0,8) BarBg.Position=UDim2.new(0.5,-230,0.5,60) BarBg.BackgroundColor3=T.Bg2 BarBg.BorderSizePixel=0 BarBg.ZIndex=51 BarBg.Parent=Loader corner(BarBg,999) stroke(BarBg,T.Accent1,1,0.4) local Bar=Instance.new("Frame") Bar.Size=UDim2.new(0,0,1,0) Bar.BackgroundColor3=Color3.fromRGB(255,255,255) Bar.BorderSizePixel=0 Bar.ZIndex=52 Bar.Parent=BarBg corner(Bar,999) local BarGrad=grad(Bar,T.Accent1,T.Accent2,0) task.spawn(function() local r=0 while Bar.Parent do r=(r+1)%360 BarGrad.Rotation=r task.wait(0.03) end end) local Shine=Instance.new("Frame") Shine.Size=UDim2.new(0,90,1,0) Shine.Position=UDim2.new(0,-90,0,0) Shine.BackgroundColor3=Color3.fromRGB(255,255,255) Shine.BackgroundTransparency=0.3 Shine.BorderSizePixel=0 Shine.ZIndex=53 Shine.Parent=Bar corner(Shine,999) task.spawn(function() while Shine.Parent do Shine.Position=UDim2.new(0,-90,0,0) TweenService:Create(Shine,TweenInfo.new(1.2,Enum.EasingStyle.Linear),{Position=UDim2.new(1,0,0,0)}):Play() task.wait(1.3) end end) local Pct=Instance.new("TextLabel") Pct.Size=UDim2.new(1,0,0,20) Pct.Position=UDim2.new(0,0,0,80) Pct.BackgroundTransparency=1 Pct.Font=Enum.Font.GothamBold Pct.Text="0%" Pct.TextColor3=T.Text Pct.TextSize=14 Pct.ZIndex=51 Pct.Parent=Loader local Status=Instance.new("TextLabel") Status.Size=UDim2.new(1,0,0,18) Status.Position=UDim2.new(0,0,0,104) Status.BackgroundTransparency=1 Status.Font=Enum.Font.Gotham Status.Text="Инициализация..." Status.TextColor3=T.TextDim Status.TextSize=12 Status.ZIndex=51 Status.Parent=Loader local steps={"Инициализация ядра...","Загрузка модулей...","Проверка окружения...","Синхронизация...","Сбор игроков...","Активация UI...","Готово!"} local si=1 task.spawn(function() while Loader.Parent do Status.Text=steps[si] or steps[#steps] si=math.min(si+1,#steps) task.wait(0.5) end end) for i=0,100,2 do TweenService:Create(Bar,TweenInfo.new(0.03),{Size=UDim2.new(i/100,0,1,0)}):Play() Pct.Text=i.."%" task.wait(0.03) end task.wait(0.4) for _,d in ipairs(Loader:GetDescendants()) do if d:IsA("TextLabel") then TweenService:Create(d,TweenInfo.new(0.5),{TextTransparency=1}):Play() elseif d:IsA("Frame") and d~=Loader then TweenService:Create(d,TweenInfo.new(0.5),{BackgroundTransparency=1}):Play() end end TweenService:Create(Loader,TweenInfo.new(0.6),{BackgroundTransparency=1}):Play() task.wait(0.65) Loader:Destroy() -- ========================================== -- ГЛАВНОЕ ОКНО -- ========================================== local Main=Instance.new("Frame") Main.Size=UDim2.new(0,0,0,0) Main.Position=UDim2.new(0.5,-190,0.5,-250) Main.BackgroundColor3=T.Bg Main.BackgroundTransparency=0.05 Main.BorderSizePixel=0 Main.Active=true Main.Draggable=true Main.ClipsDescendants=true Main.Parent=ScreenGui corner(Main,16) grad(Main,T.Bg,T.Bg2,135) local MS=stroke(Main,T.Accent1,1.4,0.5) local MSG=grad(MS,T.Accent1,T.Accent2,0) TweenService:Create(Main,TweenInfo.new(0.6,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{ Size=UDim2.new(0,380,0,500), }):Play() task.spawn(function() local r=0 while Main.Parent do r=(r+1)%360 MSG.Rotation=r task.wait(0.03) end end) -- HEADER local Header=Instance.new("Frame") Header.Size=UDim2.new(1,0,0,52) Header.BackgroundColor3=T.Bg2 Header.BackgroundTransparency=0.4 Header.BorderSizePixel=0 Header.Parent=Main corner(Header,16) local HF=Instance.new("Frame") HF.Size=UDim2.new(1,0,0,14) HF.Position=UDim2.new(0,0,1,-14) HF.BackgroundColor3=T.Bg2 HF.BackgroundTransparency=0.4 HF.BorderSizePixel=0 HF.Parent=Header local HG=grad(Header,T.Accent1,T.Accent2,15) HG.Transparency=NumberSequence.new({ NumberSequenceKeypoint.new(0,0.82), NumberSequenceKeypoint.new(0.5,0.7), NumberSequenceKeypoint.new(1,0.88), }) local Icon=Instance.new("Frame") Icon.Size=UDim2.new(0,32,0,32) Icon.Position=UDim2.new(0,12,0,10) Icon.BorderSizePixel=0 Icon.Parent=Header corner(Icon,10) local IG=grad(Icon,T.Accent1,T.Accent2,0) task.spawn(function() local r=0 while Icon.Parent do r=(r+2)%360 IG.Rotation=r task.wait(0.03) end end) local IconTxt=Instance.new("TextLabel") IconTxt.Size=UDim2.new(1,0,1,0) IconTxt.BackgroundTransparency=1 IconTxt.Font=Enum.Font.GothamBlack IconTxt.Text="С" IconTxt.TextColor3=T.Text IconTxt.TextSize=18 IconTxt.Parent=Icon local Title=Instance.new("TextLabel") Title.Size=UDim2.new(1,-120,0,22) Title.Position=UDim2.new(0,52,0,8) Title.BackgroundTransparency=1 Title.Font=Enum.Font.GothamBlack Title.Text="СЫН ХУЙНИ" Title.TextColor3=T.Text Title.TextSize=15 Title.TextXAlignment=Enum.TextXAlignment.Left Title.Parent=Header local TitleGrad=grad(Title,T.Accent1,T.Accent2,0) local TitleStroke=Instance.new("UIStroke") TitleStroke.Color=T.Accent2 TitleStroke.Thickness=1 TitleStroke.Transparency=0.4 TitleStroke.ApplyStrokeMode=Enum.ApplyStrokeMode.Contextual TitleStroke.Parent=Title task.spawn(function() local r=0 while Title.Parent do r=(r+2)%360 TitleGrad.Rotation=r task.wait(0.03) end end) local SubTitle=Instance.new("TextLabel") SubTitle.Size=UDim2.new(1,-120,0,14) SubTitle.Position=UDim2.new(0,52,0,30) SubTitle.BackgroundTransparency=1 SubTitle.Font=Enum.Font.Gotham SubTitle.Text="premium finder • v3" SubTitle.TextColor3=T.TextDim SubTitle.TextSize=10 SubTitle.TextXAlignment=Enum.TextXAlignment.Left SubTitle.Parent=Header local CloseBtn=Instance.new("TextButton") CloseBtn.Size=UDim2.new(0,30,0,30) CloseBtn.Position=UDim2.new(1,-40,0,11) CloseBtn.BackgroundColor3=T.Danger CloseBtn.BackgroundTransparency=0.2 CloseBtn.BorderSizePixel=0 CloseBtn.Font=Enum.Font.GothamBold CloseBtn.Text="×" CloseBtn.TextColor3=T.Text CloseBtn.TextSize=18 CloseBtn.AutoButtonColor=false CloseBtn.Parent=Header corner(CloseBtn,9) -- ТАБЫ local TabBar=Instance.new("Frame") TabBar.Size=UDim2.new(1,-24,0,32) TabBar.Position=UDim2.new(0,12,0,62) TabBar.BackgroundColor3=T.Bg2 TabBar.BackgroundTransparency=0.5 TabBar.BorderSizePixel=0 TabBar.Parent=Main corner(TabBar,10) local TabLayout=Instance.new("UIListLayout",TabBar) TabLayout.FillDirection=Enum.FillDirection.Horizontal TabLayout.Padding=UDim.new(0,0) TabLayout.SortOrder=Enum.SortOrder.LayoutOrder local currentTab="all" local function MakeTab(name,label,order) local b=Instance.new("TextButton") b.Size=UDim2.new(1/3,0,1,0) b.BackgroundColor3=T.Card b.BackgroundTransparency=1 b.BorderSizePixel=0 b.Font=Enum.Font.GothamBold b.Text=label b.TextColor3=T.TextDim b.TextSize=11 b.AutoButtonColor=false b.LayoutOrder=order b.Parent=TabBar corner(b,10) b.MouseButton1Click:Connect(function() currentTab=name for _,other in ipairs(TabBar:GetChildren()) do if other:IsA("TextButton") then other.TextColor3=T.TextDim other.BackgroundTransparency=1 end end b.TextColor3=T.Text b.BackgroundTransparency=0 b.BackgroundColor3=T.Accent1 Search(SearchBox.Text,true) end) return b end local tabAll=MakeTab("all","ВСЕ",1) local tabNear=MakeTab("near","БЛИЗКИЕ",2) local tabFar=MakeTab("far","ДАЛЬНИЕ",3) tabAll.TextColor3=T.Text tabAll.BackgroundTransparency=0 tabAll.BackgroundColor3=T.Accent1 -- КОНТЕНТ local Content=Instance.new("Frame") Content.Size=UDim2.new(1,-24,1,-140) Content.Position=UDim2.new(0,12,0,102) Content.BackgroundTransparency=1 Content.Parent=Main -- Стата local StatsRow=Instance.new("Frame") StatsRow.Size=UDim2.new(1,0,0,26) StatsRow.BackgroundTransparency=1 StatsRow.Parent=Content local function MakeStatPill(x,color,text) local p=Instance.new("Frame") p.Size=UDim2.new(0.32,0,1,0) p.Position=UDim2.new(x,0,0,0) p.BackgroundColor3=T.Card p.BorderSizePixel=0 p.Parent=StatsRow corner(p,8) stroke(p,color,1,0.5) local lbl=Instance.new("TextLabel") lbl.Size=UDim2.new(1,0,1,0) lbl.BackgroundTransparency=1 lbl.Font=Enum.Font.GothamBold lbl.Text=text lbl.TextColor3=color lbl.TextSize=10 lbl.Parent=p return lbl end local TotalLbl=MakeStatPill(0,T.Accent2,"Всего: 0") local NearLbl=MakeStatPill(0.34,T.Success,"Рядом: 0") local FarLbl=MakeStatPill(0.68,T.Accent3,"Далеко: 0") -- Поиск local SearchWrap=Instance.new("Frame") SearchWrap.Size=UDim2.new(1,0,0,38) SearchWrap.Position=UDim2.new(0,0,0,34) SearchWrap.BackgroundColor3=T.Glass SearchWrap.BackgroundTransparency=0.94 SearchWrap.BorderSizePixel=0 SearchWrap.Parent=Content corner(SearchWrap,11) stroke(SearchWrap,T.Accent2,1,0.55) local SIcon=Instance.new("TextLabel") SIcon.Size=UDim2.new(0,32,1,0) SIcon.Position=UDim2.new(0,4,0,0) SIcon.BackgroundTransparency=1 SIcon.Font=Enum.Font.GothamBold SIcon.Text="🔍" SIcon.TextColor3=T.TextDim SIcon.TextSize=14 SIcon.Parent=SearchWrap local SearchBox=Instance.new("TextBox") SearchBox.Size=UDim2.new(1,-40,1,0) SearchBox.Position=UDim2.new(0,36,0,0) SearchBox.BackgroundTransparency=1 SearchBox.Font=Enum.Font.Gotham SearchBox.PlaceholderText="DisplayName или ник..." SearchBox.PlaceholderColor3=T.TextDim SearchBox.Text="" SearchBox.TextColor3=T.Text SearchBox.TextSize=12 SearchBox.ClearTextOnFocus=false SearchBox.TextXAlignment=Enum.TextXAlignment.Left SearchBox.Parent=SearchWrap local FocusLine=Instance.new("Frame") FocusLine.Size=UDim2.new(0,0,0,2) FocusLine.Position=UDim2.new(0.5,0,1,-1) FocusLine.BorderSizePixel=0 FocusLine.Parent=SearchWrap corner(FocusLine,2) grad(FocusLine,T.Accent1,T.Accent2,0) SearchBox.Focused:Connect(function() TweenService:Create(FocusLine,TweenInfo.new(0.25),{Size=UDim2.new(1,-8,0,2),Position=UDim2.new(0,4,1,-1)}):Play() end) SearchBox.FocusLost:Connect(function() TweenService:Create(FocusLine,TweenInfo.new(0.25),{Size=UDim2.new(0,0,0,2),Position=UDim2.new(0.5,0,1,-1)}):Play() end) -- Кнопка поиска local SearchBtn=Instance.new("TextButton") SearchBtn.Size=UDim2.new(1,0,0,36) SearchBtn.Position=UDim2.new(0,0,0,80) SearchBtn.BackgroundColor3=Color3.fromRGB(255,255,255) SearchBtn.BorderSizePixel=0 SearchBtn.Font=Enum.Font.GothamBold SearchBtn.Text="НАЙТИ ИГРОКОВ" SearchBtn.TextColor3=T.Text SearchBtn.TextSize=12 SearchBtn.AutoButtonColor=false SearchBtn.ClipsDescendants=true SearchBtn.Parent=Content corner(SearchBtn,11) local SBG=grad(SearchBtn,T.Accent1,T.Accent2,0) task.spawn(function() local r=0 while SearchBtn.Parent do r=(r+0.8)%360 SBG.Rotation=r task.wait(0.03) end end) local function Ripple(parent,x,y) local r=Instance.new("Frame") r.Size=UDim2.new(0,0,0,0) r.Position=UDim2.new(0,x,0,y) r.BackgroundColor3=Color3.fromRGB(255,255,255) r.BackgroundTransparency=0.4 r.BorderSizePixel=0 r.ZIndex=10 r.Parent=parent corner(r,999) TweenService:Create(r,TweenInfo.new(0.6,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{ Size=UDim2.new(0,500,0,500), Position=UDim2.new(0,x-250,0,y-250), BackgroundTransparency=1, }):Play() task.delay(0.65,function() r:Destroy() end) end SearchBtn.MouseButton1Click:Connect(function() local mp=UserInputService:GetMouseLocation() local abs=SearchBtn.AbsolutePosition Ripple(SearchBtn,mp.X-abs.X,mp.Y-abs.Y) end) SearchBtn.MouseEnter:Connect(function() TweenService:Create(SearchBtn,TweenInfo.new(0.2),{Size=UDim2.new(1,6,0,38),Position=UDim2.new(0,-3,0,79)}):Play() end) SearchBtn.MouseLeave:Connect(function() TweenService:Create(SearchBtn,TweenInfo.new(0.2),{Size=UDim2.new(1,0,0,36),Position=UDim2.new(0,0,0,80)}):Play() end) -- Результаты local Results=Instance.new("ScrollingFrame") Results.Size=UDim2.new(1,0,1,-128) Results.Position=UDim2.new(0,0,0,124) Results.BackgroundTransparency=1 Results.BorderSizePixel=0 Results.ScrollBarThickness=3 Results.ScrollBarImageColor3=T.Accent1 Results.CanvasSize=UDim2.new(0,0,0,0) Results.AutomaticCanvasSize=Enum.AutomaticSize.Y Results.Parent=Content local LL=Instance.new("UIListLayout") LL.Padding=UDim.new(0,6) LL.SortOrder=Enum.SortOrder.LayoutOrder LL.Parent=Results -- ========================================== -- ТЕЛЕПОРТ (с сохранением состояния) -- ========================================== local activeTarget,tpConn,activeBtn,activeCard=nil,nil,nil,nil local function StopTP() if tpConn then tpConn:Disconnect() tpConn=nil end activeTarget=nil if activeBtn then activeBtn.Text="ВНУТРЬ" TweenService:Create(activeBtn,TweenInfo.new(0.2),{BackgroundColor3=T.Card}):Play() end if activeCard then TweenService:Create(activeCard,TweenInfo.new(0.2),{BackgroundColor3=T.Card}):Play() end activeBtn,activeCard=nil,nil end local function StartTP(target,btn,card) StopTP() activeTarget,activeBtn,activeCard=target,btn,card btn.Text="ON" TweenService:Create(btn,TweenInfo.new(0.2),{BackgroundColor3=T.Success}):Play() TweenService:Create(card,TweenInfo.new(0.2),{BackgroundColor3=Color3.fromRGB(22,42,34)}):Play() local last=0 tpConn=RunService.Heartbeat:Connect(function() if not activeTarget then return end local now=tick() if now-last<0.1 then return end last=now local mc=LocalPlayer.Character local mh=mc and mc:FindFirstChild("HumanoidRootPart") local tc=activeTarget.Character local th=tc and tc:FindFirstChild("HumanoidRootPart") if mh and th then mh.CFrame=mh.CFrame:Lerp(th.CFrame,0.65) end end) end -- ========================================== -- КАРТОЧКА (с preserve) -- ========================================== local function ClearResults(keep) if not keep then StopTP() end for _,c in ipairs(Results:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end end local function UpdateStats() local total,near,far=0,0,0 local myChar=LocalPlayer.Character local myHRP=myChar and myChar:FindFirstChild("HumanoidRootPart") for _,c in ipairs(Results:GetChildren()) do if c:IsA("Frame") then total=total+1 local plr=c:GetAttribute("Player") if plr and myHRP then local tc=plr.Character local th=tc and tc:FindFirstChild("HumanoidRootPart") if th then local d=(th.Position-myHRP.Position).Magnitude if d<50 then near=near+1 else far=far+1 end end end end end TotalLbl.Text="Всего: "..total NearLbl.Text="Рядом: "..near FarLbl.Text="Далеко: "..far end local function MakeCard(player,preserve) local wasActive=preserve and activeTarget==player local holder=Instance.new("Frame") holder.Size=UDim2.new(1,0,0,52) holder.BackgroundTransparency=1 holder.Parent=Results holder:SetAttribute("Player",player) local card=Instance.new("Frame") card.Size=UDim2.new(1,0,1,0) card.BackgroundColor3=T.Card card.BorderSizePixel=0 card.Parent=holder corner(card,10) stroke(card,T.Accent2,1,0.65) local av=Instance.new("ImageLabel") av.Size=UDim2.new(0,38,0,38) av.Position=UDim2.new(0,8,0,7) av.BackgroundColor3=T.Bg2 av.BorderSizePixel=0 av.Image="rbxthumb://type=AvatarHeadShot&id="..player.UserId.."&w=48&h=48" av.Parent=card corner(av,19) stroke(av,T.Accent2,1,0.5) local nm=Instance.new("TextLabel") nm.Size=UDim2.new(1,-170,0,16) nm.Position=UDim2.new(0,54,0,9) nm.BackgroundTransparency=1 nm.Font=Enum.Font.GothamBold nm.Text=player.DisplayName nm.TextColor3=T.Text nm.TextSize=12 nm.TextXAlignment=Enum.TextXAlignment.Left nm.Parent=card local un=Instance.new("TextLabel") un.Size=UDim2.new(1,-170,0,14) un.Position=UDim2.new(0,54,0,26) un.BackgroundTransparency=1 un.Font=Enum.Font.Gotham un.Text="@"..player.Name un.TextColor3=T.TextDim un.TextSize=10 un.TextXAlignment=Enum.TextXAlignment.Left un.Parent=card local tp=Instance.new("TextButton") tp.Size=UDim2.new(0,78,0,28) tp.Position=UDim2.new(1,-86,0,12) tp.BackgroundColor3=T.Card tp.BorderSizePixel=0 tp.Font=Enum.Font.GothamBold tp.Text="ВНУТРЬ" tp.TextColor3=T.Text tp.TextSize=10 tp.AutoButtonColor=false tp.ClipsDescendants=true tp.Parent=card corner(tp,8) stroke(tp,T.Accent2,1,0.4) tp.MouseEnter:Connect(function() if activeBtn~=tp then TweenService:Create(tp,TweenInfo.new(0.15),{BackgroundColor3=T.CardHover}):Play() end end) tp.MouseLeave:Connect(function() if activeBtn~=tp then TweenService:Create(tp,TweenInfo.new(0.15),{BackgroundColor3=T.Card}):Play() end end) tp.MouseButton1Click:Connect(function() local mp=UserInputService:GetMouseLocation() local abs=tp.AbsolutePosition Ripple(tp,mp.X-abs.X,mp.Y-abs.Y) if activeTarget==player then StopTP() else StartTP(player,tp,holder) end end) card.MouseEnter:Connect(function() TweenService:Create(card,TweenInfo.new(0.2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{ Size=UDim2.new(1,6,1,4),Position=UDim2.new(0,-3,0,-2), }):Play() TweenService:Create(card,TweenInfo.new(0.2),{BackgroundColor3=T.CardHover}):Play() end) card.MouseLeave:Connect(function() TweenService:Create(card,TweenInfo.new(0.2),{ Size=UDim2.new(1,0,1,0),Position=UDim2.new(0,0,0,0), }):Play() if activeCard~=holder then TweenService:Create(card,TweenInfo.new(0.2),{BackgroundColor3=T.Card}):Play() end end) card.Position=UDim2.new(0,40,0,0) card.BackgroundTransparency=1 TweenService:Create(card,TweenInfo.new(0.35,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{ Position=UDim2.new(0,0,0,0),BackgroundTransparency=0, }):Play() -- Восстановление состояния если было активно if wasActive then activeBtn=tp activeCard=holder tp.Text="ON" tp.BackgroundColor3=T.Success card.BackgroundColor3=Color3.fromRGB(22,42,34) end return holder end -- ========================================== -- ПОИСК С СОХРАНЕНИЕМ -- ========================================== function Search(q,preserve) preserve=preserve or false -- Проверка цели local alive=false if activeTarget then for _,p in ipairs(Players:GetPlayers()) do if p==activeTarget then alive=true break end end end if not alive then StopTP() preserve=false end ClearResults(preserve) q=string.lower(q or "") local myChar=LocalPlayer.Character local myHRP=myChar and myChar:FindFirstChild("HumanoidRootPart") for _,p in ipairs(Players:GetPlayers()) do local ok=(q=="" or string.find(string.lower(p.DisplayName),q,1,true) or string.find(string.lower(p.Name),q,1,true)) if ok then -- Фильтр по табу local passTab=true if currentTab=="near" or currentTab=="far" then if myHRP and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local d=(p.Character.HumanoidRootPart.Position-myHRP.Position).Magnitude if currentTab=="near" then passTab=d<50 else passTab=d>=50 end else passTab=false end end if passTab then MakeCard(p,preserve) end end end UpdateStats() end SearchBtn.MouseButton1Click:Connect(function() Search(SearchBox.Text,true) end) SearchBox.FocusLost:Connect(function(e) if e then Search(SearchBox.Text,true) end end) Players.PlayerAdded:Connect(function() task.wait(0.4) Search(SearchBox.Text,true) end) Players.PlayerRemoving:Connect(function(p) if activeTarget==p then StopTP() end task.wait(0.2) Search(SearchBox.Text,true) end) -- ========================================== -- FAB-КНОПКА (справа по центру, ограничена экраном) -- ========================================== local FAB=Instance.new("TextButton") FAB.Size=UDim2.new(0,54,0,54) FAB.Position=UDim2.new(1,-74,0.5,-27) FAB.BackgroundColor3=Color3.fromRGB(255,255,255) FAB.BorderSizePixel=0 FAB.Font=Enum.Font.GothamBlack FAB.Text="С" FAB.TextColor3=T.Text FAB.TextSize=22 FAB.AutoButtonColor=false FAB.Visible=false FAB.Active=true FAB.Parent=ScreenGui corner(FAB,999) local FABGrad=grad(FAB,T.Accent1,T.Accent2,0) local FABStroke=stroke(FAB,T.Accent2,2,0.4) -- Пульсация градиента task.spawn(function() local r=0 while FAB.Parent do r=(r+2)%360 FABGrad.Rotation=r task.wait(0.03) end end) -- Пульсация свечения (idle) task.spawn(function() while FAB.Parent do TweenService:Create(FABStroke,TweenInfo.new(1.2,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{ Transparency=0.1,Thickness=3, }):Play() task.wait(1.2) TweenService:Create(FABStroke,TweenInfo.new(1.2,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut),{ Transparency=0.6,Thickness=2, }):Play() task.wait(1.2) end end) -- Драг с ограничением local fabDrag=false local fabDragStart,fabStartPos FAB.InputBegan:Connect(function(input) if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then fabDrag=true fabDragStart=input.Position fabStartPos=FAB.Position local moved=false local t0=tick() local conn conn=UserInputService.InputChanged:Connect(function(inp) if not fabDrag then return end if inp.UserInputType==Enum.UserInputType.MouseMovement or inp.UserInputType==Enum.UserInputType.Touch then local delta=inp.Position-fabDragStart if math.abs(delta.X)>3 or math.abs(delta.Y)>3 then moved=true end local vp=Camera.ViewportSize local newX=fabStartPos.X.Offset+delta.X local newY=fabStartPos.Y.Offset+delta.Y -- Ограничение по экрану local maxX=vp.X-FAB.AbsoluteSize.X-4 local maxY=vp.Y-FAB.AbsoluteSize.Y-4 newX=math.clamp(newX,4,maxX) newY=math.clamp(newY,4,maxY) FAB.Position=UDim2.new(0,newX,0,newY) end end) local endConn endConn=UserInputService.InputEnded:Connect(function(inp) if inp==input or inp.UserInputType==Enum.UserInputType.MouseButton1 or inp.UserInputType==Enum.UserInputType.Touch then fabDrag=false conn:Disconnect() endConn:Disconnect() end end) input.Changed:Connect(function() if input.UserInputState==Enum.UserInputState.End then fabDrag=false conn:Disconnect() endConn:Disconnect() end end) end end) -- Клик по FAB (если не было движения) FAB.MouseButton1Click:Connect(function() -- Небольшая проверка: если двигали — не открываем if fabDrag then return end FAB.Visible=false ShowGui() end) -- ========================================== -- ОТКРЫТИЕ / СКРЫТИЕ -- ========================================== local isOpen=true function HideGui() isOpen=false TweenService:Create(Main,TweenInfo.new(0.32,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{ Size=UDim2.new(0,0,0,0), Position=UDim2.new(0.5,0,0.5,0), BackgroundTransparency=1, }):Play() task.wait(0.25) FAB.Visible=true -- Анимация появления FAB FAB.Size=UDim2.new(0,0,0,0) TweenService:Create(FAB,TweenInfo.new(0.35,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{ Size=UDim2.new(0,54,0,54), }):Play() end function ShowGui() isOpen=true FAB.Visible=false Main.BackgroundTransparency=0.05 Main.Position=UDim2.new(0.5,-190,0.5,-250) TweenService:Create(Main,TweenInfo.new(0.45,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{ Size=UDim2.new(0,380,0,500), }):Play() end CloseBtn.MouseButton1Click:Connect(HideGui) UserInputService.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode==Enum.KeyCode.RightControl then if isOpen then HideGui() else ShowGui() end end end) -- Кнопка закрытия с hover CloseBtn.MouseEnter:Connect(function() TweenService:Create(CloseBtn,TweenInfo.new(0.15),{BackgroundTransparency=0,Size=UDim2.new(0,32,0,32),Position=UDim2.new(1,-41,0,10)}):Play() end) CloseBtn.MouseLeave:Connect(function() TweenService:Create(CloseBtn,TweenInfo.new(0.15),{BackgroundTransparency=0.2,Size=UDim2.new(0,30,0,30),Position=UDim2.new(1,-40,0,11)}):Play() end) -- Запуск Search("",false) print("[Сын хуйни] Готово. RightControl — открыть/закрыть. FAB — вернуть окно.")