questions.yaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. groups:
  2. - name: Terraria Configuration
  3. description: Configure Terraria
  4. - name: Network Configuration
  5. description: Configure Network for Terraria
  6. - name: Storage Configuration
  7. description: Configure Storage for Terraria
  8. - name: Resources Configuration
  9. description: Configure Resources for Terraria
  10. questions:
  11. - variable: terrariaConfig
  12. label: ""
  13. group: Terraria Configuration
  14. schema:
  15. type: dict
  16. attrs:
  17. - variable: imageSelector
  18. label: Image Selector
  19. description: |
  20. Selects the image to use for the Terraria server.</br>
  21. TShock is a fork of the Terraria server that adds a number of features.</br>
  22. Vanilla is the original Terraria server. </br>
  23. Only applies to newly generated worlds.
  24. schema:
  25. type: string
  26. default: image
  27. required: true
  28. immutable: true
  29. enum:
  30. - value: image
  31. description: TShock
  32. - value: vanillaImage
  33. description: Vanilla
  34. - variable: worldName
  35. label: World Name
  36. description: |
  37. Sets the world's name.</br>
  38. Only applies to newly generated worlds.
  39. schema:
  40. type: string
  41. default: My-World
  42. required: true
  43. immutable: true
  44. - variable: worldSeed
  45. label: World Seed
  46. description: |
  47. Sets the world's seed.</br>
  48. Only applies to newly generated worlds.
  49. schema:
  50. type: string
  51. default: ''
  52. immutable: true
  53. - variable: worldEvil
  54. label: World's Evil
  55. description: |
  56. Sets the world's evil state.</br>
  57. Only applies to newly generated worlds.
  58. schema:
  59. type: string
  60. default: random
  61. required: true
  62. immutable: true
  63. enum:
  64. - value: random
  65. description: Random
  66. - value: corrupt
  67. description: Corrupt
  68. - value: crimson
  69. description: Crimson
  70. - variable: worldSize
  71. label: World Size
  72. description: |
  73. Sets the world's size.</br>
  74. Only applies to newly generated worlds.
  75. schema:
  76. type: string
  77. default: small
  78. required: true
  79. immutable: true
  80. enum:
  81. - value: small
  82. description: Small (1)
  83. - value: medium
  84. description: Medium (2)
  85. - value: large
  86. description: Large (3)
  87. - variable: worldDifficulty
  88. label: World Difficulty
  89. description: |
  90. Sets the world's difficulty.</br>
  91. Only applies to newly generated worlds.
  92. schema:
  93. type: string
  94. default: normal
  95. required: true
  96. immutable: true
  97. enum:
  98. - value: normal
  99. description: Normal (0)
  100. - value: expert
  101. description: Expert (1)
  102. - value: master
  103. description: Master (2)
  104. - value: journey
  105. description: Journey (3)
  106. - variable: maxPlayers
  107. label: Maximum Players
  108. description: Starts the server with the given player count as the maximum.
  109. schema:
  110. type: int
  111. default: 8
  112. min: 1
  113. max: 255
  114. required: true
  115. - variable: password
  116. label: Server Password
  117. description: Sets the server password.
  118. schema:
  119. type: string
  120. private: true
  121. default: ''
  122. - variable: secure
  123. label: Secure Server
  124. description: Turns on the base game's "anti-spam" feature.
  125. schema:
  126. type: boolean
  127. default: false
  128. - variable: forceUpdate
  129. label: Force Update
  130. description: |
  131. Forces the server to continue running, and not hibernating when no players are on. </br>
  132. This results in time passing, grass growing, and cpu running.
  133. schema:
  134. type: boolean
  135. default: false
  136. - variable: additionalEnvs
  137. label: Additional Environment Variables
  138. description: Configure additional environment variables for Terraria.
  139. schema:
  140. type: list
  141. default: []
  142. items:
  143. - variable: env
  144. label: Environment Variable
  145. schema:
  146. type: dict
  147. attrs:
  148. - variable: name
  149. label: Name
  150. schema:
  151. type: string
  152. required: true
  153. - variable: value
  154. label: Value
  155. schema:
  156. type: string
  157. required: true
  158. - variable: additionalArgs
  159. label: Additional Arguments
  160. description: |
  161. Configure additional arguments for Terraria. </br>
  162. Value is optional for flags like -heaptile </br>
  163. For example: </br>
  164. Key: -lang </br>
  165. Value: en-US
  166. schema:
  167. type: list
  168. default: []
  169. items:
  170. - variable: arg
  171. label: Argument
  172. schema:
  173. type: dict
  174. attrs:
  175. - variable: key
  176. label: Key
  177. schema:
  178. type: string
  179. required: true
  180. - variable: value
  181. label: Value
  182. schema:
  183. type: string
  184. - variable: terrariaNetwork
  185. label: ""
  186. group: Network Configuration
  187. schema:
  188. type: dict
  189. attrs:
  190. - variable: serverPort
  191. label: Server Port
  192. description: The port for the Terraria Server.
  193. schema:
  194. type: int
  195. default: 30030
  196. min: 9000
  197. max: 65535
  198. required: true
  199. - variable: hostNetwork
  200. label: Host Network
  201. description: |
  202. Bind to the host network. It's recommended to keep this disabled.</br>
  203. schema:
  204. type: boolean
  205. default: false
  206. - variable: terrariaStorage
  207. label: ""
  208. group: Storage Configuration
  209. schema:
  210. type: dict
  211. attrs:
  212. - variable: world
  213. label: Terraria World Storage
  214. description: The path to store Terraria World.
  215. schema:
  216. type: dict
  217. attrs:
  218. - variable: type
  219. label: Type
  220. description: |
  221. ixVolume: Is dataset created automatically by the system.</br>
  222. Host Path: Is a path that already exists on the system.
  223. schema:
  224. type: string
  225. required: true
  226. immutable: true
  227. default: "ixVolume"
  228. enum:
  229. - value: "hostPath"
  230. description: Host Path (Path that already exists on the system)
  231. - value: "ixVolume"
  232. description: ixVolume (Dataset created automatically by the system)
  233. - variable: datasetName
  234. label: Dataset Name
  235. schema:
  236. type: string
  237. show_if: [["type", "=", "ixVolume"]]
  238. required: true
  239. hidden: true
  240. immutable: true
  241. default: "world"
  242. $ref:
  243. - "normalize/ixVolume"
  244. - variable: hostPath
  245. label: Host Path
  246. schema:
  247. type: hostpath
  248. show_if: [["type", "=", "hostPath"]]
  249. required: true
  250. - variable: plugins
  251. label: Terraria Plugins Storage
  252. description: The path to store Terraria Plugins.
  253. schema:
  254. type: dict
  255. attrs:
  256. - variable: type
  257. label: Type
  258. description: |
  259. ixVolume: Is dataset created automatically by the system.</br>
  260. Host Path: Is a path that already exists on the system.
  261. schema:
  262. type: string
  263. required: true
  264. immutable: true
  265. default: "ixVolume"
  266. enum:
  267. - value: "hostPath"
  268. description: Host Path (Path that already exists on the system)
  269. - value: "ixVolume"
  270. description: ixVolume (Dataset created automatically by the system)
  271. - variable: datasetName
  272. label: Dataset Name
  273. schema:
  274. type: string
  275. show_if: [["type", "=", "ixVolume"]]
  276. required: true
  277. hidden: true
  278. immutable: true
  279. default: "plugins"
  280. $ref:
  281. - "normalize/ixVolume"
  282. - variable: hostPath
  283. label: Host Path
  284. schema:
  285. type: hostpath
  286. show_if: [["type", "=", "hostPath"]]
  287. required: true
  288. - variable: resources
  289. group: Resources Configuration
  290. label: ""
  291. schema:
  292. type: dict
  293. attrs:
  294. - variable: limits
  295. label: Limits
  296. schema:
  297. type: dict
  298. attrs:
  299. - variable: cpu
  300. label: CPU
  301. description: CPU limit for Terraria.
  302. schema:
  303. type: string
  304. max_length: 6
  305. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  306. valid_chars_error: |
  307. Valid CPU limit formats are</br>
  308. - Plain Integer - eg. 1</br>
  309. - Float - eg. 0.5</br>
  310. - Milicpu - eg. 500m
  311. default: "4000m"
  312. required: true
  313. - variable: memory
  314. label: Memory
  315. description: Memory limit for Terraria.
  316. schema:
  317. type: string
  318. max_length: 12
  319. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  320. valid_chars_error: |
  321. Valid Memory limit formats are</br>
  322. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  323. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  324. - Plain Integer in bytes - eg. 1024</br>
  325. - Exponent - eg. 134e6
  326. default: "8Gi"
  327. required: true