data.lua 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942
  1. -- Clear registration table afresh. Allows loading file multiple times.
  2. mob_spawn.registered = {}
  3. local register = mob_spawn.register_spawn
  4. -- This is not working, for some reason.
  5. -- Anyway, the wisp mob has special spawning code.
  6. --[[
  7. register({
  8. name = "pm:follower",
  9. nodes = {
  10. "basictrees:jungletree_leaves2",
  11. },
  12. min_height = 3111-16,
  13. max_height = 3115+16,
  14. clearance = 1,
  15. mob_limit = 1,
  16. absolute_mob_limit = 5,
  17. mob_range = 100,
  18. -- After a successful spawn, wait a lot of time before spawning another one.
  19. success_time_min = 60*5,
  20. success_time_max = 60*10,
  21. min_count = 1,
  22. max_count = 3,
  23. add_entity_func = function(...) pm.spawn_random_wisp(...) end,
  24. })
  25. --]]
  26. register({
  27. name = "nssm:white_werewolf",
  28. nodes = {
  29. "default:snow",
  30. "snow:footprints",
  31. },
  32. min_height = -10,
  33. max_height = 300,
  34. clearance = 3,
  35. mob_limit = 1,
  36. absolute_mob_limit = 100,
  37. mob_range = 100,
  38. -- After a successful spawn, wait a lot of time before spawning another one.
  39. success_time_min = 60*5,
  40. success_time_max = 60*10,
  41. -- Never spawn more than 1 mob at a time.
  42. min_count = 1,
  43. max_count = 1,
  44. -- Matches noise params for the ambiant wolf sound.
  45. noise_params = {
  46. offset = 0,
  47. scale = 1,
  48. spread = {x=256, y=256, z=256},
  49. seed = 381783,
  50. octaves = 2,
  51. persist = 0.5,
  52. lacunarity = 1.5,
  53. flags = "",
  54. },
  55. noise_threshold = 0.6, -- Higher than noise_threshold for ambiant sound.
  56. })
  57. register({
  58. name = "dm:dm",
  59. nodes = {
  60. "default:stone",
  61. "cavestuff:cobble_with_moss",
  62. "cavestuff:cobble_with_lichen",
  63. "cavestuff:cobble_with_algae",
  64. },
  65. min_light = 0,
  66. max_light = 2,
  67. min_height = -26000,
  68. max_height = -2048,
  69. clearance = 3,
  70. noise_params = {
  71. offset = 0,
  72. scale = 1,
  73. spread = {x=512, y=512, z=512},
  74. seed = 48912,
  75. octaves = 3,
  76. persist = 0.5,
  77. lacunarity = 1.5,
  78. flags = "",
  79. },
  80. noise_threshold = 0.5,
  81. })
  82. register({
  83. name = "dm:dm",
  84. nodes = {
  85. "rackstone:rackstone",
  86. "rackstone:redrack",
  87. "rackstone:mg_rackstone",
  88. "rackstone:mg_redrack",
  89. },
  90. min_light = 0,
  91. max_light = 4,
  92. max_height = -25000,
  93. clearance = 3,
  94. noise_params = {
  95. offset = 0,
  96. scale = 1,
  97. spread = {x=512, y=512, z=512},
  98. seed = 48912,
  99. octaves = 3,
  100. persist = 0.5,
  101. lacunarity = 1.5,
  102. flags = "",
  103. },
  104. noise_threshold = 0.3,
  105. })
  106. register({
  107. name = "golem:stone_golem",
  108. nodes = {"rackstone:rackstone"},
  109. min_light = 0,
  110. max_light = 6,
  111. max_height = -25000,
  112. clearance = 3,
  113. })
  114. -- Naraxen.
  115. register({
  116. name = "golem:stone_golem",
  117. nodes = {"darkage:basaltic_rubble", "darkage:basaltic"},
  118. min_light = 0,
  119. max_light = 6,
  120. min_height = 5150,
  121. max_height = 8150,
  122. clearance = 3,
  123. noise_params = {
  124. offset = 0,
  125. scale = 1,
  126. spread = {x=512, y=512, z=512},
  127. seed = 25206,
  128. octaves = 3,
  129. persist = 0.5,
  130. lacunarity = 1.5,
  131. flags = "",
  132. },
  133. noise_threshold = -0.3,
  134. })
  135. -- Caverealm griefer mob.
  136. -- Spawning behavior is similar to icemen on the surface.
  137. register({
  138. name = "griefer:griefer",
  139. nodes = {
  140. "cavestuff:dark_obsidian",
  141. "cavestuff:cobble_with_moss",
  142. "cavestuff:cobble_with_algae",
  143. },
  144. min_light = 0,
  145. max_light = 4,
  146. min_height = -31000,
  147. max_height = -5000,
  148. day_toggle = true,
  149. })
  150. register({
  151. name = "iceman:iceman",
  152. nodes = {
  153. -- Does not spawn on tree snow or ice.
  154. "default:snow",
  155. "snow:footprints",
  156. },
  157. min_light = 0,
  158. max_light = 4,
  159. mob_limit = 10,
  160. min_height = -21,
  161. max_height = 70,
  162. day_toggle = false,
  163. spawn_chance = 1,
  164. mob_range = 30,
  165. absolute_mob_limit = 20,
  166. player_min_range = 5,
  167. player_max_range = 20,
  168. spawn_radius = 20,
  169. node_skip = 4,
  170. node_jitter = 4,
  171. success_time_min = 1,
  172. success_time_max = 20,
  173. min_count = 1,
  174. max_count = 4,
  175. })
  176. register({
  177. name = "dirtleaf:dirtleaf",
  178. nodes = {
  179. "basictrees:jungletree_leaves2",
  180. "basictrees:jungletree_cube",
  181. },
  182. min_light = 0,
  183. max_light = 13,
  184. mob_limit = 10,
  185. min_height = 3075,
  186. max_height = 3150,
  187. day_toggle = nil,
  188. spawn_chance = 1,
  189. mob_range = 30,
  190. absolute_mob_limit = 20,
  191. player_min_range = 5,
  192. player_max_range = 50,
  193. spawn_radius = 20,
  194. node_skip = 4,
  195. node_jitter = 4,
  196. success_time_min = 1,
  197. success_time_max = 20,
  198. min_count = 1,
  199. max_count = 1,
  200. })
  201. register({
  202. name = "obsidianmonster:obsidianmonster",
  203. nodes = {"air"},
  204. min_light = 0,
  205. max_light = 0,
  206. max_height = -256,
  207. clearance = 2, -- Wants a 3x3x3 area.
  208. flyswim = "flyswim",
  209. noise_params = {
  210. offset = 0,
  211. scale = 1,
  212. spread = {x=512, y=512, z=512},
  213. seed = 2837189,
  214. octaves = 3,
  215. persist = 0.5,
  216. lacunarity = 1.5,
  217. flags = "",
  218. },
  219. noise_threshold = 0.3,
  220. })
  221. -- Naraxen.
  222. register({
  223. name = "obsidianmonster:obsidianmonster",
  224. nodes = {"air"},
  225. min_light = 0,
  226. max_light = 0,
  227. min_height = 5150,
  228. max_height = 8150,
  229. clearance = 2, -- Wants a 3x3x3 area.
  230. flyswim = "flyswim",
  231. noise_params = {
  232. offset = 0,
  233. scale = 1,
  234. spread = {x=512, y=512, z=512},
  235. seed = 25206,
  236. octaves = 3,
  237. persist = 0.5,
  238. lacunarity = 1.5,
  239. flags = "",
  240. },
  241. noise_threshold = -0.3,
  242. })
  243. -- That flying thing.
  244. register({
  245. name = "oerkki:oerkki",
  246. nodes = {"air"},
  247. min_light = 0,
  248. max_light = 0,
  249. min_height = -31000,
  250. max_height = -10,
  251. clearance = 2, -- Wants a 3x3x3 area.
  252. flyswim = "flyswim",
  253. noise_params = {
  254. offset = 0,
  255. scale = 1,
  256. spread = {x=512, y=512, z=512},
  257. seed = 27192,
  258. octaves = 3,
  259. persist = 0.5,
  260. lacunarity = 1.5,
  261. flags = "",
  262. },
  263. noise_threshold = 0.3,
  264. })
  265. -- Naraxen.
  266. register({
  267. name = "oerkki:oerkki",
  268. nodes = {"air"},
  269. min_light = 0,
  270. max_light = 0,
  271. min_height = 5150,
  272. max_height = 8150,
  273. clearance = 2, -- Wants a 3x3x3 area.
  274. flyswim = "flyswim",
  275. noise_params = {
  276. offset = 0,
  277. scale = 1,
  278. spread = {x=512, y=512, z=512},
  279. seed = 25206,
  280. octaves = 3,
  281. persist = 0.5,
  282. lacunarity = 1.5,
  283. flags = "",
  284. },
  285. noise_threshold = -0.3,
  286. })
  287. -- Night Master.
  288. register({
  289. name = "oerkki:night_master",
  290. nodes = {"air"},
  291. min_light = 0,
  292. max_light = 15,
  293. day_toggle = false,
  294. min_height = 3080,
  295. max_height = 3280,
  296. clearance = 3,
  297. flyswim = "flyswim",
  298. mob_limit = 1,
  299. absolute_mob_limit = 5,
  300. mob_range = 50,
  301. -- Never spawn more than 1 mob at a time.
  302. min_count = 1,
  303. max_count = 1,
  304. -- After a successful spawn, wait before spawning another one.
  305. success_time_min = 60*5,
  306. success_time_max = 60*10,
  307. -- Same as moonheron, with higher threshold.
  308. noise_params = {
  309. offset = 0,
  310. scale = 1,
  311. spread = {x=512, y=512, z=512},
  312. seed = 2852,
  313. octaves = 5,
  314. persist = 0.5,
  315. lacunarity = 1.5,
  316. flags = "",
  317. },
  318. noise_threshold = 0.8,
  319. })
  320. register({
  321. name = "nssm:moonheron",
  322. nodes = {"air"},
  323. min_light = 0,
  324. max_light = 15,
  325. day_toggle = false,
  326. min_height = 3060,
  327. max_height = 3280,
  328. clearance = 3,
  329. flyswim = "flyswim",
  330. mob_limit = 3,
  331. absolute_mob_limit = 5,
  332. mob_range = 50,
  333. -- Never spawn more than 1 mob at a time.
  334. min_count = 1,
  335. max_count = 1,
  336. -- Same as night master, with lower threshold.
  337. noise_params = {
  338. offset = 0,
  339. scale = 1,
  340. spread = {x=512, y=512, z=512},
  341. seed = 2852,
  342. octaves = 5,
  343. persist = 0.5,
  344. lacunarity = 1.5,
  345. flags = "",
  346. },
  347. noise_threshold = 0.7,
  348. })
  349. register({
  350. name = "rat:rat",
  351. nodes = {"default:stone"},
  352. min_light = 0,
  353. max_light = default.LIGHT_MAX,
  354. min_height = -128,
  355. max_height = 31000,
  356. clearance = 1,
  357. })
  358. register({
  359. name = "sheep:sheep",
  360. nodes = {"default:dirt_with_grass", "moregrass:darkgrass", "default:dirt_with_dry_grass"},
  361. min_light = 10,
  362. max_light = default.LIGHT_MAX,
  363. min_height = -30,
  364. max_height = 31000,
  365. day_toggle = nil, -- They spawn anytime.
  366. })
  367. register({
  368. name = "skeleton:skeleton",
  369. nodes = {
  370. "rackstone:rackstone",
  371. "rackstone:redrack",
  372. "rackstone:mg_rackstone",
  373. "rackstone:mg_redrack",
  374. },
  375. min_light = 0,
  376. max_light = 6,
  377. mob_limit = 10,
  378. max_height = -25000,
  379. clearance = 3,
  380. noise_params = {
  381. offset = 0,
  382. scale = 1,
  383. spread = {x=512, y=512, z=512},
  384. seed = 4817889,
  385. octaves = 3,
  386. persist = 0.5,
  387. lacunarity = 1.5,
  388. flags = "",
  389. },
  390. noise_threshold = 0.3,
  391. })
  392. -- Naraxen.
  393. register({
  394. name = "skeleton:skeleton",
  395. nodes = {"darkage:basaltic_rubble", "darkage:basaltic"},
  396. min_light = 0,
  397. max_light = 0,
  398. min_height = 5150,
  399. max_height = 8150,
  400. clearance = 3,
  401. noise_params = {
  402. offset = 0,
  403. scale = 1,
  404. spread = {x=512, y=512, z=512},
  405. seed = 25206,
  406. octaves = 3,
  407. persist = 0.5,
  408. lacunarity = 1.5,
  409. flags = "",
  410. },
  411. noise_threshold = -0.3,
  412. })
  413. register({
  414. name = "stoneman:stoneman",
  415. nodes = {"default:stone", "default:cobble"},
  416. min_light = 0,
  417. max_light = 1,
  418. mob_limit = 10,
  419. max_height = -128,
  420. })
  421. -- Naraxen.
  422. register({
  423. name = "stoneman:stoneman",
  424. nodes = {"darkage:basaltic_rubble", "darkage:basaltic"},
  425. min_light = 0,
  426. max_light = 10,
  427. min_height = 5150,
  428. max_height = 8150,
  429. clearance = 3,
  430. noise_params = {
  431. offset = 0,
  432. scale = 1,
  433. spread = {x=512, y=512, z=512},
  434. seed = 25206,
  435. octaves = 3,
  436. persist = 0.5,
  437. lacunarity = 1.5,
  438. flags = "",
  439. },
  440. noise_threshold = -0.3,
  441. })
  442. -- Naraxen.
  443. -- Disgusting eldritch.
  444. register({
  445. name = "nssm:morde",
  446. nodes = {"darkage:basaltic_rubble", "darkage:basaltic"},
  447. min_light = 0,
  448. max_light = 1,
  449. min_height = 5150,
  450. max_height = 8150,
  451. clearance = 3,
  452. mob_limit = 1,
  453. min_count = 1,
  454. max_count = 1,
  455. mob_range = 40,
  456. noise_params = {
  457. offset = 0,
  458. scale = 1,
  459. spread = {x=512, y=512, z=512},
  460. seed = 16804,
  461. octaves = 3,
  462. persist = 0.5,
  463. lacunarity = 1.5,
  464. flags = "",
  465. },
  466. noise_threshold = 0.3,
  467. })
  468. register({
  469. name = "warthog:warthog",
  470. nodes = {
  471. "rackstone:rackstone",
  472. "rackstone:redrack",
  473. "rackstone:mg_rackstone",
  474. "rackstone:mg_redrack",
  475. },
  476. min_light = 0,
  477. max_light = 3,
  478. mob_limit = 10,
  479. max_height = -25000,
  480. min_count = 7,
  481. max_count = 16,
  482. noise_params = {
  483. offset = 0,
  484. scale = 1,
  485. spread = {x=512, y=512, z=512},
  486. seed = 423821,
  487. octaves = 3,
  488. persist = 0.5,
  489. lacunarity = 1.5,
  490. flags = "",
  491. },
  492. noise_threshold = 0.3,
  493. })
  494. register({
  495. name = "sandman:sandman",
  496. nodes = {
  497. "default:desert_sand",
  498. },
  499. min_light = 0,
  500. max_light = 4,
  501. mob_limit = 10,
  502. min_height = 3700,
  503. max_height = 3800,
  504. day_toggle = false,
  505. spawn_chance = 1,
  506. mob_range = 30,
  507. absolute_mob_limit = 20,
  508. player_min_range = 5,
  509. player_max_range = 20,
  510. spawn_radius = 20,
  511. node_skip = 4,
  512. node_jitter = 4,
  513. success_time_min = 1,
  514. success_time_max = 20,
  515. min_count = 1,
  516. max_count = 4,
  517. })
  518. register({
  519. name = "sandman:stoneman",
  520. nodes = {"default:desert_stone"},
  521. min_light = 0,
  522. max_light = 4,
  523. mob_limit = 10,
  524. min_height = 3600,
  525. max_height = 3800,
  526. spawn_chance = 1,
  527. })
  528. register({
  529. name = "nssm:phoenix",
  530. nodes = {"air"},
  531. min_light = 12,
  532. max_light = 15,
  533. day_toggle = true,
  534. min_height = 3735,
  535. max_height = 3800,
  536. clearance = 3,
  537. flyswim = "flyswim",
  538. mob_limit = 1,
  539. absolute_mob_limit = 5,
  540. mob_range = 40,
  541. min_count = 1,
  542. max_count = 1,
  543. -- After a successful spawn, wait before spawning another one.
  544. success_time_min = 60*5,
  545. success_time_max = 60*10,
  546. noise_params = {
  547. offset = 0,
  548. scale = 1,
  549. spread = {x=512, y=512, z=512},
  550. seed = 10548,
  551. octaves = 5,
  552. persist = 0.5,
  553. lacunarity = 1.5,
  554. flags = "",
  555. },
  556. noise_threshold = 0.8,
  557. })
  558. register({
  559. name = "nssm:scrausics",
  560. nodes = {"air"},
  561. min_light = 12,
  562. max_light = 15,
  563. day_toggle = true,
  564. min_height = 3735,
  565. max_height = 3800,
  566. clearance = 3,
  567. flyswim = "flyswim",
  568. mob_limit = 3,
  569. absolute_mob_limit = 5,
  570. mob_range = 40,
  571. min_count = 1,
  572. max_count = 2,
  573. noise_params = {
  574. offset = 0,
  575. scale = 1,
  576. spread = {x=512, y=512, z=512},
  577. seed = 48727,
  578. octaves = 5,
  579. persist = 0.5,
  580. lacunarity = 1.5,
  581. flags = "",
  582. },
  583. noise_threshold = 0.8,
  584. })
  585. -- Pigs in the Outback.
  586. register({
  587. name = "animalworld:suboar",
  588. nodes = {"rackstone:cobble"},
  589. min_light = 0,
  590. max_light = 15,
  591. day_toggle = false,
  592. min_height = 4160+400,
  593. max_height = 4200+400,
  594. clearance = 2,
  595. mob_limit = 2,
  596. absolute_mob_limit = 6,
  597. mob_range = 40,
  598. realm_restriction = true,
  599. -- After a successful spawn, wait before spawning another one.
  600. success_time_min = 60*5,
  601. success_time_max = 60*10,
  602. -- Never spawn more than 1 mob at a time.
  603. min_count = 1,
  604. max_count = 1,
  605. })
  606. -- Murdertusks in Saravinca
  607. register({
  608. name = "animalworld:murdertusk",
  609. nodes = {"rackstone:cobble"},
  610. min_light = 0,
  611. max_light = 10,
  612. day_toggle = false,
  613. clearance = 2,
  614. -- Not in canyons, not on mesas.
  615. min_height = 23150,
  616. max_height = 23200,
  617. spawn_chance = 1,
  618. mob_range = 70,
  619. absolute_mob_limit = 10,
  620. player_min_range = 20,
  621. player_max_range = 60,
  622. spawn_radius = 50,
  623. node_skip = 4,
  624. node_jitter = 4,
  625. success_time_min = 30,
  626. success_time_max = 120,
  627. min_count = 1,
  628. max_count = 4,
  629. noise_params = {
  630. offset = 0,
  631. scale = 1,
  632. spread = {x=256, y=256, z=256},
  633. seed = 168662,
  634. octaves = 2,
  635. persist = 0.5,
  636. lacunarity = 1.5,
  637. flags = "",
  638. },
  639. noise_threshold = 0.3,
  640. })
  641. -- DMs in Saravinca.
  642. register({
  643. name = "dm:dm",
  644. nodes = {
  645. "rackstone:cobble",
  646. "rackstone:rackstone",
  647. },
  648. min_light = 0,
  649. max_light = 10,
  650. day_toggle = false,
  651. min_height = 21150,
  652. max_height = 23450,
  653. clearance = 3,
  654. noise_params = {
  655. offset = 0,
  656. scale = 1,
  657. spread = {x=128, y=128, z=128},
  658. seed = 47821,
  659. octaves = 2,
  660. persist = 0.5,
  661. lacunarity = 1.5,
  662. flags = "",
  663. },
  664. noise_threshold = 0.0,
  665. })
  666. -- Stone monsters in Saravinca.
  667. register({
  668. name = "stoneman:stoneman",
  669. nodes = {"rackstone:cobble", "rackstone:rackstone"},
  670. min_light = 0,
  671. max_light = 10,
  672. day_toggle = false,
  673. min_height = 21150,
  674. max_height = 23450,
  675. clearance = 3,
  676. noise_params = {
  677. offset = 0,
  678. scale = 1,
  679. spread = {x=512, y=512, z=512},
  680. seed = 992134,
  681. octaves = 3,
  682. persist = 0.5,
  683. lacunarity = 1.5,
  684. flags = "",
  685. },
  686. noise_threshold = -0.3,
  687. })
  688. -- A very rare, very hard mob.
  689. register({
  690. name = "griefer:elite_griefer",
  691. nodes = {
  692. "bedrock:bedrock",
  693. "cavestuff:dark_obsidian",
  694. },
  695. min_height = -35000,
  696. max_height = 35000,
  697. clearance = 2,
  698. mob_limit = 2,
  699. absolute_mob_limit = 10,
  700. mob_range = 40,
  701. -- After a successful spawn, wait a lot of time before spawning another one.
  702. -- Between 1 and 4 hours.
  703. success_time_min = 60*60,
  704. success_time_max = 60*60*4,
  705. -- Min/max amount of mobs to spawn at one time.
  706. min_count = 1,
  707. max_count = 2,
  708. -- Because it is allowed to spawn in the Abyss, at the bedrock layer.
  709. realm_restriction = true,
  710. })
  711. -- Source of obsidian in Jarkati.
  712. register({
  713. name = "obsidianmonster:obsidianmonster",
  714. nodes = {"air"},
  715. min_light = 0,
  716. max_light = 0,
  717. min_height = 3620,
  718. max_height = 3720,
  719. clearance = 2, -- Wants a 3x3x3 area.
  720. flyswim = "flyswim",
  721. noise_params = {
  722. offset = 0,
  723. scale = 1,
  724. spread = {x=512, y=512, z=512},
  725. seed = 995463,
  726. octaves = 3,
  727. persist = 0.5,
  728. lacunarity = 1.5,
  729. flags = "",
  730. },
  731. noise_threshold = -0.3,
  732. })
  733. -- That flying thing.
  734. -- Source of leather in Jarkati.
  735. register({
  736. name = "oerkki:oerkki",
  737. nodes = {"air"},
  738. min_light = 0,
  739. max_light = 0,
  740. min_height = 3620,
  741. max_height = 3720,
  742. clearance = 2, -- Wants a 3x3x3 area.
  743. flyswim = "flyswim",
  744. noise_params = {
  745. offset = 0,
  746. scale = 1,
  747. spread = {x=512, y=512, z=512},
  748. seed = 5523,
  749. octaves = 3,
  750. persist = 0.5,
  751. lacunarity = 1.5,
  752. flags = "",
  753. },
  754. noise_threshold = 0.3,
  755. })
  756. register({
  757. name = "dm:dm",
  758. nodes = {
  759. "default:cobble",
  760. "default:stone",
  761. },
  762. min_light = 0,
  763. max_light = 15,
  764. min_height = 10150,
  765. max_height = 13150, -- Not in Xen.
  766. clearance = 3,
  767. --[[
  768. noise_params = {
  769. offset = 0,
  770. scale = 1,
  771. spread = {x=128, y=128, z=128},
  772. seed = 3727,
  773. octaves = 2,
  774. persist = 0.5,
  775. lacunarity = 1.5,
  776. flags = "",
  777. },
  778. noise_threshold = 0.0,
  779. --]]
  780. })
  781. -- These guys are absolutely brutal.
  782. register({
  783. name = "oerkki:oerkki",
  784. nodes = {"air"},
  785. day_toggle = false,
  786. min_light = 0,
  787. max_light = 15,
  788. min_height = 13150,
  789. max_height = 15150,
  790. clearance = 2, -- Wants a 3x3x3 area.
  791. flyswim = "flyswim",
  792. spawn_chance = 1,
  793. ---[[
  794. noise_params = {
  795. offset = 0,
  796. scale = 1,
  797. spread = {x=300, y=300, z=300},
  798. seed = 27192,
  799. octaves = 2,
  800. persist = 0.5,
  801. lacunarity = 1.5,
  802. flags = "",
  803. },
  804. noise_threshold = 0.0,
  805. --]]
  806. })
  807. register({
  808. name = "griefer:griefer",
  809. nodes = {"sw:teststone1"},
  810. min_light = 0,
  811. max_light = 7,
  812. min_height = 13150,
  813. max_height = 15150,
  814. day_toggle = false,
  815. spawn_chance = 1,
  816. ---[[
  817. noise_params = {
  818. offset = 0,
  819. scale = 1,
  820. spread = {x=300, y=300, z=300},
  821. seed = 38194,
  822. octaves = 2,
  823. persist = 0.5,
  824. lacunarity = 1.5,
  825. flags = "",
  826. },
  827. noise_threshold = 0.0,
  828. --]]
  829. })
  830. -- Reinit per-player data.
  831. mob_spawn.players = {}
  832. local function re_init()
  833. local players = minetest.get_connected_players()
  834. for k, v in ipairs(players) do
  835. -- This is an indexed array.
  836. local pname = v:get_player_name()
  837. mob_spawn.reinit_player(pname)
  838. end
  839. end
  840. minetest.after(1, re_init)