Advertisement
lafur

Untitled

Oct 7th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  4. local RealPlayer = Player
  5. do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end --script/ -- mediafire
  6. script:ClearAllChildren()
  7.  
  8. as={}
  9. as.cone='1033714'
  10. as.ring="3270017"
  11. as.Chakram='47260990'
  12. as.ring2='18430887'
  13. as.blast='20329976'
  14. as.missile='10207677'
  15. as.fire='2693346'
  16. as.boom='3264793'
  17. as.slash='10209645'
  18. as.abscond='2767090'
  19. as.firelaser='13775494'
  20. as.diamond='9756362'
  21. as.metal='rbxasset://sounds\\unsheath.wav'
  22. as.hit='10209583'
  23. as.kick='46153268'
  24. as.cast='2101137'
  25. as.guigradient ='48965808'
  26. as.guigradient2='53084230'
  27. as.redgradient='108536582'
  28. as.yellowgradient='108536588'
  29.  
  30.  
  31. for i,v in pairs(as) do
  32. if type(tonumber(v:sub(1,3)))=="number" then
  33. as[i]="http://www.roblox.com/asset/?id="..v
  34. end
  35. end
  36.  
  37.  
  38.  
  39. local parsa=workspace
  40.  
  41.  
  42. lol=script --qi{"Model",parsa,n="RMShip"}
  43. script.Name='RMShip'
  44.  
  45.  
  46. cc="Brown"
  47. cc2='Pastel brown'
  48. cc3='Dark green'
  49. for ii,vv in pairs(parsa:children()) do
  50. if vv.Name=="RMShip" and vv~=lol then
  51. for i,v in pairs(vv:children()) do
  52. v:Remove()
  53. if i%100==0 then wait() end
  54. end
  55. end
  56. end
  57.  
  58.  
  59.  
  60. addwindow2 = function(cf,sc,hi,tic,cus)
  61. local tic=tic or 4
  62. local hi=(hi or 10)-2
  63.  
  64. qi{"Part",lol,sc=v3(tic+0.1,2,sc),bn=bn'Black',cf=cf*cn(0,1,0),an=true,mat="Wood"}
  65. for i=0,180,180/10 do
  66. local v=qi{"Part",lol,sc=v3(tic+0.1,sc/6,2),bn=bn'Black',cf=cf*cn(0,2+hi,0)*ca(-i,0,0)*cn(0,0,sc/2-1),an=true,mat="Wood"}
  67. if i==0 or i==180 then
  68. if i==180 then v.CFrame=v.CFrame*ca(180,0,0) end
  69. local vcf=v.CFrame
  70. local vsy=v.Size.y/2
  71. v.Size=v3(v.Size.x,vsy+hi,v.Size.z)
  72. v.CFrame=vcf*cn(0,(-hi/2)+(vsy/2),0)
  73. end
  74. end
  75. local midcf=cf*cn(0,2+(hi/2)+(sc/4)-0.5,0)
  76. qi{"Part",lol,sc=v3(tic/2.4,hi+(sc/2)-1,sc-3),bn=bn'Institutional white',tra=0.5,cf=midcf,an=true}
  77. qi{"Part",lol,sc=v3(tic/2+0.1,1.5,sc-3),bn=bn'Black',cf=midcf,an=true,mat="Wood"}
  78. qi{"Part",lol,sc=v3(tic/2+0.2,hi+(sc/2)-1,1.5),bn=bn'Black',cf=midcf*cn(0,-0.5,0),an=true,mat="Wood"}
  79.  
  80.  
  81. if not cus then
  82. for x=-1,1,2 do
  83. qi{"WedgePart",lol,sc=v3(tic,sc/2+1.5,sc/4),bn=bn(cc),cf=midcf*cn(0,sc/2-sc/8,(sc/4+sc/8)*x)*ca(180,x==-1 and 0 or 180,0),an=true,mat="Wood"}
  84. end
  85. qi{"Part",lol,sc=v3(tic-0.05,2,sc),bn=bn(cc),tra=0,cf=midcf*cn(0,hi/2+sc/4-0.25,0),an=true,mat="Wood"}
  86. end --
  87. --
  88. end --
  89. sxx=12.5
  90. addsupport=function(cf,len,xx,sep)
  91. local sep=sep or 8
  92. local cyl=qi{"Part",lol,sc=v3(1,len,1),an=true,bn=bn(cc),cf=cf*ca(0,0,90)} qi{'CylinderMesh',cyl}
  93. for x=-len/2+2,len/2-2,sep do
  94. local cyl=qi{"Part",lol,sc=v3(0.75,3,0.75),an=true,bn=bn(cc),cf=cf*ca(xx,0,0)*cn(x,1.5,0)*ca(0,45,0),mat="Wood"}
  95. qi{'CylinderMesh',cyl}
  96. end
  97. local cyl=qi{"Part",lol,sc=v3(0.75,len,0.75),an=true,bn=bn(cc),cf=cf*ca(xx,0,0)*cn(0,3,0)*ca(0,0,90)*ca(0,45,0),mat="Wood"}
  98. qi{'CylinderMesh',cyl}
  99. end
  100. stair1=function(ofs,h,yy,tt)
  101. qi{"SpecialMesh",qi{"Part",lol,sc=v3(2.2,h,2.2),an=true,cf=ofs*cn(0,h/2,0),mat="Wood",bn='Black'}}
  102. local ts=0
  103. for y=0,yy,yy/tt do
  104. qi{"Part",lol,sc=v3(8,1,2),an=true,cf=ofs*cn(0,ts/tt*(h-2)+1.5,0)*ca(0,y,0)*cn(4.5,0,0),mat="Wood",bn=cc3}
  105. qi{"Part",lol,sc=v3(1,5,3),an=true,cf=ofs*cn(0,ts/tt*(h-2)+3.5,0)*ca(0,y,0)*cn(9,0,0),mat="Wood",bn=cc}
  106. ts=ts+1
  107. end
  108. end
  109. stair2=function(ofs,h,yy,tt,th,le,zz)
  110. local ts=0
  111. for y=0,yy,yy/tt do
  112. qi{"Part",lol,sc=v3(le or 8,1,zz or 2),an=true,cf=ofs*cn(0,ts/tt*(h-2)+1.5,0)*ca(0,y,0)*cn((le+th)/2,0,0),mat="Wood",bn=cc3}
  113. qi{"Part",lol,sc=v3(1,5,3),an=true,cf=ofs*cn(0,ts/tt*(h-2)+3.5,0)*ca(0,y,0)*cn(th/2+0.5+le,0,0),mat="Wood",bn=cc}
  114. ts=ts+1
  115. end
  116. end
  117.  
  118.  
  119. sx=60
  120. sz=180
  121. sk = 10
  122. local rang=45
  123.  
  124.  
  125.  
  126. TCFS={}
  127. for side=-1,1,2 do
  128. for rot=sk,180,sk do
  129. i = mrad(rot)
  130. TCF=BasePos*cn(-side*math.sin(i)*sx,0,math.cos(i)*sz) --*ca2(0,i,0)
  131. local ii = i-mrad(sk)
  132. TCF2=BasePos*cn(-side*math.sin(ii)*sx,0,math.cos(ii)*sz)
  133. local mag = (TCF.p-TCF2.p).magnitude
  134. TCF3=cn(TCF.p,TCF2.p)*cn(0,0,-mag/2)*cn(side*-rang,0,0)
  135. TCFS[side*rot]={TCF3,mag}
  136. end
  137. end
  138.  
  139.  
  140. MakeWing=function(ofs,len,wide,times)
  141. local s=0
  142. local wing={}
  143. for i=0,wide,wide/times do
  144. s=s+1
  145. local adj=s*len/5
  146. local lenn=adj+len
  147. local v=qi{"Part",lol,sc=v3(3,lenn,3),cf=ofs*ca(i,0,0)*cn(0,lenn/2,0),an=true,bn=cc3,mat='Wood'}
  148. wing[#wing+1]=v
  149. end
  150. for i=1,#wing-1 do
  151. local y1,y2=wing[i].Size.y/2,wing[i+1].Size.y/2
  152. local zz=(wing[i].CFrame*cn(0,y1,4).p-wing[i+1].CFrame*cn(0,y2,-4).p).magnitude
  153. qi{"WedgePart",lol,sc=v3(0.5,y1*2-4,zz),cf=wing[i].CFrame*cn(0,-2,1+zz/2)*ca(180,0,0),an=true,bn='White'}
  154. end
  155. for i=1,#wing do
  156. qi{'SpecialMesh',qi{"Part",lol,sc=v3(2,5,2),cf=wing[i].CFrame*cn(0,wing[i].Size.y/2,0)*ca(30,0,0)*cn(0,2.5,0),an=true,bn=cc3,mat='Wood'},MeshId=as.cone,Scale=v3(1.5,8,1.5)}
  157. wing[i].CFrame=wing[i].CFrame*ca(0,45,0)
  158. end
  159. end
  160.  
  161. outline = function(cf,vx,vz,ti,co)
  162. local ti = ti or 1.2
  163. for z=-1,1,2 do
  164. for x=-1,1,2 do
  165. qi{'SpecialMesh',qi{"Part",lol,sc=v3(ti,ti,ti),an=true,cf=cf*cn(x*vx/2,0,z*vz/2)*ca(0,0,90),bn=bn(co or 'Dark green')},MeshType="Sphere"}
  166. end
  167. qi{'CylinderMesh',qi{"Part",lol,sc=v3(ti,vz,ti),an=true,cf=cf*cn(z*vx/2,0,0)*ca(90,0,0),bn=bn(co or 'Dark green')}}
  168. qi{'CylinderMesh',qi{"Part",lol,sc=v3(ti,vx,ti),an=true,cf=cf*cn(0,0,z*vz/2)*ca(0,0,90),bn=bn(co or 'Dark green')}}
  169. end
  170. end
  171.  
  172. stairs = function(cf,hig,wid,steplen,adj)
  173. local steplen=steplen or 1
  174. local adj=adj or 1.5
  175. local y=adj
  176. local z=0
  177. local bs,be
  178. repeat
  179. local pa=qi{"Part",lol,sc=v3(wid,0.3,steplen),an=true,cf=cf*cn(0,y,z)*ca(-4,0,0),bn=bn(cc),mat="Wood"}
  180. bs = bs or pa
  181. be = pa
  182. y=y+adj
  183. z=z+steplen
  184. until y>=hig
  185. local mag = (bs.Position-be.Position).magnitude+1
  186. for x=-1,1,2 do
  187. local pa=qi{"Part",lol,sc=v3(0.5,2,mag),an=true,cf=cf*cn(0,y,z),bn=bn(cc),mat="Wood"}
  188. pa.CFrame=cn(bs.Position,be.Position)*cn((wid/2+0.25)*x,0.25,-mag/2)
  189. for z=-pa.Size.z/2+1,pa.Size.z/2-1,4 do
  190. qi{"Part",lol,sc=v3(0.5,3,0.5),an=true,bn=bn(cc),mat="Wood"}.CFrame=pa.CFrame*cn(0,1,z)*ca(0,0,-10*x)*cn(0,1.5,0)
  191. end
  192. qi{"Part",lol,sc=v3(0.75,0.75,mag+2),an=true,bn=bn(cc),mat="Wood"}.CFrame=pa.CFrame*cn(0,1,0)*ca(0,0,-10*x)*cn(0,3,0)*ca(0,0,45)
  193. end
  194. end
  195.  
  196. sxx=12.5
  197. addsupport=function(cf,len,xx,sep)
  198. local sep=sep or 8
  199. local cyl=qi{"Part",lol,sc=v3(1,len,1),an=true,bn=bn(cc),cf=cf*ca(0,0,90)} qi{'CylinderMesh',cyl}
  200. for x=-len/2+2,len/2-2,sep do
  201. local cyl=qi{"Part",lol,sc=v3(0.75,3,0.75),an=true,bn=bn(cc),cf=cf*ca(xx,0,0)*cn(x,1.5,0)*ca(0,45,0),mat="Wood"}
  202. qi{'CylinderMesh',cyl}
  203. end
  204. local cyl=qi{"Part",lol,sc=v3(0.75,len,0.75),an=true,bn=bn(cc),cf=cf*ca(xx,0,0)*cn(0,3,0)*ca(0,0,90)*ca(0,45,0),mat="Wood"}
  205. qi{'CylinderMesh',cyl}
  206. end
  207.  
  208. addsupport2=function(cf,len,en)
  209. qi{"Part",lol,sc=v3(3,len,1),an=true,bn=bn(cc),cf=cf*cn(0,1.5,0)*ca(0,0,90)}
  210. qi{'CylinderMesh',qi{"Part",lol,sc=v3(1,len,1),an=true,bn=bn(cc),cf=cf*cn(0,3,0)*ca(0,0,90)}}
  211. for x=-1,1,2 do
  212. qi{'CylinderMesh',qi{"Part",(en==0 or en==x) and lol or nil,sc=v3(1,3,1),an=true,bn=bn(cc),cf=cf*cn(x*len/2,1.5,0)}}
  213. qi{'SpecialMesh',qi{"Part",(en==0 or en==x) and lol or nil,sc=v3(1,1,1),an=true,bn=bn(cc),cf=cf*cn(x*len/2,3,0)},MeshType="Sphere"}
  214. end
  215. end
  216.  
  217.  
  218.  
  219. ----starts here
  220. for side=-1,1,2 do
  221. for rot=sk,180,sk do
  222. i = mrad(rot)
  223. local TCF,mag=TCFS[side*rot][1],TCFS[side*rot][2]
  224. local rot2 = rot+sk
  225. if rot2>180 then rot2=170 end
  226. local TCF2,mag2=TCFS[side*rot2][1],TCFS[side*rot2][2]
  227. ---
  228. for x=0,90,100/7 do
  229. local THECF=TCF*ca(0,0,-side*x)*cn(side*rang,0,0)
  230. local cur=qi{"Part",lol,sc=v3(6,12,mag+2),an=true,cf=THECF,bn=bn(cc),mat="Wood"}
  231. if x==0 and rot<90+50 and rot>90-30 then
  232. addsupport(cur.CFrame*cn(2.5*side,6,0)*ca(0,90,0),cur.Size.z,side*sxx)
  233. end
  234. if side==1 and (100/7*2==x or 100/7*0==x) then
  235. if 100/7*0==x then THECF=THECF*cn(0,cur.Size.y/2-0.6,0) end
  236. local wid=BasePos:toObjectSpace(THECF)
  237. local wid1=BasePos:toObjectSpace(THECF*cn(0,0,-cur.Size.z/2))
  238. local wid2=BasePos:toObjectSpace(THECF*cn(0,0,cur.Size.z/2))
  239. local mab = math.abs
  240. local zs = mab(mab(wid2.z)-mab(wid1.z))
  241. if rot==80 then
  242. for x=-1,1,2 do
  243. qi{"Part",lol,sc=v3(mab(wid.x)-12,1,zs-1),an=true,cf=BasePos*cn(x*(wid.x+22),wid.y,wid.z),bn=bn(cc),mat="Wood"}
  244. end
  245. outline(BasePos*cn(0,wid.y,wid.z),100/7*0==x and 25 or 21,zs-3,2)
  246. else
  247. qi{"Part",lol,sc=v3(mab(wid.x*2),1,zs),an=true,cf=BasePos*cn(0,wid.y,wid.z),bn=bn(cc),mat="Wood"}
  248. end
  249. end
  250. end
  251. end
  252. end
  253. for z=-1,1,2 do
  254. for x=-1,1,2 do
  255. local cur=qi{"WedgePart",lol,sc=v3(6,sx/4,sz/2),an=true,cf=BasePos*cn(sx/4.2/2*-x,-45.3,z*-sz/2.4)*ca(z==-1 and 180 or 0,0,x*90),bn=bn(cc),mat="Wood"}
  256. end
  257. end
  258. outline(BasePos*cn(0,-45,0),24+1,60+1,6)
  259. stairs(BasePos*cn(0,-44,61)*ca(0,180,0),24,10,2)
  260. stairs(BasePos*cn(0,-22,72)*ca(0,180,0),29,10,3,2)
  261.  
  262. addwindow = function(cf,tic,sc)
  263. local sc=sc or 1
  264. local tic=tic or 4
  265. local v1=qi{"Part",lol,sc=v3(1,1,1)*sc,an=true,can=false,bn=bn(cc),cf=cf*cn(-tic/4*2.3,0,0)*ca(0,90,0),mat="Wood"} qi{"SpecialMesh",v1,mid=as.ring,sca=v3(10,10,12)*sc}
  266. local v1=qi{"Part",lol,sc=v3(1,1,1)*sc,an=true,can=false,bn=bn(cc),cf=cf*cn(tic/4*2.3,0,0)*ca(0,90,0),mat="Wood"} qi{"SpecialMesh",v1,mid=as.ring,sca=v3(10,10,12)*sc}
  267. local v1=qi{"Part",lol,sc=v3(0.2,8,8)*sc,an=true,bn=bn'Institutional white',cf=cf,tra=0.5}
  268. local v1=qi{"Part",lol,sc=v3(1,1,1)*sc,an=true,can=false,bn=bn'Dark green',cf=cf*ca(0,90,0)} qi{"SpecialMesh",v1,mid=as.ring,sca=v3(8,8,tic*7.75)*sc}
  269. end
  270.  
  271. addwindow2 = function(cf,sc,hi,tic,cus)
  272. local tic=tic or 4
  273. local hi=(hi or 10)-2
  274.  
  275. qi{"Part",lol,sc=v3(tic+0.1,2,sc),bn=bn'Black',cf=cf*cn(0,1,0),an=true,mat="Wood"}
  276. for i=0,180,180/10 do
  277. local v=qi{"Part",lol,sc=v3(tic+0.1,sc/6,2),bn=bn'Black',cf=cf*cn(0,2+hi,0)*ca(-i,0,0)*cn(0,0,sc/2-1),an=true,mat="Wood"}
  278. if i==0 or i==180 then
  279. if i==180 then v.CFrame=v.CFrame*ca(180,0,0) end
  280. local vcf=v.CFrame
  281. local vsy=v.Size.y/2
  282. v.Size=v3(v.Size.x,vsy+hi,v.Size.z)
  283. v.CFrame=vcf*cn(0,(-hi/2)+(vsy/2),0)
  284. end
  285. end
  286. local midcf=cf*cn(0,2+(hi/2)+(sc/4)-0.5,0)
  287. qi{"Part",lol,sc=v3(tic/2.4,hi+(sc/2)-1,sc-3),bn=bn'Institutional white',tra=0.5,cf=midcf,an=true}
  288. qi{"Part",lol,sc=v3(tic/2+0.1,1.5,sc-3),bn=bn'Black',cf=midcf,an=true,mat="Wood"}
  289. qi{"Part",lol,sc=v3(tic/2+0.2,hi+(sc/2)-1,1.5),bn=bn'Black',cf=midcf*cn(0,-0.5,0),an=true,mat="Wood"}
  290.  
  291.  
  292. if not cus then
  293. for x=-1,1,2 do
  294. qi{"WedgePart",lol,sc=v3(tic,sc/2+1.5,sc/4),bn=bn(cc),cf=midcf*cn(0,sc/2-sc/8,(sc/4+sc/8)*x)*ca(180,x==-1 and 0 or 180,0),an=true,mat="Wood"}
  295. end
  296. qi{"Part",lol,sc=v3(tic-0.05,2,sc),bn=bn(cc),cf=midcf*cn(0,hi/2+sc/4-0.25,0),an=true,mat="Wood"}
  297. end --
  298. --
  299. end --
  300.  
  301. local fronty=5.7
  302. local pp={}
  303. for x=-36,36,4 do
  304. local scl=100-math.abs(x*2)
  305. local laa=10+math.floor(32-math.abs(x))
  306. local adj=5+math.abs(x)
  307. local v=qi{"WedgePart",lol,formFactor="Custom",sc=v3(4,laa,scl),an=true,cf=BasePos*cn(x,fronty+(-laa/2),-sz+0.2-(scl/2)+adj)*ca(0,0,180),bn=bn(cc),mat="Wood"}
  308. if x==0 then pp[0]=v end
  309. if x==-36 then pp[-1]=v end
  310. if x==36 then pp[1]=v end
  311. end
  312. for x=-1,1,2 do
  313. local p1=pp[x].CFrame*cn(0,-pp[x].Size.y/2,-pp[x].Size.z/2).p
  314. local p2=pp[0].CFrame*cn(0,-pp[0].Size.y/2,-pp[0].Size.z/2).p
  315. local mag=(p1-p2).magnitude
  316. local v=qi{"Part",lol,sc=v3(4,3,mag+1),an=true,bn=bn(cc),mat="Wood"}
  317. v.CFrame=cn(p1,p2)*cn(0,1.5,-mag/2+0.4-0.5)
  318. local vs=v.Size.z
  319. for w=-vs/2,vs/2,vs/2 do
  320. local adj=10
  321. addwindow(v.CFrame*cn(0,1.5+4,w/1.5+adj),4)
  322. end
  323. qi{"Part",lol,sc=v3(3.9,8.3,25.25),an=true,bn=bn(cc),mat="Wood",cf=v.CFrame*cn(0,1.5+4,-vs/2+12.625)}
  324. qi{"Part",lol,sc=v3(3.9,8.3,30.5),an=true,bn=bn(cc),mat="Wood",cf=v.CFrame*cn(0,1.5+4,-vs/2+25+8+15.25)}
  325. qi{"Part",lol,sc=v3(3.9,8.3,30.5),an=true,bn=bn(cc),mat="Wood",cf=v.CFrame*cn(0,1.5+4,-vs/2+25+16+15.25+30.5)}
  326. qi{"Part",lol,sc=v3(3.9,8.3,5.25),an=true,bn=bn(cc),mat="Wood",cf=v.CFrame*cn(0,1.5+4,vs/2-2.625)}
  327. --
  328. qi{"Part",lol,sc=v3(4,9,mag+1),an=true,bn=bn(cc),mat="Wood",cf=v.CFrame*cn(0,1.5+8+4.5,0)}
  329. addsupport(v.CFrame*cn(1.5*x,-1.5+20,0)*ca(0,90,0),mag+1,x*sxx)
  330. --
  331. local scf
  332. local tp=pp[x]
  333. local adj=6
  334. local v2=qi{"Part",lol,sc=v3(4,20,tp.Size.z-adj),an=true,bn=bn(cc),mat="Wood",cf=tp.CFrame*ca(180,0,0)*cn(0,10+tp.Size.y/2,adj/2)}
  335. addsupport(v2.CFrame*cn(-1.5*x,10,0)*ca(0,90,0),v2.Size.z,-x*sxx)
  336. --22
  337. qi{"Part",lol,sc=v3(31,1,tp.Size.z-adj),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*cn(x*(31/2+1),9.4,0)}
  338. qi{"Part",lol,sc=v3(8.4,1,7.4),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*cn(x*36,9.4,7.5*x)}
  339. local scfp=qi{"Part",lol,sc=v3(5,1,40),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*cn(x*4.5,9.4,-31)}
  340. local scf=scfp.CFrame
  341. if x==1 then addwindow(v2.CFrame*cn(x*36,9.4,0)*ca(0,0,90),1) end
  342. --
  343. local v2=qi{"Part",lol,sc=v3(4,20,20+1.5),an=true,bn=bn(cc),mat="Wood",cf=v2.CFrame*cn(0,0,-v2.Size.z/2)*ca(0,x*22,0)*cn(0,0,-10)}
  344. addsupport(v2.CFrame*cn(-1.5*x,10,-0.4)*ca(0,90,0),v2.Size.z-1.5,-x*sxx)
  345. qi{"WedgePart",lol,sc=v3(1,19,8),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*ca(0,-x*22,0)*cn(x*1.8,9.4,0)*ca(90,x*90,0)}
  346. --
  347. local v2=qi{"Part",lol,sc=v3(4,20,14+1.5),an=true,bn=bn(cc),mat="Wood",cf=v2.CFrame*cn(0,0,-v2.Size.z/2)*ca(0,x*-8,0)*cn(0,0,-7)}
  348. addsupport(v2.CFrame*cn(-1.5*x,10,0)*ca(0,90,0),v2.Size.z,-x*sxx)
  349. qi{"WedgePart",lol,sc=v3(1,15.5,4),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*ca(0,-x*14,0)*cn(x*2,9.4,0)*ca(90,x*90,0)}
  350. qi{"Part",lol,sc=v3(7.7,1,15.7),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*ca(0,-x*14,0)*cn(x*7.75,9.4,0)}
  351. --
  352. local v2=qi{"Part",lol,sc=v3(4,20,5+1.5),an=true,bn=bn(cc),mat="Wood",cf=v2.CFrame*cn(0,0,-v2.Size.z/2)*ca(0,x*-14,0)*cn(0,0,-2.5)}
  353. addsupport(v2.CFrame*cn(-1.5*x,10,0)*ca(0,90,0),v2.Size.z-0.5,-x*sxx)
  354. qi{"Part",lol,sc=v3(12,1,6.5),an=true,bn=bn'Pastel brown',mat="Wood",cf=v2.CFrame*cn(x*(1.5+(12/2)),9.4,-1)}
  355. --
  356. local v2=qi{"Part",lol,sc=v3(4,25.5,4),an=true,bn=bn(cc),cf=v2.CFrame*cn(0,0,-v2.Size.z/2)*cn(0,2,0),mat="Wood"} qi{'SpecialMesh',v2}
  357. local v2f=qi{"Part",lol,sc=v3(4,4,4),an=true,bn=bn(cc),cf=v2.CFrame*cn(0,12,0),mat="Wood"} qi{'SpecialMesh',v2f,MeshType="Sphere"}
  358. --
  359. local v2=qi{"Part",lol,sc=v3(4,20,4),an=true,bn=bn(cc),mat="Wood",cf=v2.CFrame*cn(x*v2.Size.z/2,-2,0)*cn(0,0,0)}
  360. for i=0,180,180/8 do
  361. local v2f=qi{"Part",lol,sc=v3(1,2,4.5),an=true,bn=bn'Dark green',cf=v2.CFrame*cn(x*7,0,0)*ca(0,0,i)*cn(4.5,0,0),mat="Wood"}
  362. if i==0 or i==180 then
  363. local olcf=v2f.CFrame olcf=olcf*cn(0,i==180 and 5 or -5,0)
  364. v2f.Size=v2f.Size+v3(0,10,0)
  365. v2f.CFrame=olcf
  366. end
  367. end
  368. qi{"Part",lol,sc=v3(8,0.2,4.5),an=true,bn=bn'Dark green',cf=v2.CFrame*cn(x*7,-9.8,0),mat="Wood"}
  369. --
  370. for xx=-1,1,2 do
  371. qi{"WedgePart",lol,formFactor="Custom",sc=v3(4,3,4),an=true,bn=bn(cc),cf=v2.CFrame*cn((x*7)+(xx*3.5),2.25,0)*ca(0,xx*90,0)*ca(-90,0,0),mat="Wood"}
  372. end
  373. local v2f=qi{"Part",lol,sc=v3(10,5.75,4),an=true,bn=bn(cc),cf=v2.CFrame*cn(x*7,7.125,0),mat="Wood"}
  374. local v2=qi{"Part",lol,sc=v3(21.5,20,4),an=true,bn=bn(cc),mat="Wood",cf=v2.CFrame*cn(x*(12+(21.5/2)),0,0)}
  375. addsupport2(v2.CFrame*cn(x*-7.25,10,-1.5),35,x)
  376.  
  377. --floor
  378. qi{"WedgePart",lol,sc=v3(1,102,35),an=true,bn=bn'Pastel brown',mat="Wood",cf=BasePos*cn(x*17.5,fronty+19.4,-217.5)*ca(-90,-x*90,0)}
  379.  
  380.  
  381. --stairmodel
  382. local sy=-20+1+2
  383. for i=0,90,90/12 do
  384. qi{"Part",lol,sc=v3(16,1,2),an=true,bn=bn'Pastel brown',mat="Wood",cf=scf*cn(3.5*x,0,-20+3.5)*ca(0,(x==-1 and 180 or 270)+i,0)*cn(8,0,0)*ca(1,0,0)}
  385.  
  386. qi{"Part",lol,sc=v3(12,5,3.5),an=true,bn=bn'Dark green',mat="Wood",cf=scf*cn(3.5*x,sy,-20+3.5)*ca(0,x*-i,0)*cn(x*(16+6),0,0)*ca(1,0,0)}
  387. local ads=qi{"Part",lol,sc=v3(2,20,2.25),an=true,bn=bn(cc),mat="Wood",cf=scf*cn(3.5*x,-10+0.6,-20+3.5)*ca(0,x*-i,0)*cn(x*15.1,0,0)*ca(1,0,0)}
  388. addsupport2(ads.CFrame*cn(x*0.5,ads.Size.y/2-0.1,i==0 and -1.75 or 0)*ca(0,90,0),(i==0 and 3.5 or 0)+ads.Size.z,i==90 and -1 or nil)
  389. if i==90 then qi{'SpecialMesh',qi{"Part",lol,sc=v3(2,20.5,2),an=true,bn=bn(cc),mat="Wood",cf=ads.CFrame*cn(0,-0.5,2.25/2)}} end
  390. if i~=0 then local ads=qi{"Part",lol,sc=v3(2,math.abs(sy)+3.5,3.75),an=true,bn=bn(cc),mat="Wood",cf=scf*cn(3.5*x,sy/2+0.6-1.75,-20+4)*ca(0,x*-i,0)*cn(x*28,0,0)*ca(1,0,0)}
  391. addsupport2(ads.CFrame*cn(x*-0.5,ads.Size.y/2-0.1,0)*ca(0,90,0),ads.Size.z,i==90 and -1 or nil) end
  392.  
  393.  
  394. sy=sy+1.25
  395. end
  396. qi{"Part",lol,sc=v3(1.3,1,1.3),an=true,bn=bn'Pastel brown',mat="Wood",cf=scf*cn(3*x,0,-20+3)}
  397. -----
  398. qi{"WedgePart",lol,sc=v3(1,6,13),an=true,bn=bn'Pastel brown',mat="Wood",cf=scf*cn(x*28.5,0,-4)*ca(0,0,90*x)}
  399. qi{"WedgePart",lol,sc=v3(1,12,10),an=true,bn=bn'Pastel brown',mat="Wood",cf=scf*cn(x*19.5,0,6.25)*ca(0,0,90*x)}
  400.  
  401.  
  402.  
  403. end -- x -1,1
  404. for yy=4,1,-1 do
  405. qi{"Part",lol,sc=v3(16+(yy*2),yy,3),an=true,bn=bn'Dark green',mat="Wood",cf=BasePos*cn(0,6+(yy/2),-93-(yy*3))}
  406. end
  407. qi{"Part",lol,sc=v3(58,1,9),an=true,bn=bn'Pastel brown',mat="Wood",cf=BasePos*cn(0,25.1,-140.5)}
  408. qi{"Part",lol,sc=v3(13,1,10),an=true,bn=bn'Pastel brown',mat="Wood",cf=BasePos*cn(0,25.1,-131.5)}
  409. qi{"WedgePart",lol,sc=v3(3.5,18,15),an=true,bn=bn(cc),mat="Wood",cf=BasePos*cn(0,15,-283)*ca(180,180,0)}
  410. qi{"WedgePart",lol,sc=v3(3.5,8,15),an=true,bn=bn(cc),mat="Wood",cf=BasePos*cn(0,28,-283)}
  411. qi{'SpecialMesh',qi{"Part",lol,sc=v3(2,21,2),an=true,bn=bn(cc),mat="Wood",cf=BasePos*cn(0,19.4,-110.6)}}
  412. qi{'SpecialMesh',qi{"Part",lol,sc=v3(2,2,2),an=true,bn=bn(cc),mat="Wood",cf=BasePos*cn(0,19+(21/2),-110.6)},MeshType="Sphere"}
  413.  
  414.  
  415. -- end side
  416. local fronty=5.7
  417. local pp={}
  418. for x=-52,52,4 do
  419. local scl=90+math.abs(x*2.5)
  420. local laa=10+math.floor(50-math.abs(x))
  421. local adj=5+math.abs(x)
  422. local zz=240-(scl/6)
  423. local v=qi{"WedgePart",lol,formFactor="Custom",sc=v3(4,laa,scl),an=true,cf=BasePos*cn(x,fronty+(-laa/2),zz)*ca(0,0,180)*ca(0,180,0),bn=bn(cc),mat="Wood"}
  424. if x==0 then pp[0]=v end
  425. if x==-52 then pp[-1]=v end
  426. if x==52 then pp[1]=v end
  427. end
  428.  
  429. local backbase=BasePos*cn(0,fronty,230)
  430. for x=-1,1,2 do
  431. local p1=pp[x].CFrame*cn(0,-pp[x].Size.y/2,-pp[x].Size.z/2).p
  432. local p2=pp[0].CFrame*cn(0,-pp[0].Size.y/2,-pp[0].Size.z/2).p
  433. local mag=(p1-p2).magnitude
  434. local vcf=cn(p1,p2)*cn(0,0,-mag/2+1)
  435. local v=qi{"Part",lol,sc=v3(4,2,mag+1),an=true,bn=bn(cc),mat="Wood"}
  436. v.CFrame=vcf*cn(0,1,0)
  437. local v2=v:Clone() v2.Parent=lol v2.CFrame=v.CFrame*cn(0,1.5+1.5+18+7,0)
  438. local vs=mag+1
  439. for w=-vs/2,vs/2,vs do
  440. addwindow2(vcf*cn(0,2,math.floor(w/2.3)),18,18)
  441. end
  442. qi{"Part",lol,sc=v3(4,26,11),an=true,bn=bn(cc),cf=vcf*cn(0,2+(13),-0.5),mat="Wood"}
  443. qi{"Part",lol,sc=v3(4,26,11),an=true,bn=bn(cc),cf=vcf*cn(0,2+(13),28.5),mat="Wood"}
  444. qi{"Part",lol,sc=v3(4,26,10),an=true,bn=bn(cc),cf=vcf*cn(0,2+(13),-29),mat="Wood"}
  445. local zz=-135
  446. qi{"WedgePart",lol,sc=v3(4,30,30),an=true,bn=bn(cc),cf=backbase*cn(52*x,15,zz+(15)),mat="Wood"}
  447. addsupport(backbase*cn(53.5*x,15,zz+15)*ca(0,90,0)*ca(0,0,-45),42,x*sxx,sep)
  448. local cur=qi{"WedgePart",lol,sc=v3(4,30,30),an=true,bn=bn(cc),cf=backbase*cn(32*x,15,zz+(15)),mat="Wood"}
  449. for y=1.5,30,1.5 do
  450. qi{"Part",lol,sc=v3(16,1.5,2),an=true,bn=bn'Dark green',cf=backbase*cn(42*x,y-0.75,zz+(y)+0.95),mat="Wood"}
  451. end
  452. ---
  453. qi{'CylinderMesh',qi{"Part",lol,sc=v3(6,2,6),an=true,bn=bn(cc),cf=backbase*cn(54*x,2,zz-2)*ca(0,-10*x,0)*ca(0,0,90),mat="Wood"}}
  454. qi{'CylinderMesh',qi{"Part",lol,sc=v3(6,2,6),an=true,bn=bn(cc),cf=backbase*cn(54*x,32,zz+30)*ca(0,0,90),mat="Wood"}}
  455. for i=1,3 do
  456. cur=qi{"WedgePart",nil,sc=v3(12.5,30,26),an=true,cf=cur.CFrame*cn((cur.Size.x/2+(i==1 and -4 or 0))*-x,0,i==1 and 2 or 0)*ca(0,(i==1 and -25 or 10)*x,0)*cn(4*-x,0,0)}
  457. local p1=cur.CFrame*cn(0,13,-15)
  458. local p2=cur.CFrame*cn(0,-13,15)
  459. local mag=(p1.p-p2.p).magnitude
  460. local pa=qi{"Part",lol,sc=v3(12.5,mag,0.2),an=true,bn=bn'Institutional white',cf=cn(p1.p,p2.p)*cn(0,0,-mag/2),tra=0.5}
  461. for z=-1,1,2 do
  462. local pa2=qi{"Part",lol,sc=v3(2,z==1 and 10 or 12.8,2),an=true,bn=bn'Dark green',cf=pa.CFrame*cn(z==1 and (i-2)*1.25*x or -0.1*x,(mag/2-0.5)*z,0)*ca(0,0,90)}
  463. qi{'CylinderMesh',pa2}
  464. if i==3 then
  465. qi{'SpecialMesh',qi{"Part",lol,sc=v3(2,2,2),an=true,bn=bn'Dark green',cf=pa2.CFrame*cn(0,pa2.Size.y/2*-x,0)},MeshType="Sphere"}
  466.  
  467. end
  468. end
  469. --
  470. end
  471.  
  472. end -- x
  473. qi{'SpecialMesh',qi{"Part",lol,sc=v3(4,31,4),cf=backbase*cn(0,14.5,39.7),an=true,bn=bn(cc),mat="Wood"}}
  474. qi{"Part",lol,sc=v3(100,1,20),cf=backbase*cn(0,29.4,-95),an=true,bn=bn'Pastel brown',mat="Wood"}
  475.  
  476.  
  477.  
  478.  
  479. Interact = {}
  480. Interact.Hatch={}
  481. Interact.Hatch.CF = BasePos*cn(0,-45.3,-30)
  482. Interact.Hatch.Part = qi{"Part",lol,sc=v3(22,1,60),an=true,bn=bn(cc),mat="Wood"}
  483. Interact.Hatch.Angle=function(s,ang) Interact.Hatch.Part.CFrame=Interact.Hatch.CF*ca(ang or 0,0,0)*cn(0,0,30) end
  484. Interact.Hatch:Angle(20)
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492. for x=-1,1,2 do
  493. qi{"Part",lol,sc=v3(4,30,12),bn=cc,cf=CAPCF*cn(52*x,15.5,-95+6),an=true,mat="Wood"}
  494. qi{"WedgePart",lol,sc=v3(4,30,10),bn=cc,cf=CAPCF*cn(52*x,15.5,94+6)*ca(0,180,180),an=true,mat="Wood"}
  495. qi{"WedgePart",lol,sc=v3(4,30,16),bn=cc,cf=CAPCF*cn(32*x,15.5,-95+8)*ca(0,180,180),an=true,mat="Wood"}
  496. qi{"Part",lol,sc=v3(16,42,0.5),bn=cc,cf=CAPCF*cn(42*x,15.5,-102)*ca(45,0,0),an=true,mat="Wood"}
  497. for z=1,3 do
  498. local zs=41.5
  499. local v1=95+(zs/2)
  500. local cur=qi{"Part",lol,sc=v3(4,30,zs),bn=cc,cf=CAPCF*cn(52*x,15.5,v1-(zs*z)-(18*(z-1))),an=true,mat="Wood"}
  501. local cur=qi{"Part",lol,sc=v3(4,2,18),bn=cc,cf=cur.CFrame*cn(0,-14,-zs/2-9),an=true,mat="Wood"}
  502. qi{"Part",lol,sc=v3(4,1,18),bn=cc,cf=cur.CFrame*cn(0,-1+30-0.5,0),an=true,mat="Wood"}
  503. addwindow2(cur.CFrame*cn(0,1,0),18,18)
  504. end
  505. end
  506. ---- -95
  507. qi{"WedgePart",lol,sc=v3(60,2,8),bn=cc2,cf=CAPCF*cn(0,31.5,-95+4)*ca(0,180,0),an=true,mat="Wood"}
  508. qi{"WedgePart",lol,sc=v3(2,4,3),bn=cc2,cf=CAPCF*cn(0,34.5,-95+-30.5+1.5)*ca(0,180,0),an=true,mat="Wood"}
  509. qi{"WedgePart",lol,sc=v3(2,4,3),bn=cc2,cf=CAPCF*cn(0,34.5,-95+-30.5-1.5)*ca(0,0,180),an=true,mat="Wood"}
  510. for x=-1,1,2 do
  511. qi{"WedgePart",lol,sc=v3(2,30,30),bn=cc2,cf=CAPCF*cn(15*x,31.5,-95-15)*ca(0,0,-90*x),an=true,mat="Wood"}
  512. addsupport(CAPCF*cn(15*x,32.5,-95-15)*ca(0,-45*x,0),math.sqrt(30^2+30^2),-15)
  513. qi{"WedgePart",lol,sc=v3(2,6,4),bn=cc2,cf=CAPCF*cn(30.5*x,33.5,-95)*ca(0,-135*x,0)*cn(0,0,-1.5),an=true,mat="Wood"}
  514. end
  515.  
  516. ------floor2 uptostair 54+51+15 = 120 /// SECOND FLOOR's floor
  517. CY=30
  518. stair1(CAPCF*cn(-4,0.5,68-35+5),30,360,20)
  519. qi{"WedgePart",lol,sc=v3(1,6,6),bn=cc,cf=CAPCF*cn(2,30,44)*ca(0,0,90),an=true,mat="Wood"}
  520. qi{"Part",lol,sc=v3(108,1,21),bn=cc,cf=CAPCF*cn(0,CY+0.21,68-25.5+15),an=true,mat="Wood"}
  521. qi{"Part",lol,sc=v3(108,1,65),bn=cc,cf=CAPCF*cn(0,CY,68-51-30+17.5),an=true,mat="Wood"}
  522. qi{"Part",lol,sc=v3(100,1,50),bn=cc2,cf=CAPCF*cn(0,CY,68-51-70),an=true,mat="Wood"}
  523. for x=-1,1,2 do
  524. qi{"WedgePart",lol,sc=v3(1,54,54),bn=cc,cf=CAPCF*cn(27*x,CY+0.21,95)*ca(0,180,-90*x),an=true,mat="Wood"}
  525. qi{"Part",lol,sc=v3(49,1,10),bn=cc,cf=CAPCF*cn(29.5*x,CY,68-51-7+32),an=true,mat="Wood"}
  526. --qi{"Part",lol,sc=v3(2,29,4),bn=cc,cf=CAPCF*cn(6*x,15,4),an=true,mat="Wood"}
  527. --qi{"WedgePart",lol,sc=v3(2,29,30),bn=cc,cf=CAPCF*cn(6*x,15,21)*ca(0,180,0),an=true,mat="Wood"}
  528. for z=0,1,1 do
  529. local CCF=CAPCF*cn(52*x,CY,95+27+(58*-z))
  530. qi{"Part",lol,sc=v3(4,30,40),bn=cc,cf=CCF*cn(0,15.5,-20),an=true,mat="Wood"}
  531. qi{"Part",lol,sc=v3(4,2,18),bn=cc,cf=CCF*cn(0,29.5,-49),an=true,mat="Wood"}
  532. qi{"Part",lol,sc=v3(4,1,18),bn=cc,cf=CCF*cn(0,1,-49),an=true,mat="Wood"}
  533. addwindow2(CCF*cn(0,1.5,-49),18,18)
  534. end
  535. qi{"Part",lol,sc=v3(4,30,34),bn=cc,cf=CAPCF*cn(52*x,CY+15.5,95+27-150+17),an=true,mat="Wood"}
  536. qi{"WedgePart",lol,sc=v3(4,30,10),bn=cc,cf=CAPCF*cn(52*x,CY+15.5,95+27+5)*ca(0,180,180),an=true,mat="Wood"}
  537. ---end wall
  538. qi{"Part",lol,sc=v3(4,30,14),bn=cc,cf=CAPCF*cn(27*x,CY+15.5,95)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  539. qi{"Part",lol,sc=v3(4,30,14),bn=cc,cf=CAPCF*cn(27*x,CY+15.5,95)*ca(0,45*x,0)*cn(2*x,0,-38+7),an=true,mat="Wood"}
  540. qi{"Part",lol,sc=v3(4,30,8),bn=cc,cf=CAPCF*cn(27*x,CY+15.5,95)*ca(0,45*x,0)*cn(2*x,0,7+18+4),an=true,mat="Wood"}
  541. qi{"Part",lol,sc=v3(3.9,1,13+38),bn=cc,cf=CAPCF*cn(27*x,CY+1,95)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  542. qi{"Part",lol,sc=v3(3.9,2,13+38),bn=cc,cf=CAPCF*cn(27*x,CY+29.5,95)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  543. for xx=-1,1,2 do
  544. addwindow2(CAPCF*cn(27*x,CY+1.5,95)*ca(0,45*x,0)*cn(2*x,0,(14+18)/2*xx),18,18)
  545. end
  546. for xx=1,2 do
  547. local xxt={{4,52},{2,29}}
  548. qi{"WedgePart",lol,sc=v3(xxt[xx][1],15,15),bn=cc,cf=CAPCF*cn(xxt[xx][2]*x,CY+15.5+7.5,-35.5)*ca(0,0,0),an=true,mat="Wood"}
  549. qi{"WedgePart",lol,sc=v3(xxt[xx][1],15,15),bn=cc,cf=CAPCF*cn(xxt[xx][2]*x,CY+15.5-7.5,-35.5)*ca(0,0,180),an=true,mat="Wood"}
  550. end
  551. addsupport(CAPCF*cn(54*x,CY+0.5,-62)*ca(0,90*x,0),68,-10)
  552. local yy=math.sqrt(15^2+15^2)
  553. local yy2=math.sqrt(30^2+30^2)
  554. for i=-1,1,2 do
  555. qi{"Part",lol,sc=v3(20,yy,0.2),bn='Institutional white',cf=CAPCF*cn(40*x,CY+15.5-7.5*i,-35.5)*ca(-45*i,0,0),an=true,mat="Wood",tra=0.6}
  556. end
  557. addsupport(CAPCF*cn(40*x,CY+30.5,-28),26,-20)
  558. for xx=-1,1,2 do
  559. qi{"Part",lol,sc=v3(2,4,4),bn=cc,cf=CAPCF*cn((40+(xx*13))*x,CY+32.5,-28)*ca(45,0,0),an=true,mat="Wood"}
  560. qi{"WedgePart",lol,sc=v3(2,30,30),bn=cc,cf=CAPCF*cn((21*x)+(6*xx),CY+15.5,-28-15-4),an=true,mat="Wood"}
  561. qi{"Part",lol,sc=v3(2,30,4),bn=cc,cf=CAPCF*cn((21*x)+(6*xx),CY+15.5,-28-2),an=true,mat="Wood"}
  562. end
  563. qi{"Part",lol,sc=v3(10,yy2,1),cf=CAPCF*cn(21*x,CY+15.5,-28-15-1.5)*ca(45,0,0),an=true,tra=1} -- stair helper
  564. for y=2,30,2 do
  565. qi{"Part",lol,sc=v3(10,y,2),bn=cc3,cf=CAPCF*cn(21*x,CY+0.5+y/2,-59+y),an=true,mat='Wood'}
  566. end
  567. qi{"Part",lol,sc=v3(2,4,4),bn=cc,cf=CAPCF*cn(14.5*x,CY+32.5,-28)*ca(45,0,0),an=true,mat="Wood"}
  568. qi{"Part",lol,sc=v3(2,4,4),bn=cc,cf=CAPCF*cn(14*x,CY+32.5,-28-59)*ca(0,45*x,0)*ca(45,0,0),an=true,mat="Wood"}
  569. addsupport(CAPCF*cn(14*x,CY+30.5,-28-(59/2))*ca(0,-90*x,0),58,-20)
  570.  
  571. end -- end of capn room 1st+2nd floor ----------------------------------------------------------------------------------------------------
  572. local vy=0
  573. for x=1,14 do
  574. qi{"WedgePart",lol,sc=v3(2,30-vy,60),bn=cc,cf=CAPCF*cn(-15+x*2,CY+((30+vy)/2)+0.4,-58)*ca(180,180,0),an=true,mat='Wood'}
  575. if x<7 then vy=vy+3.5 elseif x>7 then vy=vy-3.5 end
  576. end
  577. qi{"Part",lol,sc=v3(6,30,6),bn=cc,cf=CAPCF*cn(0,CY+15.5,95-28),an=true,mat="Wood"}
  578. ---SECOND FLOOR's ROOF
  579. DY=CY+30.03
  580. qi{"Part",lol,sc=v3(100,1,60),bn=cc2,cf=CAPCF*cn(0,DY,-23+15-2.5+12.5),an=true,mat="Wood"} -- THIS EDIT THIS FLOOR OMG
  581. qi{"Part",lol,sc=v3(24,0.1,58),bn=cc2,cf=CAPCF*cn(0,DY+0.4,-57),an=true,mat="Wood"}
  582. addsupport(CAPCF*cn(0,CY+30.5,-28-59),26,-20)
  583. -------------------WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWTHERD FLER
  584. for x=-1,1,2 do
  585. qi{"WedgePart",lol,sc=v3(1,54,54),bn=cc,cf=CAPCF*cn(27*x,DY,125)*ca(0,180,-90*x),an=true,mat="Wood"}
  586. qi{"WedgePart",lol,sc=v3(4,30,12),bn=cc,cf=CAPCF*cn(52*x,DY+15.5,125+27+6)*ca(0,180,180),an=true,mat="Wood"}
  587. ---end wall
  588. qi{"Part",lol,sc=v3(4,30,14),bn=cc,cf=CAPCF*cn(27*x,DY+15.5,125)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  589. qi{"Part",lol,sc=v3(4,30,14),bn=cc,cf=CAPCF*cn(27*x,DY+15.5,125)*ca(0,45*x,0)*cn(2*x,0,-38+7),an=true,mat="Wood"}
  590. qi{"Part",lol,sc=v3(4,30,8),bn=cc,cf=CAPCF*cn(27*x,DY+15.5,125)*ca(0,45*x,0)*cn(2*x,0,7+18+4),an=true,mat="Wood"}
  591. qi{"Part",lol,sc=v3(3.9,1,13+38),bn=cc,cf=CAPCF*cn(27*x,DY+1,125)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  592. qi{"Part",lol,sc=v3(3.9,2,13+38),bn=cc,cf=CAPCF*cn(27*x,DY+29.5,125)*ca(0,45*x,0)*cn(2*x,0,0),an=true,mat="Wood"}
  593. for xx=-1,1,2 do
  594. addwindow2(CAPCF*cn(27*x,DY+1.5,125)*ca(0,45*x,0)*cn(2*x,0,(14+18)/2*xx),18,18)
  595. end
  596. qi{"Part",lol,sc=v3(6,30,6),bn=cc,cf=CAPCF*cn(0,DY+15.5,125-28),an=true,mat="Wood"}
  597. for z=0,1,1 do
  598. local CCF=CAPCF*cn(52*x,DY,125+27+(58*-z))
  599. qi{"Part",lol,sc=v3(4,30,40),bn=cc,cf=CCF*cn(0,15.5,-20),an=true,mat="Wood"}
  600. qi{"Part",lol,sc=v3(4,2,18),bn=cc,cf=CCF*cn(0,29.5,-49),an=true,mat="Wood"}
  601. qi{"Part",lol,sc=v3(4,1,18),bn=cc,cf=CCF*cn(0,1,-49),an=true,mat="Wood"}
  602. addwindow2(CCF*cn(0,1.5,-49),18,18)
  603. end
  604. -- crapside wall stuffff
  605. qi{"Part",lol,sc=v3(14,30,4),bn=cc,cf=CAPCF*cn(47*x,DY+15.5,34),an=true,mat="Wood"}
  606. qi{"Part",lol,sc=v3(19,30,4),bn=cc,cf=CAPCF*cn(16.5*x,DY+15.5,34),an=true,mat="Wood"}
  607. qi{"WedgePart",lol,sc=v3(4,30,30),bn=cc,cf=CAPCF*cn(52*x,DY+15.5,17),an=true,mat="Wood"}
  608. addsupport(CAPCF*cn(53.5*x,DY+0.5,-8+12.5-15)*ca(0,-90*x,0),35,10)
  609. ----floooor
  610. qi{"Part",lol,sc=v3(45,1,10),bn=cc,cf=CAPCF*cn(27.5*x,DY,57),an=true,mat="Wood"}
  611. ---- DOOOOOORZZZZZZZ GREEN ONEZ
  612. for X=-1,1,2 do
  613. qi{"Part",lol,sc=v3(2,10,4),cf=CAPCF*cn(33*x+(6*X),DY+5.5,34),an=true,mat="Wood",bn=cc3}
  614. qi{"WedgePart",lol,sc=v3(3.9,6.1,7.1),cf=CAPCF*cn(33*x+(3.5*X),DY+15.5,34)*ca(0,90*X,180),an=true,mat="Wood",bn=cc}
  615. end
  616. for i=0,180,18 do
  617. local adj=i%36==0 and 0.6 or 0.2
  618. qi{"Part",lol,sc=v3(2,2.2,4+adj),cf=CAPCF*cn(33*x,DY+11.5,34)*ca(0,0,i)*cn(6,0,0),an=true,mat="Wood",bn=cc3}
  619. end
  620. qi{"Part",lol,sc=v3(14,12,4),cf=CAPCF*cn(33*x,DY+30.5-6,34),an=true,mat="Wood",bn=cc}
  621. --- grand staircase designs
  622. qi{"WedgePart",lol,sc=v3(1.5,8,6),bn=cc,cf=CAPCF*cn(21*x,DY+4,-2),an=true,mat="Wood"}
  623. qi{"Part",lol,sc=v3(7,4,1.5),bn=cc,cf=CAPCF*cn(14.5*x,DY+32.5,32.9),an=true,mat="Wood"}
  624. qi{"WedgePart",lol,sc=v3(1.5,3,7),bn=cc,cf=CAPCF*cn(14.5*x,DY+36,32.9)*ca(0,-90*x,0),an=true,mat="Wood"}
  625.  
  626.  
  627. end -- end of x-1,1
  628. --GRAND STAIRCASE DOOR BEHIND LOL
  629. --qi{"Part",lol,sc=v3(45,1,10),bn=cc,cf=CAPCF*cn(0,DY,57),an=true,mat="Wood"}
  630. for X=-1,1,2 do
  631. qi{"Part",lol,sc=v3(2,10,4),cf=CAPCF*cn(0+(6*X),DY+5.5,34),an=true,mat="Wood",bn=cc3}
  632. qi{"WedgePart",lol,sc=v3(3.9,6.1,7.1),cf=CAPCF*cn(0+(3.5*X),DY+15.5,34)*ca(0,90*X,180),an=true,mat="Wood",bn=cc}
  633. end
  634. for i=0,180,18 do
  635. local adj=i%36==0 and 0.6 or 0.2
  636. qi{"Part",lol,sc=v3(2,2.2,4+adj),cf=CAPCF*cn(0,DY+11.5,34)*ca(0,0,i)*cn(6,0,0),an=true,mat="Wood",bn=cc3}
  637. end
  638. qi{"Part",lol,sc=v3(14,12,4),cf=CAPCF*cn(0,DY+30.5-6,34),an=true,mat="Wood",bn=cc}
  639. --- end of epic
  640. EY=DY+30.01
  641. qi{"Part",lol,sc=v3(108,1,36),bn=cc,cf=CAPCF*cn(0,DY,125-47-15.5+20-2.5),an=true,mat="Wood"} -- long 3rd floor floor
  642. --2nd floor stair
  643. stair1(CAPCF*cn(-4,30.5,53),30,360,20)
  644. qi{"WedgePart",lol,sc=v3(1,6,6),bn=cc,cf=CAPCF*cn(2.5,60,59)*ca(0,0,90),an=true,mat="Wood"}
  645. ---2nd FLR ROOF / 3rd FLRS----WWWWWWWW
  646. qi{"Part",lol,sc=v3(100,1,20),bn=cc,cf=CAPCF*cn(0,DY,42),an=true,mat="Wood"}
  647. for i=1,30 do -- staircase
  648. local XS=20+(i/1.5)
  649. local v=qi{"Part",lol,sc=v3(XS,1,2),cf=CAPCF*cn(0,DY+31-i,32-i),an=true,mat="Wood",bn=cc3}
  650. for x=-1,1,2 do
  651. local y=30-i+8
  652. qi{"Part",lol,sc=v3(1.5,y,3),cf=CAPCF*cn((XS+1)*x/2,DY+y/2,32-i)*ca(0,-20*x,0),an=true,mat="Wood",bn=cc}
  653. end
  654. end
  655.  
  656.  
  657. ---THIRD FLOOR ROOF (4th floors)
  658. for x=-1,1,2 do
  659. local i=0
  660. for y=0,180,180/20 do
  661. i=i+1
  662. qi{"Part",lol,sc=v3(30,1,6),cf=CAPCF*cn(51*x,i/200+EY,35)*ca(0,y,0)*cn(15+3,0,0),an=true,mat="Wood",bn=cc2}
  663. if y~=(x==1 and 180 or 0) then
  664. qi{"Part",lol,sc=v3(1,5,6),cf=CAPCF*cn(51*x,i/200+EY+2,35)*ca(0,y,0)*cn(30+3+0.5,0,0),an=true,mat="Wood",bn=cc}
  665. end
  666. end ----
  667. qi{'CylinderMesh',qi{"Part",lol,sc=v3(3,70,3),cf=CAPCF*cn(51*x,EY+35,35),an=true,mat="Wood",bn=cc},Scale=v3(2,1,2)}
  668. qi{'CylinderMesh',qi{"Part",lol,sc=v3(9,3,9),cf=CAPCF*cn(51*x,EY+1.5,35),an=true,mat="Wood",bn=cc2}}
  669. stair2(CAPCF*cn(51*x,EY,35),50,360,30,5.5,5,3)
  670. qi{'SpecialMesh',qi{"Part",lol,sc=v3(6,6,6),cf=CAPCF*cn(51*x,EY+70,35),an=true,mat="Wood",bn=cc},MeshType='Sphere',Scale=v3(1,1,1)}
  671. local yy=360/20
  672. local i=0
  673. for y=yy,360-(yy*6),yy do
  674. i=i+1
  675. local v=qi{"Part",lol,sc=v3(5,1,2.5),cf=CAPCF*cn(51*x,i/200+EY+50,35)*ca(0,y,0)*cn(2.5+3,0,0),an=true,mat="Wood",bn=cc2}
  676. qi{"Part",lol,sc=v3(1,4,2.9),cf=CAPCF*cn(51*x,i/200+EY+51.5,35)*ca(0,y,0)*cn(5.5+3,0,0),an=true,mat="Wood",bn=cc}
  677. if y==360-(yy*6) then
  678. qi{"Part",lol,sc=v3(7,4,1),cf=v.CFrame*cn(0,1.5,-3.5/2),an=true,mat="Wood",bn=cc}
  679. end
  680. end
  681. qi{"WedgePart",lol,sc=v3(1,30,126),cf=CAPCF*cn(69*x,EY,101)*ca(0,180,90*x),an=true,mat="Wood",bn=cc2}
  682. addsupport(CAPCF*cn(69*x,EY+0.5,101)*ca(0,-x*math.deg(math.atan2(30,126))+90,0),129.52,0)
  683. qi{"WedgePart",lol,sc=v3(1,54,54),cf=CAPCF*cn(27*x,EY+0.05,137)*ca(0,180,-90*x),an=true,mat="Wood",bn=cc2}
  684. addsupport(CAPCF*cn(27*x,EY+0.5,137)*ca(0,-45*x,0),76.36,0)
  685.  
  686.  
  687. end -- endddd
  688. qi{"Part",lol,sc=v3(108.1,1.05,74.1),cf=CAPCF*cn(0,EY+0.02,73),an=true,mat="Wood",bn=cc2}
  689.  
  690.  
  691.  
  692. ----BALOOOOOOOOOON OMG SO HARD SO GOOD so sfot
  693. FRONT=BasePos*cn(0,5,-190)
  694. balloon=BasePos*cn(0,250,0)
  695. --qi{"Part",lol,sc=v3(100,1,180),cf=FRONT*cn(0,21,0),an=true,tra=0.1} unicorn boat - xsoul
  696. local v=qi{"Part",lol,sc=v3(8,100,8),cf=FRONT*cn(0,10,-90)*ca(-80,0,0)*cn(0,50,0),an=true,bn=cc,tra=1}
  697. qi{'SpecialMesh',qi{"Part",lol,sc=v3(4,100,4),cf=v.CFrame*cn(0,-6,0),an=true,bn=cc},Scale=v3(4,150,8),MeshId=as.cone}
  698. ---balooon cylinder
  699. for z=0,360,360/40 do
  700. qi{"Part",lol,sc=v3(16,2,300),cf=balloon*ca(0,0,z)*cn(0,100,0),an=true,bn=cc4}
  701. end
  702. for z=0,180,360/25 do
  703. qi{"Part",lol,sc=v3(2,2,310),cf=balloon*ca(0,0,z-90)*cn(0,102,0),an=true,bn=cc}
  704. end
  705. local des={}
  706. for i=-150,150,50 do
  707. for z=0,180,360/20 do
  708. local v=qi{"Part",lol,sc=v3(34,2,2),cf=balloon*cn(0,0,i+4)*ca(0,0,z-90)*cn(0,102,0),an=true,bn=cc}
  709. local vf=v.CFrame
  710. if z==0 or z==180 then
  711. local x=z==0 and 1 or -1
  712. local adj=11-(11*(math.abs(i)/150))
  713. local st=qi{"Part",lol,sc=v3(10,12,10),cf=BasePos*cn((55+adj)*x,-5,i/1.7)*ca(0,0,-45*x),an=true,bn=cc}
  714. qi{'CylinderMesh',st}
  715. local p1,p2=st.CFrame*cn(0,st.Size.y/2-2,0).p,v.CFrame*cn(x*17,0,0).p
  716. local len=(p1 - p2).magnitude
  717. local v=qi{"Part",lol,sc=v3(2,len,2),cf=cn(p1,p2)*ca(-90,0,0)*cn(0,len/2,0),an=true,bn=cc}
  718. des[x]=des[x] or {}
  719. des[x][#des[x]+1]=v
  720. end
  721. end
  722. end
  723. ---designs
  724. for x=-1,1,2 do
  725. for i=1,6 do
  726. for y=120,-90,-30 do
  727. local p1,p2=des[x][i].CFrame*cn(0,y,0).p ,des[x][i+1].CFrame*cn(0,y,0).p
  728. local len=(p1-p2).magnitude
  729. local v=qi{"Part",lol,sc=v3(1.9,len,1.9),cf=cn(p1,p2)*ca(-90,0,0)*cn(0,len/2,0),an=true,bn=cc}
  730. end
  731. end
  732. end
  733. --for y=0,360,360/20 do -- thank doge
  734. for iang = 0, 1 do
  735. for i = 0, 10 do
  736. for j = 0, 20 do
  737. -- i rotate them by Z / the whole diameter is 200 in size
  738. local extrasize = math.sin(math.pi/20*j) * 28.5
  739. --qi{"Part",lol,sc=v3(32,2,10+extrasize),cf=balloon*cn(0,0,-105)*ca(0,0,y)*cn(0,100,0),an=true,bn=cc4}
  740. qi{"Part",lol,sc=v3(16,2,4+extrasize),cf=balloon*ca(0,180*iang,0)*cn(0,0,-150)*ca(0,math.deg(-math.pi/10*i),math.deg(math.pi/20*j))*cn(0,100,0),an=true,bn=cc4}
  741. end
  742. end
  743. end
  744.  
  745.  
  746. for x=-1,1,2 do
  747. MakeWing(FRONT*cn(35*x,-20,40)*ca(0,30*x,-60*x),80,70,6)
  748. MakeWing(FRONT*cn(55*x,-25,250)*ca(0,10*x,-60*x),120,80,8)
  749. end
  750. MakeWing(CAPCF*cn(0,90,110)*ca(0,0,0),80,90,8)
  751.  
  752.  
  753.  
  754.  
  755. print(#lol:children().. " parts!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement