AxeOfMen

Custom Lava Tumble Map Instructions

Jun 7th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.20 KB | None | 0 0
  1. You can now import your very own custom levels into Lava Tumble! This feature is available exclusively to owners of VIP Servers at Lava Tumble.
  2.  
  3. #OVERVIEW
  4. Here's how it works:
  5. 1) Create a JSON file containing your custom level and share it publicly on pastebin.com. The following section of this document will describe valid JSON structure.
  6. 2) Enter your VIP Server.
  7. 3) In chat, type "/load XXXXXXXX" where "XXXXXXXX" is the pastebin url parameter. For instance, the pastebin url parameter for this document is "4W9TN4nv" as can be seen in the url of this web page. Here's an example of an actual working command: "/load UCVXznLH"
  8. 4) If everything happened correctly, you will hear a chime and see a message that your custom level was added to the Custom pack. You'll see your custom level on the level selection screen in the package named "Custom"
  9. 5) If there was a problem with your level, you will see an error message indicating the problem.
  10.  
  11. #JSON FORMAT
  12. The sample located at
  13. https://pastebin.com/raw/UCVXznLH
  14. looks like this:
  15.  
  16. {
  17. "name": "Stayin' Alive",
  18. "instructions": "Stay alive for 15 seconds",
  19. "awaitOutcome": "keepAlive",
  20. "gameModes": ["randomBlocksDrop"],
  21. "gameplayOptions": {
  22. "requiredDuration": 15,
  23. "blockFallInterval": 0.5
  24. },
  25. "entry": [6,1,6],
  26. "map": [[
  27. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  28. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  29. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  30. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  31. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  32. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  33. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  34. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  35. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  36. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  37. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
  38. ]]
  39. }
  40.  
  41. This is the actual single player level number 12, Stayin' Alive! Let's look at each of the properties of the JSON object above.
  42.  
  43. name
  44. This is a string that identifies your level in the level selection UI. It is also displayed in the header UI when the level has been selected. It can be whatever you want but if it's too long, it's going to look bad in the game.
  45.  
  46. instructions
  47. This is a string that is displayed to the player at the start of the level and in the header UI telling the player how to pass this level.
  48.  
  49. awaitOutcome
  50. awaitOutcome is a value that describes what the win conditions are for a level. Each level must have exactly one awaitOutcome specified. The available options are:
  51. "allBlocksTouched" (All blocks must be touched. Example level: Between the Lines)
  52. "allSpecifiedBlocksTouched" (The specified blocks must be touched. Example level: Punchline)
  53. "keepAlive" (The player must stay alive for a specified duration. Example level: Still Alive)
  54. "starredIsLastTouched" (The player must touch the starred block last. Example level: Final Lap in the preview levels)
  55.  
  56. gameModes
  57. This is a set of pre-defined game modes that apply to the level. You can select from the following list of modes (zero or more)
  58. "randomBlocksDrop"
  59. "mysteryPath"
  60. "specifiedBlocksDontDrop"
  61. "portals"
  62. "horizontalMirrorMode"
  63. "hiddenBlocks"
  64. "multiStepBlocks"
  65.  
  66. Multiple values must be separated by a comma as in this example:
  67. "gameModes": ["portals", "horizontalMirrorMode"]
  68.  
  69. gameplayOptions
  70. Most gameModes and awaitOutcome values require options specific to that gameMode/awaitOutcome. In our example, the game mode is "randomBlocksDrop" and there are two options that describe to that gameMode how to behave.
  71. This tells the engine that the player needs to survive for 15 seconds:
  72. "requiredDuration": 15,
  73. This tells the engine that a block should fall every 1/2 second:
  74. "blockFallInterval": 0.5
  75.  
  76. Here are the awaitOutcome gameplayOptions:
  77. "allBlocksTouched"
  78. none
  79.  
  80. "allSpecifiedBlocksTouched"
  81. "blocksToRemove"
  82.  
  83. "keepAlive"
  84. "requiredDuration"
  85.  
  86. "starredIsLastTouched"
  87. "lastBlock"
  88.  
  89. Here are the gameModes gameplayOptions:
  90. "randomBlocksDrop"
  91. "blockFallInterval" (A number representing how many seconds between blocks falling)
  92.  
  93. "mysteryPath"
  94. "head"
  95. "blockInterval"
  96.  
  97. "specifiedBlocksDontDrop"
  98. "staticBlocks"
  99.  
  100. "portals"
  101. "portalSets"
  102.  
  103. "horizontalMirrorMode"
  104. none
  105.  
  106. "hiddenBlocks"
  107. none
  108.  
  109. "multiStepBlocks"
  110. none
  111.  
  112. entry
  113. Every level must have an entry property which describes where the player is placed on the map when the level begins. A level is a 3D grid of blocks with dimensions of (Width x Depth x Length) with maximum dimensions of (11 x 6 x 11). The entry in our example is at (6 x 1 x 6) which means that the entry is located at the 6th row on the 1st level in the 6th column - that's dead center.
  114.  
  115. map
  116. This value describes which blocks are present in the map. Each layer of a level is represented by an 11x11 grid. Our example has one 11x11 grid which means there is one layer. A 1 (one) in the grid means there IS a block in that position. A 0 (zero) means there is NOT a block in that position. Our example has nothing but ones which means that every spot on the top layer is occupied by a block.
  117.  
  118. Following is the map for Deadfall. Notice that there are six layers (each 11 x 11 grid represents a layer) and only one block is present on each layer, directly in the center of the layer:
  119. map = {
  120. {
  121. {0,0,0,0,0,0,0,0,0,0,0},
  122. {0,0,0,0,0,0,0,0,0,0,0},
  123. {0,0,0,0,0,0,0,0,0,0,0},
  124. {0,0,0,0,0,0,0,0,0,0,0},
  125. {0,0,0,0,0,0,0,0,0,0,0},
  126. {0,0,0,0,0,1,0,0,0,0,0},
  127. {0,0,0,0,0,0,0,0,0,0,0},
  128. {0,0,0,0,0,0,0,0,0,0,0},
  129. {0,0,0,0,0,0,0,0,0,0,0},
  130. {0,0,0,0,0,0,0,0,0,0,0},
  131. {0,0,0,0,0,0,0,0,0,0,0}
  132. },
  133. {
  134. {0,0,0,0,0,0,0,0,0,0,0},
  135. {0,0,0,0,0,0,0,0,0,0,0},
  136. {0,0,0,0,0,0,0,0,0,0,0},
  137. {0,0,0,0,0,0,0,0,0,0,0},
  138. {0,0,0,0,0,0,0,0,0,0,0},
  139. {0,0,0,0,0,1,0,0,0,0,0},
  140. {0,0,0,0,0,0,0,0,0,0,0},
  141. {0,0,0,0,0,0,0,0,0,0,0},
  142. {0,0,0,0,0,0,0,0,0,0,0},
  143. {0,0,0,0,0,0,0,0,0,0,0},
  144. {0,0,0,0,0,0,0,0,0,0,0}
  145. },
  146. {
  147. {0,0,0,0,0,0,0,0,0,0,0},
  148. {0,0,0,0,0,0,0,0,0,0,0},
  149. {0,0,0,0,0,0,0,0,0,0,0},
  150. {0,0,0,0,0,0,0,0,0,0,0},
  151. {0,0,0,0,0,0,0,0,0,0,0},
  152. {0,0,0,0,0,1,0,0,0,0,0},
  153. {0,0,0,0,0,0,0,0,0,0,0},
  154. {0,0,0,0,0,0,0,0,0,0,0},
  155. {0,0,0,0,0,0,0,0,0,0,0},
  156. {0,0,0,0,0,0,0,0,0,0,0},
  157. {0,0,0,0,0,0,0,0,0,0,0}
  158. },
  159. {
  160. {0,0,0,0,0,0,0,0,0,0,0},
  161. {0,0,0,0,0,0,0,0,0,0,0},
  162. {0,0,0,0,0,0,0,0,0,0,0},
  163. {0,0,0,0,0,0,0,0,0,0,0},
  164. {0,0,0,0,0,0,0,0,0,0,0},
  165. {0,0,0,0,0,1,0,0,0,0,0},
  166. {0,0,0,0,0,0,0,0,0,0,0},
  167. {0,0,0,0,0,0,0,0,0,0,0},
  168. {0,0,0,0,0,0,0,0,0,0,0},
  169. {0,0,0,0,0,0,0,0,0,0,0},
  170. {0,0,0,0,0,0,0,0,0,0,0}
  171. },
  172. {
  173. {0,0,0,0,0,0,0,0,0,0,0},
  174. {0,0,0,0,0,0,0,0,0,0,0},
  175. {0,0,0,0,0,0,0,0,0,0,0},
  176. {0,0,0,0,0,0,0,0,0,0,0},
  177. {0,0,0,0,0,0,0,0,0,0,0},
  178. {0,0,0,0,0,1,0,0,0,0,0},
  179. {0,0,0,0,0,0,0,0,0,0,0},
  180. {0,0,0,0,0,0,0,0,0,0,0},
  181. {0,0,0,0,0,0,0,0,0,0,0},
  182. {0,0,0,0,0,0,0,0,0,0,0},
  183. {0,0,0,0,0,0,0,0,0,0,0}
  184. },
  185. {
  186. {0,0,0,0,0,0,0,0,0,0,0},
  187. {0,0,0,0,0,0,0,0,0,0,0},
  188. {0,0,0,0,0,0,0,0,0,0,0},
  189. {0,0,0,0,0,0,0,0,0,0,0},
  190. {0,0,0,0,0,0,0,0,0,0,0},
  191. {0,0,0,0,0,1,0,0,0,0,0},
  192. {0,0,0,0,0,0,0,0,0,0,0},
  193. {0,0,0,0,0,0,0,0,0,0,0},
  194. {0,0,0,0,0,0,0,0,0,0,0},
  195. {0,0,0,0,0,0,0,0,0,0,0},
  196. {0,0,0,0,0,0,0,0,0,0,0}
  197. },
  198. }
Advertisement
Add Comment
Please, Sign In to add comment