GenGalaxy

Untitled

Apr 18th, 2026
39
0
Never
7
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 56.64 KB | None | 0 0
  1. --[=[
  2.     [[open source code]]
  3.     thanks for using pshade ultimate
  4.    
  5.     pshade is made by content creator on youtube called @Im_patrick feel free to subs
  6.    
  7.     some code might be obfuscated for privacy or security reason (example : feedback)
  8.     this is not mean to be edited/stolen
  9.    
  10.     This script is still in beta stage so make sure to use the loadstring so it can always be updated
  11.    
  12.     https://randomstring0.github.io/pshade.github.io/
  13. ]=]
  14.  
  15. if _G.pshade then return warn"pshade already loaded!" end
  16. if not game then local game=Workspace['Parent'] end
  17. if not game:IsLoaded() then game["Loaded"]:Wait() end
  18.  
  19.  
  20.  
  21. local update = [=[
  22.     > running shaders now run realtime perfectly
  23.     > added global illumination [ beta ]
  24.     > fixed blur effect
  25.     > added adjust auto load and fix ui size
  26.     > small update for gui
  27.     > fixed some features not showing up
  28.     > faster preview
  29.     > lighting element cannot be deleted fix
  30.     > night theme
  31.     > small fix and error handle
  32.     > small debug update
  33.     > more games support
  34.     > skybox added
  35.     > filesystem fix
  36.     > slow load fix
  37.     > more adjustment stuff
  38.     > new ui and old ui combination
  39.     > gui dragging fix
  40.     > shader load faster
  41. ]=]
  42.  
  43. _G.pshade=true
  44. _G.vers="1.4.9"
  45. local light
  46.  
  47. local game=game
  48. local xpcall=xpcall
  49. local type=type
  50. local next=next
  51. local pcall=pcall
  52. local typeof=typeof
  53.  
  54. local mrandom,schar, mfloor,mhuge=math['random'],string['char'],math['floor'],math['huge']
  55. local mfloor,mceil=math['floor'],math['ceil']
  56. local twait,tspawn=task['wait'], task['spawn']
  57. local mclam,mround=math['clamp'],math['round']
  58. local mcos,msin,mtan=math['cos'],math['sin'],math['tan']
  59. local mabs,mdeg,mrad=math['abs'],math['deg'],math['rad']
  60. local msqrt=math['sqrt']
  61. local di=debug['info']
  62.  
  63. local findclass=game["FindFirstChildOfClass"]
  64. local getchild=game["GetChildren"]
  65. local clone=game["Clone"]
  66. local destroy=game["Destroy"]
  67. local find=game['FindFirstChild']
  68. local isa=game["IsA"]
  69.  
  70. local ins=Instance['new']
  71. local ws=findclass(game,'Workspace')
  72. local cam=find(ws,"Camera")
  73. local lg=findclass(game,"Lighting")
  74. local terr=findclass(ws,"Terrain")
  75. local uis=findclass(game,"UserInputService")
  76. local tween=findclass(game,"TweenService")
  77. local http=findclass(game,"HttpService")
  78. local market=findclass(game,"MarketplaceService")
  79. local rs=findclass(game,"RunService")
  80. local plrs=findclass(game,"Players")
  81. local lp=plrs['LocalPlayer']
  82. local pg=lp['PlayerGui']
  83. local mouse=lp:GetMouse()
  84. local sett1=nil
  85. local fenv=getfenv()
  86. local shp=fenv['sethiddenproperty'] or fenv['sethiddenprop'] or fenv['set_hidden_property'] or fenv['set_hidden_prop'] or function() return end
  87. local ghp=fenv['gethiddenproperty'] or fenv['gethiddenprop'] or function() return end
  88. local httpget=function(a) return loadstring(game:HttpGet(a))() end --fenv['HttpGet']
  89. local read,write,file=fenv['readfile'],fenv['writefile'],fenv['isfile']
  90. local setclip=fenv['setclipboard'] or function() return end
  91. local fdist,fsize,ftrans={1.7,0.3,-0.3,-0.9},{0.7,0.2,1.2,0.45},{0.8,0.7,0.9,0.6}
  92. local fls,sre,sflare,rmod={},ins('ScreenGui',pg),ins('ImageLabel'),1
  93. local bmut,ber,lor=11,5,cam['CFrame']['LookVector']
  94. local colorcor,atmosphere,bloom,blur,depth,sky,sray,cloud
  95. local randomstring='https://raw.githubusercontent.com/randomstring0/pshade-ultimate/refs/heads/main/'
  96. local technology=ghp(lg,'Technology') or 'ShadowMap'
  97. local lan=httpget(randomstring..'lan/every.json')
  98. local randomsky=randomstring..'sky/'
  99. if rs:IsStudio() then return end
  100. local src=randomstring..'src/'
  101. local flare,motionblur
  102. local wshade=true
  103. local thick = tick()
  104. local restore={}
  105. local shader={}
  106. local skybox={}
  107. local new={}
  108. local wl={}
  109. shader.__index=shader
  110.  
  111.  
  112. local sc=httpget(src..'ui')
  113. local image=sc["mainmage"]
  114. local main=image["main"]
  115. local addfr=main["addtionframe"]['Frame']
  116. local mbar=main["mainbar"]['Frame']
  117. local mpage=main['mainpage']
  118.  
  119. local prop=main["propperty sample"]
  120. local ntf=sc['notif']
  121. local icon=sc['icon']
  122.  
  123. local click=sc['click']
  124. local clicking=sc['clicking']
  125. local color=sc['colorvalue']
  126. local intro=sc['intro']
  127.  
  128. local intext=intro['main']['TextLabel']
  129. local title=mbar['Frame']['maintitle']
  130. local barfunc=mbar['functionbar']
  131.  
  132. local page=mpage['page']['Frame']
  133. local spage=mpage['showpage']
  134.  
  135. local shadertog=addfr['toggleshaderframe']
  136. local togd=shadertog['handle']
  137. local home=spage['home']
  138. local changelog=home['ScrollingFrame']['changelog']
  139.  
  140. local xddcc="70736861646520756C74696D617465"
  141. coroutine['wrap'](function() httpget(src..'check.lua') end)()
  142. local shader
  143. local check=true
  144. shp(lg,'Technology',"ShadowMap")
  145.  
  146. local adjust={
  147.     ['reflect']=nil,
  148.     ['waterspeed']=nil,
  149. }
  150.  
  151. local tween=function(i,p,d)
  152.     local d=d or 1
  153.     return tween:Create(i,TweenInfo['new'](d,Enum['EasingStyle']['Exponential'],Enum['EasingDirection']['Out']),p):Play()
  154. end
  155.  
  156. local drag=function(n,s)
  157.     local dr,di,ds,sp=false,nil,Vector3['new'](0,0,0),nil
  158.     local move=function(i)
  159.         local d=i['Position']-ds
  160.         local p=UDim2['new'](sp['X']['Scale'],sp['X']['Offset']+d['X'],sp['Y']['Scale'],sp['Y']['Offset']+d['Y'])
  161.         tween(s,{Position=p},.15)
  162.     end
  163.  
  164.     n['InputBegan']:Connect(function(i)
  165.         if i['UserInputType'] == Enum['UserInputType']['MouseButton1'] or i['UserInputType'] == Enum['UserInputType']['Touch'] then
  166.             dr,ds,sp=true,i['Position'],s['Position']
  167.             i['Changed']:Connect(function()
  168.                 if i['UserInputState'] == Enum['UserInputState']['End'] then
  169.                     dr=false
  170.                 end
  171.             end)
  172.         end
  173.     end)
  174.  
  175.     n['InputChanged']:Connect(function(i)
  176.         if i['UserInputType'] == Enum['UserInputType']['MouseMovement'] or i['UserInputType'] == Enum['UserInputType']['Touch'] then
  177.             di=i
  178.         end
  179.     end)
  180.  
  181.     uis['InputChanged']:Connect(function(i)
  182.         if i==di and dr then
  183.             move(i)
  184.         end
  185.     end)
  186. end
  187.  
  188. local notif=function(t,d)
  189.     coroutine['wrap'](function()
  190.         local n=clone(ntf)
  191.         n['Parent']=sc
  192.         n['Image']=image['Image']
  193.         n['title']['Text']=t
  194.         n['Visible']=true
  195.         n['Size']=UDim2['new'](0,0,0,0)
  196.         tween(n,{Size=UDim2['new'](0.512,0,0.118,0)},.3)
  197.         twait(d or 3)
  198.         tween(n,{Position=UDim2['new'](0.5,0,0,-30)},.5)
  199.         twait(.5)
  200.         n:Destroy()
  201.     end)()
  202. end
  203.  
  204. local fh=function(s)
  205.     return (s:gsub('..', function(c)
  206.         return schar(tonumber(c, 16))
  207.     end))
  208. end
  209.  
  210. local random=function(l)
  211.     local s=""
  212.     local l=l or 5
  213.     for i=1,l do
  214.         local n=mrandom(1,3)
  215.         if n==1 then
  216.             s=s..schar(mrandom(65,90))
  217.         elseif n==2 then
  218.             s=s..schar(mrandom(97,122))
  219.         else
  220.             s=s..tostring(mrandom(0,9))
  221.         end
  222.     end
  223.     return s
  224. end
  225.  
  226. tspawn(function()
  227.     for i=1,mrandom(5,35) do
  228.         local x=ins("IntValue",lg)
  229.         x.Name=random()
  230.     end
  231. end)
  232.  
  233. local bestname=random()
  234. coroutine['wrap'](function()
  235.     if findclass(lg,"BloomEffect") then
  236.         findclass(lg,"BloomEffect")['Enabled']=false
  237.         local b=clone(findclass(lg,"BloomEffect"))
  238.         b['Parent']=lg
  239.         b['Enabled']=true
  240.         bloom=b
  241.         table['insert'](restore,b)
  242.         table['insert'](new,bloom)
  243.     end
  244.     if findclass(lg,"Sky") then
  245.         local b=clone(findclass(lg,"Sky"))
  246.         b['Parent']=lg
  247.         sky=b
  248.         table['insert'](restore,b)
  249.         table['insert'](new,sky)
  250.     end
  251.     if findclass(lg,"Atmosphere") then
  252.         local b=clone(findclass(lg,"Atmosphere"))
  253.         b['Parent']=lg
  254.         atmosphere=b
  255.         table['insert'](restore,b)
  256.         table['insert'](new,sky)
  257.     end
  258.     if findclass(lg,"BlurEffect") then
  259.         findclass(lg,"BlurEffect")['Size']=0
  260.         local b=clone(findclass(lg,"BlurEffect"))
  261.         b['Parent']=lg
  262.         b['Enabled']=true
  263.         blur=b
  264.         table['insert'](restore,b)
  265.         table['insert'](new,sky)
  266.     end
  267.     if findclass(lg,"DepthOfFieldEffect") then
  268.         findclass(lg,"DepthOfFieldEffect")['Enabled']=false
  269.         local b=clone(findclass(lg,"DepthOfFieldEffect"))
  270.         b['Parent']=lg
  271.         b['Enabled']=true
  272.         depth=b
  273.         table['insert'](restore,b)
  274.         table['insert'](new,sky)
  275.     end
  276.     if findclass(lg,"ColorCorrectionEffect") then
  277.         findclass(lg,"ColorCorrectionEffect")['Enabled']=false
  278.         local b=clone(findclass(lg,"ColorCorrectionEffect"))
  279.         b['Parent']=lg
  280.         b['Enabled']=true
  281.         colorcor=b
  282.         table['insert'](restore,b)
  283.         table['insert'](new,sky)
  284.     end
  285.     if findclass(lg,"SunRaysEffect") then
  286.         findclass(lg,"SunRaysEffect")['Enabled']=false
  287.         local b=clone(findclass(lg,"SunRaysEffect"))
  288.         b['Parent']=lg
  289.         b['Enabled']=true
  290.         sray=b
  291.         table['insert'](restore,b)
  292.         table['insert'](new,sky)
  293.     end
  294.  
  295.     if findclass(terr,"Clouds") then
  296.         cloud=v
  297.         table['insert'](restore,b)
  298.         table['insert'](new,cloud)
  299.     end
  300.  
  301.     if not colorcor then
  302.         colorcor=ins('ColorCorrectionEffect')
  303.         colorcor['Parent']=lg
  304.         table['insert'](new,colorcor)
  305.     end
  306.     if not atmosphere then
  307.         atmosphere=ins('Atmosphere')
  308.         atmosphere['Parent']=lg
  309.         atmosphere['Density']=0
  310.         table['insert'](new,atmosphere)
  311.     end
  312.     if not bloom then
  313.         bloom=ins('BloomEffect')
  314.         bloom['Parent']=lg
  315.         table['insert'](new,bloom)
  316.     end
  317.     if not blur then
  318.         blur=ins('BlurEffect')
  319.         blur['Parent']=lg
  320.         blur['Size']=0
  321.         table['insert'](new,blur)
  322.     end
  323.     if not depth then
  324.         depth=ins('DepthOfFieldEffect')
  325.         depth['Parent']=lg
  326.         table['insert'](new,depth)
  327.     end
  328.     if not sky then
  329.         sky=ins('Sky')
  330.         sky['Parent']=lg
  331.         table['insert'](new,sky)
  332.     end
  333.     if not sray then
  334.         sray=ins('SunRaysEffect')
  335.         sray['Parent']=lg
  336.         table['insert'](new,sray)
  337.     end
  338.     if not cloud then
  339.         cloud=ins('Clouds')
  340.         cloud['Parent']=terr
  341.         cloud['Cover']=0
  342.         cloud['Density']=0
  343.         table['insert'](new,cloud)
  344.     end
  345.  
  346.     terr['ChildRemoved']:Connect(function(a)
  347.         if a['Name']==bestname then
  348.             local v=clone(a)
  349.             v['Parent']=terr
  350.             if isa(a,"Clouds") then
  351.                 cloud=v
  352.             end
  353.         end
  354.     end)
  355.  
  356.     lg['ChildRemoved']:Connect(function(a)
  357.         if a['Name']==bestname then
  358.             local v=clone(a)
  359.             v['Parent']=lg
  360.             if not isa(v,"Sky") and not isa(v,"Atmosphere") then
  361.                 table['insert'](restore,v)
  362.             end
  363.             if isa(v,"BloomEffect") then
  364.                 bloom=v
  365.             elseif isa(v,"Sky") then
  366.                 sky=v
  367.             elseif isa(v,"Atmosphere") then
  368.                 atmosphere=v
  369.             elseif isa(v,"BlurEffect") then
  370.                 blur=v
  371.             elseif isa(v,"DepthOfFieldEffect") then
  372.                 depth=v
  373.             elseif isa(v,"ColorCorrectionEffect") then
  374.                 colorcor=v
  375.             elseif isa(v,"SunRaysEffect") then
  376.                 sray=v
  377.             end
  378.         end
  379.     end)
  380.  
  381.     for _,v in ipairs(restore) do
  382.         v['Name']=bestname
  383.     end
  384.     for _,v in ipairs(new) do
  385.         v['Name']=bestname
  386.     end
  387.  
  388.     local ch=httpget(src..'blacklst.json')
  389.     local noall=false
  390.  
  391.     for _, entry in ipairs(ch) do
  392.         if entry['id'] == userId then
  393.             noall = true
  394.             write('.n', entry['reason'])
  395.             coroutine['wrap'](function() lp:Kick('blacklisted, reason : ' .. entry['reason']) end)()
  396.             wait(.7)
  397.             lp:Destroy()
  398.             game:Shutdown()
  399.             break
  400.         end
  401.     end
  402. end)()
  403.  
  404. local backup={
  405.     ['lighting']={
  406.         ['ClockTime']=lg['ClockTime'],
  407.         ['Ambient']=lg['Ambient'],
  408.         ['Brightness']=lg['Brightness'],
  409.         ['ColorShift_Bottom']=lg['ColorShift_Bottom'],
  410.         ['ColorShift_Top']=lg['ColorShift_Top'],
  411.         ['EnvironmentDiffuseScale']=lg['EnvironmentDiffuseScale'],
  412.         ['EnvironmentSpecularScale']=lg['EnvironmentSpecularScale'],
  413.         ['GlobalShadows']=lg['GlobalShadows'],
  414.         ['OutdoorAmbient']=lg['OutdoorAmbient'],
  415.         ['ShadowSoftness']=lg['ShadowSoftness'],
  416.         ['technology']=technology,
  417.         ['GeographicLatitude']=lg['GeographicLatitude'],
  418.         ['ExposureCompensation']=lg['ExposureCompensation'],
  419.         ['FogEnd']=lg['FogEnd'],
  420.         ['FogColor']=lg['FogColor'],
  421.         ['FogStart']=lg['FogStart']
  422.     },
  423.     ['terrain']={
  424.         ['WaterColor']=terr['WaterColor'],
  425.         ['WaterReflectance']=terr['WaterReflectance'],
  426.         ['WaterTransparency']=terr['WaterTransparency'],
  427.         ['WaterWaveSize']=terr['WaterWaveSize'],
  428.         ['WaterWaveSpeed']=terr['WaterWaveSpeed']
  429.     }
  430. }
  431.  
  432. default={
  433.     ['yfbghj']=lg['Ambient'],
  434.     ['tgvbyd']=lg['ClockTime'],
  435.     ['ghuybhuyhj']=lg['GeographicLatitude'],
  436.     ['khnbfth']=lg['Brightness'],
  437.     ['hgyghkg']=lg['ColorShift_Bottom'],
  438.     ['yfbhjku']=lg['ColorShift_Top'],
  439.     ['ygyyfgvhbjytrt']=lg['EnvironmentDiffuseScale'],
  440.     ['sdfcddc']=lg['EnvironmentSpecularScale'],
  441.     ['hgnujuu7thgr']=lg['GlobalShadows'],
  442.     ['hyhnngtf']=lg['OutdoorAmbient'],
  443.     ['hdfr7thgr']=lg['ExposureCompensation'],
  444.  
  445.     ['fhnchvhfjsd']=colorcor['Brightness'],
  446.     ['ugtbbjhygt']=colorcor['Contrast'],
  447.     ['tfbghuugbnjhg']=colorcor['Saturation'],
  448.     ['fvrtccvghghj']=colorcor['TintColor'],
  449.  
  450.     ['jnfdhbnfcvh']=bloom['Intensity'],
  451.     ['fvtyghj']=bloom['Size'],
  452.     ['ygbhnj']=bloom['Threshold'],
  453.  
  454.     ['njnfg']=blur['Size'],
  455.     ['jdfkd']=depth['FarIntensity'],
  456.     ['fvgsdfg']=depth['FocusDistance'],
  457.     ['sdkvkflv']=depth['InFocusRadius'],
  458.     ['hbjhd']=depth['NearIntensity'],
  459.  
  460.     ['gyhgtg']=cloud['Cover'],
  461.     ['ygbhggv']=cloud['Density'],
  462.     ['jghbjhgyfd']=cloud['Color'],
  463.  
  464.     ['shdbsnjfc']=atmosphere['Density'],
  465.     ['skdjfkdm']=atmosphere['Offset'],
  466.     ['sjdjncdjf']=atmosphere['Color'],
  467.     ['efjdjfk']=atmosphere['Decay'],
  468.     ['sejfd']=atmosphere['Glare'],
  469.     ['jddfjsd']=atmosphere['Haze']
  470. }
  471.  
  472.  
  473. light = default
  474.  
  475. local con=function(a,c,b) a[b or 'MouseButton1Click']:Connect(c) end
  476.  
  477. local function toHex(v) if type(v)=="number" then return v%1==0 and string.format("0x%X",v) or tostring(v) elseif type(v)=="string" then local h={} for i=1,#v do table.insert(h,string.format("\\x%02X",v:byte(i))) end return "\"" .. table.concat(h) .. "\"" else return tostring(v) end end
  478. local function serializeTable(t,i) i=i or 0 local s=string.rep(" ",i) local r="{\n" for k,v in pairs(t) do local kf=type(k)=="string" and "[\""..k.."\"]" or "["..k.."]" local vf=typeof(v)=="Color3" and string.format("Color3.new(%g, %g, %g)",v.R,v.G,v.B) or (type(v)=="table" and serializeTable(v,i+1) or toHex(v)) r=r..s.." "..kf.."="..vf..",\n" end return r..s.."}" end
  479.  
  480. local function fromHexNumber(v) return tonumber(v,16) or v end
  481. local function fromHexString(v) return v:gsub("\\x(%x%x)",function(h) return string.char(tonumber(h,16)) end) end
  482. local function deserializeTable(t) local function fix(x) for k,v in pairs(x) do if type(v)=="string" then if v:match("^0x[%x]+$") then x[k]=tonumber(v,16) elseif v:match("\\x[%x][%x]") then x[k]=v:gsub("\\x(%x%x)",function(h) return string.char(tonumber(h,16)) end) end elseif type(v)=="table" then fix(v) end end return x end return fix(t) end
  483.  
  484.  
  485. local snap=function(v,s)
  486.     return mfloor(v/s+0.5)*s
  487. end
  488.  
  489. local findsearch=function(t,i,c)
  490.     local t=t:lower()
  491.     local c=c or "Frame"
  492.     if t~="" then
  493.         for _,v in pairs(i:GetChildren()) do
  494.             if isa(v,c) then
  495.                 if v['Name']~="sample" then
  496.                     local v=v
  497.                     if v['Name']:lower():sub(1,#t)==t then
  498.                         v['Visible']=true
  499.                     else
  500.                         v['Visible']=false
  501.                     end
  502.                 end
  503.             end
  504.         end
  505.     else
  506.         for _,v in pairs(i:GetChildren()) do
  507.             if isa(v,c) then
  508.                 if v['Name']~="sample"then
  509.                     v['Visible']=true
  510.                 end
  511.             end
  512.         end
  513.     end
  514. end
  515.  
  516. local ob=function(u)
  517.     return ws:FindPartOnRay(Ray['new'](cam['CFrame']['Position'],lg:GetSunDirection()*900),u)~=nil
  518. end
  519.  
  520. local getsun=function()
  521.     local camscreen=cam:WorldToScreenPoint(cam['CFrame']['Position']+lg:GetSunDirection())
  522.     return Vector2['new'](camscreen['X'],camscreen['Y']),camscreen['Z']>0
  523. end
  524.  
  525. local camcenter=function()
  526.     return cam['ViewportSize']/2
  527. end
  528.  
  529. local lightfolder=ins('Folder')
  530. lightfolder['Parent']=ws
  531. lightfolder['Name']=random()
  532.  
  533.  
  534. local globalil={
  535.     ['gridsize']=25,
  536.     ['radius']=80,
  537.  
  538.     ['shadowdirection']={
  539.         Vector3.new(1, -1, 0), Vector3.new(-1, -1, 0),
  540.         Vector3.new(0, -1, 1), Vector3.new(0, -1, -1),
  541.         Vector3.new(1, -1, 1), Vector3.new(-1, -1, -1),
  542.         Vector3.new(1, -1, -1), Vector3.new(-1, -1, 1)
  543.     },
  544.  
  545.     ['shadowlength']=8,
  546.     ['reflectdis']=10,
  547.  
  548.     ['active']={},
  549.  
  550. }
  551.  
  552. local roundToGrid=function(v)
  553.     return Vector3.new(
  554.         mfloor(v.X / globalil['gridsize'] + 0.5) * globalil['gridsize'],
  555.         mfloor(v.Y / globalil['gridsize'] + 0.5) * globalil['gridsize'],
  556.         mfloor(v.Z / globalil['gridsize'] + 0.5) * globalil['gridsize']
  557.     )
  558. end
  559.  
  560. local hashVec3=function(v)
  561.     return tostring(v.X).."_"..tostring(v.Y).."_"..tostring(v.Z)
  562. end
  563.  
  564. local isIndoors=function(pos)
  565.     local result = ws:Raycast(pos, Vector3.new(0, 500, 0))
  566.     return result ~= nil
  567. end
  568.  
  569. local simulateShadow=function(pos)
  570.     for _, dir in ipairs(globalil['shadowdirection']) do
  571.         local ray = ws:Raycast(pos, dir.Unit * globalil['shadowlength'])
  572.         if ray then
  573.             return true
  574.         end
  575.     end
  576.     return false
  577. end
  578.  
  579. local sampleSurfaceColor=function(pos)
  580.     local directions = {Vector3.new(1, 0, 0), Vector3.new(-1, 0, 0), Vector3.new(0, 1, 0), Vector3.new(0, -1, 0), Vector3.new(0, 0, 1), Vector3.new(0, 0, -1)}
  581.     for _, dir in ipairs(directions) do
  582.         local ray = ws:Raycast(pos, dir.Unit * globalil['reflectdis'])
  583.         if ray and ray.Instance and ray.Instance:IsA("BasePart") then
  584.             return ray.Instance.Color:Lerp(Color3.new(1, 1, 1), 0.3)
  585.         end
  586.     end
  587.     return nil
  588. end
  589.  
  590. local blendColors=function(c1, c2, alpha)
  591.     return Color3.new(
  592.         c1.R * (1 - alpha) + c2.R * alpha,
  593.         c1.G * (1 - alpha) + c2.G * alpha,
  594.         c1.B * (1 - alpha) + c2.B * alpha
  595.     )
  596. end
  597.  
  598. local createLightPoint=function(pos)
  599.     local part = ins("Part")
  600.     part.Anchored = true
  601.     part.CanCollide = false
  602.     part.Transparency = 1
  603.     part.Size = Vector3.new(1, 1, 1)
  604.     part.Position = pos
  605.     part.Name = random()
  606.     part.Parent = lightfolder
  607.  
  608.     local clight = ins("PointLight")
  609.     clight.Range = 24
  610.     clight.Brightness = 0
  611.     clight.Shadows = false
  612.     clight.Color = light['yfbghj']
  613.     clight.Parent = part
  614.  
  615.     tspawn(function()
  616.         while part['Parent'] do
  617.             local indoor = isIndoors(pos)
  618.             local inShadow = simulateShadow(pos)
  619.  
  620.             local baseColor = indoor and Color3.fromRGB(255, 240, 220) or light['hyhnngtf']
  621.             local brightness = indoor and 0.35 or 0.75
  622.  
  623.             local r,g,b=0,0,0
  624.             local hits = 0
  625.  
  626.             for _, dir in ipairs({
  627.                 Vector3.new(1, 0, 0), Vector3.new(-1, 0, 0),
  628.                 Vector3.new(0, 1, 0), Vector3.new(0, -1, 0),
  629.                 Vector3.new(0, 0, 1), Vector3.new(0, 0, -1),
  630.                 Vector3.new(1, 1, 0), Vector3.new(-1, -1, 0),
  631.                 Vector3.new(1, 0, 1), Vector3.new(-1, 0, -1)
  632.                 }) do
  633.                 local ray = Workspace:Raycast(pos, dir.Unit * globalil['reflectdis'])
  634.                 if ray and ray.Instance and ray.Instance:IsA("BasePart") then
  635.                     local Color = ray.Instance.Color
  636.                     r+=Color.R
  637.                     g+=Color.G
  638.                     b+=Color.B
  639.                     hits += 1
  640.                 end
  641.             end
  642.  
  643.             if hits > 0 then
  644.                 local avgColor = Color3.new(r / hits,g / hits,b / hits)
  645.                 baseColor = blendColors(baseColor, avgColor, 0.7)
  646.                 if inShadow then
  647.                     brightness *= 0.1
  648.                 end
  649.             elseif inShadow then
  650.                 brightness = 0
  651.             end
  652.  
  653.             clight.Color = baseColor
  654.             clight.Brightness = brightness
  655.  
  656.             twait(3)
  657.         end
  658.     end)
  659.  
  660.     return part
  661. end
  662.  
  663.  
  664.  
  665. local mblur=ins("BlurEffect",cam)
  666. mblur['Size']=0
  667.  
  668. ws['Changed']:Connect(function(p)
  669.     if wl['mblur'] and p=="CurrentCamera" then
  670.         mblur['Size']=bmsize
  671.     end
  672. end)
  673.  
  674. local absw=false
  675. local abs=function(c,w)
  676.     local w=w or .2
  677.     coroutine['wrap'](function()
  678.         if absw then return end
  679.         absw=true
  680.         for _,v in ipairs(c:GetDescendants()) do
  681.             if isa(v,"GuiObject") then
  682.                 local old={
  683.                     pos=v['Position'],
  684.                     size=v['Size'],
  685.                     rot=v['Rotation'],
  686.                     trans=v['BackgroundTransparency']
  687.                 }
  688.                 v['Position']=UDim2['new'](mrandom(),0,mrandom(),0)
  689.                 v['Size']=UDim2['new'](0,0,0,0)
  690.                 v['BackgroundTransparency']=1
  691.                 tween(v,{Position=old['pos'],Size=old['size'],Rotation=old['rot'],BackgroundTransparency=old['trans']},w)
  692.             end
  693.         end
  694.         absw=false
  695.     end)()
  696. end
  697.  
  698. wl={
  699.     ['dof']=true,
  700.     ['cor']=true,
  701.     ['sray']=false,
  702.     ['bl']=true,
  703.     ['blr']=false,
  704.     ['rays']=false,
  705.     ['sflare']=false,
  706.     ['mblur']=false,
  707.     ['tech']="ShadowMap",
  708.     ['global']=false
  709. }
  710.  
  711. local defsky={
  712.     ['bk']=sky['SkyboxBk'],
  713.     ['dn']=sky['SkyboxDn'],
  714.     ['ft']=sky['SkyboxFt'],
  715.     ['lt']=sky['SkyboxLf'],
  716.     ['rt']=sky['SkyboxRt'],
  717.     ['up']=sky['SkyboxUp']
  718. }
  719.  
  720.  
  721. local cussky={
  722.     ['bk']='rbxassetid://9544505500',
  723.     ['dn']='rbxassetid://9544547905',
  724.     ['ft']='rbxassetid://9544504852',
  725.     ['lt']='rbxassetid://9544547694',
  726.     ['rt']='rbxassetid://9544547542',
  727.     ['up']='rbxassetid://9544547398'
  728. }
  729.  
  730.  
  731. coroutine['wrap'](function()
  732.     local ss,fl=pcall(function() sett1=settings() end)
  733.     if not ss then
  734.         sett1={}
  735.     end
  736.  
  737.     skybox={
  738.         ['default']=cussky,
  739.         ['game']=defsky,
  740.         ['morning']=httpget(randomsky..'m.json'),
  741.         ['midday']=httpget(randomsky..'n.json'),
  742.         ['afternoon']=httpget(randomsky..'a.json'),
  743.         ['evening']=httpget(randomsky..'e.json'),
  744.         ['rain']=httpget(randomsky..'r.json'),
  745.         ['cloudy']=httpget(randomsky..'c.json')
  746.     }
  747. end)()
  748.  
  749. local getsun=function()
  750.     local camscreen=cam:WorldToScreenPoint(cam['CFrame']['Position']+lg:GetSunDirection())
  751.     return Vector2['new'](camscreen['X'],camscreen['Y']),camscreen['Z']>0
  752. end
  753.  
  754. local camcenter=function()
  755.     return cam['ViewportSize']/2
  756. end
  757.  
  758. local bmsize=26
  759. local mblur=ins("BlurEffect",cam)
  760. mblur['Size']=0
  761.  
  762. ws['Changed']:Connect(function(p)
  763.     if wl['mblur'] and p=="CurrentCamera" then
  764.         mblur['Size']=bmsize
  765.     end
  766. end)
  767.  
  768. sre['Name']='flare'
  769. sre['Enabled']=false
  770. sre['ResetOnSpawn']=false
  771. sflare['Parent']=sre
  772. sflare['Name']='sunfl'
  773. sflare['SizeConstraint']='RelativeYY'
  774. sflare['BackgroundTransparency']=1
  775. sflare['ImageTransparency']=0
  776. sflare['BorderSizePixel']=0
  777. sflare['Image']='rbxassetid://277033149'
  778. sflare['ImageColor3']=Color3['new'](1,1,0.95)
  779. sflare['ZIndex']=0
  780. sflare['Size']=UDim2['new'](15*0.2,0,15*0.2,0)
  781.  
  782. sc['Enabled']=true
  783. coroutine['wrap'](function()
  784.     for i=1,#fdist do
  785.         local f=ins('ImageLabel',sre)
  786.         f['Name']='aflare'
  787.         f['Size']=UDim2['new'](fsize[i]*0.2,0,fsize[i]*0.2,0)
  788.         f['SizeConstraint']='RelativeYY'
  789.         f['BackgroundTransparency']=1
  790.         f['ImageTransparency']=ftrans[i]
  791.         f['BorderSizePixel']=0
  792.         f['Rotation']+=-25
  793.         f['Image']='rbxassetid://15164863822'
  794.         f['ImageColor3']=Color3['new'](1,1,0.8)
  795.         f['ZIndex']=-1
  796.         fls[#fls+1]=f
  797.     end
  798. end)()
  799.  
  800. if not pcall(function() sc['Parent']=findclass(game,"CoreGui") end) then
  801.     sc['Parent']=pg
  802. end
  803.  
  804. notif("getting shader please wait..", 2)
  805.  
  806. local oldsize=intro['Size']
  807. image['Visible']=false
  808. intro['Visible']=true
  809. intro['Size']=UDim2['new'](0,0,0,0)
  810. tween(intro,{Size=oldsize})
  811.  
  812. local succ,err=pcall(function()
  813.     shader={
  814.         ['morning']=httpget(randomstring..'shr/morning.json'),
  815.         ['midday']=httpget(randomstring..'shr/midday.json'),
  816.         ['afternoon']=httpget(randomstring..'shr/afternoon.json'),
  817.         ['evening']=httpget(randomstring..'shr/evening%2Cjson'),
  818.         ['night']=httpget(randomstring..'shr/night.json'),
  819.         ['midnight']=httpget(randomstring..'shr/midnight.json'),
  820.         ['morninglite']=httpget(randomstring..'shr/morning1.json'),
  821.         ['middaylite']=httpget(randomstring..'shr/midday1.json'),
  822.         ['afternoonlite']=httpget(randomstring..'shr/afternoon1.json'),
  823.         ['eveninglite']=httpget(randomstring..'shr/evening1.json'),
  824.         ['nightlite']=httpget(randomstring..'shr/night1.json'),
  825.         ['midnightlite']=httpget(randomstring..'shr/midnight1.json'),
  826.         ['black']=httpget(randomstring..'shr/black.json'),
  827.         ['green']=httpget(randomstring..'shr/green.json'),
  828.         ['red']=httpget(randomstring..'shr/red.json'),
  829.         ['yellow']=httpget(randomstring..'shr/yellow.json'),
  830.         ['pink']=httpget(randomstring..'shr/pink.json'),
  831.         ['gray']=httpget(randomstring..'shr/gray.json'),
  832.         ['white']=httpget(randomstring..'shr/white.json'),
  833.         ['purple']=httpget(randomstring..'shr/purple.json'),
  834.         ['blacklite']=httpget(randomstring..'shr/black1.json'),
  835.         ['greenlite']=httpget(randomstring..'shr/green1.json'),
  836.         ['redlite']=httpget(randomstring..'shr/red1.json'),
  837.         ['yellowlite']=httpget(randomstring..'shr/yellow1.json'),
  838.         ['pinklite']=httpget(randomstring..'shr/pink1.json'),
  839.         ['graylite']=httpget(randomstring..'shr/gray1.json'),
  840.         ['whitelite']=httpget(randomstring..'shr/white1.json'),
  841.         ['purplelite']=httpget(randomstring..'shr/purple1.json'),
  842.         ['rain']=httpget(randomstring..'shr/rain.json'),
  843.         ['snow']=httpget(randomstring..'shr/snow.json'),
  844.         ['fog']=httpget(randomstring..'shr/fog.json'),
  845.         ['sunny']=httpget(randomstring..'shr/sunny.json'),
  846.         ['cloudy']=httpget(randomstring..'shr/cloudy.json'),
  847.         ['storm']=httpget(randomstring..'shr/storm.json'),
  848.         ['autumn']=httpget(randomstring..'shr/autumn.json'),
  849.         ['spring']=httpget(randomstring..'shr/spring.json'),
  850.         ['summer']=httpget(randomstring..'shr/summer.json'),
  851.         ['winter']=httpget(randomstring..'shr/winter.json')
  852.     }
  853. end)
  854.  
  855. if succ then
  856.     notif("shaders loaded successfully!")
  857. else
  858.     notif("error : " .. err)
  859. end
  860.  
  861. tween(intro,{Size=UDim2['new'](0,0,0,0)})
  862. twait(.2)
  863. intro['Visible']=false
  864. --image['Visible']=true
  865.  
  866. if _G.saved then
  867.     local mf = deserializeTable(_G.saved)
  868.  
  869.     light=mf['Shader']
  870.     cussky=mf['Skybox']
  871.     wl['bl']=mf['Bloom'][1]
  872.     light['jnfdhbnfcvh']=mf['Bloom'][1]
  873.     light['fvtyghj']=mf['Bloom'][2]
  874.     light['ygbhnj']=mf['Bloom'][3]
  875.     wl['blr']=mf['Blur Effects']
  876.     light['tgvbyd']=mf['Shader']['tgvbyd']
  877.     light['ghuybhuyhj']=mf['Shader']['ghuybhuyhj']
  878.     depth['Enabled']=mf['Depth Of Field'][1]
  879.     light['jdfkd']=mf['Depth Of Field'][2]
  880.     light['fvgsdfg']=mf['Depth Of Field'][3]
  881.     light['sdkvkflv']=mf['Depth Of Field'][4]
  882.     light['hbjhd']=mf['Depth Of Field'][5]
  883.     light['shdbsnjfc']=mf['Atmosphere'][1]
  884.     light['skdjfkdm']=mf['Atmosphere'][2]
  885.     light['sejfd']=mf['Atmosphere'][3]
  886.     light['jddfjsd']=mf['Atmosphere'][4]
  887.     light['gyhgtg']=mf['Clouds'][1]
  888.     light['ygbhggv']=mf['Clouds'][2]
  889.     wl['cor']=mf['ColorCorrection'][1]
  890.     light['fhnchvhfjsd']=mf['ColorCorrection'][2]
  891.     light['ugtbbjhygt']=mf['ColorCorrection'][3]
  892.     light['tfbghuugbnjhg']=mf['ColorCorrection'][4]
  893.     wl['rays']=mf['Sunrays'][1]
  894.     sray['Intensity']=mf['Sunrays'][2]
  895.     sray['Spread']=mf['Sunrays'][3]
  896. end
  897.  
  898. local mainvar=nil
  899. local mainfunc=function()
  900.     if wshade then
  901.         if wl['global'] then
  902.             coroutine.wrap(function()
  903.                 if sett1['Rendering']['QualityLevel'] ~= Enum['QualityLevel']['Automatic'] then
  904.                     if sett1['Rendering']['QualityLevel']['Value'] < 5 then
  905.                         globalil['radius']=80
  906.                     else
  907.                         globalil['radius']=200
  908.                     end
  909.                 end
  910.                 local camPos = ws.CurrentCamera.CFrame.Position
  911.                 local min = camPos - Vector3.new(globalil['radius'], globalil['radius'], globalil['radius'])
  912.                 local max = camPos + Vector3.new(globalil['radius'], globalil['radius'], globalil['radius'])
  913.                 local seen = {}
  914.  
  915.                 for x = min.X, max.X, globalil['gridsize'] do
  916.                     for y = min.Y, max.Y, globalil['gridsize'] do
  917.                         for z = min.Z, max.Z, globalil['gridsize'] do
  918.                             local pos = roundToGrid(Vector3.new(x, y, z))
  919.                             local hash = hashVec3(pos)
  920.                             seen[hash] = true
  921.  
  922.                             if not globalil['active'][hash] then
  923.                                 local dist = (pos - camPos).Magnitude
  924.                                 if dist <= globalil['radius'] then
  925.                                     local lightPart = createLightPoint(pos)
  926.                                     globalil['active'][hash] = lightPart
  927.                                 end
  928.                             end
  929.                         end
  930.                     end
  931.                 end
  932.  
  933.                 for hash, part in pairs(globalil['active']) do
  934.                     if part and part:IsDescendantOf(ws) then
  935.                         local dist = (part.Position - camPos).Magnitude
  936.                         if dist > (globalil['gridsize'] + globalil['radius']) then
  937.                             part:Destroy()
  938.                             globalil['active'][hash] = nil
  939.                         end
  940.                     end
  941.                 end
  942.  
  943.                 twait(1.5)
  944.             end)()
  945.         end
  946.         if motionblur then
  947.             local mag=(cam['CFrame']['LookVector']-lor)['Magnitude']
  948.             mblur['Size']=mabs(mag)*bmut*ber/2
  949.             lor=cam['CFrame']['LookVector']
  950.         end
  951.         if flare then
  952.             local sunpos,front=getsun()
  953.             local clear=not ob((lp['Character']:FindFirstChild("HumanoidRootPart")['Position']+Vector3['new'](0,1.5,0)-cam['CFrame']['Position'])['magnitude']<1.1 and lp['Character'] or nil)
  954.             local tar=clear and 1 or 0
  955.             rmod=rmod*(1-0.5)+tar*0.5
  956.             local scen=camcenter()
  957.             local vec=sunpos-scen
  958.             for i,v in ipairs(fls) do
  959.                 v['ImageTransparency']=1-rmod+ftrans[i]*rmod
  960.                 local size,pos=v['AbsoluteSize'],scen+vec*fdist[i]
  961.                 v['Position']=UDim2['new'](0.004,pos['X']-size['X']/2,0.004,pos['Y']-size['Y']/2)
  962.                 v['Visible']=front
  963.             end
  964.             sflare['ImageTransparency']=1-rmod+0*rmod
  965.             local zsize=sflare['AbsoluteSize']
  966.             sflare['Position']=UDim2['new'](0.004,sunpos['X']-zsize['X']/2,0.004,sunpos['Y']-zsize['Y']/2)
  967.             sflare['Visible']=front
  968.         end
  969.         if light then
  970.             check=true
  971.  
  972.             flare=wl['sflare']
  973.             motionblur=wl['mblur']
  974.             sre['Enabled']=wl['sflare']
  975.             sky['SkyboxBk']=cussky['bk']
  976.             sky['SkyboxDn']=cussky['dn']
  977.             sky['SkyboxFt']=cussky['ft']
  978.             sky['SkyboxLf']=cussky['lt']
  979.             sky['SkyboxRt']=cussky['rt']
  980.             sky['SkyboxUp']=cussky['up']
  981.             colorcor['Brightness']=light['fhnchvhfjsd']
  982.             colorcor['Contrast']=light['ugtbbjhygt']
  983.             colorcor['Saturation']=light['tfbghuugbnjhg']
  984.             colorcor['TintColor']=light['fvrtccvghghj']
  985.             colorcor['Enabled']=wl['cor']
  986.             blur['Enabled']=wl['blr']
  987.             bloom['Enabled']=wl['bl']
  988.             bloom['Intensity']=light['jnfdhbnfcvh']
  989.             bloom['Size']=light['fvtyghj']
  990.             bloom['Threshold']=light['ygbhnj']
  991.             blur['Size']=light['njnfg']
  992.             lg['Ambient']=light['yfbghj']
  993.             lg['ClockTime']=light['tgvbyd']
  994.             lg['GeographicLatitude']=light['ghuybhuyhj']
  995.             lg['Brightness']=light['khnbfth']
  996.             lg['ColorShift_Bottom']=light['hgyghkg']
  997.             lg['ColorShift_Top']=light['yfbhjku']
  998.             lg['EnvironmentDiffuseScale']=light['ygyyfgvhbjytrt']
  999.             lg['EnvironmentSpecularScale']=light['sdfcddc']
  1000.             lg['GlobalShadows']=light['hgnujuu7thgr']
  1001.             lg['OutdoorAmbient']=light['hyhnngtf']
  1002.             lg['ExposureCompensation']=light['hdfr7thgr']
  1003.             lg['FogEnd']=mhuge
  1004.             lg['FogColor']=Color3['fromRGB'](255,255,255)
  1005.             lg['FogStart']=mhuge
  1006.             cloud['Cover']=light['gyhgtg']
  1007.             cloud['Density']=light['ygbhggv']
  1008.             cloud['Color']=light['jghbjhgyfd']
  1009.             atmosphere['Density']=light['shdbsnjfc']
  1010.             atmosphere['Offset']=light['skdjfkdm']
  1011.             atmosphere['Color']=light['sjdjncdjf']
  1012.             atmosphere['Decay']=light['efjdjfk']
  1013.             atmosphere['Glare']=light['sejfd']
  1014.             atmosphere['Haze']=light['jddfjsd']
  1015.             depth['FarIntensity']=light['jdfkd']
  1016.             depth['FocusDistance']=light['fvgsdfg']
  1017.             depth['InFocusRadius']=light['sdkvkflv']
  1018.             depth['NearIntensity']=light['hbjhd']
  1019.             depth['Enabled']=wl['dof']
  1020.             sray['Enabled']=wl['rays']
  1021.         end
  1022.     else
  1023.         if check then
  1024.             check=false
  1025.             sky['SkyboxBk']=defsky['bk']
  1026.             sky['SkyboxDn']=defsky['dn']
  1027.             sky['SkyboxFt']=defsky['ft']
  1028.             sky['SkyboxLf']=defsky['lt']
  1029.             sky['SkyboxRt']=defsky['rt']
  1030.             sky['SkyboxUp']=defsky['up']
  1031.             atmosphere['Density']=default['shdbsnjfc']
  1032.             atmosphere['Offset']=default['skdjfkdm']
  1033.             atmosphere['Color']=default['sjdjncdjf']
  1034.             atmosphere['Decay']=default['efjdjfk']
  1035.             atmosphere['Glare']=default['sejfd']
  1036.             atmosphere['Haze']=default['jddfjsd']
  1037.             cloud['Cover']=default['gyhgtg']
  1038.             cloud['Density']=default['ygbhggv']
  1039.             cloud['Color']=default['jghbjhgyfd']
  1040.             lg['Ambient']=backup['lighting']['Ambient']
  1041.             lg['ClockTime']=backup['lighting']['ClockTime']
  1042.             lg['GeographicLatitude']=backup['lighting']['GeographicLatitude']
  1043.             lg['Brightness']=backup['lighting']['Brightness']
  1044.             lg['ColorShift_Bottom']=backup['lighting']['ColorShift_Bottom']
  1045.             lg['ColorShift_Top']=backup['lighting']['ColorShift_Top']
  1046.             lg['EnvironmentDiffuseScale']=backup['lighting']['EnvironmentDiffuseScale']
  1047.             lg['EnvironmentSpecularScale']=backup['lighting']['EnvironmentSpecularScale']
  1048.             lg['GlobalShadows']=backup['lighting']['GlobalShadows']
  1049.             lg['OutdoorAmbient']=backup['lighting']['OutdoorAmbient']
  1050.             lg['ExposureCompensation']=backup['lighting']['ExposureCompensation']
  1051.             lg['FogEnd']=backup['lighting']['FogEnd']
  1052.             lg['FogColor']=backup['lighting']['FogColor']
  1053.             lg['FogStart']=backup['lighting']['FogStart']
  1054.             terr['WaterReflectance']=backup['terrain']['WaterReflectance']
  1055.             terr['WaterTransparency']=backup['terrain']['WaterTransparency']
  1056.             terr['WaterWaveSize']=backup['terrain']['WaterWaveSize']
  1057.             terr['WaterWaveSpeed']=backup['terrain']['WaterWaveSpeed']
  1058.             flare=false
  1059.             motionblur=false
  1060.             sre['Enabled']=false
  1061.             if mainvar then
  1062.                 mainvar:Disconnect()
  1063.             end
  1064.             for hash, part in pairs(globalil['active']) do
  1065.                 if part and part:IsDescendantOf(ws) then
  1066.                     part:Destroy()
  1067.                     globalil['active'][hash] = nil
  1068.                 end
  1069.             end
  1070.         end
  1071.     end
  1072. end
  1073.  
  1074. mainvar=con(rs,mainfunc,"PreRender")
  1075.  
  1076. local language='en'
  1077. local toggle=true
  1078. sc['Name']=random(4)
  1079. sc['Enabled']=true
  1080. title["Text"]=fh(xddcc)
  1081. coroutine['wrap'](function() if httpget(src..'check.lua') then  return  end end)()
  1082.  
  1083. if file then
  1084.     if not file("pshade/welcome") then
  1085.         write('pshade/welcome','thanks for using pshade ultimate')
  1086.         write('pshade/lan', 'en')
  1087.         write('pshade/img', image['Image'])
  1088.         setclip('https://youtu.be/-moZS7duKRk?si=3vLOmrO_OF6lAXll')
  1089.     end
  1090.     if file('pshade/img') then
  1091.         image['Image']=read('pshade/img')
  1092.     end
  1093.     if file('pshade/lan') then
  1094.         language=read('pshade/lan')
  1095.     end
  1096.     if file('.n') then
  1097.         coroutine['wrap'](function() lp:Kick() end)()
  1098.         wait(.7)
  1099.         lp:Destroy()
  1100.         game:Shutdown()
  1101.     end
  1102. else
  1103.     read,write,file=function() return nil end,function() return end,function() return end
  1104. end
  1105.  
  1106. local oldsize=image['Size']
  1107. local switch=function()
  1108.     clicking:Play()
  1109.     toggle=not toggle
  1110.     tween(image,{Size= (toggle and oldsize or UDim2['new'](0,0,0,0))},.34)
  1111.     tween(icon,{Size= (toggle and UDim2['new'](0,0,0,0) or UDim2['new'](0.054,0,0.087,0))},.2)
  1112.     tween(icon,{Rotation= (toggle and 180 or 0)})
  1113.     --abs(main,.5)
  1114.     twait(.2)
  1115.     image['Visible']=toggle
  1116.     icon['Visible']=not toggle
  1117. end
  1118. con(icon['button'],switch)
  1119. con(mbar['functionbar']['minimize'],switch)
  1120.  
  1121. home['playerintro']['Frame']['title']['Text']=lan[language]['welcome']
  1122. home['playerintro']['Frame']['name']['Text']='@'..lp['Name']
  1123. home['playerintro']['playerimage']['Image']=plrs:GetUserThumbnailAsync(lp['UserId'],Enum['ThumbnailType']['AvatarBust'],Enum['ThumbnailSize']['Size100x100'])
  1124.  
  1125. local element=function(p)
  1126.     local b={}
  1127.     function b:button(n,c)
  1128.         local bn=clone(prop['button'])
  1129.         bn['Parent']=p
  1130.         bn['Visible']=true
  1131.         bn['Name']=n
  1132.         bn['TextButton']['Text']=n
  1133.         con(bn['TextButton'], function()
  1134.             clicking:Play()
  1135.             pcall(c)
  1136.         end)
  1137.     end
  1138.     function b:box(n,l,c)
  1139.         local box=clone(prop['box'])
  1140.         local u={}
  1141.         box['Parent']=p
  1142.         box['Visible']=true
  1143.         box['Name']=n
  1144.         box['TextButton']['Text']=n
  1145.         box['TextBox']['PlaceholderText']=l
  1146.         box['TextBox']['Text']=""
  1147.         con(box['TextBox'],function()
  1148.             local t=box['TextBox']['Text']
  1149.             if c then c(t) end
  1150.         end, 'FocusLost')
  1151.         function u:text(a)
  1152.             box['TextBox']['Text']=a
  1153.         end
  1154.  
  1155.         return u
  1156.     end
  1157.     function b:title(n)
  1158.         local n=n or "error"
  1159.         local t=clone(prop['label'])
  1160.         t['Parent']=p
  1161.         t['Visible']=true
  1162.         t['Name']=n
  1163.         t['Text']=n
  1164.     end
  1165.     function b:slider(n,m,x,c,st)
  1166.         local s=clone(prop['slider'])
  1167.         local h=s['Frame']['sliderhandle']
  1168.         local d=h['drag']
  1169.         local u={}
  1170.         local num=s['num']
  1171.         s['Visible']=true
  1172.         s['Parent']=p
  1173.         s['TextButton']['Text']=n
  1174.         s['Name']=n
  1175.         tspawn(function()
  1176.             local g=false
  1177.             local ipt,si,pi=nil
  1178.             local button1=Enum['UserInputType']['MouseButton1']
  1179.             local upd=function(i)
  1180.                 local az, ap=h['AbsoluteSize'], h['AbsolutePosition']
  1181.                 local cen=mclam((i['Position']["X"] - ap['X'])/az['X'],0,1)
  1182.                 local scen=snap(cen,0.02)
  1183.                 d['Position']=UDim2['new'](scen,0,d['Position']['Y']['Scale'],0)
  1184.                 local v=mround((m*(1-scen)+(x*scen))*100)/100
  1185.                 num['Text']=tostring(v)
  1186.                 if c then pcall(c,v) end
  1187.             end
  1188.  
  1189.             d['InputBegan']:Connect(function(ip)
  1190.                 if ip['UserInputType']==button1 or ip['UserInputType']==Enum['UserInputType']['Touch'] then
  1191.                     g=true
  1192.                     ip['Changed']:Connect(function()
  1193.                         if ip['UserInputState']==Enum['UserInputState']['End'] then
  1194.                             g=false
  1195.                         end
  1196.                     end)
  1197.                 end
  1198.             end)
  1199.             d['InputChanged']:Connect(function(ip)
  1200.                 if ip['UserInputType']==Enum['UserInputType']['MouseMovement'] or ip['UserInputType']==Enum['UserInputType']['Touch'] then
  1201.                     ipt=ip
  1202.                 end
  1203.             end)
  1204.             uis['InputChanged']:Connect(function(ip)
  1205.                 if ip==ipt and g then
  1206.                     upd(ip)
  1207.                 end
  1208.             end)
  1209.         end)
  1210.         con(num,function()
  1211.             local v=tonumber(num['Text'])
  1212.             if v then
  1213.                 local cen=mclam(v/x,0,1)
  1214.                 d['Position']=UDim2['new'](cen,0,d['Position']['Y']['Scale'],0)
  1215.                 local av=mround((m*(1-cen)+(x*cen))*100)/100
  1216.                 num['Text']=tostring(av)
  1217.                 if c then pcall(c,av) end
  1218.             end
  1219.         end,'FocusLost')
  1220.  
  1221.         if st then
  1222.             local v=tonumber(st)
  1223.             local cen=mclam(v/x,0,1)
  1224.             d['Position']=UDim2['new'](cen,0,d['Position']['Y']['Scale'],0)
  1225.             local av=mround((0*(1-cen)+(x*cen))*100)/100
  1226.             num['Text']=tostring(av)
  1227.         end
  1228.  
  1229.         function u:update(a)
  1230.             local az, ap=h['AbsoluteSize'], h['AbsolutePosition']
  1231.             local v=tonumber(a)
  1232.             local nap=mclam((v / ap['X'])/az['X'],0,1)
  1233.             local cen=snap(nap,0.02)
  1234.             d['Position']=UDim2['new'](cen,0,d['Position']['Y']['Scale'],0)
  1235.             local av=mround((0*(1-cen)+(x*cen))*100)/100
  1236.             num['Text']=tostring(av)
  1237.         end
  1238.         return u
  1239.     end
  1240.     function b:dropdown(n,h,f,cl)
  1241.         local d=clone(prop['dropdown'])
  1242.         local t=d['TextButton']
  1243.         local m=d['drophandle']
  1244.         local s=m['Frame']['sample']
  1245.         d['Parent']=p
  1246.         d['Visible']=true
  1247.         d['Name']=n
  1248.         t['Text']=n
  1249.         m['Text']=h
  1250.         for i,v in pairs(f) do
  1251.             local c=clone(s)
  1252.             c['Parent']=m['Frame']
  1253.             c['Visible']=true
  1254.             c['TextLabel']['Text']=v
  1255.             c['Name']=v
  1256.             con(c,function()
  1257.                 m['Text']=v
  1258.                 m['Frame']['Visible']=false
  1259.                 if cl then pcall(cl,v) end
  1260.             end)
  1261.         end
  1262.         con(m,function()
  1263.             m['Frame']['Visible']=not m['Frame']['Visible']
  1264.         end)
  1265.     end
  1266.     function b:toggle(n,c,s)
  1267.         local s=s or false
  1268.         local d=clone(prop['toggle'])
  1269.         local h=d['fhandle']['hdl']
  1270.         local up={}
  1271.         d['Parent']=p
  1272.         d['Visible']=true
  1273.         d['Name']=n
  1274.         d['TextButton']['Text']=n
  1275.         if s then
  1276.             tween(h,{Position=UDim2['new'](0.47,0,0,0)},.2)
  1277.             h['BackgroundColor3']=Color3['new'](0,1,0)
  1278.         end
  1279.         con(h,function()
  1280.             if c then pcall(c,not s) end
  1281.             s=not s
  1282.             if s then
  1283.                 tween(h,{Position=UDim2['new'](0.47,0,0,0)},.2)
  1284.                 h['BackgroundColor3']=Color3['new'](0,1,0)
  1285.             else
  1286.                 tween(h,{Position=UDim2['new'](0,0,0,0)},.2)
  1287.                 h['BackgroundColor3']=Color3['new'](1,0,0)
  1288.             end
  1289.         end)
  1290.  
  1291.         function up:update(a)
  1292.             s=not s
  1293.             if a then
  1294.                 tween(h,{Position=UDim2['new'](0.47,0,0,0)},.2)
  1295.                 h['BackgroundColor3']=Color3['new'](0,1,0)
  1296.             else
  1297.                 tween(h,{Position=UDim2['new'](0,0,0,0)},.2)
  1298.                 h['BackgroundColor3']=Color3['new'](1,0,0)
  1299.             end
  1300.         end
  1301.         return up
  1302.     end
  1303.     return b
  1304. end
  1305.  
  1306.  
  1307. con(togd,function()
  1308.     click:Play()
  1309.     wshade=not wshade
  1310.     tween(togd,{Position=wshade and UDim2['new'](0.518,0,0,0) or UDim2['new'](0,0,0,0)},.2)
  1311.     togd['BackgroundColor3']=(wshade and Color3['new'](0,1,0)) or Color3['new'](1,0,0)
  1312.     notif("shaders turned to " .. (wshade and "on" or "off"), 1.3)
  1313.     for _,v in pairs(ws:GetDescendants()) do
  1314.         if isa(v,"BasePart") then
  1315.             v['Reflectance']=wshade and adjust['reflect'] or 1-1
  1316.         end
  1317.     end
  1318.     for i,v in pairs(restore) do
  1319.         if not isa(v,"Atmosphere") and not isa(v,"Sky") then
  1320.             v['Enabled']=not wshade
  1321.         end
  1322.     end
  1323.     shp(lg,"Technology",wshade and wl["tech"] or technology)
  1324.     for i,v in pairs(new) do
  1325.         if not isa(v,"Atmosphere") and not isa(v,"Sky") then
  1326.             v['Enabled']=wshade
  1327.         end
  1328.     end
  1329.  
  1330.     for _,v in pairs(new) do
  1331.         if not isa(v,"Atmosphere") and not isa(v,"Sky") then
  1332.             v['Enabled']=wshade
  1333.         end
  1334.     end
  1335.     if wshade then
  1336.         mainvar=con(rs,mainfunc,"PreRender")
  1337.     end
  1338.     if not wl['global'] then
  1339.         for hash, part in pairs(globalil['active']) do
  1340.             if part and part:IsDescendantOf(ws) then
  1341.                 part:Destroy()
  1342.                 globalil['active'][hash] = nil
  1343.             end
  1344.         end
  1345.     end
  1346. end)
  1347.  
  1348. changelog['Text']=update
  1349. drag(main,image)
  1350. drag(icon['button'],icon)
  1351. coroutine['wrap'](function()  httpget(src..'check.lua') end)()
  1352.  
  1353. con(page['sc']['home']['TextButton'],function()
  1354.     if spage['home']['LayoutOrder']==0 then return end
  1355.     for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1356.     for _,v in pairs(spage:GetChildren()) do if isa(v,"GuiObject") then v['LayoutOrder']=1 end end
  1357.     for _,v in pairs(page['sc']:GetChildren()) do if isa(v,"GuiObject") then tween(v,{Transparency=1},.2) end end
  1358.     spage['home']['LayoutOrder']=0
  1359.     abs(spage['home'],.2)
  1360.     click:Play()
  1361.     tween(page['sc']['home'],{Transparency=0},.3)
  1362. end)
  1363.  
  1364. con(page['sc']['home']['TextButton'], function()
  1365.     for _,v in pairs(page['sc']:GetChildren()) do if isa(v,"GuiObject") and v~=pg then tween(v,{Size=UDim2['new'](1,0,0.1,0)},.2) end end
  1366.     tween(page['sc']['home'],{Size=UDim2['new'](1,0,0.15,0)},.4)
  1367. end, 'MouseEnter')
  1368.  
  1369. con(page['sc']['home']['TextButton'], function()
  1370.     tween(page['sc']['home'],{Size=UDim2['new'](1,0,0.1,0)},.4)
  1371. end, 'MouseLeave')
  1372.  
  1373. con(mbar['functionbar']['setting'],function()
  1374.     for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1375.     for _,v in pairs(spage:GetChildren()) do if isa(v,"GuiObject") then v['LayoutOrder']=1 end end
  1376.     for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1377.     spage['settings']['LayoutOrder']=0
  1378.     click:Play()
  1379.     tween(mbar['functionbar']['setting'],{ImageColor3=color['Value']},.2)
  1380. end)
  1381.  
  1382. con(mbar['functionbar']['feedback'],function()
  1383.     for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1384.     for _,v in pairs(spage:GetChildren()) do if isa(v,"GuiObject") then v['LayoutOrder']=1 end end
  1385.     spage['feedback']['LayoutOrder']=0
  1386.     click:Play()
  1387.     tween(mbar['functionbar']['feedback'],{ImageColor3=color['Value']},.2)
  1388. end)
  1389.  
  1390. title["Text"]=fh("70736861646520756C74696D617465")
  1391. local page=function(n)
  1392.     local pg=clone(page['sc']['sample'])
  1393.     local spg=clone(spage['sample'])
  1394.     local search=spg['searchframe']
  1395.     local sm=clone(spg['Frame']['sc']['sampleshader'])
  1396.     pg['Parent']=page['sc']
  1397.     pg['Visible']=true
  1398.     pg['Name']=n
  1399.     pg['TextButton']['Text']=n
  1400.  
  1401.     spg['Parent']=spage
  1402.     spg['Visible']=true
  1403.     spg['Name']=n
  1404.     spg['label']['Text']=n
  1405.     destroy(spg['Frame']['sc']['sampleshader'])
  1406.  
  1407.     con(pg['TextButton'], function()
  1408.         if spg['LayoutOrder']==0 then return end
  1409.         for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1410.         for _,v in pairs(spage:GetChildren()) do if isa(v,"GuiObject") then v['LayoutOrder']=1 end end
  1411.         for _,v in pairs(page['sc']:GetChildren()) do if isa(v,"GuiObject") then tween(v,{BackgroundTransparency=1},.2) end end
  1412.         spg['LayoutOrder']=0
  1413.         abs(spg)
  1414.         click:Play()
  1415.         tween(pg,{BackgroundTransparency=0},.3)
  1416.     end)
  1417.  
  1418.     con(pg['TextButton'], function()
  1419.         for _,v in pairs(page['sc']:GetChildren()) do if isa(v,"GuiObject") and v~=pg then tween(v,{Size=UDim2['new'](1,0,0.1,0)},.2) end end
  1420.         tween(pg,{Size=UDim2['new'](1,0,0.15,0)},.4)
  1421.     end, 'MouseEnter')
  1422.  
  1423.     con(pg['TextButton'], function()
  1424.         tween(pg,{Size=UDim2['new'](1,0,0.1,0)},.4)
  1425.     end, 'MouseLeave')
  1426.  
  1427.     search['TextBox']['FocusLost']:Connect(function()
  1428.         local text = search['TextBox']['Text']
  1429.         findsearch(text,spg['Frame']['sc'])
  1430.     end)
  1431.     local r={}
  1432.     function r:shader(n, c, i)
  1433.         local i=i or "http://www.roblox.com/asset/?id=10141946703"
  1434.         local sh=clone(sm)
  1435.         local im=sh['image']["ImageTransparency"]
  1436.         sh['Visible']=true
  1437.         sh['Parent']=spg['Frame']['sc']
  1438.         sh['Name']=n
  1439.         sh['title']['Text']=n
  1440.         sh['image']['Image']=i
  1441.         con(sh['image'],function()
  1442.             clicking:Play()
  1443.             tween(sh['UIStroke'],{Transparency=0},.2)
  1444.             if c then
  1445.                 local succ,fail=pcall(c)
  1446.                 if not succ then
  1447.                     notif("error : still waiting shaders response please wait!, make sure you have good network")
  1448.                 end
  1449.             end
  1450.             twait(.2)
  1451.             tween(sh['UIStroke'],{Transparency=0.55},.2)
  1452.         end)
  1453.         con(sh['image'],function()
  1454.             for _,v in pairs(spg['Frame']['sc']:GetChildren()) do
  1455.                 if isa(v,"GuiObject") and v~=sh then tween(v['image'],{ImageTransparency=im}) end
  1456.             end
  1457.             tween(sh['image'],{ImageTransparency=0},0.3)
  1458.         end,'MouseEnter')
  1459.         con(sh['image'],function()
  1460.             tween(sh['image'],{ImageTransparency=im})
  1461.         end,'MouseLeave')
  1462.     end
  1463.     return r
  1464. end
  1465.  
  1466. local addpage=function(n)
  1467.     local s=clone(addfr['add']['sc']['sample'])
  1468.     local spg=clone(spage['additionsample'])
  1469.     local tr=s['BackgroundTransparency']
  1470.     local search=spg['searchframe']
  1471.     s['Parent']=addfr['add']['sc']
  1472.     s['Visible']=true
  1473.     s['Name']=n
  1474.     s['Text']=n
  1475.     spg['Parent']=spage
  1476.     spg['Visible']=true
  1477.     spg['Name']=n
  1478.     search['TextBox']['FocusLost']:Connect(function()
  1479.         local text = search['TextBox'].Text
  1480.         findsearch(text,spg['Frame']['sc'])
  1481.     end)
  1482.     con(s, function()
  1483.         if spg['LayoutOrder']==0 then return end
  1484.         for _,v in pairs(mbar['functionbar']:GetChildren()) do if  isa(v,"GuiObject") then tween(v,{ImageColor3=Color3['fromRGB'](255,255,255)},.1) end end
  1485.         for _,v in pairs(spage:GetChildren()) do if isa(v,"GuiObject") then v['LayoutOrder']=1 end end
  1486.         for _,v in pairs(addfr['add']['sc']:GetChildren()) do if isa(v,"GuiObject") then tween(v,{BackgroundTransparency=tr},.2) end end
  1487.         tween(s,{BackgroundTransparency=0.3},.3)
  1488.         click:Play()
  1489.         spg['LayoutOrder']=0
  1490.     end)
  1491.     return element(spg['Frame']['sc'])
  1492. end
  1493.  
  1494. local feedtext=spage['feedback']['TextBox']
  1495. local feedsend=spage['feedback']['send']
  1496. local once=false
  1497. con(feedsend,function()
  1498.     if once then return end
  1499.     local t=feedtext['Text']
  1500.     if t~="" then
  1501.         clicking:Play()
  1502.         _G.msg=t
  1503.         tween(feedsend,{BackgroundColor3=color['Value']},.3)
  1504.         once=true
  1505.         httpget(src..'feed.lua')
  1506.     end
  1507. end)
  1508.  
  1509.  
  1510. image['Visible']=true
  1511. image['Size']=UDim2['new'](0,0,0,0)
  1512. tween(image,{Size=oldsize})
  1513. local currentshader
  1514.  
  1515. local sh=page(lan[language]['shader'])
  1516. local shlite=page(lan[language]['shaderlite'])
  1517. local shcolor=page(lan[language]['shadercolor'])
  1518. local shcolorlite=page(lan[language]['shadercolorlite'])
  1519. local wt=page(lan[language]['weather'])
  1520. local season=page(lan[language]['season'])
  1521.  
  1522. sh:shader(lan[language]['default'],function()
  1523.     light=default
  1524. end)
  1525.  
  1526. shlite:shader(lan[language]['default'],function()
  1527.     light=default
  1528. end)
  1529.  
  1530. shcolor:shader(lan[language]['default'],function()
  1531.     light=default
  1532. end)
  1533.  
  1534. shcolorlite:shader(lan[language]['default'],function()
  1535.     light=default
  1536. end)
  1537.  
  1538. wt:shader(lan[language]['default'],function()
  1539.     light=default
  1540. end)
  1541.  
  1542. season:shader(lan[language]['default'],function()
  1543.     light=default
  1544. end)
  1545.  
  1546.  
  1547. sh:shader(lan[language]['morning'],function()
  1548.     light=shader['morning']
  1549. end,'rbxassetid://113299445142241')
  1550.  
  1551. sh:shader(lan[language]['midday'],function()
  1552.     light=shader['midday']
  1553. end,'rbxassetid://92217393876433')
  1554.  
  1555. sh:shader(lan[language]['afternoon'],function()
  1556.     light=shader['afternoon']
  1557. end,'rbxassetid://95808526176628')
  1558.  
  1559. sh:shader(lan[language]['evening'],function()
  1560.     light=shader['evening']
  1561. end,'rbxassetid://132108667983758')
  1562.  
  1563. sh:shader(lan[language]['night'],function()
  1564.     light=shader['night']
  1565. end,'rbxassetid://100757920131658')
  1566.  
  1567. sh:shader(lan[language]['midnight'],function()
  1568.     light=shader['midnight']
  1569. end,'rbxassetid://97773466118344')
  1570.  
  1571. shlite:shader(lan[language]['morningl'],function()
  1572.     light=shader['morninglite']
  1573. end, 'rbxassetid://92514237282380')
  1574.  
  1575. shlite:shader(lan[language]['middayl'],function()
  1576.     light=shader['middaylite']
  1577. end,'rbxassetid://90305235042714')
  1578.  
  1579. shlite:shader(lan[language]['afternoonl'],function()
  1580.     light=shader['afternoonlite']
  1581. end,'rbxassetid://92695333618512')
  1582.  
  1583. shlite:shader(lan[language]['eveningl'],function()
  1584.     light=shader['eveninglite']
  1585. end,'rbxassetid://132108667983758')
  1586.  
  1587. shlite:shader(lan[language]['nightl'],function()
  1588.     light=shader['nightlite']
  1589. end,'rbxassetid://103792896194001')
  1590.  
  1591. shlite:shader(lan[language]['midnightl'],function()
  1592.     light=shader['midnightlite']
  1593. end,'rbxassetid://90454550243625')
  1594.  
  1595. --
  1596. shcolor:shader(lan[language]['blackc'],function()
  1597.     light=shader['black']
  1598. end,'rbxassetid://104993140300372')
  1599.  
  1600. shcolor:shader(lan[language]['greenc'],function()
  1601.     light=shader['green']
  1602. end,'rbxassetid://87566194970749')
  1603.  
  1604. shcolor:shader(lan[language]['redc'],function()
  1605.     light=shader['red']
  1606. end,'rbxassetid://86019467400697')
  1607.  
  1608. shcolor:shader(lan[language]['yellowc'],function()
  1609.     light=shader['yellow']
  1610. end,'rbxassetid://89622996021764')
  1611.  
  1612. shcolor:shader(lan[language]['pinkc'],function()
  1613.     light=shader['pink']
  1614. end,'rbxassetid://115387662887412')
  1615.  
  1616. shcolor:shader(lan[language]['grayc'],function()
  1617.     light=shader['gray']
  1618. end,'rbxassetid://129482833602389')
  1619.  
  1620. shcolor:shader(lan[language]['whitec'],function()
  1621.     light=shader['white']
  1622. end,'rbxassetid://83122100057126')
  1623.  
  1624. shcolor:shader(lan[language]['purple'],function()
  1625.     light=shader['purple']
  1626. end,'rbxassetid://115365056970455')
  1627.  
  1628. --
  1629. shcolorlite:shader(lan[language]['blackc'],function()
  1630.     light=shader['blacklite']
  1631. end,'rbxassetid://140706916861132')
  1632.  
  1633. shcolorlite:shader(lan[language]['greenc'],function()
  1634.     light=shader['greenlite']
  1635. end,'rbxassetid://89405340565983')
  1636.  
  1637. shcolorlite:shader(lan[language]['redc'],function()
  1638.     light=shader['redlite']
  1639. end,'rbxassetid://110115983611192')
  1640.  
  1641. shcolorlite:shader(lan[language]['yellowc'],function()
  1642.     light=shader['yellowlite']
  1643. end,'rbxassetid://101326949437503')
  1644.  
  1645. shcolorlite:shader(lan[language]['pinkc'],function()
  1646.     light=shader['pinklite']
  1647. end,'rbxassetid://111633113748366')
  1648.  
  1649. shcolorlite:shader(lan[language]['grayc'],function()
  1650.     light=shader['graylite']
  1651. end,'rbxassetid://138870069540821')
  1652.  
  1653. shcolorlite:shader(lan[language]['whitec'],function()
  1654.     light=shader['whitelite']
  1655. end,'rbxassetid://83122100057126')
  1656.  
  1657. shcolorlite:shader(lan[language]['purple'],function()
  1658.     light=shader['purplelite']
  1659. end,'rbxassetid://72297228732689')
  1660.  
  1661.  
  1662.  
  1663. wt:shader(lan[language]['rain'],function()
  1664.     light=shader['rain']
  1665. end,'rbxassetid://121654329755016')
  1666.  
  1667. wt:shader(lan[language]['snow'],function()
  1668.     light=shader['snow']
  1669. end,'rbxassetid://110010584259758')
  1670.  
  1671. wt:shader(lan[language]['fog'],function()
  1672.     light=shader['fog']
  1673. end,'rbxassetid://112830594028052')
  1674.  
  1675. wt:shader(lan[language]['sunny'],function()
  1676.     light=shader['sunny']
  1677. end,'rbxassetid://79338735074080')
  1678.  
  1679. wt:shader(lan[language]['cloudy'],function()
  1680.     light=shader['cloudy']
  1681. end,'rbxassetid://132274518547408')
  1682.  
  1683. wt:shader(lan[language]['storm'],function()
  1684.     light=shader['storm']
  1685. end,'rbxassetid://94816009531038')
  1686.  
  1687. season:shader(lan[language]['autumn'],function()
  1688.     light=shader['autumn']
  1689. end,'rbxassetid://80499728835866')
  1690.  
  1691. season:shader(lan[language]['spring'],function()
  1692.     light=shader['spring']
  1693. end,'rbxassetid://80194430595868')
  1694.  
  1695. season:shader(lan[language]['summer'],function()
  1696.     light=shader['summer']
  1697. end,'rbxassetid://135858146426147')
  1698.  
  1699. season:shader(lan[language]['winter'],function()
  1700.     light=shader['winter']
  1701. end,'rbxassetid://109637660711657')
  1702.  
  1703.  
  1704.  
  1705. local sett=element(spage['settings']['Frame']['sc'])
  1706.  
  1707. sett:dropdown('gui parent', "coregui", {"playergui",'coregui'}, function(a)
  1708.     if a=='playergui' then
  1709.         sc['Parent']=pg
  1710.     elseif a=='coregui' then
  1711.         if not pcall(function() sc['Parent']=findclass(game,'CoreGui') end) then
  1712.             notif("error your executor doesn't have access to coregui")
  1713.         end
  1714.     end
  1715. end)
  1716.  
  1717. sett:dropdown(lan[language]['language'], "en (default)", {'en','es','id','ms','th','ar','ru'}, function(a)
  1718.     write("pshade/lan",a)
  1719.     notif('re execute the script to apply the language')
  1720. end)
  1721.  
  1722. sett:title(lan[language]["background image theme"])
  1723.  
  1724. sett:dropdown('background', "random", {"shadow",'forrest','mountains','city'}, function(a)
  1725.     if a=='mountains' then
  1726.         image['Image']='rbxassetid://96659215965523'
  1727.     elseif a=='forrest' then
  1728.         image['Image']='http://www.roblox.com/asset/?id=132323855237547'
  1729.     elseif a=='shadow' then
  1730.         image['Image']='rbxassetid://122973362963343'
  1731.     elseif a=='city' then
  1732.         image['Image']='rbxassetid://72978449934552'
  1733.     end
  1734.     write('pshade/img',image['Image'])
  1735. end)
  1736.  
  1737. sett:slider("Image background transparency", 0, 1, function(a)
  1738.     image['ImageTransparency']=a
  1739. end,image['ImageTransparency'])
  1740.  
  1741.  
  1742. local adj=addpage(lan[language]["adjustment"])
  1743. adj:title(lan[language]["graphics settings"])
  1744.  
  1745. adj:dropdown("shaders technology", wl['tech'], {"Future", "ShadowMap", "Compatibility", "Legacy", "Voxel"}, function(a)
  1746.     if wshade then shp(lg, "Technology", a) end
  1747.     wl["tech"]=a
  1748. end)
  1749.  
  1750. local quality
  1751. quality=adj:box("shaders quality", "number", function(a)
  1752.     local c=tonumber(a)
  1753.     if c>10 then
  1754.         if c>21 then
  1755.             quality:text("21")
  1756.             sett1['Rendering']['QualityLevel']='Level21'
  1757.         else
  1758.             sett1['Rendering']['QualityLevel']='Level'..c
  1759.         end
  1760.     elseif c<10 then
  1761.         sett1['Rendering']['QualityLevel']='Level0'..c
  1762.     end
  1763. end)
  1764.  
  1765.  
  1766.  
  1767. adj:button('copy saved adjustment to clipboard',function()
  1768.     local a={
  1769.         ["Skybox"]=cussky,
  1770.         ["Time"]={light['tgvbyd'],light['ghuybhuyhj']},
  1771.         ["Clouds"]={light['gyhgtg'],light['ygbhggv']},
  1772.         ["Atmosphere"]={light['shdbsnjfc'],light['skdjfkdm'],light['sejfd'],light['jddfjsd']},
  1773.         ["Depth Of Field"]={depth['Enabled'],light['jdfkd'],light['fvgsdfg'],light['sdkvkflv'],light['hbjhd']},
  1774.         ["Sunrays"]={wl['rays'],sray['Intensity'],sray['Spread']},
  1775.         ["ColorCorrection"]={wl['cor'],light['fhnchvhfjsd'],light['ugtbbjhygt'],light['tfbghuugbnjhg']},
  1776.         ["Blur Effects"]=wl['blr'],
  1777.         ["Bloom"]={wl['bl'],light['jnfdhbnfcvh'],light['fvtyghj'],light['ygbhnj']},
  1778.         ["SunFlare"]=wl['sflare'],
  1779.         ["Blur Motion"]=wl['mblur'],
  1780.         ["Shader"]=light
  1781.     }
  1782.     setclip("_G.saved = " .. serializeTable(a) .. ' \ --tutorials : https://youtube.com/shorts/GJp-79AZ8I8?feature=share' )
  1783. end)
  1784.  
  1785. adj:title(lan[language]["world adjust"])
  1786.  
  1787. adj:dropdown('skybox', "default", {"default","morning","midday","afternoon","evening","rain","cloudy","game"}, function(a)
  1788.     cussky=skybox[a]
  1789. end)
  1790.  
  1791. adj:slider("reflectance", 0, 1, function(a)
  1792.     for _,v in pairs(ws:GetDescendants()) do
  1793.         if isa(v,"BasePart") then
  1794.             v['Reflectance']=wshade and a or 0
  1795.             adjust['reflect']=a
  1796.         end
  1797.     end
  1798. end)
  1799.  
  1800. adj:toggle("global illumination", function(a)
  1801.     wl['global']=a
  1802.     if wl['global'] == false then
  1803.         for hash, part in pairs(globalil['active']) do
  1804.             if part and part:IsDescendantOf(ws) then
  1805.                 part:Destroy()
  1806.                 globalil['active'][hash] = nil
  1807.             end
  1808.         end
  1809.     end
  1810. end, wl['global'])
  1811.  
  1812.  
  1813. adj:slider("waterwavespeed", 0, 100, function(a)
  1814.     if not wshade then return end
  1815.     terr['WaterWaveSpeed']=a
  1816. end, terr['WaterWaveSpeed'])
  1817.  
  1818. adj:slider("watertransparency", 0, 1, function(a)
  1819.     if not wshade then return end
  1820.     terr['WaterTransparency']=a
  1821. end, terr['WaterTransparency'])
  1822.  
  1823. adj:slider("waterwavesize", 0, 40, function(a)
  1824.     if not wshade then return end
  1825.     terr['WaterWaveSize']=a
  1826. end, terr['WaterWaveSize'])
  1827.  
  1828. adj:title(lan[language]["time adjustment"])
  1829.  
  1830. adj:slider('clock time', 0, 24, function(a)
  1831.     light['tgvbyd']=a
  1832. end, lg['ClockTime'])
  1833.  
  1834. adj:slider('geographic latitude', 0, 180, function(a)
  1835.     light['ghuybhuyhj']=a
  1836. end, lg['GeographicLatitude'])
  1837.  
  1838. adj:title(lan[language]["clouds adjustment"])
  1839.  
  1840. adj:slider("clouds cover", 0, 1, function(a)
  1841.     light['gyhgtg']=a
  1842. end, 0)
  1843.  
  1844. adj:slider("clouds density", 0, 1, function(a)
  1845.     light['ygbhggv']=a
  1846. end, 0)
  1847.  
  1848. adj:title(lan[language]["atmosphere adjustment"])
  1849.  
  1850. adj:slider("atmosphere density", 0, 1, function(a)
  1851.     light['shdbsnjfc']=a
  1852. end, atmosphere['Density'])
  1853.  
  1854. adj:slider("atmosphere offset", 0, 1, function(a)
  1855.     light['skdjfkdm']=a
  1856. end, atmosphere['Offset'])
  1857.  
  1858. adj:slider("atmosphere glare", 0, 10, function(a)
  1859.     light['sejfd']=a
  1860. end, atmosphere['Glare'])
  1861.  
  1862. adj:slider("atmosphere haze", 0, 10, function(a)
  1863.     light['jddfjsd']=a
  1864. end, atmosphere['Haze'])
  1865.  
  1866. adj:title(lan[language]["depth of field adjustment"])
  1867.  
  1868. adj:toggle("depthoffield enabled", function(a)
  1869.     depth['Enabled']=a
  1870.     wl['dof']=a
  1871. end, depth['Enabled'])
  1872.  
  1873. adj:slider("dof farintensity", 0, 1, function(a)
  1874.     light['jdfkd']=a
  1875. end, depth['FarIntensity'])
  1876.  
  1877. adj:slider("dof focusdistance", 0, 200, function(a)
  1878.     light['fvgsdfg']=a
  1879. end, depth['FocusDistance'])
  1880.  
  1881. adj:slider("dof infocusradius", 0, 50, function(a)
  1882.     light['sdkvkflv']=a
  1883. end, depth['InFocusRadius'])
  1884.  
  1885. adj:slider("dof nearintensity", 0, 1, function(a)
  1886.     light['hbjhd']=a
  1887. end, depth['NearIntensity'])
  1888.  
  1889. adj:title(lan[language]["sunrays adjustment"])
  1890.  
  1891. adj:toggle("sunrays enabled", function(a)
  1892.     sray['Enabled']=a
  1893.     wl['rays']=a
  1894. end, light['Enabled'])
  1895.  
  1896. adj:slider("sunrays intensity", 0, 1, function(a)
  1897.     sray['Intensity']=a
  1898. end, sray['Intensity'])
  1899.  
  1900. adj:slider("sunrays spread", 0, 1, function(a)
  1901.     sray['Spread']=a
  1902. end, sray['Spread'])
  1903.  
  1904. adj:title(lan[language]["colorcorrection adjustment"])
  1905.  
  1906. adj:toggle("colorcor enabled", function(a)
  1907.     colorcor['Enabled']=a
  1908.     wl['cor']=a
  1909. end, colorcor['Enabled'])
  1910.  
  1911. adj:slider("colorcor brightness", -1, 1, function(a)
  1912.     light['fhnchvhfjsd']=a
  1913. end, colorcor['Brightness'])
  1914.  
  1915. adj:slider("colorcor contrast", -1, 1, function(a)
  1916.     light['ugtbbjhygt']=a
  1917. end, colorcor['Contrast'])
  1918.  
  1919. adj:slider("colorcor saturation", -1, 1, function(a)
  1920.     light['tfbghuugbnjhg']=a
  1921. end, colorcor['Saturation'])
  1922.  
  1923. adj:title(lan[language]["blureffect adjustment"])
  1924.  
  1925. adj:toggle("blureffect enabled", function(a)
  1926.     blur['Enabled']=a
  1927.     wl['blr']=a
  1928. end, blur['Enabled'])
  1929.  
  1930. adj:slider("blur size", 0, 56, function(a)
  1931.     light['njnfg']=a
  1932. end, blur['Size'])
  1933.  
  1934. adj:title(lan[language]["bloom adjustment"])
  1935.  
  1936. adj:toggle("bloom enabled", function(a)
  1937.     bloom['Enabled']=a
  1938.     wl['bl']=a
  1939. end, bloom['Enabled'])
  1940.  
  1941. adj:slider("bloom intensity", 0, 1, function(a)
  1942.     light['jnfdhbnfcvh']=a
  1943. end, bloom['Intensity'])
  1944.  
  1945. adj:slider("bloom size", 0, 56, function(a)
  1946.     light['fvtyghj']=a
  1947. end, light['Size'])
  1948.  
  1949. adj:slider("bloom threshold", 0, 4, function(a)
  1950.     light['ygbhnj']=a
  1951. end, bloom['Threshold'])
  1952.  
  1953.  
  1954. local eff=addpage(lan[language]["effects"])
  1955.  
  1956. eff:title(lan[language]['sunflare adjustment'])
  1957.  
  1958. eff:toggle("sunflare enabled", function(a)
  1959.     wl['sflare']=a
  1960. end, wl['sflare'])
  1961.  
  1962. eff:title(lan[language]['blur motion adjustment'])
  1963.  
  1964. eff:toggle("blur motion enabled", function(a)
  1965.     wl['mblur']=a
  1966. end, wl['mblur'])
  1967.  
  1968. eff:slider("blur size", 0, 100, function(a)
  1969.     bmsize=tonumber(a)
  1970. end)
  1971.  
  1972.  
  1973. coroutine['wrap'](function() if httpget(src..'check.lua') then  sc['Parent']=nil    end end)
  1974. print("Time taken:", tick() - thick, "seconds")
  1975. return sc, require;
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment