Advertisement
bloxar

HLD level file format

Mar 3rd, 2023
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.54 KB | None | 0 0
  1. OVERVIEW
  2. --------
  3.  
  4. Each line type lists its indentation (usually 0 for section headers and 5 for instances),
  5. the format of values in the line, and an example line of that type.
  6.  
  7. The 'Format' of a line describes the list of values it contains. Each entry's type is specified with
  8. one of the following characters:
  9. # Constant String
  10. & String
  11. ! Number
  12. > List
  13.  
  14. Additionally, any of these may have a key e.g. !(0) for an Integer with key 0.
  15. All keys are of type integer. In a line, each value is followed by a comma.
  16.  
  17.  
  18.  
  19.  
  20. HEADER
  21. ------
  22.  
  23. The header of a map file contains the following types of lines.
  24.  
  25. Indent 0
  26. Format:
  27. # DATE
  28. ! The date when the map was last updated
  29. Example:
  30. DATE,42474.87,
  31.  
  32.  
  33. Indent 0
  34. Format:
  35. # //EDITOR SETTINGS//
  36. Example:
  37. //EDITOR SETTINGS//
  38.  
  39.  
  40. Indent 5
  41. Format:
  42. # layerName
  43. ! ID number, starts from 0
  44. & Name
  45. Example:
  46. layerName,0,Doors,
  47. Notes:
  48. This line occurs once for each layer.
  49.  
  50.  
  51. Indent 0
  52. Format:
  53. # //ROOM SETTINGS//
  54. Example:
  55. //ROOM SETTINGS//
  56.  
  57.  
  58. Indent 5
  59. Format:
  60. # lb
  61. ! ?
  62. # bg
  63. & Background Sprite
  64. # floorSpr
  65. & Floor Sprite
  66. # bri
  67. ! Brightness (1=bright,2=dim,3=dark,4=very dark)
  68. # liteOff
  69. ! Equivalent to brightness 3, but can be toggled by events (bool)
  70. # over
  71. & Overlay (custom brightness & palette settings?)
  72. # overPit
  73. ! ?
  74. # wallsTop
  75. ! Shade tops of walls (bool)
  76. # shadows
  77. ! ?
  78. # flrOutline
  79. ! Floor Outline (bool)
  80. # flrOC
  81. ! Floor Outline Color
  82. # flrOSpr
  83. & Floor Outline Sprite
  84. # wallO
  85. ! Wall outlines (bool)
  86. # w
  87. ! Room width
  88. # h
  89. ! Room Height
  90. # sketchalpha
  91. ! ?
  92. ? ?
  93. ? ?
  94. Example:
  95. lb,1,bg,<undefined>,floorSpr,bg_N_Inter_Floor,bri,1,liteOff,0,over,bg_NL_AltarThrone_Overlay,overPit,0,wallsTop,1,shadows,1,flrOutline,1,flrOC,16777215,flrOSpr,<undefined>,wallO,0,w,768,h,480,sketchalpha,0,1,1,
  96. Notes:
  97. ???
  98.  
  99.  
  100. BODY
  101. ----
  102.  
  103.  
  104. The body of a map file contains 2 types of lines, object declarations and object instances.
  105.  
  106.  
  107. Object Declaration:
  108.  
  109. Indent 0
  110. Format:
  111. & //XXXX// where XXXX is the object type
  112. Example:
  113. //Gearbit//
  114. Notes:
  115. An object type must be declared in a file before any of its instances.
  116.  
  117.  
  118. Object Instances:
  119.  
  120. Indent 5
  121. Format:
  122. # obj
  123. & Object type
  124. ! ID number
  125. ! X position
  126. ! Y position
  127. ! Layer ID number
  128. > Dependencies
  129. # ++
  130. > Arguments
  131. Example:
  132. obj,Spawner,3594,736,112,4,-999999,++,-1=GearbitCrate,-2=-999999,-4=1,-5=0,-6=-1,-7=0,-8=0,
  133. Notes:
  134. Dependencies and Arguments are lists of variable length, and depend on the object type. Some object types cannot have dependencies. In this example, Dependencies = '-999999,' and Arguments = '-1=GearbitCrate,-2=-999999,-4=1,-5=0,-6=-1,-7=0,-8=0,'
  135.  
  136.  
  137.  
  138.  
  139. DEPENDENCIES
  140. ------------
  141.  
  142.  
  143. Format:
  144. ! Number of dependencies
  145. > Dependency IDs (defaults to -999999 if above is 0
  146. # caseScript
  147. ! Object type of dependencies (3 = Flag, 4 = Enemy)
  148. ! Inversion (1 means true when dependent flag is true or enemy is dead, 0 is the opposite)
  149. ? ???
  150. ! Delay (frames @30fps)
  151.  
  152.  
  153.  
  154. ARGUMENTS
  155. ---------
  156.  
  157.  
  158. Each object type has its own set of arguments, listed below.
  159.  
  160.  
  161. Type:
  162. Spawner
  163. Format:
  164. &(-1) Object to spawn
  165. !(-2) ?
  166. !(-4) Number of instances to spawn
  167. !(-5) Delay on spawn (frames @30fps)
  168. !(-6) ?
  169. !(-7) ?
  170. !(-8) ?
  171. > Arguments for the spawned object
  172. Example:
  173. obj,Spawner,5055,400,144,2,-999999,++,-1=CultBird,-2=-999999,-4=1,-5=0,-6=-1,-7=0,-8=0,
  174. Notes:
  175. Arguments -2 through -8 are the dependencies for the spawned object?
  176.  
  177.  
  178. Type:
  179. Scenery
  180. RecessingScenery
  181. SnowPile
  182. Format:
  183. &(0) Sprite
  184. !(1) ?
  185. !(2) ?
  186. !(3) ?
  187. !(k) ?
  188. !(p) ?
  189. !(fp) ?
  190. !(4) ?
  191. !(5) ?
  192. !(f) ?
  193. !(l) ?
  194. Example:
  195. obj,Scenery,4030,656,-37,7,-999999,++,0=spr_N_FG_OverG_B,1=0,2=0,3=0,k=0,p=-4,fp=0,4=0,5=1,f=0,l=0,
  196.  
  197.  
  198. Type:
  199. door
  200. Format:
  201. &(rm) Destination Room
  202. !(dr) ID of door in destination room
  203. !(ed) Exit direction
  204. !(wo) Walk out (bool)
  205. !(tl) Something televator related? (optional)
  206. Example:
  207. obj,door,5618,176,112,0,1,1507,caseScript,3,1,-999999,0,++,rm=rm_NC_CrushArena,dr=7260,ed=270,wo=1,
  208.  
  209.  
  210. Type:
  211. Region
  212. RegionWall
  213. Format:
  214. !(0) Width
  215. !(1) Height
  216. !(p2) Player 2 spawnable? (bool, optional)
  217. Example:
  218. obj,Region,1034,312,64,11,-999999,caseScript,2,1,char,0,++,0=344,1=160,
  219.  
  220.  
  221. Type:
  222. EmptyObject
  223. Format:
  224. &(mn) Comment
  225. !(a) ?
  226. Example:
  227. obj,EmptyObject,2283,704,-32,11,1,1414,caseScript,3,0,-999999,30,++,mn=--,a=-1,
  228.  
  229.  
  230. Type:
  231. BoomBox
  232. Format:
  233. &(s) Sound
  234. !(v) Volume (out of 100)
  235. !(2) ?
  236. !(3) ?
  237. !(4) ?
  238. !(5) ?
  239. !(6) ?
  240. Example:
  241. obj,BoomBox,6749,79,133,12,-999999,caseScript,0,1,-999999,0,++,s=MUS_N_GAP_1,v=100,2=8,3=8,4=8,5=0,6=0,
  242.  
  243.  
  244. Type:
  245. ParallaxObj
  246. Format:
  247. &(spr) Sprite
  248. !(scl) ?
  249. !(lv) ?
  250. !(0) ?
  251. !(1) ?
  252. !(2) ?
  253. !(3) ?
  254. !(4) ?
  255. !(5) ?
  256. !(6) ?
  257. !(fg) ?
  258. Example:
  259. obj,ParallaxObj,3370,496,104,9,-999999,++,spr=bg_N_Prlx_library,spd=0,scl=1,lv=0,0=0,1=0,2=0.18,3=1,4=1,5=0,6=0,fg=0,
  260.  
  261.  
  262. Type:
  263. CameraLock
  264. Format:
  265. !(x) X Position
  266. !(y) Y Position
  267. !(xL) Scroll left (bool)
  268. !(xR) Scroll right (bool)
  269. !(yU) Scroll up (bool)
  270. !(YD) Scroll down (bool)
  271. !(0) ?
  272. !(1) ?
  273. Example:
  274. obj,CameraLock,1949,304,-96,5,-999999,caseScript,3,1,-999999,0,++,x=330,y=145,xL=1,xR=1,yU=0,yD=0,0=-1,1=-1,
  275.  
  276.  
  277. Type:
  278. JumpPad
  279. Format:
  280. !(7) ?
  281. !(9) 2 way (bool)
  282. Example:
  283. obj,JumpPad,141,304,264,1,-999999,++,7=56,9=1,
  284.  
  285.  
  286. Type:
  287. Ambience
  288. Format:
  289. !(g) ?
  290. !(r) ?
  291. !(ra) ?
  292. !(rs) ?
  293. &(s) Sound
  294. !(v) Volume (out of 100)
  295. !(min) ?
  296. !(max) ?
  297. Example:
  298. obj,Ambience,6890,302,282,7,-999999,++,g=1,r=0,ra=0,rs=150,s=MUS_AMB_WIND_EERIE_0,v=75,min=100,max=350,
  299.  
  300.  
  301. Type:
  302. ColorRegion
  303. Format:
  304. !(w) Width
  305. !(h) Height
  306. !(c) Color
  307. Example:
  308. obj,ColorRegion,3243,48,0,10,-999999,++,w=1184,h=1024,c=4004413,
  309.  
  310.  
  311. Type:
  312. WellCheck
  313. Format:
  314. !(r) Area
  315. !(n) ?
  316. Example:
  317. obj,WellCheck,5504,464,840,0,-999999,++,r=1,n=0,
  318.  
  319.  
  320. Type:
  321. SnowMaker
  322. SlowSnow
  323. rainmaker
  324. RainbowGlitter
  325. Format:
  326. !(00) Particle Amount (~560 and above makes the screen entirely white)
  327. !(01) Horizontal Particle Speed
  328. Example:
  329. obj,SnowMaker,4657,480,928,0,-999999,++,00=5,01=1,
  330. obj,rainmaker,6161,208,144,7,-999999,++,00=5
  331.  
  332.  
  333. Type:
  334. ModuleDoor
  335. DrifterVaultDoor
  336. Format:
  337. !(c) Count Required
  338. Example:
  339. obj,DrifterVaultDoor,4171,1096,1216,6,-999999,caseScript,3,1,-999999,0,++,c=12,
  340.  
  341.  
  342. Type:
  343. Televator
  344. Format:
  345. &(rm) Destination Room
  346. !(dr) ID of door in destination room
  347. !(ed) Ascending (bool)
  348. !(m) Module? (bool)
  349. !(v) Vertical? (bool)
  350. !(a) Abyss sprite (bool)
  351. !(trn) Skip shaft room? (bool)
  352. Example:
  353. obj,Televator,1557,1040,1312,0,-999999,++,rm=rm_PAX_Staging,dr=4155,ed=0,m=0,v=1,a=0,trn=0,
  354.  
  355.  
  356. Type:
  357. Teleporter
  358. Format:
  359. &(r) Destination Room
  360. !(d) ID of door in destination room
  361. !(t) Interactable (bool)
  362. !(i) Invisible (bool)
  363. Example:
  364. obj,Teleporter,2696,1176,168,0,-999999,++,r=rm_IN_BackerTablet,d=1476,t=1,i=0,
  365.  
  366.  
  367. Type:
  368. CameraCue
  369. Format:
  370. !(0) Camera X position
  371. !(1) Camera Y position
  372. !(2) Zoom out factor
  373. !(3) Camera movement duration (seconds)
  374. !(4) Delay after camera pause (seconds)
  375. !(5) Camera pause duration (seconds)
  376. Example:
  377. obj,CameraCue,6325,664,520,11,1,5365,caseScript,3,1,-999999,0,++,0=746,1=733,2=1,3=3,4=3,5=2,
  378.  
  379.  
  380. Type:
  381. BossRush
  382. Format:
  383. !(01) Timer paused (bool)
  384. Example:
  385. obj,BossRush,4846,144,384,0,-999999,++,01=0,
  386.  
  387.  
  388. Type:
  389. RisingPlatform
  390. InvisiblePlatform
  391. Format:
  392. !(s) Size (values other than 48 don't work correctly)
  393. Example:
  394. obj,RisingPlatform,3763,288,128,2,1,7279,caseScript,3,0,-999999,0,++,s=48,
  395.  
  396.  
  397. Type:
  398. DropPlatform
  399. Format:
  400. !(b) ?
  401. !(32) ?
  402. Example:
  403. obj,DropPlatform,5228,288,224,3,-999999,++,b=0,32=0,
  404.  
  405.  
  406. Type:
  407. PhaseCrystalMaker
  408. Format:
  409. &(s) Sprite
  410. !(i) Alternate sprite (bool)
  411. !(xs) Horizontal stretch factor
  412. Example:
  413. obj,PhaseCrystalMaker,879,320,104,3,-999999,++,s=spr_WCrystalClean,i=1,xs=1,
  414.  
  415.  
  416. Type:
  417. destructable
  418. HealthPlant
  419. Format:
  420. &(0) Sprite
  421. !(1) ?
  422. !(2) Class (see table below)
  423. &(3) Particle sprite
  424. !(5) Modify sprites somehow? (bool)
  425. Example:
  426. obj,destructable,1899,656,832,9,-999999,++,0=<undefined>,1=0,2=3,3=spr_GrassDebris,5=1,
  427. Notes:
  428. Class| Solid | Sound | Debris
  429. 0 | Yes | Box |
  430. 1 | Yes | Glass
  431. 2 | Yes | Shrub
  432. 3 | No | Shrub
  433. 4 | Yes | ?
  434. 5 | Yes | ?
  435. 6 | Yes | ? | None
  436.  
  437. Type:
  438. NPCGeneric
  439. Format:
  440. !(wlb) ?
  441. !(wl) ?
  442. &(32) Sprite 1?
  443. &(300) Sprite 2?
  444. &(301) Sprite 3?
  445. &(302) Sprite 4?
  446. &(310) Sprite 4?
  447. !(xs) ?
  448. !(bi) ?
  449. !(tr) ?
  450. !(tg) ?
  451. Example:
  452. obj,NPCGeneric,1730,1072,120,2,-999999,++,wlb=1,wl=-999999,32=spr_none,300=spr_NPC_northgrannybird_idleLook,301=spr_NPC_northgrannybird_idleStroke,302=spr_NPC_northgrannybird_idleLook,310=spr_NPCBirdman_Idle,xs=1,bi=0,tr=0,tg=0,
  453.  
  454.  
  455. Type:
  456. Hoarde
  457. Format:
  458. !(01) Hoarde type (0=south,1=north,2=east,3=west,4=all)
  459. Example:
  460. obj,Hoarde,6331,32,112,0,-999999,++,01=2,
  461.  
  462.  
  463. Type:
  464. EditorCutscene
  465. Format:
  466. &(v) Video filename
  467. Example:
  468. obj,EditorCutscene,4801,240,-29,10,-999999,caseScript,3,1,-999999,0,++,v=toweranimatic_1.mov,
  469.  
  470.  
  471. Type:
  472. TrueAtInterval
  473. Format:
  474. !(i) Interval length (frames @30fps)
  475. Example:
  476. obj,TrueAtInterval,7638,320,80,0,-999999,++,i=120,
  477.  
  478.  
  479. Type:
  480. MovingPlatform
  481. Format:
  482. &(s) Sprite
  483. *(wp) Destination (x&y&)
  484. !(e) Class
  485. Example:
  486. obj,MovingPlatform,7638,320,80,0,-999999,++,s=spr_TelevatorPlatform,wp=225&528&,e=1,
  487. Notes:
  488. Class | Speed | Remove Control
  489. 0 | Slow | No
  490. 1 | Fast | Yes
  491. 2 | Fast | No
  492.  
  493.  
  494. Type:
  495. ToggleSwitch
  496. Format:
  497. !(a) ?
  498. !(1) ?
  499. Example:
  500. a=-999999,1=0,
  501.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement