incanto 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/LICENSE +30 -0
  2. package/README.md +36 -0
  3. package/THIRD-PARTY-NOTICES.md +88 -0
  4. package/assets/audio/attacked.mp3 +0 -0
  5. package/assets/audio/explosion.mp3 +0 -0
  6. package/assets/audio/gold_loot.mp3 +0 -0
  7. package/assets/audio/heal.mp3 +0 -0
  8. package/assets/audio/hit_metal_bang.mp3 +0 -0
  9. package/assets/audio/ice_spear.mp3 +0 -0
  10. package/assets/audio/monster_died.mp3 +0 -0
  11. package/assets/audio/slash.mp3 +0 -0
  12. package/assets/audio/smite.mp3 +0 -0
  13. package/assets/audio/spells_cast.mp3 +0 -0
  14. package/assets/audio/ui_click.wav +0 -0
  15. package/assets/audio/walk.mp3 +0 -0
  16. package/assets/catalog.json +390 -0
  17. package/assets/characters/2dbasic.json +41 -0
  18. package/assets/characters/2dbasic.png +0 -0
  19. package/assets/characters/ghost.json +46 -0
  20. package/assets/characters/ghost.png +0 -0
  21. package/assets/characters/goblin.json +40 -0
  22. package/assets/characters/goblin.png +0 -0
  23. package/assets/characters/medieval-knight.json +41 -0
  24. package/assets/characters/medieval-knight.png +0 -0
  25. package/assets/effects/swoosh.png +0 -0
  26. package/assets/items/box.png +0 -0
  27. package/assets/items/buff_potion.png +0 -0
  28. package/assets/items/coin.png +0 -0
  29. package/assets/items/gem.png +0 -0
  30. package/assets/items/gold.png +0 -0
  31. package/assets/items/hp_potion.png +0 -0
  32. package/assets/items/locked_item_box.png +0 -0
  33. package/assets/items/map.png +0 -0
  34. package/assets/items/resurrection_potion.png +0 -0
  35. package/assets/items/super_box.png +0 -0
  36. package/assets/items/trap.png +0 -0
  37. package/assets/tiles/floor00.jpg +0 -0
  38. package/assets/tiles/minecraft-tiles.png +0 -0
  39. package/assets/tiles/wall00.jpg +0 -0
  40. package/assets/vegetation/ash_color.png +0 -0
  41. package/assets/vegetation/aspen_color.png +0 -0
  42. package/assets/vegetation/bark/birch_color_1k.jpg +0 -0
  43. package/assets/vegetation/bark/birch_normal_1k.jpg +0 -0
  44. package/assets/vegetation/bark/birch_roughness_1k.jpg +0 -0
  45. package/assets/vegetation/bark/oak_color_1k.jpg +0 -0
  46. package/assets/vegetation/bark/oak_normal_1k.jpg +0 -0
  47. package/assets/vegetation/bark/oak_roughness_1k.jpg +0 -0
  48. package/assets/vegetation/bark/pine_color_1k.jpg +0 -0
  49. package/assets/vegetation/bark/pine_normal_1k.jpg +0 -0
  50. package/assets/vegetation/bark/pine_roughness_1k.jpg +0 -0
  51. package/assets/vegetation/ground/dirt_color.jpg +0 -0
  52. package/assets/vegetation/ground/dirt_normal.jpg +0 -0
  53. package/assets/vegetation/ground/grass.jpg +0 -0
  54. package/assets/vegetation/oak_color.png +0 -0
  55. package/assets/vegetation/pine_color.png +0 -0
  56. package/bin/incanto-assets.mjs +107 -0
  57. package/bin/incanto-check.mjs +107 -0
  58. package/bin/incanto-editor.mjs +343 -0
  59. package/bin/incanto-env.mjs +144 -0
  60. package/bin/incanto-model.mjs +296 -0
  61. package/bin/incanto-play.mjs +219 -0
  62. package/bin/incanto-skills.mjs +71 -0
  63. package/dist/2d.d.ts +642 -0
  64. package/dist/2d.js +44 -0
  65. package/dist/3d.d.ts +1860 -0
  66. package/dist/3d.js +5 -0
  67. package/dist/agent8-DzU2fFyH.js +129 -0
  68. package/dist/audio-player-DqUR3XFs.d.ts +110 -0
  69. package/dist/behavior-BAQq7HGM.d.ts +851 -0
  70. package/dist/create-game-BdjpTHrW.js +1725 -0
  71. package/dist/create-game-CZHROKcT.js +527 -0
  72. package/dist/debug-draw-CZmOYjL2.js +13 -0
  73. package/dist/debug.d.ts +66 -0
  74. package/dist/debug.js +658 -0
  75. package/dist/duplicate-DP2WPYom.js +22 -0
  76. package/dist/env.d.ts +430 -0
  77. package/dist/env.js +3152 -0
  78. package/dist/errors-BMFaY68Q.d.ts +33 -0
  79. package/dist/errors-BpWbnbb_.js +13 -0
  80. package/dist/gameplay-Ccruc3Wd.js +1501 -0
  81. package/dist/gameplay.d.ts +543 -0
  82. package/dist/gameplay.js +2 -0
  83. package/dist/heightmap-CroQPEER.js +185 -0
  84. package/dist/index.d.ts +305 -0
  85. package/dist/index.js +62 -0
  86. package/dist/json-BLk7H2Qa.js +30 -0
  87. package/dist/loader-CGs_G-r0.js +919 -0
  88. package/dist/loader-Mo0KghCv.d.ts +41 -0
  89. package/dist/net.d.ts +427 -0
  90. package/dist/net.js +772 -0
  91. package/dist/noise-CGUMx44x.js +82 -0
  92. package/dist/particle-sim-CbN4YUuH.d.ts +63 -0
  93. package/dist/particle-sim-DYuSUxvK.js +1319 -0
  94. package/dist/physics-2d-KuMWPTf6.js +288 -0
  95. package/dist/physics-3d-Dl67vOLT.js +434 -0
  96. package/dist/react.d.ts +65 -0
  97. package/dist/react.js +209 -0
  98. package/dist/register-BuUV1_KB.js +561 -0
  99. package/dist/register-CNlYAS1_.js +10634 -0
  100. package/dist/register-DPEV9_9t.js +851 -0
  101. package/dist/register-Dasmnurl.js +374 -0
  102. package/dist/registry-BVJ2HbCn.js +132 -0
  103. package/dist/rng-DP-SR7eg.js +38 -0
  104. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  105. package/dist/schema-CcoWb32N.d.ts +104 -0
  106. package/dist/test.d.ts +158 -0
  107. package/dist/test.js +275 -0
  108. package/dist/touch-031PxtCR.js +208 -0
  109. package/dist/vite.d.ts +26 -0
  110. package/dist/vite.js +57 -0
  111. package/editor/assets/GameServer-C56iOUgF.js +1 -0
  112. package/editor/assets/agent8-Bp7QFI7v.js +1 -0
  113. package/editor/assets/index-DF3tMeKJ.css +1 -0
  114. package/editor/assets/index-Dl2pjA8e.js +7365 -0
  115. package/editor/assets/rapier-CEuLKeCu.js +1 -0
  116. package/editor/assets/rapier-DE6a0vmv.js +1 -0
  117. package/editor/index.html +169 -0
  118. package/package.json +97 -0
  119. package/schemas/scene.schema.json +4254 -0
  120. package/skills/README.md +9 -0
  121. package/skills/incanto-3d-character.md +229 -0
  122. package/skills/incanto-3d-models.md +151 -0
  123. package/skills/incanto-assets.md +118 -0
  124. package/skills/incanto-audio.md +309 -0
  125. package/skills/incanto-behaviors-and-scripts.md +169 -0
  126. package/skills/incanto-building-2d-games.md +242 -0
  127. package/skills/incanto-building-3d-games.md +245 -0
  128. package/skills/incanto-editor.md +163 -0
  129. package/skills/incanto-environment.md +743 -0
  130. package/skills/incanto-gameplay-behaviors.md +707 -0
  131. package/skills/incanto-multiplayer.md +264 -0
  132. package/skills/incanto-node-reference.md +797 -0
  133. package/skills/incanto-physics-and-input.md +164 -0
  134. package/skills/incanto-scene-json-authoring.md +325 -0
  135. package/skills/incanto-verifying-your-game.md +191 -0
  136. package/skills/incanto-web-integration.md +96 -0
  137. package/templates/agent8-server.js +84 -0
  138. package/templates/agent8-server.ts +138 -0
@@ -0,0 +1,4254 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/rareboe/Incanto/schemas/scene.schema.json",
4
+ "title": "Incanto scene (format 1)",
5
+ "type": "object",
6
+ "properties": {
7
+ "format": {
8
+ "const": 1
9
+ },
10
+ "type": {
11
+ "const": "scene"
12
+ },
13
+ "name": {
14
+ "type": "string",
15
+ "minLength": 1
16
+ },
17
+ "dimension": {
18
+ "enum": ["2d", "3d"]
19
+ },
20
+ "assets": {
21
+ "type": "object"
22
+ },
23
+ "input": {
24
+ "type": "object",
25
+ "description": "Declarative input actions (loaded into Engine.input on setScene; shape hard-validated at declare). Key arrays are KeyboardEvent.code strings.",
26
+ "additionalProperties": {
27
+ "type": "object",
28
+ "oneOf": [
29
+ {
30
+ "properties": {
31
+ "type": {
32
+ "const": "button"
33
+ },
34
+ "keys": {
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "touch": {
41
+ "const": "button"
42
+ }
43
+ },
44
+ "required": ["type", "keys"]
45
+ },
46
+ {
47
+ "properties": {
48
+ "type": {
49
+ "const": "vector2"
50
+ },
51
+ "keys": {
52
+ "type": "object",
53
+ "properties": {
54
+ "up": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string"
58
+ }
59
+ },
60
+ "down": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "string"
64
+ }
65
+ },
66
+ "left": {
67
+ "type": "array",
68
+ "items": {
69
+ "type": "string"
70
+ }
71
+ },
72
+ "right": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "string"
76
+ }
77
+ }
78
+ },
79
+ "required": ["up", "down", "left", "right"]
80
+ },
81
+ "touch": {
82
+ "const": "joystick"
83
+ }
84
+ },
85
+ "required": ["type", "keys"]
86
+ }
87
+ ]
88
+ }
89
+ },
90
+ "physics": {
91
+ "type": "object",
92
+ "description": "Physics config. The engine reads `gravity` ([x,y] px/s², y-down in 2D; [x,y,z] m/s², y-up in 3D); other keys are preserved verbatim.",
93
+ "properties": {
94
+ "gravity": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "number"
98
+ },
99
+ "minItems": 2,
100
+ "maxItems": 3
101
+ }
102
+ }
103
+ },
104
+ "multiplayer": {
105
+ "type": "object",
106
+ "description": "Multiplayer config. The engine reads `room` ('auto' = server-assigned room id); other keys (e.g. maxPlayers) are free metadata preserved verbatim.",
107
+ "properties": {
108
+ "room": {
109
+ "type": "string"
110
+ },
111
+ "maxPlayers": {
112
+ "type": "number"
113
+ }
114
+ }
115
+ },
116
+ "environment": {
117
+ "type": "object",
118
+ "description": "Renderer-interpreted environment settings, preserved verbatim: 3D `ambient`/`background`/`preset`/`hdri`/`skybox`, plus `rendering` ({antialias, pixelRatio}) for both renderers."
119
+ },
120
+ "viewport": {
121
+ "type": "object",
122
+ "description": "Design-resolution layout: author the world in fixed design pixels; the renderer maps them onto any canvas size (hard-validated at load).",
123
+ "properties": {
124
+ "design": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "number",
128
+ "exclusiveMinimum": 0
129
+ },
130
+ "minItems": 2,
131
+ "maxItems": 2
132
+ },
133
+ "fit": {
134
+ "enum": ["expand", "letterbox", "integer"],
135
+ "default": "expand"
136
+ }
137
+ },
138
+ "required": ["design"]
139
+ },
140
+ "root": {
141
+ "$ref": "#/$defs/node"
142
+ },
143
+ "connections": {
144
+ "type": "array",
145
+ "items": {
146
+ "type": "object",
147
+ "properties": {
148
+ "signal": {
149
+ "type": "string"
150
+ },
151
+ "from": {
152
+ "type": "string"
153
+ },
154
+ "to": {
155
+ "type": "string"
156
+ },
157
+ "handler": {
158
+ "type": "string"
159
+ },
160
+ "once": {
161
+ "type": "boolean"
162
+ },
163
+ "filter": {
164
+ "type": "object"
165
+ }
166
+ },
167
+ "required": ["signal", "from", "to", "handler"]
168
+ }
169
+ }
170
+ },
171
+ "required": ["format", "type", "name", "root"],
172
+ "$defs": {
173
+ "node": {
174
+ "anyOf": [
175
+ {
176
+ "$ref": "#/$defs/AnimatedSprite2D"
177
+ },
178
+ {
179
+ "$ref": "#/$defs/Area2D"
180
+ },
181
+ {
182
+ "$ref": "#/$defs/Area3D"
183
+ },
184
+ {
185
+ "$ref": "#/$defs/AudioPlayer"
186
+ },
187
+ {
188
+ "$ref": "#/$defs/Camera2D"
189
+ },
190
+ {
191
+ "$ref": "#/$defs/Camera3D"
192
+ },
193
+ {
194
+ "$ref": "#/$defs/CharacterBody2D"
195
+ },
196
+ {
197
+ "$ref": "#/$defs/CharacterBody3D"
198
+ },
199
+ {
200
+ "$ref": "#/$defs/CharacterController2D"
201
+ },
202
+ {
203
+ "$ref": "#/$defs/CharacterController3D"
204
+ },
205
+ {
206
+ "$ref": "#/$defs/ColorRect2D"
207
+ },
208
+ {
209
+ "$ref": "#/$defs/DirectionalLight3D"
210
+ },
211
+ {
212
+ "$ref": "#/$defs/Flowers3D"
213
+ },
214
+ {
215
+ "$ref": "#/$defs/Foliage3D"
216
+ },
217
+ {
218
+ "$ref": "#/$defs/Label"
219
+ },
220
+ {
221
+ "$ref": "#/$defs/MeshInstance3D"
222
+ },
223
+ {
224
+ "$ref": "#/$defs/ModelInstance3D"
225
+ },
226
+ {
227
+ "$ref": "#/$defs/NetworkSpawner"
228
+ },
229
+ {
230
+ "$ref": "#/$defs/Node"
231
+ },
232
+ {
233
+ "$ref": "#/$defs/Node2D"
234
+ },
235
+ {
236
+ "$ref": "#/$defs/Node3D"
237
+ },
238
+ {
239
+ "$ref": "#/$defs/OmniLight3D"
240
+ },
241
+ {
242
+ "$ref": "#/$defs/Particles2D"
243
+ },
244
+ {
245
+ "$ref": "#/$defs/Particles3D"
246
+ },
247
+ {
248
+ "$ref": "#/$defs/RigidBody2D"
249
+ },
250
+ {
251
+ "$ref": "#/$defs/RigidBody3D"
252
+ },
253
+ {
254
+ "$ref": "#/$defs/Sprite2D"
255
+ },
256
+ {
257
+ "$ref": "#/$defs/StaticBody2D"
258
+ },
259
+ {
260
+ "$ref": "#/$defs/StaticBody3D"
261
+ },
262
+ {
263
+ "$ref": "#/$defs/Terrain3D"
264
+ },
265
+ {
266
+ "$ref": "#/$defs/Timer"
267
+ },
268
+ {
269
+ "$ref": "#/$defs/Tree3D"
270
+ },
271
+ {
272
+ "$ref": "#/$defs/UILayer"
273
+ },
274
+ {
275
+ "$ref": "#/$defs/VoxelGrid3D"
276
+ },
277
+ {
278
+ "$ref": "#/$defs/Water3D"
279
+ },
280
+ {
281
+ "$ref": "#/$defs/_instance"
282
+ }
283
+ ]
284
+ },
285
+ "_instance": {
286
+ "type": "object",
287
+ "properties": {
288
+ "name": {
289
+ "type": "string"
290
+ },
291
+ "uid": {
292
+ "type": "string"
293
+ },
294
+ "instance": {
295
+ "type": "string"
296
+ },
297
+ "overrides": {
298
+ "type": "object"
299
+ },
300
+ "groups": {
301
+ "type": "array",
302
+ "items": {
303
+ "type": "string"
304
+ }
305
+ },
306
+ "tags": {
307
+ "type": "object"
308
+ },
309
+ "script": {
310
+ "type": "object",
311
+ "properties": {
312
+ "name": {
313
+ "type": "string"
314
+ },
315
+ "props": {
316
+ "type": "object"
317
+ }
318
+ },
319
+ "required": ["name"]
320
+ },
321
+ "network": {
322
+ "type": "object"
323
+ },
324
+ "children": {
325
+ "type": "array",
326
+ "items": {
327
+ "$ref": "#/$defs/node"
328
+ }
329
+ }
330
+ },
331
+ "required": ["name", "instance"]
332
+ },
333
+ "AnimatedSprite2D": {
334
+ "type": "object",
335
+ "x-signals": ["animationFinished"],
336
+ "properties": {
337
+ "name": {
338
+ "type": "string"
339
+ },
340
+ "uid": {
341
+ "type": "string"
342
+ },
343
+ "type": {
344
+ "const": "AnimatedSprite2D"
345
+ },
346
+ "groups": {
347
+ "type": "array",
348
+ "items": {
349
+ "type": "string"
350
+ }
351
+ },
352
+ "tags": {
353
+ "type": "object"
354
+ },
355
+ "props": {
356
+ "type": "object",
357
+ "properties": {
358
+ "position": {
359
+ "type": "array",
360
+ "items": {
361
+ "type": "number"
362
+ },
363
+ "minItems": 2,
364
+ "maxItems": 2,
365
+ "default": [0, 0]
366
+ },
367
+ "rotation": {
368
+ "type": "number",
369
+ "default": 0
370
+ },
371
+ "scale": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "number"
375
+ },
376
+ "minItems": 2,
377
+ "maxItems": 2,
378
+ "default": [1, 1]
379
+ },
380
+ "renderOrder": {
381
+ "type": "number",
382
+ "default": 0
383
+ },
384
+ "visible": {
385
+ "type": "boolean",
386
+ "default": true
387
+ },
388
+ "texture": {
389
+ "type": "string",
390
+ "default": ""
391
+ },
392
+ "anchor": {
393
+ "type": "array",
394
+ "items": {
395
+ "type": "number"
396
+ },
397
+ "minItems": 2,
398
+ "maxItems": 2,
399
+ "default": [0.5, 0.5]
400
+ },
401
+ "flipX": {
402
+ "type": "boolean",
403
+ "default": false
404
+ },
405
+ "flipY": {
406
+ "type": "boolean",
407
+ "default": false
408
+ },
409
+ "tint": {
410
+ "type": "string",
411
+ "default": "#ffffff"
412
+ },
413
+ "opacity": {
414
+ "type": "number",
415
+ "default": 1
416
+ },
417
+ "sheet": {
418
+ "type": "string",
419
+ "default": ""
420
+ },
421
+ "animations": {
422
+ "type": "object",
423
+ "default": {}
424
+ },
425
+ "autoplay": {
426
+ "type": "string",
427
+ "default": ""
428
+ }
429
+ },
430
+ "additionalProperties": false
431
+ },
432
+ "script": {
433
+ "type": "object",
434
+ "properties": {
435
+ "name": {
436
+ "type": "string"
437
+ },
438
+ "props": {
439
+ "type": "object"
440
+ }
441
+ },
442
+ "required": ["name"]
443
+ },
444
+ "network": {
445
+ "type": "object"
446
+ },
447
+ "children": {
448
+ "type": "array",
449
+ "items": {
450
+ "$ref": "#/$defs/node"
451
+ }
452
+ }
453
+ },
454
+ "required": ["name", "type"]
455
+ },
456
+ "Area2D": {
457
+ "type": "object",
458
+ "x-signals": ["triggerEnter", "triggerExit"],
459
+ "properties": {
460
+ "name": {
461
+ "type": "string"
462
+ },
463
+ "uid": {
464
+ "type": "string"
465
+ },
466
+ "type": {
467
+ "const": "Area2D"
468
+ },
469
+ "groups": {
470
+ "type": "array",
471
+ "items": {
472
+ "type": "string"
473
+ }
474
+ },
475
+ "tags": {
476
+ "type": "object"
477
+ },
478
+ "props": {
479
+ "type": "object",
480
+ "properties": {
481
+ "position": {
482
+ "type": "array",
483
+ "items": {
484
+ "type": "number"
485
+ },
486
+ "minItems": 2,
487
+ "maxItems": 2,
488
+ "default": [0, 0]
489
+ },
490
+ "rotation": {
491
+ "type": "number",
492
+ "default": 0
493
+ },
494
+ "scale": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "number"
498
+ },
499
+ "minItems": 2,
500
+ "maxItems": 2,
501
+ "default": [1, 1]
502
+ },
503
+ "renderOrder": {
504
+ "type": "number",
505
+ "default": 0
506
+ },
507
+ "visible": {
508
+ "type": "boolean",
509
+ "default": true
510
+ },
511
+ "collider": {
512
+ "type": "object",
513
+ "default": {}
514
+ }
515
+ },
516
+ "additionalProperties": false
517
+ },
518
+ "script": {
519
+ "type": "object",
520
+ "properties": {
521
+ "name": {
522
+ "type": "string"
523
+ },
524
+ "props": {
525
+ "type": "object"
526
+ }
527
+ },
528
+ "required": ["name"]
529
+ },
530
+ "network": {
531
+ "type": "object"
532
+ },
533
+ "children": {
534
+ "type": "array",
535
+ "items": {
536
+ "$ref": "#/$defs/node"
537
+ }
538
+ }
539
+ },
540
+ "required": ["name", "type"]
541
+ },
542
+ "Area3D": {
543
+ "type": "object",
544
+ "x-signals": ["triggerEnter", "triggerExit"],
545
+ "properties": {
546
+ "name": {
547
+ "type": "string"
548
+ },
549
+ "uid": {
550
+ "type": "string"
551
+ },
552
+ "type": {
553
+ "const": "Area3D"
554
+ },
555
+ "groups": {
556
+ "type": "array",
557
+ "items": {
558
+ "type": "string"
559
+ }
560
+ },
561
+ "tags": {
562
+ "type": "object"
563
+ },
564
+ "props": {
565
+ "type": "object",
566
+ "properties": {
567
+ "position": {
568
+ "type": "array",
569
+ "items": {
570
+ "type": "number"
571
+ },
572
+ "minItems": 3,
573
+ "maxItems": 3,
574
+ "default": [0, 0, 0]
575
+ },
576
+ "rotation": {
577
+ "type": "array",
578
+ "items": {
579
+ "type": "number"
580
+ },
581
+ "minItems": 3,
582
+ "maxItems": 3,
583
+ "default": [0, 0, 0]
584
+ },
585
+ "scale": {
586
+ "type": "array",
587
+ "items": {
588
+ "type": "number"
589
+ },
590
+ "minItems": 3,
591
+ "maxItems": 3,
592
+ "default": [1, 1, 1]
593
+ },
594
+ "visible": {
595
+ "type": "boolean",
596
+ "default": true
597
+ },
598
+ "renderOrder": {
599
+ "type": "number",
600
+ "default": 0
601
+ },
602
+ "collider": {
603
+ "type": "object",
604
+ "default": {}
605
+ }
606
+ },
607
+ "additionalProperties": false
608
+ },
609
+ "script": {
610
+ "type": "object",
611
+ "properties": {
612
+ "name": {
613
+ "type": "string"
614
+ },
615
+ "props": {
616
+ "type": "object"
617
+ }
618
+ },
619
+ "required": ["name"]
620
+ },
621
+ "network": {
622
+ "type": "object"
623
+ },
624
+ "children": {
625
+ "type": "array",
626
+ "items": {
627
+ "$ref": "#/$defs/node"
628
+ }
629
+ }
630
+ },
631
+ "required": ["name", "type"]
632
+ },
633
+ "AudioPlayer": {
634
+ "type": "object",
635
+ "x-signals": ["finished"],
636
+ "properties": {
637
+ "name": {
638
+ "type": "string"
639
+ },
640
+ "uid": {
641
+ "type": "string"
642
+ },
643
+ "type": {
644
+ "const": "AudioPlayer"
645
+ },
646
+ "groups": {
647
+ "type": "array",
648
+ "items": {
649
+ "type": "string"
650
+ }
651
+ },
652
+ "tags": {
653
+ "type": "object"
654
+ },
655
+ "props": {
656
+ "type": "object",
657
+ "properties": {
658
+ "src": {
659
+ "type": "string",
660
+ "default": ""
661
+ },
662
+ "preset": {
663
+ "type": "string",
664
+ "enum": [
665
+ "custom",
666
+ "coin",
667
+ "pickup",
668
+ "jump",
669
+ "hurt",
670
+ "hit",
671
+ "explosion",
672
+ "powerup",
673
+ "laser",
674
+ "shoot",
675
+ "blip",
676
+ "select",
677
+ "step",
678
+ "win",
679
+ "lose"
680
+ ],
681
+ "default": "custom"
682
+ },
683
+ "volume": {
684
+ "type": "number",
685
+ "default": 1
686
+ },
687
+ "pitch": {
688
+ "type": "number",
689
+ "default": 1
690
+ },
691
+ "seed": {
692
+ "type": "number",
693
+ "default": 0
694
+ },
695
+ "bus": {
696
+ "type": "string",
697
+ "enum": ["sfx", "music"],
698
+ "default": "sfx"
699
+ },
700
+ "loop": {
701
+ "type": "boolean",
702
+ "default": false
703
+ },
704
+ "autoplay": {
705
+ "type": "boolean",
706
+ "default": false
707
+ },
708
+ "spatial": {
709
+ "type": "boolean",
710
+ "default": false
711
+ },
712
+ "refDistance": {
713
+ "type": "number",
714
+ "default": 1
715
+ },
716
+ "maxDistance": {
717
+ "type": "number",
718
+ "default": 50
719
+ },
720
+ "rolloff": {
721
+ "type": "string",
722
+ "enum": ["inverse", "linear", "exponential"],
723
+ "default": "inverse"
724
+ }
725
+ },
726
+ "additionalProperties": false
727
+ },
728
+ "script": {
729
+ "type": "object",
730
+ "properties": {
731
+ "name": {
732
+ "type": "string"
733
+ },
734
+ "props": {
735
+ "type": "object"
736
+ }
737
+ },
738
+ "required": ["name"]
739
+ },
740
+ "network": {
741
+ "type": "object"
742
+ },
743
+ "children": {
744
+ "type": "array",
745
+ "items": {
746
+ "$ref": "#/$defs/node"
747
+ }
748
+ }
749
+ },
750
+ "required": ["name", "type"]
751
+ },
752
+ "Camera2D": {
753
+ "type": "object",
754
+ "properties": {
755
+ "name": {
756
+ "type": "string"
757
+ },
758
+ "uid": {
759
+ "type": "string"
760
+ },
761
+ "type": {
762
+ "const": "Camera2D"
763
+ },
764
+ "groups": {
765
+ "type": "array",
766
+ "items": {
767
+ "type": "string"
768
+ }
769
+ },
770
+ "tags": {
771
+ "type": "object"
772
+ },
773
+ "props": {
774
+ "type": "object",
775
+ "properties": {
776
+ "position": {
777
+ "type": "array",
778
+ "items": {
779
+ "type": "number"
780
+ },
781
+ "minItems": 2,
782
+ "maxItems": 2,
783
+ "default": [0, 0]
784
+ },
785
+ "rotation": {
786
+ "type": "number",
787
+ "default": 0
788
+ },
789
+ "scale": {
790
+ "type": "array",
791
+ "items": {
792
+ "type": "number"
793
+ },
794
+ "minItems": 2,
795
+ "maxItems": 2,
796
+ "default": [1, 1]
797
+ },
798
+ "renderOrder": {
799
+ "type": "number",
800
+ "default": 0
801
+ },
802
+ "visible": {
803
+ "type": "boolean",
804
+ "default": true
805
+ },
806
+ "follow": {
807
+ "type": "string",
808
+ "default": ""
809
+ },
810
+ "smoothing": {
811
+ "type": "number",
812
+ "default": 0
813
+ },
814
+ "zoom": {
815
+ "type": "number",
816
+ "default": 1
817
+ },
818
+ "limits": {
819
+ "type": "array",
820
+ "default": []
821
+ },
822
+ "current": {
823
+ "type": "boolean",
824
+ "default": false
825
+ }
826
+ },
827
+ "additionalProperties": false
828
+ },
829
+ "script": {
830
+ "type": "object",
831
+ "properties": {
832
+ "name": {
833
+ "type": "string"
834
+ },
835
+ "props": {
836
+ "type": "object"
837
+ }
838
+ },
839
+ "required": ["name"]
840
+ },
841
+ "network": {
842
+ "type": "object"
843
+ },
844
+ "children": {
845
+ "type": "array",
846
+ "items": {
847
+ "$ref": "#/$defs/node"
848
+ }
849
+ }
850
+ },
851
+ "required": ["name", "type"]
852
+ },
853
+ "Camera3D": {
854
+ "type": "object",
855
+ "properties": {
856
+ "name": {
857
+ "type": "string"
858
+ },
859
+ "uid": {
860
+ "type": "string"
861
+ },
862
+ "type": {
863
+ "const": "Camera3D"
864
+ },
865
+ "groups": {
866
+ "type": "array",
867
+ "items": {
868
+ "type": "string"
869
+ }
870
+ },
871
+ "tags": {
872
+ "type": "object"
873
+ },
874
+ "props": {
875
+ "type": "object",
876
+ "properties": {
877
+ "position": {
878
+ "type": "array",
879
+ "items": {
880
+ "type": "number"
881
+ },
882
+ "minItems": 3,
883
+ "maxItems": 3,
884
+ "default": [0, 0, 0]
885
+ },
886
+ "rotation": {
887
+ "type": "array",
888
+ "items": {
889
+ "type": "number"
890
+ },
891
+ "minItems": 3,
892
+ "maxItems": 3,
893
+ "default": [0, 0, 0]
894
+ },
895
+ "scale": {
896
+ "type": "array",
897
+ "items": {
898
+ "type": "number"
899
+ },
900
+ "minItems": 3,
901
+ "maxItems": 3,
902
+ "default": [1, 1, 1]
903
+ },
904
+ "visible": {
905
+ "type": "boolean",
906
+ "default": true
907
+ },
908
+ "renderOrder": {
909
+ "type": "number",
910
+ "default": 0
911
+ },
912
+ "fov": {
913
+ "type": "number",
914
+ "default": 60
915
+ },
916
+ "near": {
917
+ "type": "number",
918
+ "default": 0.1
919
+ },
920
+ "far": {
921
+ "type": "number",
922
+ "default": 1000
923
+ },
924
+ "current": {
925
+ "type": "boolean",
926
+ "default": false
927
+ }
928
+ },
929
+ "additionalProperties": false
930
+ },
931
+ "script": {
932
+ "type": "object",
933
+ "properties": {
934
+ "name": {
935
+ "type": "string"
936
+ },
937
+ "props": {
938
+ "type": "object"
939
+ }
940
+ },
941
+ "required": ["name"]
942
+ },
943
+ "network": {
944
+ "type": "object"
945
+ },
946
+ "children": {
947
+ "type": "array",
948
+ "items": {
949
+ "$ref": "#/$defs/node"
950
+ }
951
+ }
952
+ },
953
+ "required": ["name", "type"]
954
+ },
955
+ "CharacterBody2D": {
956
+ "type": "object",
957
+ "x-signals": ["triggerEnter", "triggerExit"],
958
+ "properties": {
959
+ "name": {
960
+ "type": "string"
961
+ },
962
+ "uid": {
963
+ "type": "string"
964
+ },
965
+ "type": {
966
+ "const": "CharacterBody2D"
967
+ },
968
+ "groups": {
969
+ "type": "array",
970
+ "items": {
971
+ "type": "string"
972
+ }
973
+ },
974
+ "tags": {
975
+ "type": "object"
976
+ },
977
+ "props": {
978
+ "type": "object",
979
+ "properties": {
980
+ "position": {
981
+ "type": "array",
982
+ "items": {
983
+ "type": "number"
984
+ },
985
+ "minItems": 2,
986
+ "maxItems": 2,
987
+ "default": [0, 0]
988
+ },
989
+ "rotation": {
990
+ "type": "number",
991
+ "default": 0
992
+ },
993
+ "scale": {
994
+ "type": "array",
995
+ "items": {
996
+ "type": "number"
997
+ },
998
+ "minItems": 2,
999
+ "maxItems": 2,
1000
+ "default": [1, 1]
1001
+ },
1002
+ "renderOrder": {
1003
+ "type": "number",
1004
+ "default": 0
1005
+ },
1006
+ "visible": {
1007
+ "type": "boolean",
1008
+ "default": true
1009
+ },
1010
+ "collider": {
1011
+ "type": "object",
1012
+ "default": {}
1013
+ },
1014
+ "velocity": {
1015
+ "type": "array",
1016
+ "items": {
1017
+ "type": "number"
1018
+ },
1019
+ "minItems": 2,
1020
+ "maxItems": 2,
1021
+ "default": [0, 0]
1022
+ },
1023
+ "snapToGround": {
1024
+ "type": "boolean",
1025
+ "default": true
1026
+ },
1027
+ "slopeLimitDeg": {
1028
+ "type": "number",
1029
+ "default": 45
1030
+ }
1031
+ },
1032
+ "additionalProperties": false
1033
+ },
1034
+ "script": {
1035
+ "type": "object",
1036
+ "properties": {
1037
+ "name": {
1038
+ "type": "string"
1039
+ },
1040
+ "props": {
1041
+ "type": "object"
1042
+ }
1043
+ },
1044
+ "required": ["name"]
1045
+ },
1046
+ "network": {
1047
+ "type": "object"
1048
+ },
1049
+ "children": {
1050
+ "type": "array",
1051
+ "items": {
1052
+ "$ref": "#/$defs/node"
1053
+ }
1054
+ }
1055
+ },
1056
+ "required": ["name", "type"]
1057
+ },
1058
+ "CharacterBody3D": {
1059
+ "type": "object",
1060
+ "x-signals": ["triggerEnter", "triggerExit"],
1061
+ "properties": {
1062
+ "name": {
1063
+ "type": "string"
1064
+ },
1065
+ "uid": {
1066
+ "type": "string"
1067
+ },
1068
+ "type": {
1069
+ "const": "CharacterBody3D"
1070
+ },
1071
+ "groups": {
1072
+ "type": "array",
1073
+ "items": {
1074
+ "type": "string"
1075
+ }
1076
+ },
1077
+ "tags": {
1078
+ "type": "object"
1079
+ },
1080
+ "props": {
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "position": {
1084
+ "type": "array",
1085
+ "items": {
1086
+ "type": "number"
1087
+ },
1088
+ "minItems": 3,
1089
+ "maxItems": 3,
1090
+ "default": [0, 0, 0]
1091
+ },
1092
+ "rotation": {
1093
+ "type": "array",
1094
+ "items": {
1095
+ "type": "number"
1096
+ },
1097
+ "minItems": 3,
1098
+ "maxItems": 3,
1099
+ "default": [0, 0, 0]
1100
+ },
1101
+ "scale": {
1102
+ "type": "array",
1103
+ "items": {
1104
+ "type": "number"
1105
+ },
1106
+ "minItems": 3,
1107
+ "maxItems": 3,
1108
+ "default": [1, 1, 1]
1109
+ },
1110
+ "visible": {
1111
+ "type": "boolean",
1112
+ "default": true
1113
+ },
1114
+ "renderOrder": {
1115
+ "type": "number",
1116
+ "default": 0
1117
+ },
1118
+ "collider": {
1119
+ "type": "object",
1120
+ "default": {}
1121
+ },
1122
+ "velocity": {
1123
+ "type": "array",
1124
+ "items": {
1125
+ "type": "number"
1126
+ },
1127
+ "minItems": 3,
1128
+ "maxItems": 3,
1129
+ "default": [0, 0, 0]
1130
+ },
1131
+ "snapToGround": {
1132
+ "type": "boolean",
1133
+ "default": true
1134
+ },
1135
+ "slopeLimitDeg": {
1136
+ "type": "number",
1137
+ "default": 45
1138
+ }
1139
+ },
1140
+ "additionalProperties": false
1141
+ },
1142
+ "script": {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "name": {
1146
+ "type": "string"
1147
+ },
1148
+ "props": {
1149
+ "type": "object"
1150
+ }
1151
+ },
1152
+ "required": ["name"]
1153
+ },
1154
+ "network": {
1155
+ "type": "object"
1156
+ },
1157
+ "children": {
1158
+ "type": "array",
1159
+ "items": {
1160
+ "$ref": "#/$defs/node"
1161
+ }
1162
+ }
1163
+ },
1164
+ "required": ["name", "type"]
1165
+ },
1166
+ "CharacterController2D": {
1167
+ "type": "object",
1168
+ "properties": {
1169
+ "name": {
1170
+ "type": "string"
1171
+ },
1172
+ "uid": {
1173
+ "type": "string"
1174
+ },
1175
+ "type": {
1176
+ "const": "CharacterController2D"
1177
+ },
1178
+ "groups": {
1179
+ "type": "array",
1180
+ "items": {
1181
+ "type": "string"
1182
+ }
1183
+ },
1184
+ "tags": {
1185
+ "type": "object"
1186
+ },
1187
+ "props": {
1188
+ "type": "object",
1189
+ "properties": {
1190
+ "mode": {
1191
+ "type": "string",
1192
+ "enum": ["platformer", "topDown"],
1193
+ "default": "platformer"
1194
+ },
1195
+ "maxSpeed": {
1196
+ "type": "number",
1197
+ "default": 220
1198
+ },
1199
+ "jumpHeight": {
1200
+ "type": "number",
1201
+ "default": 64
1202
+ },
1203
+ "moveAction": {
1204
+ "type": "string",
1205
+ "default": "move"
1206
+ },
1207
+ "jumpAction": {
1208
+ "type": "string",
1209
+ "default": "jump"
1210
+ }
1211
+ },
1212
+ "additionalProperties": false
1213
+ },
1214
+ "script": {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "name": {
1218
+ "type": "string"
1219
+ },
1220
+ "props": {
1221
+ "type": "object"
1222
+ }
1223
+ },
1224
+ "required": ["name"]
1225
+ },
1226
+ "network": {
1227
+ "type": "object"
1228
+ },
1229
+ "children": {
1230
+ "type": "array",
1231
+ "items": {
1232
+ "$ref": "#/$defs/node"
1233
+ }
1234
+ }
1235
+ },
1236
+ "required": ["name", "type"]
1237
+ },
1238
+ "CharacterController3D": {
1239
+ "type": "object",
1240
+ "x-signals": ["movementStateChanged"],
1241
+ "properties": {
1242
+ "name": {
1243
+ "type": "string"
1244
+ },
1245
+ "uid": {
1246
+ "type": "string"
1247
+ },
1248
+ "type": {
1249
+ "const": "CharacterController3D"
1250
+ },
1251
+ "groups": {
1252
+ "type": "array",
1253
+ "items": {
1254
+ "type": "string"
1255
+ }
1256
+ },
1257
+ "tags": {
1258
+ "type": "object"
1259
+ },
1260
+ "props": {
1261
+ "type": "object",
1262
+ "properties": {
1263
+ "position": {
1264
+ "type": "array",
1265
+ "items": {
1266
+ "type": "number"
1267
+ },
1268
+ "minItems": 3,
1269
+ "maxItems": 3,
1270
+ "default": [0, 0, 0]
1271
+ },
1272
+ "rotation": {
1273
+ "type": "array",
1274
+ "items": {
1275
+ "type": "number"
1276
+ },
1277
+ "minItems": 3,
1278
+ "maxItems": 3,
1279
+ "default": [0, 0, 0]
1280
+ },
1281
+ "scale": {
1282
+ "type": "array",
1283
+ "items": {
1284
+ "type": "number"
1285
+ },
1286
+ "minItems": 3,
1287
+ "maxItems": 3,
1288
+ "default": [1, 1, 1]
1289
+ },
1290
+ "visible": {
1291
+ "type": "boolean",
1292
+ "default": true
1293
+ },
1294
+ "renderOrder": {
1295
+ "type": "number",
1296
+ "default": 0
1297
+ },
1298
+ "view": {
1299
+ "type": "string",
1300
+ "enum": ["free", "firstPerson", "quarter", "side"],
1301
+ "default": "free"
1302
+ },
1303
+ "camDistance": {
1304
+ "type": "number",
1305
+ "default": 4
1306
+ },
1307
+ "eyeHeight": {
1308
+ "type": "number",
1309
+ "default": 0.64
1310
+ },
1311
+ "maxSpeed": {
1312
+ "type": "number",
1313
+ "default": 2.5
1314
+ },
1315
+ "sprintMultiplier": {
1316
+ "type": "number",
1317
+ "default": 2
1318
+ },
1319
+ "jumpVelocity": {
1320
+ "type": "number",
1321
+ "default": 4
1322
+ },
1323
+ "sprintJumpMultiplier": {
1324
+ "type": "number",
1325
+ "default": 1.2
1326
+ },
1327
+ "floatHeight": {
1328
+ "type": "number",
1329
+ "default": 0.01
1330
+ },
1331
+ "mouseLook": {
1332
+ "type": "boolean",
1333
+ "default": true
1334
+ },
1335
+ "zoomMin": {
1336
+ "type": "number",
1337
+ "default": 0
1338
+ },
1339
+ "zoomMax": {
1340
+ "type": "number",
1341
+ "default": 0
1342
+ },
1343
+ "pitchMin": {
1344
+ "type": "number",
1345
+ "default": -1.3
1346
+ },
1347
+ "pitchMax": {
1348
+ "type": "number",
1349
+ "default": 1.5
1350
+ },
1351
+ "cameraCollision": {
1352
+ "type": "boolean",
1353
+ "default": true
1354
+ },
1355
+ "turnSpeed": {
1356
+ "type": "number",
1357
+ "default": 100
1358
+ },
1359
+ "camLerp": {
1360
+ "type": "number",
1361
+ "default": 25
1362
+ },
1363
+ "moveAction": {
1364
+ "type": "string",
1365
+ "default": "move"
1366
+ },
1367
+ "jumpAction": {
1368
+ "type": "string",
1369
+ "default": "jump"
1370
+ },
1371
+ "sprintAction": {
1372
+ "type": "string",
1373
+ "default": "sprint"
1374
+ },
1375
+ "skinPath": {
1376
+ "type": "string",
1377
+ "default": "../Skin"
1378
+ },
1379
+ "skinYawOffset": {
1380
+ "type": "number",
1381
+ "default": 0
1382
+ }
1383
+ },
1384
+ "additionalProperties": false
1385
+ },
1386
+ "script": {
1387
+ "type": "object",
1388
+ "properties": {
1389
+ "name": {
1390
+ "type": "string"
1391
+ },
1392
+ "props": {
1393
+ "type": "object"
1394
+ }
1395
+ },
1396
+ "required": ["name"]
1397
+ },
1398
+ "network": {
1399
+ "type": "object"
1400
+ },
1401
+ "children": {
1402
+ "type": "array",
1403
+ "items": {
1404
+ "$ref": "#/$defs/node"
1405
+ }
1406
+ }
1407
+ },
1408
+ "required": ["name", "type"]
1409
+ },
1410
+ "ColorRect2D": {
1411
+ "type": "object",
1412
+ "properties": {
1413
+ "name": {
1414
+ "type": "string"
1415
+ },
1416
+ "uid": {
1417
+ "type": "string"
1418
+ },
1419
+ "type": {
1420
+ "const": "ColorRect2D"
1421
+ },
1422
+ "groups": {
1423
+ "type": "array",
1424
+ "items": {
1425
+ "type": "string"
1426
+ }
1427
+ },
1428
+ "tags": {
1429
+ "type": "object"
1430
+ },
1431
+ "props": {
1432
+ "type": "object",
1433
+ "properties": {
1434
+ "position": {
1435
+ "type": "array",
1436
+ "items": {
1437
+ "type": "number"
1438
+ },
1439
+ "minItems": 2,
1440
+ "maxItems": 2,
1441
+ "default": [0, 0]
1442
+ },
1443
+ "rotation": {
1444
+ "type": "number",
1445
+ "default": 0
1446
+ },
1447
+ "scale": {
1448
+ "type": "array",
1449
+ "items": {
1450
+ "type": "number"
1451
+ },
1452
+ "minItems": 2,
1453
+ "maxItems": 2,
1454
+ "default": [1, 1]
1455
+ },
1456
+ "renderOrder": {
1457
+ "type": "number",
1458
+ "default": 0
1459
+ },
1460
+ "visible": {
1461
+ "type": "boolean",
1462
+ "default": true
1463
+ },
1464
+ "size": {
1465
+ "type": "array",
1466
+ "items": {
1467
+ "type": "number"
1468
+ },
1469
+ "minItems": 2,
1470
+ "maxItems": 2,
1471
+ "default": [100, 100]
1472
+ },
1473
+ "color": {
1474
+ "type": "string",
1475
+ "default": "#ffffff"
1476
+ },
1477
+ "opacity": {
1478
+ "type": "number",
1479
+ "default": 1
1480
+ },
1481
+ "anchor": {
1482
+ "type": "array",
1483
+ "items": {
1484
+ "type": "number"
1485
+ },
1486
+ "minItems": 2,
1487
+ "maxItems": 2,
1488
+ "default": [0.5, 0.5]
1489
+ }
1490
+ },
1491
+ "additionalProperties": false
1492
+ },
1493
+ "script": {
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "name": {
1497
+ "type": "string"
1498
+ },
1499
+ "props": {
1500
+ "type": "object"
1501
+ }
1502
+ },
1503
+ "required": ["name"]
1504
+ },
1505
+ "network": {
1506
+ "type": "object"
1507
+ },
1508
+ "children": {
1509
+ "type": "array",
1510
+ "items": {
1511
+ "$ref": "#/$defs/node"
1512
+ }
1513
+ }
1514
+ },
1515
+ "required": ["name", "type"]
1516
+ },
1517
+ "DirectionalLight3D": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "name": {
1521
+ "type": "string"
1522
+ },
1523
+ "uid": {
1524
+ "type": "string"
1525
+ },
1526
+ "type": {
1527
+ "const": "DirectionalLight3D"
1528
+ },
1529
+ "groups": {
1530
+ "type": "array",
1531
+ "items": {
1532
+ "type": "string"
1533
+ }
1534
+ },
1535
+ "tags": {
1536
+ "type": "object"
1537
+ },
1538
+ "props": {
1539
+ "type": "object",
1540
+ "properties": {
1541
+ "position": {
1542
+ "type": "array",
1543
+ "items": {
1544
+ "type": "number"
1545
+ },
1546
+ "minItems": 3,
1547
+ "maxItems": 3,
1548
+ "default": [0, 0, 0]
1549
+ },
1550
+ "rotation": {
1551
+ "type": "array",
1552
+ "items": {
1553
+ "type": "number"
1554
+ },
1555
+ "minItems": 3,
1556
+ "maxItems": 3,
1557
+ "default": [0, 0, 0]
1558
+ },
1559
+ "scale": {
1560
+ "type": "array",
1561
+ "items": {
1562
+ "type": "number"
1563
+ },
1564
+ "minItems": 3,
1565
+ "maxItems": 3,
1566
+ "default": [1, 1, 1]
1567
+ },
1568
+ "visible": {
1569
+ "type": "boolean",
1570
+ "default": true
1571
+ },
1572
+ "renderOrder": {
1573
+ "type": "number",
1574
+ "default": 0
1575
+ },
1576
+ "color": {
1577
+ "type": "string",
1578
+ "default": "#ffffff"
1579
+ },
1580
+ "intensity": {
1581
+ "type": "number",
1582
+ "default": 1
1583
+ },
1584
+ "castShadow": {
1585
+ "type": "boolean",
1586
+ "default": false
1587
+ },
1588
+ "shadowArea": {
1589
+ "type": "number",
1590
+ "default": 75
1591
+ },
1592
+ "shadowMapSize": {
1593
+ "type": "number",
1594
+ "default": 2048
1595
+ },
1596
+ "shadowFollowsCamera": {
1597
+ "type": "boolean",
1598
+ "default": false
1599
+ }
1600
+ },
1601
+ "additionalProperties": false
1602
+ },
1603
+ "script": {
1604
+ "type": "object",
1605
+ "properties": {
1606
+ "name": {
1607
+ "type": "string"
1608
+ },
1609
+ "props": {
1610
+ "type": "object"
1611
+ }
1612
+ },
1613
+ "required": ["name"]
1614
+ },
1615
+ "network": {
1616
+ "type": "object"
1617
+ },
1618
+ "children": {
1619
+ "type": "array",
1620
+ "items": {
1621
+ "$ref": "#/$defs/node"
1622
+ }
1623
+ }
1624
+ },
1625
+ "required": ["name", "type"]
1626
+ },
1627
+ "Flowers3D": {
1628
+ "type": "object",
1629
+ "properties": {
1630
+ "name": {
1631
+ "type": "string"
1632
+ },
1633
+ "uid": {
1634
+ "type": "string"
1635
+ },
1636
+ "type": {
1637
+ "const": "Flowers3D"
1638
+ },
1639
+ "groups": {
1640
+ "type": "array",
1641
+ "items": {
1642
+ "type": "string"
1643
+ }
1644
+ },
1645
+ "tags": {
1646
+ "type": "object"
1647
+ },
1648
+ "props": {
1649
+ "type": "object",
1650
+ "properties": {
1651
+ "position": {
1652
+ "type": "array",
1653
+ "items": {
1654
+ "type": "number"
1655
+ },
1656
+ "minItems": 3,
1657
+ "maxItems": 3,
1658
+ "default": [0, 0, 0]
1659
+ },
1660
+ "rotation": {
1661
+ "type": "array",
1662
+ "items": {
1663
+ "type": "number"
1664
+ },
1665
+ "minItems": 3,
1666
+ "maxItems": 3,
1667
+ "default": [0, 0, 0]
1668
+ },
1669
+ "scale": {
1670
+ "type": "array",
1671
+ "items": {
1672
+ "type": "number"
1673
+ },
1674
+ "minItems": 3,
1675
+ "maxItems": 3,
1676
+ "default": [1, 1, 1]
1677
+ },
1678
+ "visible": {
1679
+ "type": "boolean",
1680
+ "default": true
1681
+ },
1682
+ "renderOrder": {
1683
+ "type": "number",
1684
+ "default": 0
1685
+ },
1686
+ "density": {
1687
+ "type": "string",
1688
+ "enum": ["lush", "sparse", "none"],
1689
+ "default": "sparse"
1690
+ },
1691
+ "area": {
1692
+ "type": "array",
1693
+ "items": {
1694
+ "type": "number"
1695
+ },
1696
+ "minItems": 2,
1697
+ "maxItems": 2,
1698
+ "default": [20, 20]
1699
+ },
1700
+ "seed": {
1701
+ "type": "number",
1702
+ "default": 1
1703
+ },
1704
+ "varieties": {
1705
+ "type": "array",
1706
+ "default": []
1707
+ },
1708
+ "palette": {
1709
+ "type": "array",
1710
+ "default": []
1711
+ },
1712
+ "height": {
1713
+ "type": "number",
1714
+ "default": 0.45
1715
+ },
1716
+ "clustering": {
1717
+ "type": "number",
1718
+ "default": 0.6
1719
+ },
1720
+ "sway": {
1721
+ "type": "number",
1722
+ "default": 0.5
1723
+ },
1724
+ "drape": {
1725
+ "type": "boolean",
1726
+ "default": false
1727
+ },
1728
+ "terrain": {
1729
+ "type": "string",
1730
+ "default": ""
1731
+ }
1732
+ },
1733
+ "additionalProperties": false
1734
+ },
1735
+ "script": {
1736
+ "type": "object",
1737
+ "properties": {
1738
+ "name": {
1739
+ "type": "string"
1740
+ },
1741
+ "props": {
1742
+ "type": "object"
1743
+ }
1744
+ },
1745
+ "required": ["name"]
1746
+ },
1747
+ "network": {
1748
+ "type": "object"
1749
+ },
1750
+ "children": {
1751
+ "type": "array",
1752
+ "items": {
1753
+ "$ref": "#/$defs/node"
1754
+ }
1755
+ }
1756
+ },
1757
+ "required": ["name", "type"]
1758
+ },
1759
+ "Foliage3D": {
1760
+ "type": "object",
1761
+ "properties": {
1762
+ "name": {
1763
+ "type": "string"
1764
+ },
1765
+ "uid": {
1766
+ "type": "string"
1767
+ },
1768
+ "type": {
1769
+ "const": "Foliage3D"
1770
+ },
1771
+ "groups": {
1772
+ "type": "array",
1773
+ "items": {
1774
+ "type": "string"
1775
+ }
1776
+ },
1777
+ "tags": {
1778
+ "type": "object"
1779
+ },
1780
+ "props": {
1781
+ "type": "object",
1782
+ "properties": {
1783
+ "position": {
1784
+ "type": "array",
1785
+ "items": {
1786
+ "type": "number"
1787
+ },
1788
+ "minItems": 3,
1789
+ "maxItems": 3,
1790
+ "default": [0, 0, 0]
1791
+ },
1792
+ "rotation": {
1793
+ "type": "array",
1794
+ "items": {
1795
+ "type": "number"
1796
+ },
1797
+ "minItems": 3,
1798
+ "maxItems": 3,
1799
+ "default": [0, 0, 0]
1800
+ },
1801
+ "scale": {
1802
+ "type": "array",
1803
+ "items": {
1804
+ "type": "number"
1805
+ },
1806
+ "minItems": 3,
1807
+ "maxItems": 3,
1808
+ "default": [1, 1, 1]
1809
+ },
1810
+ "visible": {
1811
+ "type": "boolean",
1812
+ "default": true
1813
+ },
1814
+ "renderOrder": {
1815
+ "type": "number",
1816
+ "default": 2
1817
+ },
1818
+ "kind": {
1819
+ "type": "string",
1820
+ "enum": ["grass", "flowers", "reeds"],
1821
+ "default": "grass"
1822
+ },
1823
+ "style": {
1824
+ "type": "string",
1825
+ "enum": ["blades", "simple", "mesh", "tufts"],
1826
+ "default": "mesh"
1827
+ },
1828
+ "tuftStyle": {
1829
+ "type": "string",
1830
+ "enum": ["grass", "fern"],
1831
+ "default": "grass"
1832
+ },
1833
+ "area": {
1834
+ "type": "array",
1835
+ "items": {
1836
+ "type": "number"
1837
+ },
1838
+ "minItems": 2,
1839
+ "maxItems": 2,
1840
+ "default": [20, 20]
1841
+ },
1842
+ "density": {
1843
+ "type": "number",
1844
+ "default": 12
1845
+ },
1846
+ "maxInstances": {
1847
+ "type": "number",
1848
+ "default": 50000
1849
+ },
1850
+ "height": {
1851
+ "type": "number",
1852
+ "default": 0.25
1853
+ },
1854
+ "colorA": {
1855
+ "type": "string",
1856
+ "default": "#4d7232"
1857
+ },
1858
+ "colorB": {
1859
+ "type": "string",
1860
+ "default": "#9aab55"
1861
+ },
1862
+ "groundColor": {
1863
+ "type": "string",
1864
+ "default": "#1f3015"
1865
+ },
1866
+ "sunDirection": {
1867
+ "type": "array",
1868
+ "items": {
1869
+ "type": "number"
1870
+ },
1871
+ "minItems": 3,
1872
+ "maxItems": 3,
1873
+ "default": [0.5, 0.8, 0.3]
1874
+ },
1875
+ "fadeStart": {
1876
+ "type": "number",
1877
+ "default": 60
1878
+ },
1879
+ "fadeEnd": {
1880
+ "type": "number",
1881
+ "default": 90
1882
+ },
1883
+ "sway": {
1884
+ "type": "number",
1885
+ "default": 0.6
1886
+ },
1887
+ "interaction": {
1888
+ "type": "boolean",
1889
+ "default": true
1890
+ },
1891
+ "coverage": {
1892
+ "type": "number",
1893
+ "default": 0.85
1894
+ },
1895
+ "flowers": {
1896
+ "type": "number",
1897
+ "default": 0
1898
+ },
1899
+ "seed": {
1900
+ "type": "number",
1901
+ "default": 1
1902
+ },
1903
+ "drape": {
1904
+ "type": "boolean",
1905
+ "default": false
1906
+ },
1907
+ "terrain": {
1908
+ "type": "string",
1909
+ "default": ""
1910
+ }
1911
+ },
1912
+ "additionalProperties": false
1913
+ },
1914
+ "script": {
1915
+ "type": "object",
1916
+ "properties": {
1917
+ "name": {
1918
+ "type": "string"
1919
+ },
1920
+ "props": {
1921
+ "type": "object"
1922
+ }
1923
+ },
1924
+ "required": ["name"]
1925
+ },
1926
+ "network": {
1927
+ "type": "object"
1928
+ },
1929
+ "children": {
1930
+ "type": "array",
1931
+ "items": {
1932
+ "$ref": "#/$defs/node"
1933
+ }
1934
+ }
1935
+ },
1936
+ "required": ["name", "type"]
1937
+ },
1938
+ "Label": {
1939
+ "type": "object",
1940
+ "properties": {
1941
+ "name": {
1942
+ "type": "string"
1943
+ },
1944
+ "uid": {
1945
+ "type": "string"
1946
+ },
1947
+ "type": {
1948
+ "const": "Label"
1949
+ },
1950
+ "groups": {
1951
+ "type": "array",
1952
+ "items": {
1953
+ "type": "string"
1954
+ }
1955
+ },
1956
+ "tags": {
1957
+ "type": "object"
1958
+ },
1959
+ "props": {
1960
+ "type": "object",
1961
+ "properties": {
1962
+ "position": {
1963
+ "type": "array",
1964
+ "items": {
1965
+ "type": "number"
1966
+ },
1967
+ "minItems": 2,
1968
+ "maxItems": 2,
1969
+ "default": [0, 0]
1970
+ },
1971
+ "rotation": {
1972
+ "type": "number",
1973
+ "default": 0
1974
+ },
1975
+ "scale": {
1976
+ "type": "array",
1977
+ "items": {
1978
+ "type": "number"
1979
+ },
1980
+ "minItems": 2,
1981
+ "maxItems": 2,
1982
+ "default": [1, 1]
1983
+ },
1984
+ "renderOrder": {
1985
+ "type": "number",
1986
+ "default": 0
1987
+ },
1988
+ "visible": {
1989
+ "type": "boolean",
1990
+ "default": true
1991
+ },
1992
+ "text": {
1993
+ "type": "string",
1994
+ "default": ""
1995
+ },
1996
+ "fontSize": {
1997
+ "type": "number",
1998
+ "default": 16
1999
+ },
2000
+ "color": {
2001
+ "type": "string",
2002
+ "default": "#ffffff"
2003
+ },
2004
+ "font": {
2005
+ "type": "string",
2006
+ "default": "monospace"
2007
+ },
2008
+ "align": {
2009
+ "type": "string",
2010
+ "default": "left"
2011
+ }
2012
+ },
2013
+ "additionalProperties": false
2014
+ },
2015
+ "script": {
2016
+ "type": "object",
2017
+ "properties": {
2018
+ "name": {
2019
+ "type": "string"
2020
+ },
2021
+ "props": {
2022
+ "type": "object"
2023
+ }
2024
+ },
2025
+ "required": ["name"]
2026
+ },
2027
+ "network": {
2028
+ "type": "object"
2029
+ },
2030
+ "children": {
2031
+ "type": "array",
2032
+ "items": {
2033
+ "$ref": "#/$defs/node"
2034
+ }
2035
+ }
2036
+ },
2037
+ "required": ["name", "type"]
2038
+ },
2039
+ "MeshInstance3D": {
2040
+ "type": "object",
2041
+ "properties": {
2042
+ "name": {
2043
+ "type": "string"
2044
+ },
2045
+ "uid": {
2046
+ "type": "string"
2047
+ },
2048
+ "type": {
2049
+ "const": "MeshInstance3D"
2050
+ },
2051
+ "groups": {
2052
+ "type": "array",
2053
+ "items": {
2054
+ "type": "string"
2055
+ }
2056
+ },
2057
+ "tags": {
2058
+ "type": "object"
2059
+ },
2060
+ "props": {
2061
+ "type": "object",
2062
+ "properties": {
2063
+ "position": {
2064
+ "type": "array",
2065
+ "items": {
2066
+ "type": "number"
2067
+ },
2068
+ "minItems": 3,
2069
+ "maxItems": 3,
2070
+ "default": [0, 0, 0]
2071
+ },
2072
+ "rotation": {
2073
+ "type": "array",
2074
+ "items": {
2075
+ "type": "number"
2076
+ },
2077
+ "minItems": 3,
2078
+ "maxItems": 3,
2079
+ "default": [0, 0, 0]
2080
+ },
2081
+ "scale": {
2082
+ "type": "array",
2083
+ "items": {
2084
+ "type": "number"
2085
+ },
2086
+ "minItems": 3,
2087
+ "maxItems": 3,
2088
+ "default": [1, 1, 1]
2089
+ },
2090
+ "visible": {
2091
+ "type": "boolean",
2092
+ "default": true
2093
+ },
2094
+ "renderOrder": {
2095
+ "type": "number",
2096
+ "default": 0
2097
+ },
2098
+ "mesh": {
2099
+ "type": "string",
2100
+ "enum": ["box", "sphere", "capsule", "plane", "cylinder", "gem"],
2101
+ "default": "box"
2102
+ },
2103
+ "size": {
2104
+ "type": "array",
2105
+ "items": {
2106
+ "type": "number"
2107
+ },
2108
+ "minItems": 3,
2109
+ "maxItems": 3,
2110
+ "default": [1, 1, 1]
2111
+ },
2112
+ "material": {
2113
+ "type": "object",
2114
+ "default": {}
2115
+ },
2116
+ "castShadow": {
2117
+ "type": "boolean",
2118
+ "default": false
2119
+ },
2120
+ "receiveShadow": {
2121
+ "type": "boolean",
2122
+ "default": false
2123
+ }
2124
+ },
2125
+ "additionalProperties": false
2126
+ },
2127
+ "script": {
2128
+ "type": "object",
2129
+ "properties": {
2130
+ "name": {
2131
+ "type": "string"
2132
+ },
2133
+ "props": {
2134
+ "type": "object"
2135
+ }
2136
+ },
2137
+ "required": ["name"]
2138
+ },
2139
+ "network": {
2140
+ "type": "object"
2141
+ },
2142
+ "children": {
2143
+ "type": "array",
2144
+ "items": {
2145
+ "$ref": "#/$defs/node"
2146
+ }
2147
+ }
2148
+ },
2149
+ "required": ["name", "type"]
2150
+ },
2151
+ "ModelInstance3D": {
2152
+ "type": "object",
2153
+ "x-signals": ["animationFinished"],
2154
+ "properties": {
2155
+ "name": {
2156
+ "type": "string"
2157
+ },
2158
+ "uid": {
2159
+ "type": "string"
2160
+ },
2161
+ "type": {
2162
+ "const": "ModelInstance3D"
2163
+ },
2164
+ "groups": {
2165
+ "type": "array",
2166
+ "items": {
2167
+ "type": "string"
2168
+ }
2169
+ },
2170
+ "tags": {
2171
+ "type": "object"
2172
+ },
2173
+ "props": {
2174
+ "type": "object",
2175
+ "properties": {
2176
+ "position": {
2177
+ "type": "array",
2178
+ "items": {
2179
+ "type": "number"
2180
+ },
2181
+ "minItems": 3,
2182
+ "maxItems": 3,
2183
+ "default": [0, 0, 0]
2184
+ },
2185
+ "rotation": {
2186
+ "type": "array",
2187
+ "items": {
2188
+ "type": "number"
2189
+ },
2190
+ "minItems": 3,
2191
+ "maxItems": 3,
2192
+ "default": [0, 0, 0]
2193
+ },
2194
+ "scale": {
2195
+ "type": "array",
2196
+ "items": {
2197
+ "type": "number"
2198
+ },
2199
+ "minItems": 3,
2200
+ "maxItems": 3,
2201
+ "default": [1, 1, 1]
2202
+ },
2203
+ "visible": {
2204
+ "type": "boolean",
2205
+ "default": true
2206
+ },
2207
+ "renderOrder": {
2208
+ "type": "number",
2209
+ "default": 0
2210
+ },
2211
+ "model": {
2212
+ "type": "string",
2213
+ "default": ""
2214
+ },
2215
+ "animation": {
2216
+ "type": "string",
2217
+ "default": ""
2218
+ },
2219
+ "targetHeight": {
2220
+ "type": "number",
2221
+ "default": 0
2222
+ },
2223
+ "castShadow": {
2224
+ "type": "boolean",
2225
+ "default": false
2226
+ },
2227
+ "animationLoop": {
2228
+ "type": "boolean",
2229
+ "default": true
2230
+ },
2231
+ "receiveShadow": {
2232
+ "type": "boolean",
2233
+ "default": false
2234
+ },
2235
+ "tint": {
2236
+ "type": "string",
2237
+ "default": ""
2238
+ }
2239
+ },
2240
+ "additionalProperties": false
2241
+ },
2242
+ "script": {
2243
+ "type": "object",
2244
+ "properties": {
2245
+ "name": {
2246
+ "type": "string"
2247
+ },
2248
+ "props": {
2249
+ "type": "object"
2250
+ }
2251
+ },
2252
+ "required": ["name"]
2253
+ },
2254
+ "network": {
2255
+ "type": "object"
2256
+ },
2257
+ "children": {
2258
+ "type": "array",
2259
+ "items": {
2260
+ "$ref": "#/$defs/node"
2261
+ }
2262
+ }
2263
+ },
2264
+ "required": ["name", "type"]
2265
+ },
2266
+ "NetworkSpawner": {
2267
+ "type": "object",
2268
+ "x-signals": ["spawned", "despawned"],
2269
+ "properties": {
2270
+ "name": {
2271
+ "type": "string"
2272
+ },
2273
+ "uid": {
2274
+ "type": "string"
2275
+ },
2276
+ "type": {
2277
+ "const": "NetworkSpawner"
2278
+ },
2279
+ "groups": {
2280
+ "type": "array",
2281
+ "items": {
2282
+ "type": "string"
2283
+ }
2284
+ },
2285
+ "tags": {
2286
+ "type": "object"
2287
+ },
2288
+ "props": {
2289
+ "type": "object",
2290
+ "properties": {
2291
+ "source": {
2292
+ "type": "string",
2293
+ "default": "users"
2294
+ },
2295
+ "scene": {
2296
+ "type": "string",
2297
+ "default": ""
2298
+ },
2299
+ "interpolate": {
2300
+ "type": "boolean",
2301
+ "default": true
2302
+ }
2303
+ },
2304
+ "additionalProperties": false
2305
+ },
2306
+ "script": {
2307
+ "type": "object",
2308
+ "properties": {
2309
+ "name": {
2310
+ "type": "string"
2311
+ },
2312
+ "props": {
2313
+ "type": "object"
2314
+ }
2315
+ },
2316
+ "required": ["name"]
2317
+ },
2318
+ "network": {
2319
+ "type": "object"
2320
+ },
2321
+ "children": {
2322
+ "type": "array",
2323
+ "items": {
2324
+ "$ref": "#/$defs/node"
2325
+ }
2326
+ }
2327
+ },
2328
+ "required": ["name", "type"]
2329
+ },
2330
+ "Node": {
2331
+ "type": "object",
2332
+ "properties": {
2333
+ "name": {
2334
+ "type": "string"
2335
+ },
2336
+ "uid": {
2337
+ "type": "string"
2338
+ },
2339
+ "type": {
2340
+ "const": "Node"
2341
+ },
2342
+ "groups": {
2343
+ "type": "array",
2344
+ "items": {
2345
+ "type": "string"
2346
+ }
2347
+ },
2348
+ "tags": {
2349
+ "type": "object"
2350
+ },
2351
+ "props": {
2352
+ "type": "object",
2353
+ "properties": {},
2354
+ "additionalProperties": false
2355
+ },
2356
+ "script": {
2357
+ "type": "object",
2358
+ "properties": {
2359
+ "name": {
2360
+ "type": "string"
2361
+ },
2362
+ "props": {
2363
+ "type": "object"
2364
+ }
2365
+ },
2366
+ "required": ["name"]
2367
+ },
2368
+ "network": {
2369
+ "type": "object"
2370
+ },
2371
+ "children": {
2372
+ "type": "array",
2373
+ "items": {
2374
+ "$ref": "#/$defs/node"
2375
+ }
2376
+ }
2377
+ },
2378
+ "required": ["name", "type"]
2379
+ },
2380
+ "Node2D": {
2381
+ "type": "object",
2382
+ "properties": {
2383
+ "name": {
2384
+ "type": "string"
2385
+ },
2386
+ "uid": {
2387
+ "type": "string"
2388
+ },
2389
+ "type": {
2390
+ "const": "Node2D"
2391
+ },
2392
+ "groups": {
2393
+ "type": "array",
2394
+ "items": {
2395
+ "type": "string"
2396
+ }
2397
+ },
2398
+ "tags": {
2399
+ "type": "object"
2400
+ },
2401
+ "props": {
2402
+ "type": "object",
2403
+ "properties": {
2404
+ "position": {
2405
+ "type": "array",
2406
+ "items": {
2407
+ "type": "number"
2408
+ },
2409
+ "minItems": 2,
2410
+ "maxItems": 2,
2411
+ "default": [0, 0]
2412
+ },
2413
+ "rotation": {
2414
+ "type": "number",
2415
+ "default": 0
2416
+ },
2417
+ "scale": {
2418
+ "type": "array",
2419
+ "items": {
2420
+ "type": "number"
2421
+ },
2422
+ "minItems": 2,
2423
+ "maxItems": 2,
2424
+ "default": [1, 1]
2425
+ },
2426
+ "renderOrder": {
2427
+ "type": "number",
2428
+ "default": 0
2429
+ },
2430
+ "visible": {
2431
+ "type": "boolean",
2432
+ "default": true
2433
+ }
2434
+ },
2435
+ "additionalProperties": false
2436
+ },
2437
+ "script": {
2438
+ "type": "object",
2439
+ "properties": {
2440
+ "name": {
2441
+ "type": "string"
2442
+ },
2443
+ "props": {
2444
+ "type": "object"
2445
+ }
2446
+ },
2447
+ "required": ["name"]
2448
+ },
2449
+ "network": {
2450
+ "type": "object"
2451
+ },
2452
+ "children": {
2453
+ "type": "array",
2454
+ "items": {
2455
+ "$ref": "#/$defs/node"
2456
+ }
2457
+ }
2458
+ },
2459
+ "required": ["name", "type"]
2460
+ },
2461
+ "Node3D": {
2462
+ "type": "object",
2463
+ "properties": {
2464
+ "name": {
2465
+ "type": "string"
2466
+ },
2467
+ "uid": {
2468
+ "type": "string"
2469
+ },
2470
+ "type": {
2471
+ "const": "Node3D"
2472
+ },
2473
+ "groups": {
2474
+ "type": "array",
2475
+ "items": {
2476
+ "type": "string"
2477
+ }
2478
+ },
2479
+ "tags": {
2480
+ "type": "object"
2481
+ },
2482
+ "props": {
2483
+ "type": "object",
2484
+ "properties": {
2485
+ "position": {
2486
+ "type": "array",
2487
+ "items": {
2488
+ "type": "number"
2489
+ },
2490
+ "minItems": 3,
2491
+ "maxItems": 3,
2492
+ "default": [0, 0, 0]
2493
+ },
2494
+ "rotation": {
2495
+ "type": "array",
2496
+ "items": {
2497
+ "type": "number"
2498
+ },
2499
+ "minItems": 3,
2500
+ "maxItems": 3,
2501
+ "default": [0, 0, 0]
2502
+ },
2503
+ "scale": {
2504
+ "type": "array",
2505
+ "items": {
2506
+ "type": "number"
2507
+ },
2508
+ "minItems": 3,
2509
+ "maxItems": 3,
2510
+ "default": [1, 1, 1]
2511
+ },
2512
+ "visible": {
2513
+ "type": "boolean",
2514
+ "default": true
2515
+ },
2516
+ "renderOrder": {
2517
+ "type": "number",
2518
+ "default": 0
2519
+ }
2520
+ },
2521
+ "additionalProperties": false
2522
+ },
2523
+ "script": {
2524
+ "type": "object",
2525
+ "properties": {
2526
+ "name": {
2527
+ "type": "string"
2528
+ },
2529
+ "props": {
2530
+ "type": "object"
2531
+ }
2532
+ },
2533
+ "required": ["name"]
2534
+ },
2535
+ "network": {
2536
+ "type": "object"
2537
+ },
2538
+ "children": {
2539
+ "type": "array",
2540
+ "items": {
2541
+ "$ref": "#/$defs/node"
2542
+ }
2543
+ }
2544
+ },
2545
+ "required": ["name", "type"]
2546
+ },
2547
+ "OmniLight3D": {
2548
+ "type": "object",
2549
+ "properties": {
2550
+ "name": {
2551
+ "type": "string"
2552
+ },
2553
+ "uid": {
2554
+ "type": "string"
2555
+ },
2556
+ "type": {
2557
+ "const": "OmniLight3D"
2558
+ },
2559
+ "groups": {
2560
+ "type": "array",
2561
+ "items": {
2562
+ "type": "string"
2563
+ }
2564
+ },
2565
+ "tags": {
2566
+ "type": "object"
2567
+ },
2568
+ "props": {
2569
+ "type": "object",
2570
+ "properties": {
2571
+ "position": {
2572
+ "type": "array",
2573
+ "items": {
2574
+ "type": "number"
2575
+ },
2576
+ "minItems": 3,
2577
+ "maxItems": 3,
2578
+ "default": [0, 0, 0]
2579
+ },
2580
+ "rotation": {
2581
+ "type": "array",
2582
+ "items": {
2583
+ "type": "number"
2584
+ },
2585
+ "minItems": 3,
2586
+ "maxItems": 3,
2587
+ "default": [0, 0, 0]
2588
+ },
2589
+ "scale": {
2590
+ "type": "array",
2591
+ "items": {
2592
+ "type": "number"
2593
+ },
2594
+ "minItems": 3,
2595
+ "maxItems": 3,
2596
+ "default": [1, 1, 1]
2597
+ },
2598
+ "visible": {
2599
+ "type": "boolean",
2600
+ "default": true
2601
+ },
2602
+ "renderOrder": {
2603
+ "type": "number",
2604
+ "default": 0
2605
+ },
2606
+ "color": {
2607
+ "type": "string",
2608
+ "default": "#ffffff"
2609
+ },
2610
+ "intensity": {
2611
+ "type": "number",
2612
+ "default": 1
2613
+ },
2614
+ "range": {
2615
+ "type": "number",
2616
+ "default": 0
2617
+ }
2618
+ },
2619
+ "additionalProperties": false
2620
+ },
2621
+ "script": {
2622
+ "type": "object",
2623
+ "properties": {
2624
+ "name": {
2625
+ "type": "string"
2626
+ },
2627
+ "props": {
2628
+ "type": "object"
2629
+ }
2630
+ },
2631
+ "required": ["name"]
2632
+ },
2633
+ "network": {
2634
+ "type": "object"
2635
+ },
2636
+ "children": {
2637
+ "type": "array",
2638
+ "items": {
2639
+ "$ref": "#/$defs/node"
2640
+ }
2641
+ }
2642
+ },
2643
+ "required": ["name", "type"]
2644
+ },
2645
+ "Particles2D": {
2646
+ "type": "object",
2647
+ "x-signals": ["finished"],
2648
+ "properties": {
2649
+ "name": {
2650
+ "type": "string"
2651
+ },
2652
+ "uid": {
2653
+ "type": "string"
2654
+ },
2655
+ "type": {
2656
+ "const": "Particles2D"
2657
+ },
2658
+ "groups": {
2659
+ "type": "array",
2660
+ "items": {
2661
+ "type": "string"
2662
+ }
2663
+ },
2664
+ "tags": {
2665
+ "type": "object"
2666
+ },
2667
+ "props": {
2668
+ "type": "object",
2669
+ "properties": {
2670
+ "position": {
2671
+ "type": "array",
2672
+ "items": {
2673
+ "type": "number"
2674
+ },
2675
+ "minItems": 2,
2676
+ "maxItems": 2,
2677
+ "default": [0, 0]
2678
+ },
2679
+ "rotation": {
2680
+ "type": "number",
2681
+ "default": 0
2682
+ },
2683
+ "scale": {
2684
+ "type": "array",
2685
+ "items": {
2686
+ "type": "number"
2687
+ },
2688
+ "minItems": 2,
2689
+ "maxItems": 2,
2690
+ "default": [1, 1]
2691
+ },
2692
+ "renderOrder": {
2693
+ "type": "number",
2694
+ "default": 0
2695
+ },
2696
+ "visible": {
2697
+ "type": "boolean",
2698
+ "default": true
2699
+ },
2700
+ "preset": {
2701
+ "type": "string",
2702
+ "enum": [
2703
+ "custom",
2704
+ "fire",
2705
+ "smoke",
2706
+ "sparks",
2707
+ "fireworks",
2708
+ "explosion",
2709
+ "flash",
2710
+ "lightning",
2711
+ "rain",
2712
+ "snow",
2713
+ "magic"
2714
+ ],
2715
+ "default": "custom"
2716
+ },
2717
+ "emitting": {
2718
+ "type": "boolean",
2719
+ "default": true
2720
+ },
2721
+ "rate": {
2722
+ "type": "number",
2723
+ "default": 40
2724
+ },
2725
+ "burst": {
2726
+ "type": "number",
2727
+ "default": 0
2728
+ },
2729
+ "lifetime": {
2730
+ "type": "array",
2731
+ "items": {
2732
+ "type": "number"
2733
+ },
2734
+ "minItems": 2,
2735
+ "maxItems": 2,
2736
+ "default": [0.6, 1.2]
2737
+ },
2738
+ "speed": {
2739
+ "type": "array",
2740
+ "items": {
2741
+ "type": "number"
2742
+ },
2743
+ "minItems": 2,
2744
+ "maxItems": 2,
2745
+ "default": [40, 120]
2746
+ },
2747
+ "directionDeg": {
2748
+ "type": "number",
2749
+ "default": -90
2750
+ },
2751
+ "spreadDeg": {
2752
+ "type": "number",
2753
+ "default": 30
2754
+ },
2755
+ "gravity": {
2756
+ "type": "array",
2757
+ "items": {
2758
+ "type": "number"
2759
+ },
2760
+ "minItems": 2,
2761
+ "maxItems": 2,
2762
+ "default": [0, 0]
2763
+ },
2764
+ "drag": {
2765
+ "type": "number",
2766
+ "default": 0
2767
+ },
2768
+ "sizeStart": {
2769
+ "type": "number",
2770
+ "default": 8
2771
+ },
2772
+ "sizeEnd": {
2773
+ "type": "number",
2774
+ "default": 2
2775
+ },
2776
+ "colorStart": {
2777
+ "type": "string",
2778
+ "default": "#ffffff"
2779
+ },
2780
+ "colorEnd": {
2781
+ "type": "string",
2782
+ "default": "#ffffff"
2783
+ },
2784
+ "paletteColors": {
2785
+ "type": "array",
2786
+ "default": []
2787
+ },
2788
+ "alphaStart": {
2789
+ "type": "number",
2790
+ "default": 1
2791
+ },
2792
+ "alphaEnd": {
2793
+ "type": "number",
2794
+ "default": 0
2795
+ },
2796
+ "shimmer": {
2797
+ "type": "number",
2798
+ "default": 0
2799
+ },
2800
+ "blend": {
2801
+ "type": "string",
2802
+ "enum": ["add", "normal"],
2803
+ "default": "add"
2804
+ },
2805
+ "maxParticles": {
2806
+ "type": "number",
2807
+ "default": 256
2808
+ }
2809
+ },
2810
+ "additionalProperties": false
2811
+ },
2812
+ "script": {
2813
+ "type": "object",
2814
+ "properties": {
2815
+ "name": {
2816
+ "type": "string"
2817
+ },
2818
+ "props": {
2819
+ "type": "object"
2820
+ }
2821
+ },
2822
+ "required": ["name"]
2823
+ },
2824
+ "network": {
2825
+ "type": "object"
2826
+ },
2827
+ "children": {
2828
+ "type": "array",
2829
+ "items": {
2830
+ "$ref": "#/$defs/node"
2831
+ }
2832
+ }
2833
+ },
2834
+ "required": ["name", "type"]
2835
+ },
2836
+ "Particles3D": {
2837
+ "type": "object",
2838
+ "x-signals": ["finished"],
2839
+ "properties": {
2840
+ "name": {
2841
+ "type": "string"
2842
+ },
2843
+ "uid": {
2844
+ "type": "string"
2845
+ },
2846
+ "type": {
2847
+ "const": "Particles3D"
2848
+ },
2849
+ "groups": {
2850
+ "type": "array",
2851
+ "items": {
2852
+ "type": "string"
2853
+ }
2854
+ },
2855
+ "tags": {
2856
+ "type": "object"
2857
+ },
2858
+ "props": {
2859
+ "type": "object",
2860
+ "properties": {
2861
+ "position": {
2862
+ "type": "array",
2863
+ "items": {
2864
+ "type": "number"
2865
+ },
2866
+ "minItems": 3,
2867
+ "maxItems": 3,
2868
+ "default": [0, 0, 0]
2869
+ },
2870
+ "rotation": {
2871
+ "type": "array",
2872
+ "items": {
2873
+ "type": "number"
2874
+ },
2875
+ "minItems": 3,
2876
+ "maxItems": 3,
2877
+ "default": [0, 0, 0]
2878
+ },
2879
+ "scale": {
2880
+ "type": "array",
2881
+ "items": {
2882
+ "type": "number"
2883
+ },
2884
+ "minItems": 3,
2885
+ "maxItems": 3,
2886
+ "default": [1, 1, 1]
2887
+ },
2888
+ "visible": {
2889
+ "type": "boolean",
2890
+ "default": true
2891
+ },
2892
+ "renderOrder": {
2893
+ "type": "number",
2894
+ "default": 0
2895
+ },
2896
+ "preset": {
2897
+ "type": "string",
2898
+ "enum": [
2899
+ "custom",
2900
+ "fire",
2901
+ "smoke",
2902
+ "sparks",
2903
+ "fireworks",
2904
+ "explosion",
2905
+ "flash",
2906
+ "lightning",
2907
+ "rain",
2908
+ "snow",
2909
+ "magic"
2910
+ ],
2911
+ "default": "custom"
2912
+ },
2913
+ "emitting": {
2914
+ "type": "boolean",
2915
+ "default": true
2916
+ },
2917
+ "rate": {
2918
+ "type": "number",
2919
+ "default": 40
2920
+ },
2921
+ "burst": {
2922
+ "type": "number",
2923
+ "default": 0
2924
+ },
2925
+ "lifetime": {
2926
+ "type": "array",
2927
+ "items": {
2928
+ "type": "number"
2929
+ },
2930
+ "minItems": 2,
2931
+ "maxItems": 2,
2932
+ "default": [0.6, 1.2]
2933
+ },
2934
+ "speed": {
2935
+ "type": "array",
2936
+ "items": {
2937
+ "type": "number"
2938
+ },
2939
+ "minItems": 2,
2940
+ "maxItems": 2,
2941
+ "default": [40, 120]
2942
+ },
2943
+ "directionDeg": {
2944
+ "type": "number",
2945
+ "default": -90
2946
+ },
2947
+ "spreadDeg": {
2948
+ "type": "number",
2949
+ "default": 30
2950
+ },
2951
+ "gravity": {
2952
+ "type": "array",
2953
+ "items": {
2954
+ "type": "number"
2955
+ },
2956
+ "minItems": 2,
2957
+ "maxItems": 2,
2958
+ "default": [0, 0]
2959
+ },
2960
+ "drag": {
2961
+ "type": "number",
2962
+ "default": 0
2963
+ },
2964
+ "sizeStart": {
2965
+ "type": "number",
2966
+ "default": 8
2967
+ },
2968
+ "sizeEnd": {
2969
+ "type": "number",
2970
+ "default": 2
2971
+ },
2972
+ "colorStart": {
2973
+ "type": "string",
2974
+ "default": "#ffffff"
2975
+ },
2976
+ "colorEnd": {
2977
+ "type": "string",
2978
+ "default": "#ffffff"
2979
+ },
2980
+ "paletteColors": {
2981
+ "type": "array",
2982
+ "default": []
2983
+ },
2984
+ "alphaStart": {
2985
+ "type": "number",
2986
+ "default": 1
2987
+ },
2988
+ "alphaEnd": {
2989
+ "type": "number",
2990
+ "default": 0
2991
+ },
2992
+ "shimmer": {
2993
+ "type": "number",
2994
+ "default": 0
2995
+ },
2996
+ "blend": {
2997
+ "type": "string",
2998
+ "enum": ["add", "normal"],
2999
+ "default": "add"
3000
+ },
3001
+ "depthTest": {
3002
+ "type": "boolean",
3003
+ "default": true
3004
+ },
3005
+ "maxParticles": {
3006
+ "type": "number",
3007
+ "default": 256
3008
+ }
3009
+ },
3010
+ "additionalProperties": false
3011
+ },
3012
+ "script": {
3013
+ "type": "object",
3014
+ "properties": {
3015
+ "name": {
3016
+ "type": "string"
3017
+ },
3018
+ "props": {
3019
+ "type": "object"
3020
+ }
3021
+ },
3022
+ "required": ["name"]
3023
+ },
3024
+ "network": {
3025
+ "type": "object"
3026
+ },
3027
+ "children": {
3028
+ "type": "array",
3029
+ "items": {
3030
+ "$ref": "#/$defs/node"
3031
+ }
3032
+ }
3033
+ },
3034
+ "required": ["name", "type"]
3035
+ },
3036
+ "RigidBody2D": {
3037
+ "type": "object",
3038
+ "x-signals": ["triggerEnter", "triggerExit"],
3039
+ "properties": {
3040
+ "name": {
3041
+ "type": "string"
3042
+ },
3043
+ "uid": {
3044
+ "type": "string"
3045
+ },
3046
+ "type": {
3047
+ "const": "RigidBody2D"
3048
+ },
3049
+ "groups": {
3050
+ "type": "array",
3051
+ "items": {
3052
+ "type": "string"
3053
+ }
3054
+ },
3055
+ "tags": {
3056
+ "type": "object"
3057
+ },
3058
+ "props": {
3059
+ "type": "object",
3060
+ "properties": {
3061
+ "position": {
3062
+ "type": "array",
3063
+ "items": {
3064
+ "type": "number"
3065
+ },
3066
+ "minItems": 2,
3067
+ "maxItems": 2,
3068
+ "default": [0, 0]
3069
+ },
3070
+ "rotation": {
3071
+ "type": "number",
3072
+ "default": 0
3073
+ },
3074
+ "scale": {
3075
+ "type": "array",
3076
+ "items": {
3077
+ "type": "number"
3078
+ },
3079
+ "minItems": 2,
3080
+ "maxItems": 2,
3081
+ "default": [1, 1]
3082
+ },
3083
+ "renderOrder": {
3084
+ "type": "number",
3085
+ "default": 0
3086
+ },
3087
+ "visible": {
3088
+ "type": "boolean",
3089
+ "default": true
3090
+ },
3091
+ "collider": {
3092
+ "type": "object",
3093
+ "default": {}
3094
+ },
3095
+ "mass": {
3096
+ "type": "number",
3097
+ "default": 1
3098
+ },
3099
+ "gravityScale": {
3100
+ "type": "number",
3101
+ "default": 1
3102
+ },
3103
+ "fixedRotation": {
3104
+ "type": "boolean",
3105
+ "default": false
3106
+ },
3107
+ "friction": {
3108
+ "type": "number",
3109
+ "default": 0.5
3110
+ },
3111
+ "restitution": {
3112
+ "type": "number",
3113
+ "default": 0
3114
+ },
3115
+ "linearVelocity": {
3116
+ "type": "array",
3117
+ "items": {
3118
+ "type": "number"
3119
+ },
3120
+ "minItems": 2,
3121
+ "maxItems": 2,
3122
+ "default": [0, 0]
3123
+ }
3124
+ },
3125
+ "additionalProperties": false
3126
+ },
3127
+ "script": {
3128
+ "type": "object",
3129
+ "properties": {
3130
+ "name": {
3131
+ "type": "string"
3132
+ },
3133
+ "props": {
3134
+ "type": "object"
3135
+ }
3136
+ },
3137
+ "required": ["name"]
3138
+ },
3139
+ "network": {
3140
+ "type": "object"
3141
+ },
3142
+ "children": {
3143
+ "type": "array",
3144
+ "items": {
3145
+ "$ref": "#/$defs/node"
3146
+ }
3147
+ }
3148
+ },
3149
+ "required": ["name", "type"]
3150
+ },
3151
+ "RigidBody3D": {
3152
+ "type": "object",
3153
+ "x-signals": ["triggerEnter", "triggerExit"],
3154
+ "properties": {
3155
+ "name": {
3156
+ "type": "string"
3157
+ },
3158
+ "uid": {
3159
+ "type": "string"
3160
+ },
3161
+ "type": {
3162
+ "const": "RigidBody3D"
3163
+ },
3164
+ "groups": {
3165
+ "type": "array",
3166
+ "items": {
3167
+ "type": "string"
3168
+ }
3169
+ },
3170
+ "tags": {
3171
+ "type": "object"
3172
+ },
3173
+ "props": {
3174
+ "type": "object",
3175
+ "properties": {
3176
+ "position": {
3177
+ "type": "array",
3178
+ "items": {
3179
+ "type": "number"
3180
+ },
3181
+ "minItems": 3,
3182
+ "maxItems": 3,
3183
+ "default": [0, 0, 0]
3184
+ },
3185
+ "rotation": {
3186
+ "type": "array",
3187
+ "items": {
3188
+ "type": "number"
3189
+ },
3190
+ "minItems": 3,
3191
+ "maxItems": 3,
3192
+ "default": [0, 0, 0]
3193
+ },
3194
+ "scale": {
3195
+ "type": "array",
3196
+ "items": {
3197
+ "type": "number"
3198
+ },
3199
+ "minItems": 3,
3200
+ "maxItems": 3,
3201
+ "default": [1, 1, 1]
3202
+ },
3203
+ "visible": {
3204
+ "type": "boolean",
3205
+ "default": true
3206
+ },
3207
+ "renderOrder": {
3208
+ "type": "number",
3209
+ "default": 0
3210
+ },
3211
+ "collider": {
3212
+ "type": "object",
3213
+ "default": {}
3214
+ },
3215
+ "mass": {
3216
+ "type": "number",
3217
+ "default": 1
3218
+ },
3219
+ "gravityScale": {
3220
+ "type": "number",
3221
+ "default": 1
3222
+ },
3223
+ "fixedRotation": {
3224
+ "type": "boolean",
3225
+ "default": false
3226
+ },
3227
+ "friction": {
3228
+ "type": "number",
3229
+ "default": 0.5
3230
+ },
3231
+ "restitution": {
3232
+ "type": "number",
3233
+ "default": 0
3234
+ },
3235
+ "linearVelocity": {
3236
+ "type": "array",
3237
+ "items": {
3238
+ "type": "number"
3239
+ },
3240
+ "minItems": 3,
3241
+ "maxItems": 3,
3242
+ "default": [0, 0, 0]
3243
+ }
3244
+ },
3245
+ "additionalProperties": false
3246
+ },
3247
+ "script": {
3248
+ "type": "object",
3249
+ "properties": {
3250
+ "name": {
3251
+ "type": "string"
3252
+ },
3253
+ "props": {
3254
+ "type": "object"
3255
+ }
3256
+ },
3257
+ "required": ["name"]
3258
+ },
3259
+ "network": {
3260
+ "type": "object"
3261
+ },
3262
+ "children": {
3263
+ "type": "array",
3264
+ "items": {
3265
+ "$ref": "#/$defs/node"
3266
+ }
3267
+ }
3268
+ },
3269
+ "required": ["name", "type"]
3270
+ },
3271
+ "Sprite2D": {
3272
+ "type": "object",
3273
+ "properties": {
3274
+ "name": {
3275
+ "type": "string"
3276
+ },
3277
+ "uid": {
3278
+ "type": "string"
3279
+ },
3280
+ "type": {
3281
+ "const": "Sprite2D"
3282
+ },
3283
+ "groups": {
3284
+ "type": "array",
3285
+ "items": {
3286
+ "type": "string"
3287
+ }
3288
+ },
3289
+ "tags": {
3290
+ "type": "object"
3291
+ },
3292
+ "props": {
3293
+ "type": "object",
3294
+ "properties": {
3295
+ "position": {
3296
+ "type": "array",
3297
+ "items": {
3298
+ "type": "number"
3299
+ },
3300
+ "minItems": 2,
3301
+ "maxItems": 2,
3302
+ "default": [0, 0]
3303
+ },
3304
+ "rotation": {
3305
+ "type": "number",
3306
+ "default": 0
3307
+ },
3308
+ "scale": {
3309
+ "type": "array",
3310
+ "items": {
3311
+ "type": "number"
3312
+ },
3313
+ "minItems": 2,
3314
+ "maxItems": 2,
3315
+ "default": [1, 1]
3316
+ },
3317
+ "renderOrder": {
3318
+ "type": "number",
3319
+ "default": 0
3320
+ },
3321
+ "visible": {
3322
+ "type": "boolean",
3323
+ "default": true
3324
+ },
3325
+ "texture": {
3326
+ "type": "string",
3327
+ "default": ""
3328
+ },
3329
+ "anchor": {
3330
+ "type": "array",
3331
+ "items": {
3332
+ "type": "number"
3333
+ },
3334
+ "minItems": 2,
3335
+ "maxItems": 2,
3336
+ "default": [0.5, 0.5]
3337
+ },
3338
+ "flipX": {
3339
+ "type": "boolean",
3340
+ "default": false
3341
+ },
3342
+ "flipY": {
3343
+ "type": "boolean",
3344
+ "default": false
3345
+ },
3346
+ "tint": {
3347
+ "type": "string",
3348
+ "default": "#ffffff"
3349
+ },
3350
+ "opacity": {
3351
+ "type": "number",
3352
+ "default": 1
3353
+ }
3354
+ },
3355
+ "additionalProperties": false
3356
+ },
3357
+ "script": {
3358
+ "type": "object",
3359
+ "properties": {
3360
+ "name": {
3361
+ "type": "string"
3362
+ },
3363
+ "props": {
3364
+ "type": "object"
3365
+ }
3366
+ },
3367
+ "required": ["name"]
3368
+ },
3369
+ "network": {
3370
+ "type": "object"
3371
+ },
3372
+ "children": {
3373
+ "type": "array",
3374
+ "items": {
3375
+ "$ref": "#/$defs/node"
3376
+ }
3377
+ }
3378
+ },
3379
+ "required": ["name", "type"]
3380
+ },
3381
+ "StaticBody2D": {
3382
+ "type": "object",
3383
+ "x-signals": ["triggerEnter", "triggerExit"],
3384
+ "properties": {
3385
+ "name": {
3386
+ "type": "string"
3387
+ },
3388
+ "uid": {
3389
+ "type": "string"
3390
+ },
3391
+ "type": {
3392
+ "const": "StaticBody2D"
3393
+ },
3394
+ "groups": {
3395
+ "type": "array",
3396
+ "items": {
3397
+ "type": "string"
3398
+ }
3399
+ },
3400
+ "tags": {
3401
+ "type": "object"
3402
+ },
3403
+ "props": {
3404
+ "type": "object",
3405
+ "properties": {
3406
+ "position": {
3407
+ "type": "array",
3408
+ "items": {
3409
+ "type": "number"
3410
+ },
3411
+ "minItems": 2,
3412
+ "maxItems": 2,
3413
+ "default": [0, 0]
3414
+ },
3415
+ "rotation": {
3416
+ "type": "number",
3417
+ "default": 0
3418
+ },
3419
+ "scale": {
3420
+ "type": "array",
3421
+ "items": {
3422
+ "type": "number"
3423
+ },
3424
+ "minItems": 2,
3425
+ "maxItems": 2,
3426
+ "default": [1, 1]
3427
+ },
3428
+ "renderOrder": {
3429
+ "type": "number",
3430
+ "default": 0
3431
+ },
3432
+ "visible": {
3433
+ "type": "boolean",
3434
+ "default": true
3435
+ },
3436
+ "collider": {
3437
+ "type": "object",
3438
+ "default": {}
3439
+ }
3440
+ },
3441
+ "additionalProperties": false
3442
+ },
3443
+ "script": {
3444
+ "type": "object",
3445
+ "properties": {
3446
+ "name": {
3447
+ "type": "string"
3448
+ },
3449
+ "props": {
3450
+ "type": "object"
3451
+ }
3452
+ },
3453
+ "required": ["name"]
3454
+ },
3455
+ "network": {
3456
+ "type": "object"
3457
+ },
3458
+ "children": {
3459
+ "type": "array",
3460
+ "items": {
3461
+ "$ref": "#/$defs/node"
3462
+ }
3463
+ }
3464
+ },
3465
+ "required": ["name", "type"]
3466
+ },
3467
+ "StaticBody3D": {
3468
+ "type": "object",
3469
+ "x-signals": ["triggerEnter", "triggerExit"],
3470
+ "properties": {
3471
+ "name": {
3472
+ "type": "string"
3473
+ },
3474
+ "uid": {
3475
+ "type": "string"
3476
+ },
3477
+ "type": {
3478
+ "const": "StaticBody3D"
3479
+ },
3480
+ "groups": {
3481
+ "type": "array",
3482
+ "items": {
3483
+ "type": "string"
3484
+ }
3485
+ },
3486
+ "tags": {
3487
+ "type": "object"
3488
+ },
3489
+ "props": {
3490
+ "type": "object",
3491
+ "properties": {
3492
+ "position": {
3493
+ "type": "array",
3494
+ "items": {
3495
+ "type": "number"
3496
+ },
3497
+ "minItems": 3,
3498
+ "maxItems": 3,
3499
+ "default": [0, 0, 0]
3500
+ },
3501
+ "rotation": {
3502
+ "type": "array",
3503
+ "items": {
3504
+ "type": "number"
3505
+ },
3506
+ "minItems": 3,
3507
+ "maxItems": 3,
3508
+ "default": [0, 0, 0]
3509
+ },
3510
+ "scale": {
3511
+ "type": "array",
3512
+ "items": {
3513
+ "type": "number"
3514
+ },
3515
+ "minItems": 3,
3516
+ "maxItems": 3,
3517
+ "default": [1, 1, 1]
3518
+ },
3519
+ "visible": {
3520
+ "type": "boolean",
3521
+ "default": true
3522
+ },
3523
+ "renderOrder": {
3524
+ "type": "number",
3525
+ "default": 0
3526
+ },
3527
+ "collider": {
3528
+ "type": "object",
3529
+ "default": {}
3530
+ }
3531
+ },
3532
+ "additionalProperties": false
3533
+ },
3534
+ "script": {
3535
+ "type": "object",
3536
+ "properties": {
3537
+ "name": {
3538
+ "type": "string"
3539
+ },
3540
+ "props": {
3541
+ "type": "object"
3542
+ }
3543
+ },
3544
+ "required": ["name"]
3545
+ },
3546
+ "network": {
3547
+ "type": "object"
3548
+ },
3549
+ "children": {
3550
+ "type": "array",
3551
+ "items": {
3552
+ "$ref": "#/$defs/node"
3553
+ }
3554
+ }
3555
+ },
3556
+ "required": ["name", "type"]
3557
+ },
3558
+ "Terrain3D": {
3559
+ "type": "object",
3560
+ "properties": {
3561
+ "name": {
3562
+ "type": "string"
3563
+ },
3564
+ "uid": {
3565
+ "type": "string"
3566
+ },
3567
+ "type": {
3568
+ "const": "Terrain3D"
3569
+ },
3570
+ "groups": {
3571
+ "type": "array",
3572
+ "items": {
3573
+ "type": "string"
3574
+ }
3575
+ },
3576
+ "tags": {
3577
+ "type": "object"
3578
+ },
3579
+ "props": {
3580
+ "type": "object",
3581
+ "properties": {
3582
+ "position": {
3583
+ "type": "array",
3584
+ "items": {
3585
+ "type": "number"
3586
+ },
3587
+ "minItems": 3,
3588
+ "maxItems": 3,
3589
+ "default": [0, 0, 0]
3590
+ },
3591
+ "rotation": {
3592
+ "type": "array",
3593
+ "items": {
3594
+ "type": "number"
3595
+ },
3596
+ "minItems": 3,
3597
+ "maxItems": 3,
3598
+ "default": [0, 0, 0]
3599
+ },
3600
+ "scale": {
3601
+ "type": "array",
3602
+ "items": {
3603
+ "type": "number"
3604
+ },
3605
+ "minItems": 3,
3606
+ "maxItems": 3,
3607
+ "default": [1, 1, 1]
3608
+ },
3609
+ "visible": {
3610
+ "type": "boolean",
3611
+ "default": true
3612
+ },
3613
+ "renderOrder": {
3614
+ "type": "number",
3615
+ "default": 0
3616
+ },
3617
+ "size": {
3618
+ "type": "array",
3619
+ "items": {
3620
+ "type": "number"
3621
+ },
3622
+ "minItems": 2,
3623
+ "maxItems": 2,
3624
+ "default": [200, 200]
3625
+ },
3626
+ "maxHeight": {
3627
+ "type": "number",
3628
+ "default": 28
3629
+ },
3630
+ "seed": {
3631
+ "type": "number",
3632
+ "default": 1
3633
+ },
3634
+ "resolution": {
3635
+ "type": "number",
3636
+ "default": 128
3637
+ },
3638
+ "theme": {
3639
+ "type": "string",
3640
+ "enum": [
3641
+ "island",
3642
+ "alpine",
3643
+ "plains",
3644
+ "desert",
3645
+ "grassland",
3646
+ "forest",
3647
+ "savanna",
3648
+ "snow",
3649
+ "wetland",
3650
+ "volcanic",
3651
+ "custom"
3652
+ ],
3653
+ "default": "island"
3654
+ },
3655
+ "roughness": {
3656
+ "type": "number",
3657
+ "default": 0.5
3658
+ },
3659
+ "detail": {
3660
+ "type": "number",
3661
+ "default": 4
3662
+ },
3663
+ "flatThreshold": {
3664
+ "type": "number",
3665
+ "default": 0.95
3666
+ },
3667
+ "islandEdge": {
3668
+ "default": null
3669
+ },
3670
+ "layers": {
3671
+ "type": "array",
3672
+ "default": []
3673
+ },
3674
+ "textureBase": {
3675
+ "type": "string",
3676
+ "default": "https://agent8-games.verse8.io/assets/3D/default/textures/terrain"
3677
+ },
3678
+ "basins": {
3679
+ "type": "array",
3680
+ "default": []
3681
+ }
3682
+ },
3683
+ "additionalProperties": false
3684
+ },
3685
+ "script": {
3686
+ "type": "object",
3687
+ "properties": {
3688
+ "name": {
3689
+ "type": "string"
3690
+ },
3691
+ "props": {
3692
+ "type": "object"
3693
+ }
3694
+ },
3695
+ "required": ["name"]
3696
+ },
3697
+ "network": {
3698
+ "type": "object"
3699
+ },
3700
+ "children": {
3701
+ "type": "array",
3702
+ "items": {
3703
+ "$ref": "#/$defs/node"
3704
+ }
3705
+ }
3706
+ },
3707
+ "required": ["name", "type"]
3708
+ },
3709
+ "Timer": {
3710
+ "type": "object",
3711
+ "x-signals": ["timeout"],
3712
+ "properties": {
3713
+ "name": {
3714
+ "type": "string"
3715
+ },
3716
+ "uid": {
3717
+ "type": "string"
3718
+ },
3719
+ "type": {
3720
+ "const": "Timer"
3721
+ },
3722
+ "groups": {
3723
+ "type": "array",
3724
+ "items": {
3725
+ "type": "string"
3726
+ }
3727
+ },
3728
+ "tags": {
3729
+ "type": "object"
3730
+ },
3731
+ "props": {
3732
+ "type": "object",
3733
+ "properties": {
3734
+ "waitTime": {
3735
+ "type": "number",
3736
+ "default": 1
3737
+ },
3738
+ "oneShot": {
3739
+ "type": "boolean",
3740
+ "default": false
3741
+ },
3742
+ "autostart": {
3743
+ "type": "boolean",
3744
+ "default": false
3745
+ }
3746
+ },
3747
+ "additionalProperties": false
3748
+ },
3749
+ "script": {
3750
+ "type": "object",
3751
+ "properties": {
3752
+ "name": {
3753
+ "type": "string"
3754
+ },
3755
+ "props": {
3756
+ "type": "object"
3757
+ }
3758
+ },
3759
+ "required": ["name"]
3760
+ },
3761
+ "network": {
3762
+ "type": "object"
3763
+ },
3764
+ "children": {
3765
+ "type": "array",
3766
+ "items": {
3767
+ "$ref": "#/$defs/node"
3768
+ }
3769
+ }
3770
+ },
3771
+ "required": ["name", "type"]
3772
+ },
3773
+ "Tree3D": {
3774
+ "type": "object",
3775
+ "properties": {
3776
+ "name": {
3777
+ "type": "string"
3778
+ },
3779
+ "uid": {
3780
+ "type": "string"
3781
+ },
3782
+ "type": {
3783
+ "const": "Tree3D"
3784
+ },
3785
+ "groups": {
3786
+ "type": "array",
3787
+ "items": {
3788
+ "type": "string"
3789
+ }
3790
+ },
3791
+ "tags": {
3792
+ "type": "object"
3793
+ },
3794
+ "props": {
3795
+ "type": "object",
3796
+ "properties": {
3797
+ "position": {
3798
+ "type": "array",
3799
+ "items": {
3800
+ "type": "number"
3801
+ },
3802
+ "minItems": 3,
3803
+ "maxItems": 3,
3804
+ "default": [0, 0, 0]
3805
+ },
3806
+ "rotation": {
3807
+ "type": "array",
3808
+ "items": {
3809
+ "type": "number"
3810
+ },
3811
+ "minItems": 3,
3812
+ "maxItems": 3,
3813
+ "default": [0, 0, 0]
3814
+ },
3815
+ "scale": {
3816
+ "type": "array",
3817
+ "items": {
3818
+ "type": "number"
3819
+ },
3820
+ "minItems": 3,
3821
+ "maxItems": 3,
3822
+ "default": [1, 1, 1]
3823
+ },
3824
+ "visible": {
3825
+ "type": "boolean",
3826
+ "default": true
3827
+ },
3828
+ "renderOrder": {
3829
+ "type": "number",
3830
+ "default": 0
3831
+ },
3832
+ "tier": {
3833
+ "type": "string",
3834
+ "enum": ["simple", "medium", "high"],
3835
+ "default": "medium"
3836
+ },
3837
+ "type": {
3838
+ "type": "string",
3839
+ "enum": ["conifer", "broadleaf", "dead", "bush"],
3840
+ "default": "conifer"
3841
+ },
3842
+ "seed": {
3843
+ "type": "number",
3844
+ "default": 1
3845
+ },
3846
+ "height": {
3847
+ "type": "number",
3848
+ "default": 6
3849
+ },
3850
+ "count": {
3851
+ "type": "number",
3852
+ "default": 1
3853
+ },
3854
+ "area": {
3855
+ "type": "array",
3856
+ "items": {
3857
+ "type": "number"
3858
+ },
3859
+ "minItems": 2,
3860
+ "maxItems": 2,
3861
+ "default": [10, 10]
3862
+ },
3863
+ "trunkColor": {
3864
+ "type": "string",
3865
+ "default": "#7a5a3a"
3866
+ },
3867
+ "canopyColor": {
3868
+ "type": "string",
3869
+ "default": "#4a7c3f"
3870
+ },
3871
+ "leafTexture": {
3872
+ "type": "string",
3873
+ "default": ""
3874
+ },
3875
+ "leafFadeStart": {
3876
+ "type": "number",
3877
+ "default": 0
3878
+ },
3879
+ "leafFadeEnd": {
3880
+ "type": "number",
3881
+ "default": 0
3882
+ },
3883
+ "leafShadows": {
3884
+ "type": "boolean",
3885
+ "default": true
3886
+ },
3887
+ "drape": {
3888
+ "type": "boolean",
3889
+ "default": false
3890
+ },
3891
+ "terrain": {
3892
+ "type": "string",
3893
+ "default": ""
3894
+ }
3895
+ },
3896
+ "additionalProperties": false
3897
+ },
3898
+ "script": {
3899
+ "type": "object",
3900
+ "properties": {
3901
+ "name": {
3902
+ "type": "string"
3903
+ },
3904
+ "props": {
3905
+ "type": "object"
3906
+ }
3907
+ },
3908
+ "required": ["name"]
3909
+ },
3910
+ "network": {
3911
+ "type": "object"
3912
+ },
3913
+ "children": {
3914
+ "type": "array",
3915
+ "items": {
3916
+ "$ref": "#/$defs/node"
3917
+ }
3918
+ }
3919
+ },
3920
+ "required": ["name", "type"]
3921
+ },
3922
+ "UILayer": {
3923
+ "type": "object",
3924
+ "properties": {
3925
+ "name": {
3926
+ "type": "string"
3927
+ },
3928
+ "uid": {
3929
+ "type": "string"
3930
+ },
3931
+ "type": {
3932
+ "const": "UILayer"
3933
+ },
3934
+ "groups": {
3935
+ "type": "array",
3936
+ "items": {
3937
+ "type": "string"
3938
+ }
3939
+ },
3940
+ "tags": {
3941
+ "type": "object"
3942
+ },
3943
+ "props": {
3944
+ "type": "object",
3945
+ "properties": {
3946
+ "anchor": {
3947
+ "type": "string",
3948
+ "enum": [
3949
+ "top-left",
3950
+ "top",
3951
+ "top-right",
3952
+ "left",
3953
+ "center",
3954
+ "right",
3955
+ "bottom-left",
3956
+ "bottom",
3957
+ "bottom-right"
3958
+ ],
3959
+ "default": "top-left"
3960
+ }
3961
+ },
3962
+ "additionalProperties": false
3963
+ },
3964
+ "script": {
3965
+ "type": "object",
3966
+ "properties": {
3967
+ "name": {
3968
+ "type": "string"
3969
+ },
3970
+ "props": {
3971
+ "type": "object"
3972
+ }
3973
+ },
3974
+ "required": ["name"]
3975
+ },
3976
+ "network": {
3977
+ "type": "object"
3978
+ },
3979
+ "children": {
3980
+ "type": "array",
3981
+ "items": {
3982
+ "$ref": "#/$defs/node"
3983
+ }
3984
+ }
3985
+ },
3986
+ "required": ["name", "type"]
3987
+ },
3988
+ "VoxelGrid3D": {
3989
+ "type": "object",
3990
+ "x-signals": ["blocksChanged"],
3991
+ "properties": {
3992
+ "name": {
3993
+ "type": "string"
3994
+ },
3995
+ "uid": {
3996
+ "type": "string"
3997
+ },
3998
+ "type": {
3999
+ "const": "VoxelGrid3D"
4000
+ },
4001
+ "groups": {
4002
+ "type": "array",
4003
+ "items": {
4004
+ "type": "string"
4005
+ }
4006
+ },
4007
+ "tags": {
4008
+ "type": "object"
4009
+ },
4010
+ "props": {
4011
+ "type": "object",
4012
+ "properties": {
4013
+ "position": {
4014
+ "type": "array",
4015
+ "items": {
4016
+ "type": "number"
4017
+ },
4018
+ "minItems": 3,
4019
+ "maxItems": 3,
4020
+ "default": [0, 0, 0]
4021
+ },
4022
+ "rotation": {
4023
+ "type": "array",
4024
+ "items": {
4025
+ "type": "number"
4026
+ },
4027
+ "minItems": 3,
4028
+ "maxItems": 3,
4029
+ "default": [0, 0, 0]
4030
+ },
4031
+ "scale": {
4032
+ "type": "array",
4033
+ "items": {
4034
+ "type": "number"
4035
+ },
4036
+ "minItems": 3,
4037
+ "maxItems": 3,
4038
+ "default": [1, 1, 1]
4039
+ },
4040
+ "visible": {
4041
+ "type": "boolean",
4042
+ "default": true
4043
+ },
4044
+ "renderOrder": {
4045
+ "type": "number",
4046
+ "default": 0
4047
+ },
4048
+ "voxels": {
4049
+ "type": "array",
4050
+ "default": []
4051
+ }
4052
+ },
4053
+ "additionalProperties": false
4054
+ },
4055
+ "script": {
4056
+ "type": "object",
4057
+ "properties": {
4058
+ "name": {
4059
+ "type": "string"
4060
+ },
4061
+ "props": {
4062
+ "type": "object"
4063
+ }
4064
+ },
4065
+ "required": ["name"]
4066
+ },
4067
+ "network": {
4068
+ "type": "object"
4069
+ },
4070
+ "children": {
4071
+ "type": "array",
4072
+ "items": {
4073
+ "$ref": "#/$defs/node"
4074
+ }
4075
+ }
4076
+ },
4077
+ "required": ["name", "type"]
4078
+ },
4079
+ "Water3D": {
4080
+ "type": "object",
4081
+ "x-signals": ["entered", "exited"],
4082
+ "properties": {
4083
+ "name": {
4084
+ "type": "string"
4085
+ },
4086
+ "uid": {
4087
+ "type": "string"
4088
+ },
4089
+ "type": {
4090
+ "const": "Water3D"
4091
+ },
4092
+ "groups": {
4093
+ "type": "array",
4094
+ "items": {
4095
+ "type": "string"
4096
+ }
4097
+ },
4098
+ "tags": {
4099
+ "type": "object"
4100
+ },
4101
+ "props": {
4102
+ "type": "object",
4103
+ "properties": {
4104
+ "position": {
4105
+ "type": "array",
4106
+ "items": {
4107
+ "type": "number"
4108
+ },
4109
+ "minItems": 3,
4110
+ "maxItems": 3,
4111
+ "default": [0, 0, 0]
4112
+ },
4113
+ "rotation": {
4114
+ "type": "array",
4115
+ "items": {
4116
+ "type": "number"
4117
+ },
4118
+ "minItems": 3,
4119
+ "maxItems": 3,
4120
+ "default": [0, 0, 0]
4121
+ },
4122
+ "scale": {
4123
+ "type": "array",
4124
+ "items": {
4125
+ "type": "number"
4126
+ },
4127
+ "minItems": 3,
4128
+ "maxItems": 3,
4129
+ "default": [1, 1, 1]
4130
+ },
4131
+ "visible": {
4132
+ "type": "boolean",
4133
+ "default": true
4134
+ },
4135
+ "renderOrder": {
4136
+ "type": "number",
4137
+ "default": 1
4138
+ },
4139
+ "size": {
4140
+ "type": "array",
4141
+ "items": {
4142
+ "type": "number"
4143
+ },
4144
+ "minItems": 2,
4145
+ "maxItems": 2,
4146
+ "default": [40, 40]
4147
+ },
4148
+ "color": {
4149
+ "type": "string",
4150
+ "default": "#2a6fbe"
4151
+ },
4152
+ "opacity": {
4153
+ "type": "number",
4154
+ "default": 0.8
4155
+ },
4156
+ "waveHeight": {
4157
+ "type": "number",
4158
+ "default": 0.04
4159
+ },
4160
+ "waveSpeed": {
4161
+ "type": "number",
4162
+ "default": 1
4163
+ },
4164
+ "quality": {
4165
+ "type": "string",
4166
+ "enum": ["fancy", "simple"],
4167
+ "default": "fancy"
4168
+ },
4169
+ "colors": {
4170
+ "type": "object",
4171
+ "default": {}
4172
+ },
4173
+ "reflection": {
4174
+ "type": "boolean",
4175
+ "default": true
4176
+ },
4177
+ "reflectionInterval": {
4178
+ "type": "number",
4179
+ "default": 1000
4180
+ },
4181
+ "foam": {
4182
+ "type": "boolean",
4183
+ "default": true
4184
+ },
4185
+ "interaction": {
4186
+ "type": "boolean",
4187
+ "default": true
4188
+ },
4189
+ "splash": {
4190
+ "type": "boolean",
4191
+ "default": true
4192
+ },
4193
+ "sunDirection": {
4194
+ "type": "array",
4195
+ "items": {
4196
+ "type": "number"
4197
+ },
4198
+ "minItems": 3,
4199
+ "maxItems": 3,
4200
+ "default": [0.5, 0.8, 0.3]
4201
+ },
4202
+ "sunColor": {
4203
+ "type": "string",
4204
+ "default": "#fff5d6"
4205
+ },
4206
+ "sunIntensity": {
4207
+ "type": "number",
4208
+ "default": 1
4209
+ },
4210
+ "detailStrength": {
4211
+ "type": "number",
4212
+ "default": 0.26
4213
+ },
4214
+ "absorption": {
4215
+ "type": "number",
4216
+ "default": 0.15
4217
+ },
4218
+ "refraction": {
4219
+ "type": "boolean",
4220
+ "default": true
4221
+ },
4222
+ "underwater": {
4223
+ "type": "boolean",
4224
+ "default": true
4225
+ }
4226
+ },
4227
+ "additionalProperties": false
4228
+ },
4229
+ "script": {
4230
+ "type": "object",
4231
+ "properties": {
4232
+ "name": {
4233
+ "type": "string"
4234
+ },
4235
+ "props": {
4236
+ "type": "object"
4237
+ }
4238
+ },
4239
+ "required": ["name"]
4240
+ },
4241
+ "network": {
4242
+ "type": "object"
4243
+ },
4244
+ "children": {
4245
+ "type": "array",
4246
+ "items": {
4247
+ "$ref": "#/$defs/node"
4248
+ }
4249
+ }
4250
+ },
4251
+ "required": ["name", "type"]
4252
+ }
4253
+ }
4254
+ }