--[[ ROBLOX TIME MACHINE — FINAL v7 Компактное окно • Рабочий крестик • FAB ⏰ • Стиль GUI • Инструменты • Портал ]] local Players=game:GetService("Players") local RunService=game:GetService("RunService") local TweenService=game:GetService("TweenService") local UserInputService=game:GetService("UserInputService") local Lighting=game:GetService("Lighting") local Workspace=game:GetService("Workspace") local Debris=game:GetService("Debris") local LocalPlayer=Players.LocalPlayer local PlayerGui=LocalPlayer:WaitForChild("PlayerGui") local Camera=Workspace.CurrentCamera -- ========================================== -- ДАННЫЕ -- ========================================== local PORTAL_SOUNDS={[2007]="rbxassetid://131237241",[2010]="rbxassetid://131237241",[2012]="rbxassetid://131237241",[2015]="rbxassetid://131237241",[2020]="rbxassetid://131237241",[2026]="rbxassetid://131237241"} local COMMUNITY_ANIMS={ ["2007"]={idle="rbxassetid://85735421117197",walk="rbxassetid://140409718187215",run="rbxassetid://118375157537412",jump="rbxassetid://132381016103721",fall="rbxassetid://77496925287217",climb="rbxassetid://86318575131600",sit="rbxassetid://85735421117197",swim="rbxassetid://95599821412670"}, ["2010"]={idle="rbxassetid://118461919095618",walk="rbxassetid://107806791584829",run="rbxassetid://107806791584829",jump="rbxassetid://139390570947836",fall="rbxassetid://139390570947836",climb="rbxassetid://139390570947836",sit="rbxassetid://118461919095618",swim="rbxassetid://118461919095618"}, ["2012"]={idle="rbxassetid://85735421117197",walk="rbxassetid://140409718187215",run="rbxassetid://118375157537412",jump="rbxassetid://132381016103721",fall="rbxassetid://77496925287217",climb="rbxassetid://86318575131600",sit="rbxassetid://85735421117197",swim="rbxassetid://95599821412670"}, ["2015"]={idle="rbxassetid://118461919095618",walk="rbxassetid://107806791584829",run="rbxassetid://107806791584829",jump="rbxassetid://139390570947836",fall="rbxassetid://139390570947836",climb="rbxassetid://139390570947836",sit="rbxassetid://118461919095618",swim="rbxassetid://118461919095618"}, ["2020"]={idle="rbxassetid://507766666",walk="rbxassetid://507777826",run="rbxassetid://507767714",jump="rbxassetid://507765000",fall="rbxassetid://507767968",climb="rbxassetid://507765644",sit="rbxassetid://507768133",swim="rbxassetid://507784897"}, ["2026"]={idle="rbxassetid://507766666",walk="rbxassetid://507777826",run="rbxassetid://507767714",jump="rbxassetid://507765000",fall="rbxassetid://507767968",climb="rbxassetid://507765644",sit="rbxassetid://507768133",swim="rbxassetid://507784897"}, } local YEARS={ {year=2007,name="2007",desc="Comic Sans, яркий пластик",bg=Color3.fromRGB(240,240,240),panel=Color3.fromRGB(230,230,230),accent=Color3.fromRGB(0,100,200),text=Color3.fromRGB(0,0,0),font=Enum.Font.Legacy,fontBold=Enum.Font.Legacy,brightness=3,clockTime=14,ambient=Color3.fromRGB(180,180,180),outdoor=Color3.fromRGB(200,200,200),shadows=false,fogEnd=100000,fogColor=Color3.fromRGB(200,220,255),envDiffuse=0,envSpecular=0,material=Enum.Material.Plastic,skyId="rbxassetid://159454299",walkSpeed=14}, {year=2010,name="2010",desc="Золотая эра Roblox",bg=Color3.fromRGB(60,60,60),panel=Color3.fromRGB(50,50,50),accent=Color3.fromRGB(0,162,255),text=Color3.fromRGB(255,255,255),font=Enum.Font.SourceSans,fontBold=Enum.Font.SourceSansBold,brightness=2.5,clockTime=14,ambient=Color3.fromRGB(120,120,120),outdoor=Color3.fromRGB(150,150,150),shadows=true,fogEnd=100000,fogColor=Color3.fromRGB(180,200,220),envDiffuse=0,envSpecular=0,material=Enum.Material.Plastic,skyId="rbxassetid://159454299",walkSpeed=16}, {year=2012,name="2012",desc="Мобильная эра",bg=Color3.fromRGB(242,242,247),panel=Color3.fromRGB(255,255,255),accent=Color3.fromRGB(0,122,255),text=Color3.fromRGB(0,0,0),font=Enum.Font.SourceSans,fontBold=Enum.Font.SourceSansBold,brightness=2,clockTime=14,ambient=Color3.fromRGB(100,100,100),outdoor=Color3.fromRGB(130,130,130),shadows=true,fogEnd=100000,fogColor=Color3.fromRGB(180,200,220),envDiffuse=0.2,envSpecular=0.2,material=Enum.Material.Plastic,skyId="rbxassetid://159454299",walkSpeed=16}, {year=2015,name="2015",desc="Плоский дизайн",bg=Color3.fromRGB(32,32,32),panel=Color3.fromRGB(45,45,45),accent=Color3.fromRGB(0,162,255),text=Color3.fromRGB(255,255,255),font=Enum.Font.SourceSansLight,fontBold=Enum.Font.SourceSansBold,brightness=2,clockTime=14,ambient=Color3.fromRGB(70,70,70),outdoor=Color3.fromRGB(100,100,100),shadows=true,fogEnd=100000,fogColor=Color3.fromRGB(150,170,190),envDiffuse=0.4,envSpecular=0.4,material=nil,skyId=nil,walkSpeed=16}, {year=2020,name="2020",desc="Тёмная тема",bg=Color3.fromRGB(28,28,30),panel=Color3.fromRGB(40,40,42),accent=Color3.fromRGB(0,170,255),text=Color3.fromRGB(255,255,255),font=Enum.Font.Gotham,fontBold=Enum.Font.GothamBold,brightness=2,clockTime=15,ambient=Color3.fromRGB(60,60,70),outdoor=Color3.fromRGB(80,80,90),shadows=true,fogEnd=100000,fogColor=Color3.fromRGB(140,150,170),envDiffuse=0.6,envSpecular=0.6,material=nil,skyId=nil,walkSpeed=16}, {year=2026,name="2026",desc="Неон, будущее",bg=Color3.fromRGB(18,18,26),panel=Color3.fromRGB(28,28,40),accent=Color3.fromRGB(140,90,255),text=Color3.fromRGB(255,255,255),font=Enum.Font.GothamBold,fontBold=Enum.Font.GothamBlack,brightness=1.5,clockTime=0,ambient=Color3.fromRGB(40,40,80),outdoor=Color3.fromRGB(60,60,120),shadows=true,fogEnd=5000,fogColor=Color3.fromRGB(40,30,80),envDiffuse=1,envSpecular=1,material=Enum.Material.Neon,skyId="rbxassetid://159454299",walkSpeed=18}, } local TOOLS_BY_YEAR={ [2007]={{name="Classic Sword",class="Sword",color=Color3.fromRGB(100,100,100),damage=25},{name="Rocket Launcher",class="Laser",color=Color3.fromRGB(80,80,80),damage=50},{name="Trowel",class="Trowel",color=Color3.fromRGB(120,120,120),damage=10}}, [2010]={{name="Linked Sword",class="Sword",color=Color3.fromRGB(150,150,150),damage=30},{name="Bomb",class="Laser",color=Color3.fromRGB(50,50,50),damage=40},{name="Paintball Gun",class="Laser",color=Color3.fromRGB(200,50,50),damage=15}}, [2012]={{name="Gravity Coil",class="Coil",color=Color3.fromRGB(150,50,200),damage=0},{name="Speed Coil",class="Coil",color=Color3.fromRGB(50,150,200),damage=0},{name="Flamethrower",class="Laser",color=Color3.fromRGB(255,100,0),damage=35}}, [2015]={{name="Bloxy Cola",class="Food",color=Color3.fromRGB(200,50,50),damage=0},{name="Sword of Light",class="Sword",color=Color3.fromRGB(255,255,150),damage=45},{name="Grappling Hook",class="Hook",color=Color3.fromRGB(80,80,120),damage=5}}, [2020]={{name="Laser Blaster",class="Laser",color=Color3.fromRGB(0,200,255),damage=40},{name="Energy Sword",class="Sword",color=Color3.fromRGB(0,220,255),damage=55},{name="Teleporter",class="Coil",color=Color3.fromRGB(180,100,255),damage=0}}, [2026]={{name="Neon Blade",class="Sword",color=Color3.fromRGB(255,0,255),damage=80},{name="Plasma Cannon",class="Laser",color=Color3.fromRGB(150,0,255),damage=90},{name="Anti-Gravity",class="Coil",color=Color3.fromRGB(80,80,255),damage=0}}, } local GUI_STYLES={ {name="2006",corner=0,strokeTh=0,bg=Color3.fromRGB(200,200,200),panel=Color3.fromRGB(180,180,180),text=Color3.fromRGB(0,0,0),accent=Color3.fromRGB(0,80,160),font=Enum.Font.Legacy,textSize=13}, {name="2007",corner=2,strokeTh=0,bg=Color3.fromRGB(220,220,220),panel=Color3.fromRGB(200,200,200),text=Color3.fromRGB(0,0,0),accent=Color3.fromRGB(0,100,200),font=Enum.Font.Legacy,textSize=13}, {name="2010",corner=4,strokeTh=1,bg=Color3.fromRGB(60,60,60),panel=Color3.fromRGB(50,50,50),text=Color3.fromRGB(255,255,255),accent=Color3.fromRGB(0,162,255),font=Enum.Font.SourceSans,textSize=13}, {name="2012",corner=8,strokeTh=1,bg=Color3.fromRGB(242,242,247),panel=Color3.fromRGB(255,255,255),text=Color3.fromRGB(0,0,0),accent=Color3.fromRGB(0,122,255),font=Enum.Font.SourceSans,textSize=13}, {name="2015",corner=10,strokeTh=1,bg=Color3.fromRGB(32,32,32),panel=Color3.fromRGB(45,45,45),text=Color3.fromRGB(255,255,255),accent=Color3.fromRGB(0,162,255),font=Enum.Font.SourceSansBold,textSize=13}, {name="2020",corner=12,strokeTh=1,bg=Color3.fromRGB(28,28,30),panel=Color3.fromRGB(40,40,42),text=Color3.fromRGB(255,255,255),accent=Color3.fromRGB(0,170,255),font=Enum.Font.Gotham,textSize=13}, {name="2026",corner=16,strokeTh=2,bg=Color3.fromRGB(18,18,26),panel=Color3.fromRGB(28,28,40),text=Color3.fromRGB(255,255,255),accent=Color3.fromRGB(140,90,255),font=Enum.Font.GothamBlack,textSize=13}, } -- ========================================== -- УТИЛИТЫ -- ========================================== local function corner(i,r) local c=i:FindFirstChildOfClass("UICorner"); if not c then c=Instance.new("UICorner",i) end; c.CornerRadius=UDim.new(0,r or 10); return c end local function stroke(i,c,t) local s=i:FindFirstChildOfClass("UIStroke"); if not s then s=Instance.new("UIStroke",i) end; s.Color=c; s.Thickness=t or 1; return s end local Original={Brightness=Lighting.Brightness,ClockTime=Lighting.ClockTime,Ambient=Lighting.Ambient,OutdoorAmbient=Lighting.OutdoorAmbient,GlobalShadows=Lighting.GlobalShadows,FogEnd=Lighting.FogEnd,FogColor=Lighting.FogColor,EnvDiffuse=Lighting.EnvironmentDiffuseScale,EnvSpecular=Lighting.EnvironmentSpecularScale} local OriginalSky=Lighting:FindFirstChildOfClass("Sky") -- ========================================== -- ЗАГРУЗКА -- ========================================== local Loader=Instance.new("ScreenGui"); Loader.Name="TMLoader"; Loader.ResetOnSpawn=false; Loader.IgnoreGuiInset=true; Loader.Parent=PlayerGui local LF=Instance.new("Frame",Loader); LF.Size=UDim2.new(1,0,1,0); LF.BackgroundColor3=Color3.fromRGB(242,242,247); LF.BorderSizePixel=0 local LIcon=Instance.new("TextLabel",LF); LIcon.Size=UDim2.new(0,100,0,100); LIcon.Position=UDim2.new(0.5,-50,0.5,-100); LIcon.BackgroundTransparency=1; LIcon.Font=Enum.Font.SourceSansBold; LIcon.Text="R"; LIcon.TextColor3=Color3.fromRGB(0,122,255); LIcon.TextSize=80 local LTitle=Instance.new("TextLabel",LF); LTitle.Size=UDim2.new(0,300,0,30); LTitle.Position=UDim2.new(0.5,-150,0.5,10); LTitle.BackgroundTransparency=1; LTitle.Font=Enum.Font.SourceSansBold; LTitle.Text="ROBLOX Mobile"; LTitle.TextColor3=Color3.fromRGB(0,0,0); LTitle.TextSize=22 local LBar=Instance.new("Frame",LF); LBar.Size=UDim2.new(0,240,0,6); LBar.Position=UDim2.new(0.5,-120,0.5,70); LBar.BackgroundColor3=Color3.fromRGB(210,210,215); LBar.BorderSizePixel=0; corner(LBar,999) local LFill=Instance.new("Frame",LBar); LFill.Size=UDim2.new(0,0,1,0); LFill.BackgroundColor3=Color3.fromRGB(0,122,255); LFill.BorderSizePixel=0; corner(LFill,999) for i=0,100,3 do TweenService:Create(LFill,TweenInfo.new(0.04),{Size=UDim2.new(i/100,0,1,0)}):Play() task.wait(0.025) end task.wait(0.3) TweenService:Create(LF,TweenInfo.new(0.5),{BackgroundTransparency=1}):Play() for _,d in ipairs(LF:GetDescendants()) do if d:IsA("TextLabel") then TweenService:Create(d,TweenInfo.new(0.4),{TextTransparency=1}):Play() elseif d:IsA("Frame") and d~=LF then TweenService:Create(d,TweenInfo.new(0.4),{BackgroundTransparency=1}):Play() end end task.wait(0.55) Loader:Destroy() -- ========================================== -- SCREEN GUI -- ========================================== local ScreenGui=Instance.new("ScreenGui"); ScreenGui.Name="TimeMachineGui"; ScreenGui.ResetOnSpawn=false; ScreenGui.IgnoreGuiInset=true; ScreenGui.DisplayOrder=999; ScreenGui.Parent=PlayerGui local MAIN_W,MAIN_H=360,400 -- ========================================== -- MAIN -- ========================================== local Main=Instance.new("Frame",ScreenGui) Main.Size=UDim2.new(0,MAIN_W,0,MAIN_H) Main.Position=UDim2.new(0.5,-MAIN_W/2,0.5,-MAIN_H/2) Main.BackgroundColor3=Color3.fromRGB(25,25,32); Main.BorderSizePixel=0 Main.Active=true; Main.Draggable=true; Main.ClipsDescendants=true; Main.ZIndex=1 corner(Main,16) local MS=stroke(Main,Color3.fromRGB(60,60,90),1) -- HEADER local Header=Instance.new("Frame",Main) Header.Size=UDim2.new(1,0,0,50); Header.BackgroundColor3=Color3.fromRGB(32,32,42) Header.BorderSizePixel=0; Header.ZIndex=15 corner(Header,16) local HF=Instance.new("Frame",Header) HF.Size=UDim2.new(1,0,0,14); HF.Position=UDim2.new(0,0,1,-14) HF.BackgroundColor3=Color3.fromRGB(32,32,42); HF.BorderSizePixel=0; HF.ZIndex=15 local CIcon=Instance.new("TextLabel",Header) CIcon.Size=UDim2.new(0,36,0,36); CIcon.Position=UDim2.new(0,10,0,7) CIcon.BackgroundTransparency=1; CIcon.Font=Enum.Font.GothamBold CIcon.Text="⏰"; CIcon.TextSize=22; CIcon.TextColor3=Color3.fromRGB(255,255,255); CIcon.ZIndex=16 local Title=Instance.new("TextLabel",Header) Title.Size=UDim2.new(1,-140,0,22); Title.Position=UDim2.new(0,50,0,7) Title.BackgroundTransparency=1; Title.Font=Enum.Font.GothamBold Title.Text="TIME MACHINE"; Title.TextColor3=Color3.fromRGB(255,255,255) Title.TextSize=15; Title.TextXAlignment=Enum.TextXAlignment.Left; Title.ZIndex=16 local SubTitle=Instance.new("TextLabel",Header) SubTitle.Size=UDim2.new(1,-140,0,14); SubTitle.Position=UDim2.new(0,50,0,28) SubTitle.BackgroundTransparency=1; SubTitle.Font=Enum.Font.Gotham SubTitle.Text="Выбери год"; SubTitle.TextColor3=Color3.fromRGB(150,150,170) SubTitle.TextSize=10; SubTitle.TextXAlignment=Enum.TextXAlignment.Left; SubTitle.ZIndex=16 local CurYear=Instance.new("TextLabel",Header) CurYear.Size=UDim2.new(0,56,0,22); CurYear.Position=UDim2.new(1,-108,0,14) CurYear.BackgroundColor3=Color3.fromRGB(140,90,255); CurYear.BorderSizePixel=0 CurYear.Font=Enum.Font.GothamBold; CurYear.Text="2026" CurYear.TextColor3=Color3.fromRGB(255,255,255); CurYear.TextSize=12; CurYear.ZIndex=16 corner(CurYear,11) local CloseBtn=Instance.new("TextButton",Header) CloseBtn.Size=UDim2.new(0,28,0,28); CloseBtn.Position=UDim2.new(1,-36,0,11) CloseBtn.BackgroundColor3=Color3.fromRGB(255,60,80); CloseBtn.BorderSizePixel=0 CloseBtn.Font=Enum.Font.GothamBold; CloseBtn.Text="×" CloseBtn.TextColor3=Color3.fromRGB(255,255,255); CloseBtn.TextSize=17 CloseBtn.AutoButtonColor=false; CloseBtn.ZIndex=20; CloseBtn.Active=true corner(CloseBtn,999) -- CONTENT local Content=Instance.new("ScrollingFrame",Main) Content.Size=UDim2.new(1,-20,1,-60); Content.Position=UDim2.new(0,10,0,56) Content.BackgroundTransparency=1; Content.BorderSizePixel=0 Content.ScrollBarThickness=4; Content.ScrollBarImageColor3=Color3.fromRGB(100,100,130) Content.CanvasSize=UDim2.new(0,0,0,0); Content.ZIndex=2 local CLayout=Instance.new("UIListLayout",Content) CLayout.Padding=UDim.new(0,8); CLayout.SortOrder=Enum.SortOrder.LayoutOrder local function UpdateCanvas() Content.CanvasSize=UDim2.new(0,0,0,CLayout.AbsoluteContentSize.Y+20) end CLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(UpdateCanvas) -- ========================================== -- ПАНЕЛИ -- ========================================== local ToolsPanel=Instance.new("Frame",Main) ToolsPanel.Size=UDim2.new(1,-20,1,-60); ToolsPanel.Position=UDim2.new(0,10,0,56) ToolsPanel.BackgroundColor3=Color3.fromRGB(25,25,32); ToolsPanel.BorderSizePixel=0 ToolsPanel.ClipsDescendants=true; ToolsPanel.Visible=false; ToolsPanel.ZIndex=10 corner(ToolsPanel,14); stroke(ToolsPanel,Color3.fromRGB(70,70,100),1) local TPScroll=Instance.new("ScrollingFrame",ToolsPanel) TPScroll.Size=UDim2.new(1,-12,1,-52); TPScroll.Position=UDim2.new(0,6,0,46) TPScroll.BackgroundTransparency=1; TPScroll.BorderSizePixel=0 TPScroll.ScrollBarThickness=3; TPScroll.CanvasSize=UDim2.new(0,0,0,0); TPScroll.ZIndex=11 local TPLayout=Instance.new("UIListLayout",TPScroll); TPLayout.Padding=UDim.new(0,6); TPLayout.ZIndex=11 local function UpdateTPCanvas() TPScroll.CanvasSize=UDim2.new(0,0,0,TPLayout.AbsoluteContentSize.Y+10) end TPLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(UpdateTPCanvas) local TPTitle=Instance.new("TextLabel",ToolsPanel) TPTitle.Size=UDim2.new(1,-50,0,40); TPTitle.Position=UDim2.new(0,10,0,4) TPTitle.BackgroundTransparency=1; TPTitle.Font=Enum.Font.GothamBold TPTitle.Text="🔧 ИНСТРУМЕНТЫ"; TPTitle.TextColor3=Color3.fromRGB(255,255,255) TPTitle.TextSize=14; TPTitle.TextXAlignment=Enum.TextXAlignment.Left; TPTitle.ZIndex=12 local TPClose=Instance.new("TextButton",ToolsPanel) TPClose.Size=UDim2.new(0,30,0,30); TPClose.Position=UDim2.new(1,-36,0,7) TPClose.BackgroundColor3=Color3.fromRGB(255,60,80); TPClose.BorderSizePixel=0 TPClose.Font=Enum.Font.GothamBold; TPClose.Text="×"; TPClose.TextColor3=Color3.fromRGB(255,255,255) TPClose.TextSize=16; TPClose.AutoButtonColor=false; TPClose.ZIndex=15; TPClose.Active=true corner(TPClose,999) local StylePanel=Instance.new("Frame",Main) StylePanel.Size=UDim2.new(1,-20,1,-60); StylePanel.Position=UDim2.new(0,10,0,56) StylePanel.BackgroundColor3=Color3.fromRGB(25,25,32); StylePanel.BorderSizePixel=0 StylePanel.ClipsDescendants=true; StylePanel.Visible=false; StylePanel.ZIndex=10 corner(StylePanel,14); stroke(StylePanel,Color3.fromRGB(70,70,100),1) local SPScroll=Instance.new("ScrollingFrame",StylePanel) SPScroll.Size=UDim2.new(1,-12,1,-52); SPScroll.Position=UDim2.new(0,6,0,46) SPScroll.BackgroundTransparency=1; SPScroll.BorderSizePixel=0 SPScroll.ScrollBarThickness=3; SPScroll.CanvasSize=UDim2.new(0,0,0,0); SPScroll.ZIndex=11 local SPLayout=Instance.new("UIListLayout",SPScroll); SPLayout.Padding=UDim.new(0,6); SPLayout.ZIndex=11 local function UpdateSPCanvas() SPScroll.CanvasSize=UDim2.new(0,0,0,SPLayout.AbsoluteContentSize.Y+10) end SPLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(UpdateSPCanvas) local SPTitle=Instance.new("TextLabel",StylePanel) SPTitle.Size=UDim2.new(1,-50,0,40); SPTitle.Position=UDim2.new(0,10,0,4) SPTitle.BackgroundTransparency=1; SPTitle.Font=Enum.Font.GothamBold SPTitle.Text="🎨 СТИЛЬ GUI"; SPTitle.TextColor3=Color3.fromRGB(255,255,255) SPTitle.TextSize=14; SPTitle.TextXAlignment=Enum.TextXAlignment.Left; SPTitle.ZIndex=12 local SPClose=Instance.new("TextButton",StylePanel) SPClose.Size=UDim2.new(0,30,0,30); SPClose.Position=UDim2.new(1,-36,0,7) SPClose.BackgroundColor3=Color3.fromRGB(255,60,80); SPClose.BorderSizePixel=0 SPClose.Font=Enum.Font.GothamBold; SPClose.Text="×"; SPClose.TextColor3=Color3.fromRGB(255,255,255) SPClose.TextSize=16; SPClose.AutoButtonColor=false; SPClose.ZIndex=15; SPClose.Active=true corner(SPClose,999) -- ========================================== -- ФУНКЦИИ -- ========================================== local function DestroyByName(c,n) local o=c:FindFirstChild(n); if o then o:Destroy() end end local function ApplyAnimations(character,yearData) local humanoid=character:FindFirstChildOfClass("Humanoid") if not humanoid or humanoid.RigType~=Enum.HumanoidRigType.R15 then return end local animate=character:FindFirstChild("Animate"); if not animate then return end local anims=COMMUNITY_ANIMS[tostring(yearData.year)] or COMMUNITY_ANIMS["2026"] local function setA(g,c,id) local gr=animate:FindFirstChild(g); if gr then local ch=gr:FindFirstChild(c); if ch and ch:IsA("Animation") then ch.AnimationId=id end end end setA("idle","Animation1",anims.idle); setA("idle","Animation2",anims.idle) setA("walk","WalkAnim",anims.walk); setA("run","RunAnim",anims.run) setA("jump","JumpAnim",anims.jump); setA("fall","FallAnim",anims.fall) setA("climb","ClimbAnim",anims.climb) if anims.sit then setA("sit","SitAnim",anims.sit) end if anims.swim then setA("swim","Swim",anims.swim) end humanoid.WalkSpeed=yearData.walkSpeed or 16 end local function ApplyYear(data) Lighting.Brightness=data.brightness; Lighting.ClockTime=data.clockTime Lighting.Ambient=data.ambient; Lighting.OutdoorAmbient=data.outdoor Lighting.GlobalShadows=data.shadows; Lighting.FogEnd=data.fogEnd; Lighting.FogColor=data.fogColor Lighting.EnvironmentDiffuseScale=data.envDiffuse; Lighting.EnvironmentSpecularScale=data.envSpecular local sk=Lighting:FindFirstChildOfClass("Sky") if data.skyId then if sk then sk:Destroy() end local ns=Instance.new("Sky",Lighting); ns.SkyboxBk=data.skyId; ns.SkyboxDn=data.skyId; ns.SkyboxFt=data.skyId; ns.SkyboxLf=data.skyId; ns.SkyboxRt=data.skyId; ns.SkyboxUp=data.skyId elseif sk and not OriginalSky then sk:Destroy() end DestroyByName(Lighting,"TMCC"); local cc=Instance.new("ColorCorrectionEffect",Lighting); cc.Name="TMCC"; cc.Brightness=data.year>=2015 and 0 or 0.2; cc.Saturation=data.year<=2010 and 0.3 or 0 DestroyByName(Lighting,"TMBloom"); local bl=Instance.new("BloomEffect",Lighting); bl.Name="TMBloom"; bl.Intensity=data.year>=2020 and 1.2 or 0.5 if data.material then task.spawn(function() for _,o in ipairs(Workspace:GetDescendants()) do if o:IsA("BasePart") and not o:IsDescendantOf(LocalPlayer.Character or game) then pcall(function() if not o:GetAttribute("TM_OM") then o:SetAttribute("TM_OM",o.Material.Name) end; o.Material=data.material end) end end end) end local char=LocalPlayer.Character; if char then ApplyAnimations(char,data) end TweenService:Create(CurYear,TweenInfo.new(0.4),{BackgroundColor3=data.accent}):Play() CurYear.Text=tostring(data.year) end local function SetSideCamera() Camera.CameraType=Enum.CameraType.Scriptable local char=LocalPlayer.Character; if not char then return end local hrp=char:FindFirstChild("HumanoidRootPart"); if not hrp then return end local baseCF=hrp.CFrame; local rightSide=baseCF*CFrame.new(12,4,-6); local lookAt=baseCF*CFrame.new(0,2,-8) local startCF=Camera.CFrame; local t=0; local conn conn=RunService.RenderStepped:Connect(function(dt) t=math.min(t+dt*1.5,1); local e=1-(1-t)^3; Camera.CFrame=startCF:Lerp(CFrame.lookAt(rightSide.Position,lookAt.Position),e); if t>=1 then conn:Disconnect() end end) end local function ResetCamera() Camera.CameraType=Enum.CameraType.Custom; Camera.CameraSubject=LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") end local function MakePortalGun(char) local hrp=char:WaitForChild("HumanoidRootPart") local gun=Instance.new("Model",char); gun.Name="TMPortalGun" local base=Instance.new("Part",gun); base.Size=Vector3.new(0.4,0.4,1.2); base.Material=Enum.Material.Metal; base.Color=Color3.fromRGB(80,90,80); base.CanCollide=false; base.Massless=true local barrel=Instance.new("Part",gun); barrel.Size=Vector3.new(0.25,0.25,0.9); barrel.Material=Enum.Material.Neon; barrel.Color=Color3.fromRGB(80,255,120); barrel.CanCollide=false; barrel.Massless=true local tip=Instance.new("Part",gun); tip.Shape=Enum.PartType.Ball; tip.Size=Vector3.new(0.4,0.4,0.4); tip.Material=Enum.Material.Neon; tip.Color=Color3.fromRGB(120,255,140); tip.CanCollide=false; tip.Massless=true local light=Instance.new("PointLight",tip); light.Color=Color3.fromRGB(80,255,120); light.Range=12; light.Brightness=3 local rightArm=char:FindFirstChild("Right Arm") or char:FindFirstChild("RightHand") if rightArm then base.CFrame=rightArm.CFrame*CFrame.new(0,-0.5,-1); barrel.CFrame=base.CFrame*CFrame.new(0,0,-0.9); tip.CFrame=base.CFrame*CFrame.new(0,0,-1.5) local m=Instance.new("Motor6D",base); m.Part0=rightArm; m.Part1=base; m.C0=CFrame.new(0,-0.5,-1) local m2=Instance.new("Motor6D",barrel); m2.Part0=base; m2.Part1=barrel; m2.C0=CFrame.new(0,0,-0.9) local m3=Instance.new("Motor6D",tip); m3.Part0=base; m3.Part1=tip; m3.C0=CFrame.new(0,0,-1.5) else base.CFrame=hrp.CFrame*CFrame.new(1.5,0,-1); barrel.CFrame=base.CFrame*CFrame.new(0,0,-0.9); tip.CFrame=base.CFrame*CFrame.new(0,0,-1.5) local w1=Instance.new("WeldConstraint",base); w1.Part0=hrp; w1.Part1=base local w2=Instance.new("WeldConstraint",barrel); w2.Part0=base; w2.Part1=barrel local w3=Instance.new("WeldConstraint",tip); w3.Part0=base; w3.Part1=tip end return gun,tip end local function SpawnPortal(position,facingCF) local portal=Instance.new("Model",Workspace); portal.Name="TMPortal" local ring=Instance.new("Part",portal); ring.Shape=Enum.PartType.Cylinder; ring.Size=Vector3.new(0.5,8,8); ring.CFrame=facingCF*CFrame.Angles(0,0,math.rad(90)); ring.Material=Enum.Material.Neon; ring.Color=Color3.fromRGB(80,255,120); ring.CanCollide=false; ring.Anchored=true local inner=Instance.new("Part",portal); inner.Shape=Enum.PartType.Cylinder; inner.Size=Vector3.new(0.4,6.5,6.5); inner.CFrame=ring.CFrame; inner.Material=Enum.Material.Neon; inner.Color=Color3.fromRGB(200,255,200); inner.CanCollide=false; inner.Anchored=true local outline=Instance.new("Part",portal); outline.Shape=Enum.PartType.Cylinder; outline.Size=Vector3.new(0.55,8.4,8.4); outline.CFrame=ring.CFrame; outline.Material=Enum.Material.SmoothPlastic; outline.Color=Color3.fromRGB(20,100,40); outline.CanCollide=false; outline.Anchored=true local pl=Instance.new("PointLight",ring); pl.Color=Color3.fromRGB(80,255,120); pl.Range=20; pl.Brightness=4 local em=Instance.new("ParticleEmitter",ring); em.Texture="rbxassetid://241396874"; em.Color=ColorSequence.new(Color3.fromRGB(80,255,120),Color3.fromRGB(255,255,255)); em.Size=NumberSequence.new({NumberSequenceKeypoint.new(0,0.5),NumberSequenceKeypoint.new(1,0)}); em.Lifetime=NumberRange.new(0.8,1.5); em.Rate=40; em.Speed=NumberRange.new(3,6); em.SpreadAngle=Vector2.new(180,180); em.LightEmission=0.7 ring.Size=Vector3.new(0.5,0,0); inner.Size=Vector3.new(0.4,0,0); outline.Size=Vector3.new(0.55,0,0) TweenService:Create(ring,TweenInfo.new(0.6,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=Vector3.new(0.5,8,8)}):Play() TweenService:Create(inner,TweenInfo.new(0.6,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=Vector3.new(0.4,6.5,6.5)}):Play() TweenService:Create(outline,TweenInfo.new(0.6,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=Vector3.new(0.55,8.4,8.4)}):Play() task.spawn(function() while portal.Parent do local t=tick()*2; local h=(math.sin(t)*0.5+0.5)*0.15+0.28; ring.Color=Color3.fromHSV(h,1,1); task.wait(0.05) end end) return portal,ring end local function PlayPortalCinematic(yearData,onFinish) local char=LocalPlayer.Character; if not char then return onFinish() end local hrp=char:FindFirstChild("HumanoidRootPart"); if not hrp then return onFinish() end local humanoid=char:FindFirstChildOfClass("Humanoid") local oldWalk=humanoid.WalkSpeed; humanoid.WalkSpeed=0 SetSideCamera(); task.wait(0.3) local gun,tip=MakePortalGun(char); task.wait(0.4) if tip and tip.Parent then TweenService:Create(tip,TweenInfo.new(0.4),{CFrame=tip.CFrame*CFrame.Angles(math.rad(-15),0,0)}):Play() end task.wait(0.35) local portalPos=hrp.CFrame*CFrame.new(0,0,-12) local portal,ring=SpawnPortal(portalPos.Position,CFrame.new(portalPos.Position,portalPos.Position+hrp.CFrame.LookVector*-1)) local sound=Instance.new("Sound",ring); sound.SoundId=PORTAL_SOUNDS[yearData.year] or "rbxassetid://131237241"; sound.Volume=3; sound.PlaybackSpeed=1+(yearData.year-2000)*0.01; sound:Play(); Debris:AddItem(sound,5) task.wait(0.7) if humanoid then humanoid.WalkSpeed=yearData.walkSpeed or 16 humanoid:MoveTo(portalPos.Position) local start=tick() while (hrp.Position-portalPos.Position).Magnitude>3 and tick()-start<3 do task.wait(0.05) end end local flash=Instance.new("ColorCorrectionEffect",Lighting); flash.Name="TMPortalFlash"; flash.Brightness=0; flash.TintColor=Color3.fromRGB(200,255,200) TweenService:Create(flash,TweenInfo.new(0.3),{Brightness=0.6}):Play(); task.wait(0.15) TweenService:Create(ring,TweenInfo.new(0.4),{Size=Vector3.new(0.5,0,0)}):Play(); task.wait(0.4) if portal then portal:Destroy() end; if gun then gun:Destroy() end ResetCamera() TweenService:Create(flash,TweenInfo.new(0.4),{Brightness=0,TintColor=Color3.fromRGB(255,255,255)}):Play() task.wait(0.4); if flash then flash:Destroy() end if humanoid then humanoid.WalkSpeed=oldWalk end onFinish() end -- ========================================== -- ИНСТРУМЕНТЫ -- ========================================== local spawnedTools={} local function MakeTool(td,yd) local tool=Instance.new("Tool"); tool.Name=td.name; tool.RequiresHandle=true; tool.CanBeDropped=false local handle=Instance.new("Part",tool); handle.Name="Handle"; handle.Size=Vector3.new(0.6,0.6,2.2); handle.Material=yd.material or Enum.Material.Metal; handle.Color=td.color; handle.TopSurface=Enum.SurfaceType.Smooth; handle.BottomSurface=Enum.SurfaceType.Smooth if yd.year>=2020 then handle.Material=Enum.Material.Neon; local pl=Instance.new("PointLight",handle); pl.Color=td.color; pl.Range=8; pl.Brightness=2 end if td.class=="Sword" then local blade=Instance.new("Part",tool); blade.Size=Vector3.new(0.15,0.5,3); blade.Material=Enum.Material.Metal; blade.Color=td.color; blade.CanCollide=false; blade.Massless=true; blade.Name="Blade" local weld=Instance.new("WeldConstraint",blade); weld.Part0=handle; weld.Part1=blade; blade.CFrame=handle.CFrame*CFrame.new(0,0,-1.5) end local dmg=td.damage or 10; local touched={} handle.Touched:Connect(function(hit) local ch=hit.Parent; local hum=ch and ch:FindFirstChildOfClass("Humanoid"); if hum and not touched[hum] then touched[hum]=true; hum:TakeDamage(dmg); task.wait(0.5); touched[hum]=nil end end) return tool end local function ToggleYearTools(yearNum,yearData,btn,dot) if spawnedTools[yearNum] and #spawnedTools[yearNum]>0 then for _,t in ipairs(spawnedTools[yearNum]) do if t and t.Parent then t:Destroy() end end spawnedTools[yearNum]=nil TweenService:Create(btn,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(42,42,56)}):Play() if dot then TweenService:Create(dot,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(90,90,120)}):Play() end else local bp=LocalPlayer:FindFirstChildOfClass("Backpack"); if not bp then return end local list=TOOLS_BY_YEAR[yearNum]; if not list then return end spawnedTools[yearNum]={} for _,td in ipairs(list) do local t=MakeTool(td,yearData); t.Parent=bp; table.insert(spawnedTools[yearNum],t) end TweenService:Create(btn,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(60,60,90)}):Play() if dot then TweenService:Create(dot,TweenInfo.new(0.25),{BackgroundColor3=yearData.accent}):Play() end end end -- ========================================== -- СТИЛЬ GUI -- ========================================== local activeStyleBtn=nil local function ApplyGuiStyle(s) TweenService:Create(Main,TweenInfo.new(0.35),{BackgroundColor3=s.bg}):Play(); corner(Main,s.corner) TweenService:Create(Header,TweenInfo.new(0.35),{BackgroundColor3=s.panel}):Play(); corner(Header,s.corner) TweenService:Create(HF,TweenInfo.new(0.35),{BackgroundColor3=s.panel}):Play() MS.Color=s.accent; MS.Thickness=s.strokeTh>0 and s.strokeTh or 1 Title.Font=s.font; Title.TextColor3=s.text; Title.TextSize=s.textSize+2 SubTitle.Font=s.font; SubTitle.TextColor3=s.text TweenService:Create(CurYear,TweenInfo.new(0.35),{BackgroundColor3=s.accent}):Play(); corner(CurYear,s.corner>4 and s.corner or 4) corner(CloseBtn,s.corner>6 and 999 or 4) for _,b in ipairs(Content:GetChildren()) do if b:IsA("TextButton") then corner(b,s.corner) for _,ch in ipairs(b:GetChildren()) do if ch:IsA("TextLabel") then ch.Font=s.font; ch.TextColor3=s.text end end end end corner(ToolsPanel,s.corner); corner(StylePanel,s.corner) for _,parent in ipairs({TPScroll,SPScroll}) do for _,b in ipairs(parent:GetChildren()) do if b:IsA("TextButton") then corner(b,s.corner) for _,ch in ipairs(b:GetChildren()) do if ch:IsA("TextLabel") then ch.Font=s.font; ch.TextColor3=s.text end end end end end end -- ========================================== -- ГОДЫ -- ========================================== local activeBtn,activeYear local function MakeYearButton(y,order) local Btn=Instance.new("TextButton",Content) Btn.Size=UDim2.new(1,-8,0,58); Btn.BackgroundColor3=Color3.fromRGB(42,42,56) Btn.BorderSizePixel=0; Btn.Text=""; Btn.AutoButtonColor=false; Btn.LayoutOrder=order corner(Btn,12); stroke(Btn,Color3.fromRGB(70,70,100),1) local YL=Instance.new("TextLabel",Btn) YL.Size=UDim2.new(0,70,1,0); YL.Position=UDim2.new(0,12,0,0) YL.BackgroundTransparency=1; YL.Font=Enum.Font.GothamBlack YL.Text=y.name; YL.TextColor3=Color3.fromRGB(255,255,255); YL.TextSize=20 YL.TextXAlignment=Enum.TextXAlignment.Left local DL=Instance.new("TextLabel",Btn) DL.Size=UDim2.new(1,-100,1,0); DL.Position=UDim2.new(0,88,0,0) DL.BackgroundTransparency=1; DL.Font=Enum.Font.Gotham DL.Text=y.desc; DL.TextColor3=Color3.fromRGB(170,170,190); DL.TextSize=11 DL.TextWrapped=true; DL.TextXAlignment=Enum.TextXAlignment.Left local Dot=Instance.new("Frame",Btn) Dot.Size=UDim2.new(0,8,0,8); Dot.Position=UDim2.new(1,-18,0.5,-4) Dot.BackgroundColor3=Color3.fromRGB(90,90,120); Dot.BorderSizePixel=0; corner(Dot,999) Btn.MouseEnter:Connect(function() if activeBtn~=Btn then TweenService:Create(Btn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(52,52,70)}):Play() end end) Btn.MouseLeave:Connect(function() if activeBtn~=Btn then TweenService:Create(Btn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(42,42,56)}):Play() end end) Btn.MouseButton1Click:Connect(function() if activeBtn and activeBtn~=Btn then TweenService:Create(activeBtn,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(42,42,56)}):Play() local od=activeBtn:FindFirstChildOfClass("Frame"); if od then TweenService:Create(od,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(90,90,120)}):Play() end end activeBtn=Btn; activeYear=y.year TweenService:Create(Btn,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(60,60,90)}):Play() TweenService:Create(Dot,TweenInfo.new(0.25),{BackgroundColor3=y.accent}):Play() PlayPortalCinematic(y,function() ApplyYear(y) end) end) end for i,y in ipairs(YEARS) do MakeYearButton(y,i) end -- Нижние кнопки local ToolsBtn=Instance.new("TextButton",Content) ToolsBtn.Size=UDim2.new(1,-8,0,38); ToolsBtn.BackgroundColor3=Color3.fromRGB(50,50,70) ToolsBtn.BorderSizePixel=0; ToolsBtn.Font=Enum.Font.GothamBold ToolsBtn.Text="🔧 ИНСТРУМЕНТЫ"; ToolsBtn.TextColor3=Color3.fromRGB(255,255,255) ToolsBtn.TextSize=12; ToolsBtn.AutoButtonColor=false; ToolsBtn.LayoutOrder=100; corner(ToolsBtn,10) local StyleBtn=Instance.new("TextButton",Content) StyleBtn.Size=UDim2.new(1,-8,0,38); StyleBtn.BackgroundColor3=Color3.fromRGB(50,50,70) StyleBtn.BorderSizePixel=0; StyleBtn.Font=Enum.Font.GothamBold StyleBtn.Text="🎨 СТИЛЬ GUI"; StyleBtn.TextColor3=Color3.fromRGB(255,255,255) StyleBtn.TextSize=12; StyleBtn.AutoButtonColor=false; StyleBtn.LayoutOrder=101; corner(StyleBtn,10) local ResetBtn=Instance.new("TextButton",Content) ResetBtn.Size=UDim2.new(1,-8,0,42); ResetBtn.BackgroundColor3=Color3.fromRGB(60,60,80) ResetBtn.BorderSizePixel=0; ResetBtn.Font=Enum.Font.GothamBold ResetBtn.Text="СБРОСИТЬ ВСЁ"; ResetBtn.TextColor3=Color3.fromRGB(255,255,255) ResetBtn.TextSize=12; ResetBtn.AutoButtonColor=false; ResetBtn.LayoutOrder=102; corner(ResetBtn,10) -- Кнопки инструментов for _,y in ipairs(YEARS) do local btn=Instance.new("TextButton",TPScroll) btn.Size=UDim2.new(1,0,0,42); btn.BackgroundColor3=Color3.fromRGB(42,42,56) btn.BorderSizePixel=0; btn.Text=""; btn.AutoButtonColor=false; corner(btn,10) local label=Instance.new("TextLabel",btn) label.Size=UDim2.new(0.5,0,1,0); label.Position=UDim2.new(0,12,0,0) label.BackgroundTransparency=1; label.Font=Enum.Font.GothamBold label.Text=y.name; label.TextColor3=Color3.fromRGB(255,255,255) label.TextSize=14; label.TextXAlignment=Enum.TextXAlignment.Left local cnt=Instance.new("TextLabel",btn) cnt.Size=UDim2.new(0.4,-20,1,0); cnt.Position=UDim2.new(0.5,0,0,0) cnt.BackgroundTransparency=1; cnt.Font=Enum.Font.Gotham cnt.Text=#(TOOLS_BY_YEAR[y.year] or {}).." шт."; cnt.TextColor3=Color3.fromRGB(170,170,190) cnt.TextSize=11; cnt.TextXAlignment=Enum.TextXAlignment.Right local dot=Instance.new("Frame",btn) dot.Size=UDim2.new(0,8,0,8); dot.Position=UDim2.new(1,-18,0.5,-4) dot.BackgroundColor3=Color3.fromRGB(90,90,120); dot.BorderSizePixel=0; corner(dot,999) btn.MouseEnter:Connect(function() TweenService:Create(btn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(52,52,70)}):Play() end) btn.MouseLeave:Connect(function() if not (spawnedTools[y.year] and #spawnedTools[y.year]>0) then TweenService:Create(btn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(42,42,56)}):Play() end end) btn.MouseButton1Click:Connect(function() ToggleYearTools(y.year,y,btn,dot) end) end -- Кнопки стилей for _,s in ipairs(GUI_STYLES) do local btn=Instance.new("TextButton",SPScroll) btn.Size=UDim2.new(1,0,0,42); btn.BackgroundColor3=s.panel btn.BorderSizePixel=0; btn.Text=""; btn.AutoButtonColor=false corner(btn,s.corner>4 and s.corner or 4) local label=Instance.new("TextLabel",btn) label.Size=UDim2.new(0.5,0,1,0); label.Position=UDim2.new(0,12,0,0) label.BackgroundTransparency=1; label.Font=s.font label.Text=s.name; label.TextColor3=s.text; label.TextSize=14 label.TextXAlignment=Enum.TextXAlignment.Left local desc=Instance.new("TextLabel",btn) desc.Size=UDim2.new(0.5,-20,1,0); desc.Position=UDim2.new(0.5,0,0,0) desc.BackgroundTransparency=1; desc.Font=s.font desc.Text="стиль"; desc.TextColor3=s.text; desc.TextSize=11 desc.TextXAlignment=Enum.TextXAlignment.Right local dot=Instance.new("Frame",btn) dot.Size=UDim2.new(0,8,0,8); dot.Position=UDim2.new(1,-18,0.5,-4) dot.BackgroundColor3=s.accent; dot.BorderSizePixel=0; corner(dot,999) btn.MouseEnter:Connect(function() TweenService:Create(btn,TweenInfo.new(0.15),{BackgroundColor3=s.accent}):Play() end) btn.MouseLeave:Connect(function() if activeStyleBtn~=btn then TweenService:Create(btn,TweenInfo.new(0.15),{BackgroundColor3=s.panel}):Play() end end) btn.MouseButton1Click:Connect(function() if activeStyleBtn and activeStyleBtn~=btn then TweenService:Create(activeStyleBtn,TweenInfo.new(0.2),{BackgroundColor3=activeStyleBtn:GetAttribute("BaseColor") or s.panel}):Play() end activeStyleBtn=btn; btn:SetAttribute("BaseColor",s.panel) TweenService:Create(btn,TweenInfo.new(0.2),{BackgroundColor3=s.accent}):Play() ApplyGuiStyle(s) end) end -- ========================================== -- ОТКРЫТИЕ ПАНЕЛЕЙ -- ========================================== local function OpenPanel(panel) panel.Visible=true panel.Size=UDim2.new(1,-20,0,0) TweenService:Create(panel,TweenInfo.new(0.3,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Size=UDim2.new(1,-20,1,-60)}):Play() end local function ClosePanel(panel) TweenService:Create(panel,TweenInfo.new(0.3,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Size=UDim2.new(1,-20,0,0)}):Play() task.wait(0.3); panel.Visible=false end ToolsBtn.MouseButton1Click:Connect(function() OpenPanel(ToolsPanel) end) ToolsBtn.MouseEnter:Connect(function() TweenService:Create(ToolsBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(70,70,90)}):Play() end) ToolsBtn.MouseLeave:Connect(function() TweenService:Create(ToolsBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(50,50,70)}):Play() end) StyleBtn.MouseButton1Click:Connect(function() OpenPanel(StylePanel) end) StyleBtn.MouseEnter:Connect(function() TweenService:Create(StyleBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(70,70,90)}):Play() end) StyleBtn.MouseLeave:Connect(function() TweenService:Create(StyleBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(50,50,70)}):Play() end) TPClose.MouseButton1Click:Connect(function() ClosePanel(ToolsPanel) end) SPClose.MouseButton1Click:Connect(function() ClosePanel(StylePanel) end) -- ========================================== -- FAB -- ========================================== local FAB=Instance.new("TextButton",ScreenGui) FAB.Size=UDim2.new(0,60,0,60) FAB.Position=UDim2.new(1,-80,0.5,-30) FAB.BackgroundColor3=Color3.fromRGB(140,90,255) FAB.BorderSizePixel=0 FAB.Text="⏰" FAB.TextColor3=Color3.fromRGB(255,255,255) FAB.TextSize=30 FAB.Font=Enum.Font.GothamBold FAB.AutoButtonColor=false FAB.Visible=false FAB.Active=true FAB.ZIndex=100 corner(FAB,14) local FABStroke=stroke(FAB,Color3.fromRGB(180,140,255),2) 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 fabDragStart,fabStartPos,fabMoved FAB.InputBegan:Connect(function(input) if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then fabDragStart=input.Position fabStartPos=FAB.Position fabMoved=false local conn conn=UserInputService.InputChanged:Connect(function(inp) 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 fabMoved=true local vp=Camera.ViewportSize local newX=fabStartPos.X.Offset+delta.X local newY=fabStartPos.Y.Offset+delta.Y newX=math.clamp(newX,4,vp.X-FAB.AbsoluteSize.X-4) newY=math.clamp(newY,4,vp.Y-FAB.AbsoluteSize.Y-4) FAB.Position=UDim2.new(0,newX,0,newY) end end end) local endConn endConn=UserInputService.InputEnded:Connect(function(inp) if inp.UserInputType==Enum.UserInputType.MouseButton1 or inp.UserInputType==Enum.UserInputType.Touch then conn:Disconnect(); endConn:Disconnect() if not fabMoved then FAB.Visible=false Main.Visible=true end end end) end end) -- ========================================== -- КРЕСТИК -- ========================================== CloseBtn.MouseButton1Click:Connect(function() Main.Visible=false FAB.Visible=true end) UserInputService.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode==Enum.KeyCode.RightControl then if Main.Visible then Main.Visible=false FAB.Visible=true else Main.Visible=true FAB.Visible=false end end end) -- ========================================== -- СБРОС -- ========================================== ResetBtn.MouseButton1Click:Connect(function() Lighting.Brightness=Original.Brightness; Lighting.ClockTime=Original.ClockTime Lighting.Ambient=Original.Ambient; Lighting.OutdoorAmbient=Original.OutdoorAmbient Lighting.GlobalShadows=Original.GlobalShadows; Lighting.FogEnd=Original.FogEnd; Lighting.FogColor=Original.FogColor Lighting.EnvironmentDiffuseScale=Original.EnvDiffuse; Lighting.EnvironmentSpecularScale=Original.EnvSpecular DestroyByName(Lighting,"TMCC"); DestroyByName(Lighting,"TMBloom") local sk=Lighting:FindFirstChildOfClass("Sky"); if sk then sk:Destroy() end if OriginalSky then OriginalSky:Clone().Parent=Lighting end for _,o in ipairs(Workspace:GetDescendants()) do if o:IsA("BasePart") then pcall(function() local m=o:GetAttribute("TM_OM"); if m and Enum.Material[m] then o.Material=Enum.Material[m] end end) end end for yNum,list in pairs(spawnedTools) do for _,t in ipairs(list) do if t and t.Parent then t:Destroy() end end end spawnedTools={} local char=LocalPlayer.Character; if char then local h=char:FindFirstChildOfClass("Humanoid"); if h then h.WalkSpeed=16 end end if activeBtn then TweenService:Create(activeBtn,TweenInfo.new(0.25),{BackgroundColor3=Color3.fromRGB(42,42,56)}):Play(); activeBtn=nil end CurYear.Text="—" if ToolsPanel.Visible then ClosePanel(ToolsPanel) end if StylePanel.Visible then ClosePanel(StylePanel) end end) ResetBtn.MouseEnter:Connect(function() TweenService:Create(ResetBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(80,80,100)}):Play() end) ResetBtn.MouseLeave:Connect(function() TweenService:Create(ResetBtn,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(60,60,80)}):Play() end) task.spawn(function() for _=1,30 do task.wait(0.1); UpdateCanvas(); UpdateTPCanvas(); UpdateSPCanvas() end end) print("[Time Machine v7] Готово. × скрывает, FAB ⏰ возвращает. RightControl — toggle.")