minecraft-data 3.109.1 → 3.110.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.
@@ -0,0 +1,3262 @@
1
+ !StartDocs: Types
2
+
3
+ TexturePackInfos: []li16
4
+ uuid: uuid
5
+ version: string
6
+ size: lu64
7
+ content_key: string
8
+ sub_pack_name: string
9
+ content_identity: string
10
+ has_scripts: bool
11
+ addon_pack: bool
12
+ rtx_enabled: bool
13
+ # cdn_url is a URL that the client can use to download the pack instead of the server sending it in
14
+ # chunks, which it will continue to do if this field is left empty.
15
+ cdn_url: string
16
+
17
+ ResourcePackIdVersions: []varint
18
+ # The ID of the resource pack.
19
+ uuid: string
20
+ # The version of the resource pack.
21
+ version: string
22
+ # The subpack name of the resource pack.
23
+ name: string
24
+
25
+ ResourcePackIds: string[]li16
26
+
27
+ Experiment:
28
+ name: string
29
+ enabled: bool
30
+
31
+ Experiments: Experiment[]li32
32
+
33
+ GameMode: zigzag32 =>
34
+ 0: survival
35
+ 1: creative
36
+ 2: adventure
37
+ 3: survival_spectator
38
+ 4: creative_spectator
39
+ 5: fallback
40
+ 6: spectator
41
+
42
+ GameRuleI32:
43
+ name: string
44
+ editable: bool
45
+ type: varint =>
46
+ 1: bool
47
+ 2: int
48
+ 3: float
49
+ value: type?
50
+ if bool: bool
51
+ if int: li32
52
+ if float: lf32
53
+
54
+ GameRuleVarint:
55
+ name: string
56
+ editable: bool
57
+ type: varint =>
58
+ 1: bool
59
+ 2: int
60
+ 3: float
61
+ value: type?
62
+ if bool: bool
63
+ if int: varint
64
+ if float: lf32
65
+
66
+ # CacheBlob represents a blob as used in the client side blob cache protocol. It holds a hash of its data and
67
+ # the full data of it.
68
+ Blob:
69
+ # Hash is the hash of the blob. The hash is computed using xxHash, and must be deterministic for the same
70
+ # chunk data.
71
+ hash: lu64
72
+ # Payload is the data of the blob. When sent, the client will associate the Hash of the blob with the
73
+ # Payload in it.
74
+ payload: ByteArray
75
+
76
+ BlockProperties: []varint
77
+ name: string
78
+ state: nbt
79
+
80
+ Itemstates: []varint
81
+ name: string
82
+ runtime_id: li16
83
+ component_based: bool
84
+ # Version is the version of the item entry which is used by the client to determine how to handle the
85
+ # item entry. It is one of the constants above.
86
+ version: zigzag32 =>
87
+ - legacy
88
+ - data_driven
89
+ - none
90
+ # Components on the item
91
+ nbt: nbt
92
+
93
+ ItemExtraDataWithBlockingTick:
94
+ has_nbt: lu16 =>
95
+ 0xffff: 'true'
96
+ 0x0000: 'false'
97
+ nbt: has_nbt ?
98
+ if true:
99
+ version: u8
100
+ nbt: lnbt
101
+ default: void
102
+ can_place_on: ShortString[]li32
103
+ can_destroy: ShortString[]li32
104
+ blocking_tick: li64
105
+
106
+ ItemExtraDataWithoutBlockingTick:
107
+ has_nbt: lu16 =>
108
+ 0xffff: 'true'
109
+ 0x0000: 'false'
110
+ nbt: has_nbt ?
111
+ if true:
112
+ version: u8
113
+ nbt: lnbt
114
+ default: void
115
+ can_place_on: ShortString[]li32
116
+ can_destroy: ShortString[]li32
117
+
118
+ # Same as below but without a "networkStackID" boolean
119
+ ItemLegacy:
120
+ network_id: zigzag32
121
+ _: network_id?
122
+ if 0: void
123
+ default:
124
+ count: lu16
125
+ metadata: varint
126
+ block_runtime_id: zigzag32
127
+ extra: network_id ?
128
+ # The Shield Item ID is sent in the StartGame packet. It is usually 355 in vanilla.
129
+ if /ShieldItemID: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithBlockingTick" }]'
130
+ default: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithoutBlockingTick" }]'
131
+
132
+ # An "ItemStack" here represents an Item instance. You can think about it like a pointer
133
+ # to an item class. The data for the class gets updated with the data in the `item` field
134
+ # As of 1.16.220, now functionally the same as `Item` just without an extra boolean when
135
+ # server auth inventories is disabled.
136
+ Item:
137
+ network_id: zigzag32
138
+ _: network_id?
139
+ if 0: void
140
+ default:
141
+ count: lu16
142
+ metadata: varint
143
+ # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
144
+ # a specifc item instance.
145
+ has_stack_id: u8
146
+ # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
147
+ # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
148
+ # StartGame packet, or to a unique stack ID if it is enabled.
149
+ stack_id: has_stack_id ?
150
+ if 0: void
151
+ default: zigzag32
152
+ block_runtime_id: zigzag32
153
+ extra: network_id ?
154
+ # The Shield Item ID is sent in the StartGame packet. It is usually 355 in vanilla.
155
+ ## Really bad compiler hack to allow us to use a global variable
156
+ if /ShieldItemID: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithBlockingTick" }]'
157
+ default: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithoutBlockingTick" }]'
158
+
159
+ vec3i:
160
+ x: zigzag32
161
+ y: zigzag32
162
+ z: zigzag32
163
+
164
+ vec3li:
165
+ x: li32
166
+ y: li32
167
+ z: li32
168
+
169
+ vec3u:
170
+ x: varint
171
+ y: varint
172
+ z: varint
173
+
174
+ vec3f:
175
+ x: lf32
176
+ y: lf32
177
+ z: lf32
178
+
179
+ vec2f:
180
+ x: lf32
181
+ z: lf32
182
+
183
+ Vec3fopts:
184
+ x?: lf32
185
+ y?: lf32
186
+ z?: lf32
187
+
188
+ Vec2fopts:
189
+ x?: lf32
190
+ y?: lf32
191
+
192
+ MetadataDictionary: []varint
193
+ # https://github.com/pmmp/PocketMine-MP/blob/stable/src/pocketmine/entity/Entity.php#L101
194
+ key: varint =>
195
+ 0: flags
196
+ 1: health #int (minecart/boat)
197
+ 2: variant #int
198
+ 3: color #byte
199
+ 4: nametag #string
200
+ 5: owner_eid #long
201
+ 6: target_eid #long
202
+ 7: air #short
203
+ 8: potion_color #int (ARGB!)
204
+ 9: potion_ambient #byte
205
+ 10: jump_duration #long
206
+ 11: hurt_time #int (minecart/boat)
207
+ 12: hurt_direction #int (minecart/boat)
208
+ 13: paddle_time_left #float
209
+ 14: paddle_time_right #float
210
+ 15: experience_value #int (xp orb)
211
+ 16: minecart_display_block #int (id | (data << 16))
212
+ 17: minecart_display_offset #int
213
+ 18: minecart_has_display #byte (must be 1 for minecart to show block inside)
214
+ 19: horse_type
215
+ 20: creeper_swell
216
+ 21: creeper_swell_direction
217
+ 22: charge_amount
218
+ 23: enderman_held_runtime_id #short
219
+ 24: entity_age #short
220
+ 26: player_flags
221
+ 27: player_index
222
+ 28: player_bed_position #block coords
223
+ 29: fireball_power_x #float
224
+ 30: fireball_power_y
225
+ 31: fireball_power_z
226
+ 32: aux_power
227
+ 33: fish_x
228
+ 34: fish_z
229
+ 35: fish_angle
230
+ 36: potion_aux_value #short
231
+ 37: lead_holder_eid #long
232
+ 38: scale
233
+ 39: interactive_tag #string
234
+ 40: npc_skin_id #string
235
+ 41: url_tag #string
236
+ 42: max_airdata_max_air
237
+ 43: mark_variant #int
238
+ 44: container_type #byte
239
+ 45: container_base_size #int
240
+ 46: container_extra_slots_per_strength #int
241
+ 47: block_target
242
+ 48: wither_invulnerable_ticks #int
243
+ 49: wither_target_1 #long
244
+ 50: wither_target_2 #long
245
+ 51: wither_target_3 #long
246
+ 52: wither_aerial_attack
247
+ 53: boundingbox_width
248
+ 54: boundingbox_height
249
+ 55: fuse_length
250
+ 56: rider_seat_position #vector3f
251
+ 57: rider_rotation_locked #byte
252
+ 58: rider_max_rotation #float
253
+ 59: rider_min_rotation #float
254
+ 60: rider_seat_rotation_offset
255
+ 61: area_effect_cloud_radius #float
256
+ 62: area_effect_cloud_waiting #int
257
+ 63: area_effect_cloud_particle_id #int
258
+ 64: shulker_peek_id #int
259
+ 65: shulker_attach_face #byte
260
+ 66: shulker_attached #short
261
+ 67: shulker_attach_pos
262
+ 68: trading_player_eid #long
263
+ 69: trading_career
264
+ 70: has_command_block
265
+ 71: command_block_command #string
266
+ 72: command_block_last_output #string
267
+ 73: command_block_track_output #byte
268
+ 74: controlling_rider_seat_number #byte
269
+ 75: strength #int
270
+ 76: max_strength #int
271
+ 77: evoker_spell_casting_color #int
272
+ 78: limited_life
273
+ 79: armor_stand_pose_index # int
274
+ 80: ender_crystal_time_offset # int
275
+ 81: always_show_nametag # byte
276
+ 82: color_2 # byte
277
+ 83: name_author
278
+ 84: score_tag #String
279
+ 85: balloon_attached_entity # long
280
+ 86: pufferfish_size
281
+ 87: bubble_time
282
+ 88: agent
283
+ 89: sitting_amount
284
+ 90: sitting_amount_previous
285
+ 91: eating_counter
286
+ 92: flags_extended
287
+ 93: laying_amount
288
+ 94: laying_amount_previous
289
+ 95: area_effect_cloud_duration
290
+ 96: area_effect_cloud_spawn_time
291
+ 97: area_effect_cloud_change_rate
292
+ 98: area_effect_cloud_change_on_pickup
293
+ 99: area_effect_cloud_pickup_count
294
+ 100: interact_text
295
+ 101: trade_tier
296
+ 102: max_trade_tier
297
+ 103: trade_experience
298
+ 104: skin_id
299
+ 105: spawning_frames
300
+ 106: command_block_tick_delay
301
+ 107: command_block_execute_on_first_tick
302
+ 108: ambient_sound_interval
303
+ 109: ambient_sound_interval_range
304
+ 110: ambient_sound_event_name
305
+ 111: fall_damage_multiplier
306
+ 112: name_raw_text
307
+ 113: can_ride_target
308
+ 114: low_tier_cured_discount
309
+ 115: high_tier_cured_discount
310
+ 116: nearby_cured_discount
311
+ 117: nearby_cured_discount_timestamp
312
+ 118: hitbox
313
+ 119: is_buoyant
314
+ 120: freezing_effect_strength
315
+ 121: buoyancy_data
316
+ 122: goat_horn_count
317
+ 123: update_properties
318
+ 124: movement_sound_distance_offset
319
+ 125: heartbeat_interval_ticks
320
+ 126: heartbeat_sound_event
321
+ 127: player_last_death_position
322
+ 128: player_last_death_dimension
323
+ 129: player_has_died
324
+ 130: collision_box
325
+ 131: visible_mob_effects # long
326
+ 132: filtered_name # string
327
+ 133: bed_enter_position # blockpos
328
+ 134: seat_third_person_camera_radius
329
+ 135: seat_camera_relax_distance_smoothing
330
+ 136: aim_assist_priority_preset_id
331
+ 137: aim_assist_priority_category_id
332
+ 138: aim_assist_priority_actor_id
333
+ 139: arrow_shooter_id
334
+ 140: firework_direction
335
+ 141: firework_shooter_id
336
+ type: varint =>
337
+ 0: byte
338
+ 1: short
339
+ 2: int
340
+ 3: float
341
+ 4: string
342
+ 5: compound
343
+ 6: vec3i
344
+ 7: long
345
+ 8: vec3f
346
+ value: key ?
347
+ if flags: MetadataFlags1
348
+ if flags_extended: MetadataFlags2
349
+ if seat_third_person_camera_radius: lf32
350
+ if seat_camera_relax_distance_smoothing: lf32
351
+ default: type ?
352
+ if byte: i8
353
+ if short: li16
354
+ if int: zigzag32
355
+ if float: lf32
356
+ if string: string
357
+ if compound: nbt
358
+ if vec3i: vec3i
359
+ if long: zigzag64
360
+ if vec3f: vec3f
361
+
362
+ MetadataFlags1: [ "bitflags", {
363
+ "type": "zigzag64",
364
+ "big": true,
365
+ "flags": [
366
+ "onfire",
367
+ "sneaking",
368
+ "riding",
369
+ "sprinting",
370
+ "action",
371
+ "invisible",
372
+ "tempted",
373
+ "inlove",
374
+ "saddled",
375
+ "powered",
376
+ "ignited",
377
+ "baby",
378
+ "converting",
379
+ "critical",
380
+ "can_show_nametag",
381
+ "always_show_nametag",
382
+ "no_ai",
383
+ "silent",
384
+ "wallclimbing",
385
+ "can_climb",
386
+ "swimmer",
387
+ "can_fly",
388
+ "walker",
389
+ "resting",
390
+ "sitting",
391
+ "angry",
392
+ "interested",
393
+ "charged",
394
+ "tamed",
395
+ "orphaned",
396
+ "leashed",
397
+ "sheared",
398
+ "gliding",
399
+ "elder",
400
+ "moving",
401
+ "breathing",
402
+ "chested",
403
+ "stackable",
404
+ "showbase",
405
+ "rearing",
406
+ "vibrating",
407
+ "idling",
408
+ "evoker_spell",
409
+ "charge_attack",
410
+ "wasd_controlled",
411
+ "can_power_jump",
412
+ "can_dash",
413
+ "linger",
414
+ "has_collision",
415
+ "affected_by_gravity",
416
+ "fire_immune",
417
+ "dancing",
418
+ "enchanted",
419
+ "show_trident_rope", # tridents show an animated rope when enchanted with loyalty after they are thrown and return to their owner. to be combined with data_owner_eid
420
+ "container_private", #inventory is private, doesn't drop contents when killed if true
421
+ "transforming",
422
+ "spin_attack",
423
+ "swimming",
424
+ "bribed", #dolphins have this set when they go to find treasure for the player
425
+ "pregnant",
426
+ "laying_egg",
427
+ "rider_can_pick", #???
428
+ "transition_sitting",
429
+ "eating",
430
+ "laying_down"
431
+ ]
432
+ }]
433
+
434
+ MetadataFlags2: [ "bitflags", {
435
+ "type": "zigzag64",
436
+ "big": true,
437
+ "flags": [
438
+ "sneezing",
439
+ "trusting",
440
+ "rolling",
441
+ "scared",
442
+ "in_scaffolding",
443
+ "over_scaffolding",
444
+ "fall_through_scaffolding",
445
+ "blocking", #shield
446
+ "transition_blocking",
447
+ "blocked_using_shield",
448
+ "blocked_using_damaged_shield",
449
+ "sleeping",
450
+ "wants_to_wake",
451
+ "trade_interest",
452
+ "door_breaker", #...
453
+ "breaking_obstruction",
454
+ "door_opener", #...
455
+ "illager_captain",
456
+ "stunned",
457
+ "roaring",
458
+ "delayed_attacking",
459
+ "avoiding_mobs",
460
+ "avoiding_block",
461
+ "facing_target_to_range_attack",
462
+ "hidden_when_invisible", #??????????????????
463
+ "is_in_ui",
464
+ "stalking",
465
+ "emoting",
466
+ "celebrating",
467
+ "admiring",
468
+ "celebrating_special",
469
+ "unknown95", # 95
470
+ "ram_attack",
471
+ "playing_dead",
472
+ "in_ascendable_block",
473
+ "over_descendable_block",
474
+ "croaking",
475
+ "eat_mob",
476
+ "jump_goal_jump",
477
+ "emerging",
478
+ "sniffing",
479
+ "digging",
480
+ "sonic_boom",
481
+ "has_dash_cooldown",
482
+ "push_towards_closest_space",
483
+ "scenting",
484
+ "rising",
485
+ "feeling_happy",
486
+ "searching",
487
+ "crawling",
488
+ "timer_flag_1",
489
+ "timer_flag_2",
490
+ "timer_flag_3",
491
+ "body_rotation_blocked",
492
+ "render_when_invisible",
493
+ "body_rotation_axis_aligned",
494
+ "collidable",
495
+ "wasd_air_controlled",
496
+ "does_server_auth_only_dismount",
497
+ "body_rotation_always_follows_head",
498
+ "can_use_vertical_movement_action",
499
+ "rotation_locked_to_vehicle"
500
+ ]
501
+ }]
502
+
503
+ Link:
504
+ ridden_entity_id: zigzag64
505
+ rider_entity_id: zigzag64
506
+ type: u8
507
+ immediate: bool
508
+ rider_initiated: bool
509
+ # angular velocity of the vehicle that the rider is riding.
510
+ angular_velocity: lf32
511
+
512
+ Links: Link[]varint
513
+
514
+ EntityAttributes: []varint
515
+ name: string
516
+ min: lf32
517
+ value: lf32
518
+ max: lf32
519
+
520
+ EntityProperties:
521
+ ints: []varint
522
+ index: varint
523
+ value: zigzag32
524
+ floats: []varint
525
+ index: varint
526
+ value: lf32
527
+
528
+ Rotation:
529
+ yaw: byterot
530
+ pitch: byterot
531
+ head_yaw: byterot
532
+
533
+ BlockCoordinates: # mojang...
534
+ x: zigzag32
535
+ y: zigzag32
536
+ z: zigzag32
537
+
538
+ PlayerAttributes: []varint
539
+ min: lf32
540
+ max: lf32
541
+ current: lf32
542
+ default_min: lf32
543
+ default_max: lf32
544
+ default: lf32
545
+ name: string
546
+ modifiers: []varint
547
+ id: string
548
+ name: string
549
+ amount: lf32
550
+ operation: li32
551
+ operand: li32
552
+ serializable: bool
553
+
554
+ # UseItemTransactionData represents an inventory transaction data object sent when the client uses an item on
555
+ # a block. Also used in PlayerAuthoritativeInput packet
556
+ TransactionUseItem:
557
+ # ActionType is the type of the UseItem inventory transaction. It is one of the action types found above,
558
+ # and specifies the way the player interacted with the block.
559
+ action_type: varint =>
560
+ # Right click item use on a surface like placing a block
561
+ 0: click_block
562
+ # Start right click and hold style item use or potentially interact with nothing.
563
+ # If it is a usable item like food the server is expected to send a SetActorDataPacket with ActorFlags::USINGITEM along with the transaction response.
564
+ # While using an item, movement speed is slowed which will be reflected in the move vector in Player Auth Input.
565
+ 1: click_air
566
+ # Block breaking like left click. When using server auth block breaking as specified in StartGamePacket this is never sent.
567
+ # Instead, block actions are supplied in Player Auth Input.
568
+ 2: break_block
569
+ 3: attack
570
+ # TriggerType is the type of the trigger that caused the inventory transaction. It is one of the trigger
571
+ # types found in the constants above. If TriggerType is TriggerTypePlayerInput, the transaction is from
572
+ # the initial input of the player. If it is TriggerTypeSimulationTick, the transaction is from a simulation
573
+ # tick when the player is holding down the input.
574
+ trigger_type: varint =>
575
+ - unknown
576
+ - player_input
577
+ - simulation_tick
578
+ # BlockPosition is the position of the block that was interacted with. This is only really a correct
579
+ # block position if ActionType is not UseItemActionClickAir.
580
+ block_position: BlockCoordinates
581
+ # BlockFace is the face of the block that was interacted with. When clicking the block, it is the face
582
+ # clicked. When breaking the block, it is the face that was last being hit until the block broke.
583
+ face: zigzag32
584
+ # HotBarSlot is the hot bar slot that the player was holding while clicking the block. It should be used
585
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
586
+ hotbar_slot: zigzag32
587
+ # HeldItem is the item that was held to interact with the block. The server should check if this item
588
+ # is actually present in the HotBarSlot.
589
+ held_item: Item
590
+ # Position is the position of the player at the time of interaction. For clicking a block, this is the
591
+ # position at that time, whereas for breaking the block it is the position at the time of breaking.
592
+ player_pos: vec3f
593
+ # ClickedPosition is the position that was clicked relative to the block's base coordinate. It can be
594
+ # used to find out exactly where a player clicked the block.
595
+ click_pos: vec3f
596
+ # BlockRuntimeID is the runtime ID of the block that was clicked. It may be used by the server to verify
597
+ # that the player's world client-side is synchronised with the server's.
598
+ block_runtime_id: varint
599
+ # ClientPrediction is the client's prediction on the output of the transaction.
600
+ client_prediction: varint =>
601
+ - failure
602
+ - success
603
+ client_cooldown_state: u8 =>
604
+ 0: off
605
+ 1: on
606
+
607
+ # Actions is a list of actions that took place, that form the inventory transaction together. Each of
608
+ # these actions hold one slot in which one item was changed to another. In general, the combination of
609
+ # all of these actions results in a balanced inventory transaction. This should be checked to ensure that
610
+ # no items are cheated into the inventory.
611
+ TransactionActions: []varint
612
+ source_type: varint =>
613
+ 0: container
614
+ 1: global
615
+ 2: world_interaction
616
+ 3: creative
617
+ 100: craft_slot
618
+ 99999: craft
619
+ _: source_type?
620
+ if container or craft:
621
+ inventory_id: WindowIDZigzag32
622
+ if world_interaction:
623
+ flags: varint
624
+ if craft or craft_slot:
625
+ action: varint
626
+ default: void
627
+ slot: varint
628
+ old_item: Item
629
+ new_item: Item
630
+
631
+ # The Minecraft bedrock inventory system was refactored, but not all inventory actions use the new packet.
632
+ # This data structure holds actions that have not been updated to the new system.
633
+ TransactionLegacy:
634
+ # LegacyRequestID is an ID that is only non-zero at times when sent by the client. The server should
635
+ # always send 0 for this. When this field is not 0, the LegacySetItemSlots slice below will have values
636
+ # in it.
637
+ # LegacyRequestID ties in with the ItemStackResponse packet. If this field is non-0, the server should
638
+ # respond with an ItemStackResponse packet. Some inventory actions such as dropping an item out of the
639
+ # hotbar are still one using this packet, and the ItemStackResponse packet needs to tie in with it.
640
+ legacy_request_id: zigzag32
641
+ # `legacy_transactions` are only present if the LegacyRequestID is non-zero. These item slots inform the
642
+ # server of the slots that were changed during the inventory transaction, and the server should send
643
+ # back an ItemStackResponse packet with these slots present in it. (Or false with no slots, if rejected.)
644
+ legacy_transactions: legacy_request_id?
645
+ if 0: void
646
+ default: []varint
647
+ container_id: u8
648
+ changed_slots: []varint
649
+ slot_id: u8
650
+
651
+ Transaction:
652
+ # Old transaction system data
653
+ legacy: TransactionLegacy
654
+ # What type of transaction took place
655
+ transaction_type: varint =>
656
+ # Sent for container UI operations depending on if ItemStackNetManager is enabled
657
+ 0: normal
658
+ # Sent from server to client to reject a transaction
659
+ 1: inventory_mismatch
660
+ # Sent for a player performing right click style item use.
661
+ # See the contained ItemUseInventoryTransaction::ActionType for the expected use case.
662
+ 2: item_use
663
+ # Sent for a player right clicking on an entity or attacking them.
664
+ # See ItemUseInventoryTransaction::ActionType for which it is.
665
+ 3: item_use_on_entity
666
+ # Sent when releasing right click on a chargeable item like a bow or finishing charging like a crossbow.
667
+ # This is different than canceling item use early which would be in Player Auth Input.
668
+ # See ItemReleaseInventoryTransaction::ActionType for which it is.
669
+ 4: item_release
670
+ # The list of inventory internal actions in this packet, e.g. inventory GUI actions
671
+ actions: TransactionActions
672
+ # Extra data if an intenal inventory transaction did not take place, e.g. use of an item
673
+ transaction_data: transaction_type?
674
+ if normal or inventory_mismatch: void
675
+ # UseItemTransactionData represents an inventory transaction data object sent when the client uses an item on
676
+ # a block.
677
+ if item_use: TransactionUseItem
678
+ # UseItemOnEntityTransactionData represents an inventory transaction data object sent when the client uses
679
+ # an item on an entity.
680
+ if item_use_on_entity:
681
+ # TargetEntityRuntimeID is the entity runtime ID of the target that was clicked. It is the runtime ID
682
+ # that was assigned to it in the AddEntity packet.
683
+ entity_runtime_id: varint64
684
+ # ActionType is the type of the UseItemOnEntity inventory transaction. It is one of the action types
685
+ # found in the constants above, and specifies the way the player interacted with the entity.
686
+ action_type: varint =>
687
+ # Right click interact with actor.
688
+ 0: interact
689
+ # Left click style attack of actor or elytra spin attack. Server is expected to deal damage to the entity with visuals.
690
+ 1: attack
691
+ # HotBarSlot is the hot bar slot that the player was holding while clicking the entity. It should be used
692
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
693
+ hotbar_slot: zigzag32
694
+ # HeldItem is the item that was held to interact with the entity. The server should check if this item
695
+ # is actually present in the HotBarSlot.
696
+ held_item: Item
697
+ # Position is the position of the player at the time of clicking the entity.
698
+ player_pos: vec3f
699
+ # ClickedPosition is the position that was clicked relative to the entity's base coordinate. It can be
700
+ # used to find out exactly where a player clicked the entity.
701
+ click_pos: vec3f
702
+ # ReleaseItemTransactionData represents an inventory transaction data object sent when the client releases
703
+ # the item it was using, for example when stopping while eating or stopping the charging of a bow.
704
+ if item_release:
705
+ # ActionType is the type of the ReleaseItem inventory transaction. It is one of the action types found
706
+ # in the constants above, and specifies the way the item was released.
707
+ # As of 1.13, the ActionType is always 0. This field can be ignored, because releasing food (by consuming
708
+ # it) or releasing a bow (to shoot an arrow) is essentially the same.
709
+ action_type: varint =>
710
+ # Release right click and hold style item use, like firing a bow
711
+ 0: release
712
+ # Finish right click and hold style item use, like charging a crossbow
713
+ 1: consume
714
+ # HotBarSlot is the hot bar slot that the player was holding while releasing the item. It should be used
715
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
716
+ hotbar_slot: zigzag32
717
+ # HeldItem is the item that was released. The server should check if this item is actually present in the
718
+ # HotBarSlot.
719
+ held_item: Item
720
+ # HeadPosition is the position of the player's head at the time of releasing the item. This is used
721
+ # mainly for purposes such as spawning eating particles at that position.
722
+ head_pos: vec3f
723
+
724
+ ItemStacks: Item[]varint
725
+
726
+ RecipeIngredient:
727
+ type: u8 =>
728
+ 0: invalid
729
+ # DefaultItemDescriptor represents an item descriptor for regular items.
730
+ 1: int_id_meta
731
+ # MoLangItemDescriptor represents an item descriptor for items that use MoLang (e.g. behaviour packs).
732
+ 2: molang
733
+ # ItemTagItemDescriptor represents an item descriptor that uses item tagging. This should be used to reduce duplicative
734
+ # entries for items that can be grouped under a single tag.
735
+ 3: item_tag
736
+ # DeferredItemDescriptor represents an item descriptor that uses a namespace and metadata value to identify the item.
737
+ # There is no clear benefit of using this item descriptor.
738
+ 4: string_id_meta
739
+ # ComplexAliasItemDescriptor represents an item descriptor that uses a single name to identify the item. There is no
740
+ # clear benefit of using this item descriptor and only seem to be used for specific recipes.
741
+ 5: complex_alias
742
+ _: type ?
743
+ if int_id_meta:
744
+ # NetworkID is the numerical network ID of the item. This is sometimes a positive ID, and sometimes a
745
+ # negative ID, depending on what item it concerns.
746
+ network_id: li16
747
+ metadata: network_id ?
748
+ if 0: void
749
+ default: li16
750
+ if molang:
751
+ # Expression represents the MoLang expression used to identify the item/it's associated tag.
752
+ expression: string
753
+ # Version represents the version of MoLang to use.
754
+ version: u8
755
+ if item_tag:
756
+ # Tag represents the tag that the item is part of.
757
+ tag: string
758
+ if string_id_meta:
759
+ # Name is the name of the item, which is a name like 'minecraft:stick'.
760
+ name: string
761
+ # MetadataValue is the metadata value of the item. For some items, this is the damage value, whereas for
762
+ # other items it is simply an identifier of a variant of the item.
763
+ metadata: li16
764
+ if complex_alias:
765
+ # Name is the name of the item, which is a name like 'minecraft:stick'.
766
+ name: string
767
+ count: zigzag32
768
+
769
+ PotionTypeRecipes: []varint
770
+ input_item_id: zigzag32
771
+ input_item_meta: zigzag32
772
+ ingredient_id: zigzag32
773
+ ingredient_meta: zigzag32
774
+ output_item_id: zigzag32
775
+ output_item_meta: zigzag32
776
+
777
+ PotionContainerChangeRecipes: []varint
778
+ input_item_id: zigzag32
779
+ ingredient_id: zigzag32
780
+ output_item_id: zigzag32
781
+
782
+ Recipes: []varint
783
+ type: zigzag32 =>
784
+ 0: shapeless #'ENTRY_SHAPELESS',
785
+ 1: shaped #'ENTRY_SHAPED',
786
+ 2: furnace # 'ENTRY_FURNACE',
787
+ # `furnace_with_metadata` is a recipe specifically used for furnace-type crafting stations. It is equal to
788
+ # `furnace`, except it has an input item with a specific metadata value, instead of any metadata value.
789
+ 3: furnace_with_metadata # 'ENTRY_FURNACE_DATA', // has metadata
790
+ 4: multi #'ENTRY_MULTI', //TODO
791
+ 5: shulker_box #'ENTRY_SHULKER_BOX', //TODO
792
+ 6: shapeless_chemistry #'ENTRY_SHAPELESS_CHEMISTRY', //TODO
793
+ 7: shaped_chemistry #'ENTRY_SHAPED_CHEMISTRY', //TODO
794
+ # SmithingTransformRecipe is a recipe specifically used for smithing tables. It has two input items and adds them
795
+ # together, resulting in a new item.
796
+ 8: smithing_transform
797
+ 9: smithing_trim
798
+ recipe: type?
799
+ if shapeless or shulker_box or shapeless_chemistry:
800
+ recipe_id: LatinString
801
+ input: RecipeIngredient[]varint
802
+ output: ItemLegacy[]varint
803
+ uuid: uuid
804
+ block: string
805
+ priority: zigzag32
806
+ unlocking_requirement: RecipeUnlockingRequirement
807
+ network_id: varint
808
+ if shaped or shaped_chemistry:
809
+ recipe_id: LatinString
810
+ width: zigzag32
811
+ height: zigzag32
812
+ # 2D input array, size of width*height
813
+ input: []$width
814
+ _: RecipeIngredient[]$height
815
+ output: ItemLegacy[]varint
816
+ uuid: uuid
817
+ block: string
818
+ priority: zigzag32
819
+ assume_symmetry: bool
820
+ unlocking_requirement: RecipeUnlockingRequirement
821
+ network_id: varint
822
+ if furnace:
823
+ input_id: zigzag32
824
+ output: ItemLegacy
825
+ block: string
826
+ if furnace_with_metadata:
827
+ input_id: zigzag32
828
+ input_meta: zigzag32
829
+ output: ItemLegacy
830
+ block: string
831
+ if multi:
832
+ uuid: uuid
833
+ network_id: varint
834
+ if smithing_transform:
835
+ # RecipeID is a unique ID of the recipe. This ID must be unique amongst all other types of recipes too,
836
+ # but its functionality is not exactly known.
837
+ recipe_id: LatinString
838
+ template: RecipeIngredient
839
+ # Base is the item that the Addition is being applied to in the smithing table.
840
+ base: RecipeIngredient
841
+ # Addition is the item that is being added to the Base item to result in a modified item.
842
+ addition: RecipeIngredient
843
+ # Result is the resulting item from the two items being added together.
844
+ result: ItemLegacy
845
+ # Tag is a serialized compound tag in the network little endian format.
846
+ tag: string
847
+ # RecipeNetworkID is a unique ID used to identify the recipe over network. Each recipe must have a unique
848
+ # network ID. Recommended is to just increment a variable for each unique recipe registered.
849
+ # This field must never be 0.
850
+ network_id: varint
851
+ if smithing_trim:
852
+ recipe_id: LatinString
853
+ template: RecipeIngredient
854
+ input: RecipeIngredient
855
+ addition: RecipeIngredient
856
+ block: string
857
+ network_id: varint
858
+
859
+ RecipeUnlockingRequirement:
860
+ context: u8 =>
861
+ - none
862
+ - always_unlocked
863
+ - player_in_water
864
+ - player_has_many_items
865
+ ingredients: context?
866
+ if none: RecipeIngredient[]varint
867
+
868
+ SkinImage:
869
+ width: li32
870
+ height: li32
871
+ data: ByteArray
872
+
873
+ Skin:
874
+ skin_id: string
875
+ play_fab_id: string
876
+ skin_resource_pack: string
877
+ skin_data: SkinImage
878
+ animations: []li32
879
+ skin_image: SkinImage
880
+ animation_type: li32
881
+ animation_frames: lf32
882
+ expression_type: lf32
883
+ cape_data: SkinImage
884
+ geometry_data: string
885
+ geometry_data_version: string
886
+ animation_data: string
887
+
888
+ cape_id: string
889
+ full_skin_id: string
890
+ arm_size: string
891
+ skin_color: string
892
+ personal_pieces: []li32
893
+ piece_id: string
894
+ piece_type: string
895
+ pack_id: string
896
+ is_default_piece: bool
897
+ product_id: string
898
+ piece_tint_colors: []li32
899
+ piece_type: string
900
+ colors: string[]li32
901
+ premium: bool
902
+ persona: bool
903
+ # PersonaCapeOnClassicSkin specifies if the skin had a Persona cape (in-game skin creator cape) equipped
904
+ # on a classic skin.
905
+ cape_on_classic: bool
906
+ primary_user: bool
907
+ overriding_player_appearance: bool
908
+
909
+ PlayerRecords:
910
+ type: u8 =>
911
+ 0: add
912
+ 1: remove
913
+ records_count: varint
914
+ records: []$records_count
915
+ _: type?
916
+ if add:
917
+ uuid: uuid
918
+ entity_unique_id: zigzag64
919
+ username: string
920
+ xbox_user_id: string
921
+ platform_chat_id: string
922
+ build_platform: li32
923
+ skin_data: Skin
924
+ is_teacher: bool
925
+ is_host: bool
926
+ is_subclient: bool
927
+ # PlayerColour is the colour of the player that is shown in UI elements, currently only used for the
928
+ # player locator bar.
929
+ player_color: li32
930
+ if remove:
931
+ uuid: uuid
932
+ verified: type ?
933
+ if add: bool[]$records_count
934
+
935
+ Enchant:
936
+ id: u8
937
+ level: u8
938
+
939
+ EnchantOption:
940
+ cost: varint
941
+ slot_flags: li32
942
+ equip_enchants: Enchant[]varint
943
+ held_enchants: Enchant[]varint
944
+ self_enchants: Enchant[]varint
945
+ name: string
946
+ option_id: zigzag32
947
+
948
+ Action: zigzag32 =>
949
+ 0: start_break
950
+ 1: abort_break
951
+ 2: stop_break
952
+ 3: get_updated_block
953
+ 4: drop_item
954
+ 5: start_sleeping
955
+ 6: stop_sleeping
956
+ 7: respawn
957
+ 8: jump
958
+ 9: start_sprint
959
+ 10: stop_sprint
960
+ 11: start_sneak
961
+ 12: stop_sneak
962
+ 13: creative_player_destroy_block
963
+ # sent when spawning in a different dimension to tell the server we spawned
964
+ 14: dimension_change_ack
965
+ 15: start_glide
966
+ 16: stop_glide
967
+ 17: build_denied
968
+ 18: crack_break
969
+ 19: change_skin
970
+ # no longer used
971
+ 20: set_enchatnment_seed
972
+ 21: swimming
973
+ 22: stop_swimming
974
+ 23: start_spin_attack
975
+ 24: stop_spin_attack
976
+ 25: interact_block
977
+ 26: predict_break
978
+ 27: continue_break
979
+ 28: start_item_use_on
980
+ 29: stop_item_use_on
981
+ 30: handled_teleport
982
+ 31: missed_swing
983
+ 32: start_crawling
984
+ 33: stop_crawling
985
+ 34: start_flying
986
+ 35: stop_flying
987
+ # Deprecated. Corresponds to Player Auth Input InputData::ClientAckServerData bit 44 Not sent when using server authoritative movement as specified in StartGamePacket. This is now deprecated because only server authoritative movement exists.
988
+ 36: received_server_data
989
+ 37: start_using_item
990
+
991
+ # Source and Destination point to the source slot from which Count of the item stack were taken and the
992
+ # destination slot to which this item was moved.
993
+ StackRequestSlotInfo:
994
+ # ContainerID is the ID of the container that the slot was in.
995
+ slot_type: FullContainerName
996
+ # Slot is the index of the slot within the container with the ContainerID above.
997
+ slot: u8
998
+ # StackNetworkID is the unique stack ID that the client assumes to be present in this slot. The server
999
+ # must check if these IDs match. If they do not match, servers should reject the stack request that the
1000
+ # action holding this info was in.
1001
+ stack_id: zigzag32
1002
+
1003
+ # ItemStackRequest is sent by the client to change item stacks in an inventory. It is essentially a
1004
+ # replacement of the InventoryTransaction packet added in 1.16 for inventory specific actions, such as moving
1005
+ # items around or crafting. The InventoryTransaction packet is still used for actions such as placing blocks
1006
+ # and interacting with entities.
1007
+ ItemStackRequest:
1008
+ # RequestID is a unique ID for the request. This ID is used by the server to send a response for this
1009
+ # specific request in the ItemStackResponse packet.
1010
+ request_id: zigzag32
1011
+ actions: []varint
1012
+ type_id: u8 =>
1013
+ # TakeStackRequestAction is sent by the client to the server to take x amount of items from one slot in a
1014
+ # container to the cursor.
1015
+ - take
1016
+ # PlaceStackRequestAction is sent by the client to the server to place x amount of items from one slot into
1017
+ # another slot, such as when shift clicking an item in the inventory to move it around or when moving an item
1018
+ # in the cursor into a slot.
1019
+ - place
1020
+ # SwapStackRequestAction is sent by the client to swap the item in its cursor with an item present in another
1021
+ # container. The two item stacks swap places.
1022
+ - swap
1023
+ # DropStackRequestAction is sent by the client when it drops an item out of the inventory when it has its
1024
+ # inventory opened. This action is not sent when a player drops an item out of the hotbar using the Q button
1025
+ # (or the equivalent on mobile). The InventoryTransaction packet is still used for that action, regardless of
1026
+ # whether the item stack network IDs are used or not.
1027
+ - drop
1028
+ # DestroyStackRequestAction is sent by the client when it destroys an item in creative mode by moving it
1029
+ # back into the creative inventory.
1030
+ - destroy
1031
+ # ConsumeStackRequestAction is sent by the client when it uses an item to craft another item. The original
1032
+ # item is 'consumed'.
1033
+ - consume
1034
+ # CreateStackRequestAction is sent by the client when an item is created through being used as part of a
1035
+ # recipe. For example, when milk is used to craft a cake, the buckets are leftover. The buckets are moved to
1036
+ # the slot sent by the client here.
1037
+ # Note that before this is sent, an action for consuming all items in the crafting table/grid is sent. Items
1038
+ # that are not fully consumed when used for a recipe should not be destroyed there, but instead, should be
1039
+ # turned into their respective resulting items.
1040
+ - create
1041
+ # (as of 1.18.10) Not currently used
1042
+ - place_in_container
1043
+ # (as of 1.18.10) Not currently used
1044
+ - take_out_container
1045
+ # LabTableCombineStackRequestAction is sent by the client when it uses a lab table to combine item stacks.
1046
+ - lab_table_combine
1047
+ # BeaconPaymentStackRequestAction is sent by the client when it submits an item to enable effects from a
1048
+ # beacon. These items will have been moved into the beacon item slot in advance.
1049
+ - beacon_payment
1050
+ # MineBlockStackRequestAction is sent by the client when it breaks a block.
1051
+ - mine_block
1052
+ # CraftRecipeStackRequestAction is sent by the client the moment it begins crafting an item. This is the
1053
+ # first action sent, before the Consume and Create item stack request actions.
1054
+ # This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as
1055
+ # crafting, where the old item is consumed.
1056
+ - craft_recipe
1057
+ # AutoCraftRecipeStackRequestAction is sent by the client similarly to the CraftRecipeStackRequestAction. The
1058
+ # only difference is that the recipe is automatically created and crafted by shift clicking the recipe book.
1059
+ - craft_recipe_auto #recipe book?
1060
+ # CraftCreativeStackRequestAction is sent by the client when it takes an item out fo the creative inventory.
1061
+ # The item is thus not really crafted, but instantly created.
1062
+ - craft_creative
1063
+ # CraftRecipeOptionalStackRequestAction is sent when using an anvil. When this action is sent, the
1064
+ # CustomNames field in the respective stack request is non-empty and contains the name of the item created
1065
+ # using the anvil.
1066
+ - optional
1067
+ # CraftGrindstoneRecipeStackRequestAction is sent when a grindstone recipe is crafted. It contains the RecipeNetworkID
1068
+ # to identify the recipe crafted, and the cost for crafting the recipe.
1069
+ - craft_grindstone_request
1070
+ # CraftLoomRecipeStackRequestAction is sent when a loom recipe is crafted. It simply contains the
1071
+ # pattern identifier to figure out what pattern is meant to be applied to the item.
1072
+ - craft_loom_request
1073
+ # CraftNonImplementedStackRequestAction is an action sent for inventory actions that aren't yet implemented
1074
+ # in the new system. These include, for example, anvils.
1075
+ - non_implemented # anvils aren't fully implemented yet
1076
+ # CraftResultsDeprecatedStackRequestAction is an additional, deprecated packet sent by the client after
1077
+ # crafting. It holds the final results and the amount of times the recipe was crafted. It shouldn't be used.
1078
+ # This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as
1079
+ # crafting, where the old item is consumed.
1080
+ - results_deprecated
1081
+ _: type_id ?
1082
+ if take or place or place_in_container or take_out_container:
1083
+ count: u8
1084
+ source: StackRequestSlotInfo
1085
+ destination: StackRequestSlotInfo
1086
+ if swap:
1087
+ # Source and Destination point to the source slot from which Count of the item stack were taken and the
1088
+ # destination slot to which this item was moved.
1089
+ source: StackRequestSlotInfo
1090
+ destination: StackRequestSlotInfo
1091
+ if drop:
1092
+ # Count is the count of the item in the source slot that was taken towards the destination slot.
1093
+ count: u8
1094
+ # Source is the source slot from which items were dropped to the ground.
1095
+ source: StackRequestSlotInfo
1096
+ # Randomly seems to be set to false in most cases. I'm not entirely sure what this does, but this is what
1097
+ # vanilla calls this field.
1098
+ randomly: bool
1099
+ if destroy or consume:
1100
+ # Count is the count of the item in the source slot that was destroyed.
1101
+ count: u8
1102
+ # Source is the source slot from which items came that were destroyed by moving them into the creative
1103
+ # inventory.
1104
+ source: StackRequestSlotInfo
1105
+ if create:
1106
+ # ResultsSlot is the slot in the inventory in which the results of the crafting ingredients are to be
1107
+ # placed.
1108
+ result_slot_id: u8
1109
+ if beacon_payment:
1110
+ # PrimaryEffect and SecondaryEffect are the effects that were selected from the beacon.
1111
+ primary_effect: zigzag32
1112
+ secondary_effect: zigzag32
1113
+ if mine_block:
1114
+ # Current hotbar slot
1115
+ hotbar_slot: zigzag32
1116
+ # PredictedDurability is the durability of the item that the client assumes to be present at the time
1117
+ predicted_durability: zigzag32
1118
+ # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server
1119
+ # must check if these IDs match. If they do not match, servers should reject the stack request that the
1120
+ # action holding this info was in.
1121
+ network_id: zigzag32
1122
+ if craft_recipe:
1123
+ # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches
1124
+ # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as
1125
+ # of 1.16.
1126
+ recipe_network_id: varint
1127
+ times_crafted: u8
1128
+ if craft_recipe_auto:
1129
+ # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches
1130
+ # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as
1131
+ recipe_network_id: varint
1132
+ # TODO: Duplicate field?
1133
+ times_crafted_2: u8
1134
+ times_crafted: u8
1135
+ ingredients: RecipeIngredient[]varint
1136
+ if craft_creative:
1137
+ # The stack ID of the creative item that is being created. This is one of the
1138
+ # creative item stack IDs sent in the CreativeContent packet.
1139
+ item_id: varint
1140
+ times_crafted: u8
1141
+ if optional:
1142
+ # For the cartography table, if a certain MULTI recipe is being called, this points to the network ID that was assigned.
1143
+ recipe_network_id: varint
1144
+ # Most likely the index in the request's filter strings that this action is using
1145
+ filtered_string_index: li32
1146
+ if craft_grindstone_request:
1147
+ # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches
1148
+ # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as
1149
+ recipe_network_id: varint
1150
+ # NumberOfCrafts is how many times the recipe was crafted. This field appears to be boilerplate and
1151
+ # has no effect.
1152
+ times_crafted: u8
1153
+ # Cost is the cost of the recipe that was crafted.
1154
+ cost: varint
1155
+ if craft_loom_request:
1156
+ # Pattern is the pattern identifier for the loom recipe.
1157
+ pattern: string
1158
+ # TimesCrafted is how many times the recipe was crafted.
1159
+ times_crafted: u8
1160
+ if non_implemented: void
1161
+ if results_deprecated:
1162
+ result_items: ItemLegacy[]varint
1163
+ times_crafted: u8
1164
+ # CustomNames is a list of custom names involved in the request. This is typically filled with one string
1165
+ # when an anvil is used.
1166
+ # * Used for the server to determine which strings should be filtered. Used in anvils to verify a renamed item.
1167
+ custom_names: string[]varint
1168
+ # FilterCause represents the cause of any potential filtering. This is one of the constants above.
1169
+ cause: li32 =>
1170
+ - chat_public
1171
+ - chat_whisper
1172
+ - sign_text
1173
+ - anvil_text
1174
+ - book_and_quill_text
1175
+ - command_block_text
1176
+ - block_actor_data_text
1177
+ - join_event_text
1178
+ - leave_event_text
1179
+ - slash_command_chat
1180
+ - cartography_text
1181
+ - kick_command
1182
+ - title_command
1183
+ - summon_command
1184
+
1185
+
1186
+ # ItemStackResponse is a response to an individual ItemStackRequest.
1187
+ ItemStackResponses: []varint
1188
+ # Status specifies if the request with the RequestID below was successful. If this is the case, the
1189
+ # ContainerInfo below will have information on what slots ended up changing. If not, the container info
1190
+ # will be empty.
1191
+ # A non-0 status means an error occurred and will result in the action being reverted.
1192
+ status: u8 =>
1193
+ 0: ok
1194
+ 1: error
1195
+ # RequestID is the unique ID of the request that this response is in reaction to. If rejected, the client
1196
+ # will undo the actions from the request with this ID.
1197
+ request_id: zigzag32
1198
+ _: status ?
1199
+ if ok:
1200
+ # ContainerInfo holds information on the containers that had their contents changed as a result of the
1201
+ # request.
1202
+ containers: []varint
1203
+ # ContainerID is the container ID of the container that the slots that follow are in. For the main
1204
+ # inventory, this value seems to be 0x1b. For the cursor, this value seems to be 0x3a. For the crafting
1205
+ # grid, this value seems to be 0x0d.
1206
+ # * actually, this is ContainerSlotType - used by the inventory system that specifies the type of slot
1207
+ slot_type: FullContainerName
1208
+ # SlotInfo holds information on what item stack should be present in specific slots in the container.
1209
+ slots: []varint
1210
+ # Slot and HotbarSlot seem to be the same value every time: The slot that was actually changed. I'm not
1211
+ # sure if these slots ever differ.
1212
+ slot: u8
1213
+ hotbar_slot: u8
1214
+ # Count is the total count of the item stack. This count will be shown client-side after the response is
1215
+ # sent to the client.
1216
+ count: u8
1217
+ # StackNetworkID is the network ID of the new stack at a specific slot.
1218
+ item_stack_id: zigzag32
1219
+ # CustomName is the custom name of the item stack. It is used in relation to text filtering.
1220
+ custom_name: string
1221
+ # FilteredCustomName is a filtered version of CustomName with all the profanity removed. The client will
1222
+ # use this over CustomName if this field is not empty and they have the "Filter Profanity" setting enabled.
1223
+ filtered_custom_name: string
1224
+ # DurabilityCorrection is the current durability of the item stack. This durability will be shown
1225
+ # client-side after the response is sent to the client.
1226
+ durability_correction: zigzag32
1227
+
1228
+
1229
+ CommandOrigin:
1230
+ # Origin is one of the values above that specifies the origin of the command. The origin may change,
1231
+ # depending on what part of the client actually called the command. The command may be issued by a
1232
+ # websocket server, for example.
1233
+ type: string
1234
+
1235
+ # UUID is the UUID of the command called. This UUID is a bit odd as it is not specified by the server. It
1236
+ # is not clear what exactly this UUID is meant to identify, but it is unique for each command called.
1237
+ uuid: uuid
1238
+ # RequestID is an ID that identifies the request of the client. The server should send a CommandOrigin
1239
+ # with the same request ID to ensure it can be matched with the request by the caller of the command.
1240
+ # This is especially important for websocket servers and it seems that this field is only non-empty for
1241
+ # these websocket servers.
1242
+ request_id: string
1243
+ # PlayerUniqueID is an ID that identifies the player, the same as the one found in the AdventureSettings
1244
+ # packet. Filling it out with 0 seems to work.
1245
+ # PlayerUniqueID is only written if Origin is CommandOriginDevConsole or CommandOriginTest.
1246
+ player_entity_id: li64
1247
+
1248
+ # MapTrackedObject is an object on a map that is 'tracked' by the client, such as an entity or a block. This
1249
+ # object may move, which is handled client-side.
1250
+ TrackedObject:
1251
+ # Type is the type of the tracked object. It is either MapObjectTypeEntity or MapObjectTypeBlock.
1252
+ type: li32 =>
1253
+ 0: entity
1254
+ 1: block
1255
+ # EntityUniqueID is the unique ID of the entity, if the tracked object was an entity. It needs not to be
1256
+ # filled out if Type is not MapObjectTypeEntity.
1257
+ entity_unique_id: type ?
1258
+ if entity: zigzag64
1259
+ # BlockPosition is the position of the block, if the tracked object was a block. It needs not to be
1260
+ # filled out if Type is not MapObjectTypeBlock.
1261
+ block_position: type ?
1262
+ if block: BlockCoordinates
1263
+
1264
+ # MapDecoration is a fixed decoration on a map: Its position or other properties do not change automatically
1265
+ # client-side.
1266
+ MapDecoration:
1267
+ type: u8 =>
1268
+ - marker_white
1269
+ - marker_green
1270
+ - marker_red
1271
+ - marker_blue
1272
+ - cross_white
1273
+ - triangle_red
1274
+ - square_white
1275
+ - marker_sign
1276
+ - marker_pink
1277
+ - marker_orange
1278
+ - marker_yellow
1279
+ - marker_teal
1280
+ - triangle_green
1281
+ - small_square_white
1282
+ - mansion
1283
+ - monument
1284
+ - no_draw
1285
+ - village_desert
1286
+ - village_plains
1287
+ - village_savanna
1288
+ - village_snowy
1289
+ - village_taiga
1290
+ - jungle_temple
1291
+ - witch_hut =>
1292
+ - marker_white
1293
+ - marker_green
1294
+ - marker_red
1295
+ - marker_blue
1296
+ - cross_white
1297
+ - triangle_red
1298
+ - square_white
1299
+ - marker_sign
1300
+ - marker_pink
1301
+ - marker_orange
1302
+ - marker_yellow
1303
+ - marker_teal
1304
+ - triangle_green
1305
+ - small_square_white
1306
+ - mansion
1307
+ - monument
1308
+ - no_draw
1309
+ - village_desert
1310
+ - village_plains
1311
+ - village_savanna
1312
+ - village_snowy
1313
+ - village_taiga
1314
+ - jungle_temple
1315
+ - witch_hut
1316
+ # Rotation is the rotation of the map decoration. It is byte due to the 16 fixed directions that the
1317
+ # map decoration may face.
1318
+ rotation: u8
1319
+ # X is the offset on the X axis in pixels of the decoration.
1320
+ x: u8
1321
+ # Y is the offset on the Y axis in pixels of the decoration.
1322
+ y: u8
1323
+ # Label is the name of the map decoration. This name may be of any value.
1324
+ label: string
1325
+ # Colour is the colour of the map decoration. Some map decoration types have a specific colour set
1326
+ # automatically, whereas others may be changed.
1327
+ color_abgr: varint
1328
+
1329
+
1330
+ StructureBlockSettings:
1331
+ # PaletteName is the name of the palette used in the structure. Currently, it seems that this field is
1332
+ # always 'default'.
1333
+ palette_name: string
1334
+ # IgnoreEntities specifies if the structure should ignore entities or include them. If set to false,
1335
+ # entities will also show up in the exported structure.
1336
+ ignore_entities: bool
1337
+ # IgnoreBlocks specifies if the structure should ignore blocks or include them. If set to false, blocks
1338
+ # will show up in the exported structure.
1339
+ ignore_blocks: bool
1340
+ non_ticking_players_and_ticking_areas: bool
1341
+ # Size is the size of the area that is about to be exported. The area exported will start at the
1342
+ # Position + Offset, and will extend as far as Size specifies.
1343
+ size: BlockCoordinates
1344
+ # Offset is the offset position that was set in the structure block. The area exported is offset by this
1345
+ # position.
1346
+ # **TODO**: This will be renamed to offset soon
1347
+ structure_offset: BlockCoordinates
1348
+ # LastEditingPlayerUniqueID is the unique ID of the player that last edited the structure block that
1349
+ # these settings concern.
1350
+ last_editing_player_unique_id: zigzag64
1351
+ # Rotation is the rotation that the structure block should obtain. See the constants above for available
1352
+ # options.
1353
+ rotation: u8 =>
1354
+ 0: none
1355
+ 1: 90_deg
1356
+ 2: 180_deg
1357
+ 3: 270_deg
1358
+ # Mirror specifies the way the structure should be mirrored. It is either no mirror at all, mirror on the
1359
+ # x/z axis or both.
1360
+ mirror: u8 =>
1361
+ 0: none
1362
+ 1: x_axis
1363
+ 2: z_axis
1364
+ 3: both_axes
1365
+ animation_mode: u8 =>
1366
+ 0: none
1367
+ 1: layers
1368
+ 2: blocks
1369
+ # How long the duration for this animation is
1370
+ animation_duration: lf32
1371
+ # Integrity is usually 1, but may be set to a number between 0 and 1 to omit blocks randomly, using
1372
+ # the Seed that follows.
1373
+ integrity: lf32
1374
+ # Seed is the seed used to omit blocks if Integrity is not equal to one. If the Seed is 0, a random
1375
+ # seed is selected to omit blocks.
1376
+ seed: lu32
1377
+ # Pivot is the pivot around which the structure may be rotated.
1378
+ pivot: vec3f
1379
+
1380
+ # EducationSharedResourceURI is an education edition feature that is used for transmitting
1381
+ # education resource settings to clients. It contains a button name and a link URL.
1382
+ EducationSharedResourceURI:
1383
+ # ButtonName is the button name of the resource URI.
1384
+ button_name: string
1385
+ # LinkURI is the link URI for the resource URI.
1386
+ link_uri: string
1387
+
1388
+ EducationExternalLinkSettings:
1389
+ # URL is the external link URL.
1390
+ url: string
1391
+ # DisplayName is the display name in game.
1392
+ display_name: string
1393
+
1394
+ BlockUpdate:
1395
+ position: BlockCoordinates
1396
+ runtime_id: varint
1397
+ flags: varint
1398
+ # EntityUniqueID is the unique ID of the falling block entity that the block transitions to or that the
1399
+ # entity transitions from.
1400
+ # Note that for both possible values for TransitionType, the EntityUniqueID should point to the falling
1401
+ # block entity involved.
1402
+ entity_unique_id: zigzag64
1403
+ # TransitionType is the type of the transition that happened. It is either BlockToEntityTransition, when
1404
+ # a block placed becomes a falling entity, or EntityToBlockTransition, when a falling entity hits the
1405
+ # ground and becomes a solid block again.
1406
+ transition_type: varint => TransitionType
1407
+
1408
+ TransitionType: =>
1409
+ # For falling sand, when a sand turns to an entity
1410
+ 0: entity
1411
+ # When sand turns back to a new block
1412
+ 1: create
1413
+ 2: destroy
1414
+
1415
+ MaterialReducer:
1416
+ mix: zigzag32
1417
+ items:
1418
+ network_id: zigzag32
1419
+ count: zigzag32
1420
+
1421
+ ## Permissions
1422
+
1423
+ # The permission level of a player, for example whether they are an Server Operator or not.
1424
+ PermissionLevel: u8 =>
1425
+ 0: visitor
1426
+ 1: member
1427
+ 2: operator
1428
+ 3: custom
1429
+
1430
+ # The command permission level, for example if being run by a Player, an Op, or a Command Block.
1431
+ CommandPermissionLevel: u8 =>
1432
+ 0: normal
1433
+ 1: operator
1434
+ 2: automation
1435
+ 3: host
1436
+ 4: owner
1437
+ 5: internal
1438
+
1439
+ # The command permission level, for example if being run by a Player, an Op, or a Command Block.
1440
+ CommandPermissionLevelVarint: u8 =>
1441
+ 0: normal
1442
+ 1: operator
1443
+ 2: automation
1444
+ 3: host
1445
+ 4: owner
1446
+ 5: internal
1447
+
1448
+ # List of Window IDs. When a new container is opened (container_open), a new sequential Window ID is created.
1449
+ # Below window IDs are hard-coded and created when the game starts and the server does not
1450
+ # send a `container_open` for them.
1451
+ WindowID_: =>
1452
+ -100: drop_contents
1453
+ -24: beacon
1454
+ -23: trading_output
1455
+ -22: trading_use_inputs
1456
+ -21: trading_input_2
1457
+ -20: trading_input_1
1458
+ -17: enchant_output
1459
+ -16: enchant_material
1460
+ -15: enchant_input
1461
+ -13: anvil_output
1462
+ -12: anvil_result
1463
+ -11: anvil_material
1464
+ -10: container_input
1465
+ -5: crafting_use_ingredient
1466
+ -4: crafting_result
1467
+ -3: crafting_remove_ingredient
1468
+ -2: crafting_add_ingredient
1469
+ -1: none
1470
+ 0: inventory
1471
+ 1: first
1472
+ 100: last
1473
+ 119: offhand
1474
+ 120: armor
1475
+ 121: creative
1476
+ 122: hotbar
1477
+ 123: fixed_inventory
1478
+ 124: ui
1479
+
1480
+ WindowID: i8 => WindowID_
1481
+ WindowIDVarint: varint => WindowID_
1482
+ WindowIDZigzag32: zigzag32 => WindowID_
1483
+
1484
+ WindowType: i8 =>
1485
+ -9: none
1486
+ -1: inventory
1487
+ 0: container
1488
+ 1: workbench
1489
+ 2: furnace
1490
+ 3: enchantment
1491
+ 4: brewing_stand
1492
+ 5: anvil
1493
+ 6: dispenser
1494
+ 7: dropper
1495
+ 8: hopper
1496
+ 9: cauldron
1497
+ 10: minecart_chest
1498
+ 11: minecart_hopper
1499
+ 12: horse
1500
+ 13: beacon
1501
+ 14: structure_editor
1502
+ 15: trading
1503
+ 16: command_block
1504
+ 17: jukebox
1505
+ 18: armor
1506
+ 19: hand
1507
+ 20: compound_creator
1508
+ 21: element_constructor
1509
+ 22: material_reducer
1510
+ 23: lab_table
1511
+ 24: loom
1512
+ 25: lectern
1513
+ 26: grindstone
1514
+ 27: blast_furnace
1515
+ 28: smoker
1516
+ 29: stonecutter
1517
+ 30: cartography
1518
+ 31: hud
1519
+ 32: jigsaw_editor
1520
+ 33: smithing_table
1521
+ 34: chest_boat
1522
+ 35: decorated_pot
1523
+ 36: crafter
1524
+
1525
+ # Used in inventory transactions.
1526
+ ContainerSlotType: u8 =>
1527
+ - anvil_input
1528
+ - anvil_material
1529
+ - anvil_result
1530
+ - smithing_table_input
1531
+ - smithing_table_material
1532
+ - smithing_table_result
1533
+ - armor
1534
+ - container
1535
+ - beacon_payment
1536
+ - brewing_input
1537
+ - brewing_result
1538
+ - brewing_fuel
1539
+ - hotbar_and_inventory
1540
+ - crafting_input
1541
+ - crafting_output
1542
+ - recipe_construction
1543
+ - recipe_nature
1544
+ - recipe_items
1545
+ - recipe_search
1546
+ - recipe_search_bar
1547
+ - recipe_equipment
1548
+ - recipe_book
1549
+ - enchanting_input
1550
+ - enchanting_lapis
1551
+ - furnace_fuel
1552
+ - furnace_ingredient
1553
+ - furnace_output
1554
+ - horse_equip
1555
+ - hotbar
1556
+ - inventory
1557
+ - shulker
1558
+ - trade_ingredient1
1559
+ - trade_ingredient2
1560
+ - trade_result
1561
+ - offhand
1562
+ - compcreate_input
1563
+ - compcreate_output
1564
+ - elemconstruct_output
1565
+ - matreduce_input
1566
+ - matreduce_output
1567
+ - labtable_input
1568
+ - loom_input
1569
+ - loom_dye
1570
+ - loom_material
1571
+ - loom_result
1572
+ - blast_furnace_ingredient
1573
+ - smoker_ingredient
1574
+ - trade2_ingredient1
1575
+ - trade2_ingredient2
1576
+ - trade2_result
1577
+ - grindstone_input
1578
+ - grindstone_additional
1579
+ - grindstone_result
1580
+ - stonecutter_input
1581
+ - stonecutter_result
1582
+ - cartography_input
1583
+ - cartography_additional
1584
+ - cartography_result
1585
+ - barrel
1586
+ - cursor
1587
+ - creative_output
1588
+ - smithing_table_template
1589
+ - crafter
1590
+ - dynamic
1591
+ - registry # 125
1592
+ - recipe_food
1593
+ - recipe_blocks
1594
+ - recipe_furnace_items
1595
+
1596
+ SoundType: varint =>
1597
+ - ItemUseOn
1598
+ - Hit
1599
+ - Step
1600
+ - Fly
1601
+ - Jump
1602
+ - Break
1603
+ - Place
1604
+ - HeavyStep
1605
+ - Gallop
1606
+ - Fall
1607
+ - Ambient
1608
+ - AmbientBaby
1609
+ - AmbientInWater
1610
+ - Breathe
1611
+ - Death
1612
+ - DeathInWater
1613
+ - DeathToZombie
1614
+ - Hurt
1615
+ - HurtInWater
1616
+ - Mad
1617
+ - Boost
1618
+ - Bow
1619
+ - SquishBig
1620
+ - SquishSmall
1621
+ - FallBig
1622
+ - FallSmall
1623
+ - Splash
1624
+ - Fizz
1625
+ - Flap
1626
+ - Swim
1627
+ - Drink
1628
+ - Eat
1629
+ - Takeoff
1630
+ - Shake
1631
+ - Plop
1632
+ - Land
1633
+ - Saddle
1634
+ - Armor
1635
+ - ArmorStandPlace
1636
+ - AddChest
1637
+ - Throw
1638
+ - Attack
1639
+ - AttackNoDamage
1640
+ - AttackStrong
1641
+ - Warn
1642
+ - Shear
1643
+ - Milk
1644
+ - Thunder
1645
+ - Explode
1646
+ - Fire
1647
+ - Ignite
1648
+ - Fuse
1649
+ - Stare
1650
+ - Spawn
1651
+ - Shoot
1652
+ - BreakBlock
1653
+ - Launch
1654
+ - Blast
1655
+ - LargeBlast
1656
+ - Twinkle
1657
+ - Remedy
1658
+ - Unfect
1659
+ - LevelUp
1660
+ - BowHit
1661
+ - BulletHit
1662
+ - ExtinguishFire
1663
+ - ItemFizz
1664
+ - ChestOpen
1665
+ - ChestClosed
1666
+ - ShulkerBoxOpen
1667
+ - ShulkerBoxClosed
1668
+ - EnderChestOpen
1669
+ - EnderChestClosed
1670
+ - PowerOn
1671
+ - PowerOff
1672
+ - Attach
1673
+ - Detach
1674
+ - Deny
1675
+ - Tripod
1676
+ - Pop
1677
+ - DropSlot
1678
+ - Note
1679
+ - Thorns
1680
+ - PistonIn
1681
+ - PistonOut
1682
+ - Portal
1683
+ - Water
1684
+ - LavaPop
1685
+ - Lava
1686
+ - Burp
1687
+ - BucketFillWater
1688
+ - BucketFillLava
1689
+ - BucketEmptyWater
1690
+ - BucketEmptyLava
1691
+ - ArmorEquipChain
1692
+ - ArmorEquipDiamond
1693
+ - ArmorEquipGeneric
1694
+ - ArmorEquipGold
1695
+ - ArmorEquipIron
1696
+ - ArmorEquipLeather
1697
+ - ArmorEquipElytra
1698
+ - Record13
1699
+ - RecordCat
1700
+ - RecordBlocks
1701
+ - RecordChirp
1702
+ - RecordFar
1703
+ - RecordMall
1704
+ - RecordMellohi
1705
+ - RecordStal
1706
+ - RecordStrad
1707
+ - RecordWard
1708
+ - Record11
1709
+ - RecordWait
1710
+ - StopRecord
1711
+ - Flop
1712
+ - GuardianCurse
1713
+ - MobWarning
1714
+ - MobWarningBaby
1715
+ - Teleport
1716
+ - ShulkerOpen
1717
+ - ShulkerClose
1718
+ - Haggle
1719
+ - HaggleYes
1720
+ - HaggleNo
1721
+ - HaggleIdle
1722
+ - ChorusGrow
1723
+ - ChorusDeath
1724
+ - Glass
1725
+ - PotionBrewed
1726
+ - CastSpell
1727
+ - PrepareAttackSpell
1728
+ - PrepareSummon
1729
+ - PrepareWololo
1730
+ - Fang
1731
+ - Charge
1732
+ - CameraTakePicture
1733
+ - LeashKnotPlace
1734
+ - LeashKnotBreak
1735
+ - AmbientGrowl
1736
+ - AmbientWhine
1737
+ - AmbientPant
1738
+ - AmbientPurr
1739
+ - AmbientPurreow
1740
+ - DeathMinVolume
1741
+ - DeathMidVolume
1742
+ - ImitateBlaze
1743
+ - ImitateCaveSpider
1744
+ - ImitateCreeper
1745
+ - ImitateElderGuardian
1746
+ - ImitateEnderDragon
1747
+ - ImitateEnderman
1748
+ - ImitateEndermite
1749
+ - ImitateEvocationIllager
1750
+ - ImitateGhast
1751
+ - ImitateHusk
1752
+ - ImitateIllusionIllager
1753
+ - ImitateMagmaCube
1754
+ - ImitatePolarBear
1755
+ - ImitateShulker
1756
+ - ImitateSilverfish
1757
+ - ImitateSkeleton
1758
+ - ImitateSlime
1759
+ - ImitateSpider
1760
+ - ImitateStray
1761
+ - ImitateVex
1762
+ - ImitateVindicationIllager
1763
+ - ImitateWitch
1764
+ - ImitateWither
1765
+ - ImitateWitherSkeleton
1766
+ - ImitateWolf
1767
+ - ImitateZombie
1768
+ - ImitateZombiePigman
1769
+ - ImitateZombieVillager
1770
+ - EnderEyePlaced
1771
+ - EndPortalCreated
1772
+ - AnvilUse
1773
+ - BottleDragonBreath
1774
+ - PortalTravel
1775
+ - TridentHit
1776
+ - TridentReturn
1777
+ - TridentRiptide1
1778
+ - TridentRiptide2
1779
+ - TridentRiptide3
1780
+ - TridentThrow
1781
+ - TridentThunder
1782
+ - TridentHitGround
1783
+ - Default
1784
+ - FletchingTableUse
1785
+ - ElemConstructOpen
1786
+ - IceBombHit
1787
+ - BalloonPop
1788
+ - LtReactionIceBomb
1789
+ - LtReactionBleach
1790
+ - LtReactionElephantToothpaste
1791
+ - LtReactionElephantToothpaste2
1792
+ - LtReactionGlowStick
1793
+ - LtReactionGlowStick2
1794
+ - LtReactionLuminol
1795
+ - LtReactionSalt
1796
+ - LtReactionFertilizer
1797
+ - LtReactionFireball
1798
+ - LtReactionMagnesiumSalt
1799
+ - LtReactionMiscFire
1800
+ - LtReactionFire
1801
+ - LtReactionMiscExplosion
1802
+ - LtReactionMiscMystical
1803
+ - LtReactionMiscMystical2
1804
+ - LtReactionProduct
1805
+ - SparklerUse
1806
+ - GlowStickUse
1807
+ - SparklerActive
1808
+ - ConvertToDrowned
1809
+ - BucketFillFish
1810
+ - BucketEmptyFish
1811
+ - BubbleColumnUpwards
1812
+ - BubbleColumnDownwards
1813
+ - BubblePop
1814
+ - BubbleUpInside
1815
+ - BubbleDownInside
1816
+ - HurtBaby
1817
+ - DeathBaby
1818
+ - StepBaby
1819
+ - SpawnBaby
1820
+ - Born
1821
+ - TurtleEggBreak
1822
+ - TurtleEggCrack
1823
+ - TurtleEggHatched
1824
+ - LayEgg
1825
+ - TurtleEggAttacked
1826
+ - BeaconActivate
1827
+ - BeaconAmbient
1828
+ - BeaconDeactivate
1829
+ - BeaconPower
1830
+ - ConduitActivate
1831
+ - ConduitAmbient
1832
+ - ConduitAttack
1833
+ - ConduitDeactivate
1834
+ - ConduitShort
1835
+ - Swoop
1836
+ - BambooSaplingPlace
1837
+ - PreSneeze
1838
+ - Sneeze
1839
+ - AmbientTame
1840
+ - Scared
1841
+ - ScaffoldingClimb
1842
+ - CrossbowLoadingStart
1843
+ - CrossbowLoadingMiddle
1844
+ - CrossbowLoadingEnd
1845
+ - CrossbowShoot
1846
+ - CrossbowQuickChargeStart
1847
+ - CrossbowQuickChargeMiddle
1848
+ - CrossbowQuickChargeEnd
1849
+ - AmbientAggressive
1850
+ - AmbientWorried
1851
+ - CantBreed
1852
+ - ShieldBlock
1853
+ - LecternBookPlace
1854
+ - GrindstoneUse
1855
+ - Bell
1856
+ - CampfireCrackle
1857
+ - Roar
1858
+ - Stun
1859
+ - SweetBerryBushHurt
1860
+ - SweetBerryBushPick
1861
+ - CartographyTableUse
1862
+ - StonecutterUse
1863
+ - ComposterEmpty
1864
+ - ComposterFill
1865
+ - ComposterFillLayer
1866
+ - ComposterReady
1867
+ - BarrelOpen
1868
+ - BarrelClose
1869
+ - RaidHorn
1870
+ - LoomUse
1871
+ - AmbientInRaid
1872
+ - UicartographyTableUse
1873
+ - UistonecutterUse
1874
+ - UiloomUse
1875
+ - SmokerUse
1876
+ - BlastFurnaceUse
1877
+ - SmithingTableUse
1878
+ - Screech
1879
+ - Sleep
1880
+ - FurnaceUse
1881
+ - MooshroomConvert
1882
+ - MilkSuspiciously
1883
+ - Celebrate
1884
+ - JumpPrevent
1885
+ - AmbientPollinate
1886
+ - BeehiveDrip
1887
+ - BeehiveEnter
1888
+ - BeehiveExit
1889
+ - BeehiveWork
1890
+ - BeehiveShear
1891
+ - HoneybottleDrink
1892
+ - AmbientCave
1893
+ - Retreat
1894
+ - ConvertToZombified
1895
+ - Admire
1896
+ - StepLava
1897
+ - Tempt
1898
+ - Panic
1899
+ - Angry
1900
+ - AmbientMoodWarpedForest
1901
+ - AmbientMoodSoulsandValley
1902
+ - AmbientMoodNetherWastes
1903
+ - AmbientMoodBasaltDeltas
1904
+ - AmbientMoodCrimsonForest
1905
+ - RespawnAnchorCharge
1906
+ - RespawnAnchorDeplete
1907
+ - RespawnAnchorSetSpawn
1908
+ - RespawnAnchorAmbient
1909
+ - SoulEscapeQuiet
1910
+ - SoulEscapeLoud
1911
+ - RecordPigstep
1912
+ - LinkCompassToLodestone
1913
+ - UseSmithingTable
1914
+ - EquipNetherite
1915
+ - AmbientLoopWarpedForest
1916
+ - AmbientLoopSoulsandValley
1917
+ - AmbientLoopNetherWastes
1918
+ - AmbientLoopBasaltDeltas
1919
+ - AmbientLoopCrimsonForest
1920
+ - AmbientAdditionWarpedForest
1921
+ - AmbientAdditionSoulsandValley
1922
+ - AmbientAdditionNetherWastes
1923
+ - AmbientAdditionBasaltDeltas
1924
+ - AmbientAdditionCrimsonForest
1925
+ - SculkSensorPowerOn
1926
+ - SculkSensorPowerOff
1927
+ - BucketFillPowderSnow
1928
+ - BucketEmptyPowderSnow
1929
+ - PointedDripstoneCauldronDripWater
1930
+ - PointedDripstoneCauldronDripLava
1931
+ - PointedDripstoneDripWater
1932
+ - PointedDripstoneDripLava
1933
+ - CaveVinesPickBerries
1934
+ - BigDripleafTiltDown
1935
+ - BigDripleafTiltUp
1936
+ - CopperWaxOn
1937
+ - CopperWaxOff
1938
+ - Scrape
1939
+ - PlayerHurtDrown
1940
+ - PlayerHurtOnFire
1941
+ - PlayerHurtFreeze
1942
+ - UseSpyglass
1943
+ - StopUsingSpyglass
1944
+ - AmethystBlockChime
1945
+ - AmbientScreamer
1946
+ - HurtScreamer
1947
+ - DeathScreamer
1948
+ - MilkScreamer
1949
+ - JumpToBlock
1950
+ - PreRam
1951
+ - PreRamScreamer
1952
+ - RamImpact
1953
+ - RamImpactScreamer
1954
+ - SquidInkSquirt
1955
+ - GlowSquidInkSquirt
1956
+ - ConvertToStray
1957
+ - CakeAddCandle
1958
+ - ExtinguishCandle
1959
+ - AmbientCandle
1960
+ - BlockClick
1961
+ - BlockClickFail
1962
+ - SculkCatalystBloom
1963
+ - SculkShriekerShriek
1964
+ - WardenNearbyClose
1965
+ - WardenNearbyCloser
1966
+ - WardenNearbyClosest
1967
+ - WardenSlightlyAngry
1968
+ - RecordOtherside
1969
+ - Tongue
1970
+ - CrackIronGolem
1971
+ - RepairIronGolem
1972
+ - Listening
1973
+ - Heartbeat
1974
+ - HornBreak
1975
+ - _
1976
+ - SculkSpread
1977
+ - SculkCharge
1978
+ - SculkSensorPlace
1979
+ - SculkShriekerPlace
1980
+ - GoatCall0
1981
+ - GoatCall1
1982
+ - GoatCall2
1983
+ - GoatCall3
1984
+ - GoatCall4
1985
+ - GoatCall5
1986
+ - GoatCall6
1987
+ - GoatCall7
1988
+ - GoatCall8
1989
+ - GoatCall9
1990
+ - GoatHarmony0
1991
+ - GoatHarmony1
1992
+ - GoatHarmony2
1993
+ - GoatHarmony3
1994
+ - GoatHarmony4
1995
+ - GoatHarmony5
1996
+ - GoatHarmony6
1997
+ - GoatHarmony7
1998
+ - GoatHarmony8
1999
+ - GoatHarmony9
2000
+ - GoatMelody0
2001
+ - GoatMelody1
2002
+ - GoatMelody2
2003
+ - GoatMelody3
2004
+ - GoatMelody4
2005
+ - GoatMelody5
2006
+ - GoatMelody6
2007
+ - GoatMelody7
2008
+ - GoatMelody8
2009
+ - GoatMelody9
2010
+ - GoatBass0
2011
+ - GoatBass1
2012
+ - GoatBass2
2013
+ - GoatBass3
2014
+ - GoatBass4
2015
+ - GoatBass5
2016
+ - GoatBass6
2017
+ - GoatBass7
2018
+ - GoatBass8
2019
+ - GoatBass9
2020
+ - _
2021
+ - _
2022
+ - _
2023
+ - ImitateWarden
2024
+ - ListeningAngry
2025
+ - ItemGiven
2026
+ - ItemTaken
2027
+ - Disappeared
2028
+ - Reappeared
2029
+ - DrinkMilk
2030
+ - FrogspawnHatched
2031
+ - LaySpawn
2032
+ - FrogspawnBreak
2033
+ - SonicBoom
2034
+ - SonicCharge
2035
+ - SoundeventItemThrown
2036
+ - Record5
2037
+ - ConvertToFrog
2038
+ - RecordPlaying
2039
+ - EnchantingTableUse
2040
+ - StepSand
2041
+ - DashReady
2042
+ - BundleDropContents
2043
+ - BundleInsert
2044
+ - BundleRemoveOne
2045
+ - PressurePlateClickOff
2046
+ - PressurePlateClickOn
2047
+ - ButtonClickOff
2048
+ - ButtonClickOn
2049
+ - DoorOpen
2050
+ - DoorClose
2051
+ - TrapdoorOpen
2052
+ - TrapdoorClose
2053
+ - FenceGateOpen
2054
+ - FenceGateClose
2055
+ - Insert
2056
+ - Pickup
2057
+ - InsertEnchanted
2058
+ - PickupEnchanted
2059
+ - Brush
2060
+ - BrushCompleted
2061
+ - ShatterDecoratedPot
2062
+ - BreakDecoratedPot
2063
+ - SnifferEggCrack
2064
+ - SnifferEggHatched
2065
+ - WaxedSignInteractFail
2066
+ - RecordRelic
2067
+ - Bump
2068
+ - PumpkinCarve
2069
+ - ConvertHuskToZombie
2070
+ - PigDeath
2071
+ - HoglinZombified
2072
+ - AmbientUnderwaterEnter
2073
+ - AmbientUnderwaterExit
2074
+ - BottleFill
2075
+ - BottleEmpty
2076
+ - CrafterCraft
2077
+ - CrafterFail
2078
+ - DecoratedPotInsert
2079
+ - DecoratedPotInsertFail
2080
+ - CrafterDisableSlot
2081
+ - TrialSpawnerOpenShutter
2082
+ - TrialSpawnerEjectItem
2083
+ - TrialSpawnerDetectPlayer
2084
+ - TrialSpawnerSpawnMob
2085
+ - TrialSpawnerCloseShutter
2086
+ - TrialSpawnerAmbient
2087
+ - CopperBulbTurnOn
2088
+ - CopperBulbTurnOff
2089
+ - AmbientInAir
2090
+ - BreezeWindChargeBurst
2091
+ - ImitateBreeze
2092
+ - ArmadilloBrush
2093
+ - ArmadilloScuteDrop
2094
+ - EquipWolf
2095
+ - UnequipWolf
2096
+ - Reflect
2097
+ - VaultOpenShutter
2098
+ - VaultCloseShutter
2099
+ - VaultEjectItem
2100
+ - VaultInsertItem
2101
+ - VaultInsertItemFail
2102
+ - VaultAmbient
2103
+ - VaultActivate
2104
+ - VaultDeactive
2105
+ - HurtReduced
2106
+ - WindChargeBurst
2107
+ - ImitateBogged
2108
+ - WolfArmourCrack
2109
+ - WolfArmourBreak
2110
+ - WolfArmourRepair
2111
+ - MaceSmashAir
2112
+ - MaceSmashGround
2113
+ - TrialSpawnerChargeActivate
2114
+ - TrialSpawnerAmbientOminous
2115
+ - OminiousItemSpawnerSpawnItem
2116
+ - OminousBottleEndUse
2117
+ - MaceHeavySmashGround
2118
+ - OminousItemSpawnerSpawnItemBegin
2119
+ - _
2120
+ - ApplyEffectBadOmen
2121
+ - ApplyEffectRaidOmen
2122
+ - ApplyEffectTrialOmen
2123
+ - OminousItemSpawnerAboutToSpawnItem
2124
+ - RecordCreator
2125
+ - RecordCreatorMusicBox
2126
+ - RecordPrecipice
2127
+ - VaultRejectRewardedPlayer
2128
+ - ImitateDrowned
2129
+ - ImitateCreaking
2130
+ - BundleInsertFailed
2131
+ - SpongeAbsorb
2132
+ - _
2133
+ - BlockCreakingHeartTrail
2134
+ - CreakingHeartSpawn
2135
+ - Activate
2136
+ - Deactivate
2137
+ - Freeze
2138
+ - Unfreeze
2139
+ - Open
2140
+ - OpenLong
2141
+ - Close
2142
+ - CloseLong
2143
+ - ImitatePhantom
2144
+ - ImitateZoglin
2145
+ - ImitateGuardian
2146
+ - ImitateRavager
2147
+ - ImitatePillager
2148
+ - PlaceInWater
2149
+ - StateChange
2150
+ - ImitateHappyGhast
2151
+ - UniqueGeneric
2152
+ - RecordTears
2153
+ - TheEndLightFlash
2154
+ - LeadLeash
2155
+ - LeadUnleash
2156
+ - LeadBreak
2157
+ - Unsaddle
2158
+ - EquipCopper
2159
+ - RecordLavaChicken
2160
+ - PlaceItem
2161
+ - SingleItemSwap
2162
+ - MultiItemSwap
2163
+ - ItemEnchantLunge1
2164
+ - ItemEnchantLunge2
2165
+ - ItemEnchantLunge3
2166
+ - AttackCritical
2167
+ - ItemSpearAttackHit
2168
+ - ItemSpearAttackMiss
2169
+ - ItemWoodenSpearAttackHit
2170
+ - ItemWoodenSpearAttackMiss
2171
+ - ImitateParched
2172
+ - ImitateCamelHusk
2173
+ - ItemSpearUse
2174
+ - ItemWoodenSpearUse
2175
+ - SaddleInWater
2176
+ - ItemStoneSpearAttackHit
2177
+ - ItemIronSpearAttackHit
2178
+ - ItemCopperSpearAttackHit
2179
+ - ItemGoldenSpearAttackHit
2180
+ - ItemDiamondSpearAttackHit
2181
+ - ItemNetheriteSpearAttackHit
2182
+ - ItemStoneSpearAttackMiss
2183
+ - ItemIronSpearAttackMiss
2184
+ - ItemCopperSpearAttackMiss
2185
+ - ItemGoldenSpearAttackMiss
2186
+ - ItemDiamondSpearAttackMiss
2187
+ - ItemNetheriteSpearAttackMiss
2188
+ - ItemStoneSpearUse
2189
+ - ItemIronSpearUse
2190
+ - ItemCopperSpearUse
2191
+ - ItemGoldenSpearUse
2192
+ - ItemDiamondSpearUse
2193
+ - ItemNetheriteSpearUse
2194
+ - PauseGrowth
2195
+ - ResetGrowth
2196
+
2197
+ # TODO: remove?
2198
+ LegacyEntityType: li32 =>
2199
+ 10: chicken
2200
+ 11: cow
2201
+ 12: pig
2202
+ 13: sheep
2203
+ 14: wolf
2204
+ 15: villager
2205
+ 16: mooshroom
2206
+ 17: squid
2207
+ 18: rabbit
2208
+ 19: bat
2209
+ 20: iron_golem
2210
+ 21: snow_golem
2211
+ 22: ocelot
2212
+ 23: horse
2213
+ 24: donkey
2214
+ 25: mule
2215
+ 26: skeleton_horse
2216
+ 27: zombie_horse
2217
+ 28: polar_bear
2218
+ 29: llama
2219
+ 30: parrot
2220
+ 31: dolphin
2221
+ 32: zombie
2222
+ 33: creeper
2223
+ 34: skeleton
2224
+ 35: spider
2225
+ 36: zombie_pigman
2226
+ 37: slime
2227
+ 38: enderman
2228
+ 39: silverfish
2229
+ 40: cave_spider
2230
+ 41: ghast
2231
+ 42: magma_cube
2232
+ 43: blaze
2233
+ 44: zombie_villager
2234
+ 45: witch
2235
+ 46: stray
2236
+ 47: husk
2237
+ 48: wither_skeleton
2238
+ 49: guardian
2239
+ 50: elder_guardian
2240
+ 51: npc
2241
+ 52: wither
2242
+ 53: ender_dragon
2243
+ 54: shulker
2244
+ 55: endermite
2245
+ 56: agent # LEARN_TO_CODE_MASCOT
2246
+ 57: vindicator
2247
+ 58: phantom
2248
+ 61: armor_stand
2249
+ 62: tripod_camera
2250
+ 63: player
2251
+ 64: item
2252
+ 65: tnt
2253
+ 66: falling_block
2254
+ 67: moving_block
2255
+ 68: xp_bottle
2256
+ 69: xp_orb
2257
+ 70: eye_of_ender_signal
2258
+ 71: ender_crystal
2259
+ 72: fireworks_rocket
2260
+ 73: thrown_trident
2261
+ 74: turtle
2262
+ 75: cat
2263
+ 76: shulker_bullet
2264
+ 77: fishing_hook
2265
+ 78: chalkboard
2266
+ 79: dragon_fireball
2267
+ 80: arrow
2268
+ 81: snowball
2269
+ 82: egg
2270
+ 83: painting
2271
+ 84: minecart
2272
+ 85: fireball
2273
+ 86: splash_potion
2274
+ 87: ender_pearl
2275
+ 88: leash_knot
2276
+ 89: wither_skull
2277
+ 90: boat
2278
+ 91: wither_skull_dangerous
2279
+ 93: lightning_bolt
2280
+ 94: small_fireball
2281
+ 95: area_effect_cloud
2282
+ 96: hopper_minecart
2283
+ 97: tnt_minecart
2284
+ 98: chest_minecart
2285
+ 100: command_block_minecart
2286
+ 101: lingering_potion
2287
+ 102: llama_spit
2288
+ 103: evocation_fang
2289
+ 104: evocation_illager
2290
+ 105: vex
2291
+ 106: ice_bomb
2292
+ 107: balloon
2293
+ 108: pufferfish
2294
+ 109: salmon
2295
+ 110: drowned
2296
+ 111: tropicalfish
2297
+ 112: cod
2298
+ 113: panda
2299
+
2300
+ DeviceOS: li32 =>
2301
+ - Undefined
2302
+ - Android
2303
+ - IOS
2304
+ - OSX
2305
+ - FireOS
2306
+ # Deprecated
2307
+ - GearVR
2308
+ - Hololens
2309
+ - Win10
2310
+ - Win32
2311
+ - Dedicated
2312
+ - TVOS
2313
+ - Orbis
2314
+ - NintendoSwitch
2315
+ - Xbox
2316
+ - WindowsPhone
2317
+ - Linux
2318
+
2319
+
2320
+ AbilitySet: ["bitflags",
2321
+ {
2322
+ "type": "lu32",
2323
+ "flags": [
2324
+ "build",
2325
+ "mine",
2326
+ "doors_and_switches",
2327
+ "open_containers",
2328
+ "attack_players",
2329
+ "attack_mobs",
2330
+ "operator_commands",
2331
+ "teleport",
2332
+ "invulnerable",
2333
+ "flying",
2334
+ "may_fly",
2335
+ "instant_build",
2336
+ "lightning",
2337
+ "fly_speed",
2338
+ "walk_speed",
2339
+ "muted",
2340
+ "world_builder",
2341
+ "no_clip",
2342
+ "privileged_builder",
2343
+ "vertical_fly_speed",
2344
+ "count"
2345
+ ]
2346
+ }
2347
+ ]
2348
+
2349
+ # AbilityLayer represents the abilities of a specific layer, such as the base layer or the spectator layer.
2350
+ AbilityLayers:
2351
+ # Type represents the type of the layer. This is one of the AbilityLayerType constants defined above.
2352
+ type: lu16 =>
2353
+ - cache
2354
+ - base
2355
+ - spectator
2356
+ - commands
2357
+ - editor
2358
+ - loading_screen
2359
+ # The abilities that can be toggled between
2360
+ allowed: AbilitySet
2361
+ # The abilities that are currently active
2362
+ enabled: AbilitySet
2363
+ # FlySpeed is the default horizontal fly speed of the layer.
2364
+ fly_speed: lf32
2365
+ # VerticalFlySpeed is the default vertical fly speed of the layer.
2366
+ vertical_fly_speed: lf32
2367
+ # WalkSpeed is the default walk speed of the layer.
2368
+ walk_speed: lf32
2369
+
2370
+ CameraPresets:
2371
+ # Name is the name of the preset. Each preset must have their own unique name.
2372
+ name: string
2373
+ # Parent is the name of the preset that this preset extends upon. This can be left empty.
2374
+ parent: string
2375
+ position: Vec3fopts
2376
+ rotation: Vec2fopts
2377
+ # RotationSpeed is the speed at which the camera should rotate.
2378
+ rotation_speed?: lf32
2379
+ # SnapToTarget determines whether the camera should snap to the target entity or not.
2380
+ snap_to_target?: bool
2381
+ # horizontal_rotation_limit is the horizontal rotation limit of the camera.
2382
+ horizontal_rotation_limit?: vec2f
2383
+ # vertical_rotation_limit is the vertical rotation limit of the camera.
2384
+ vertical_rotation_limit?: vec2f
2385
+ # continue_targeting determines whether the camera should continue targeting the entity or not.
2386
+ continue_targeting?: bool
2387
+ # TrackingRadius is the radius around the camera that the aim assist should track targets.
2388
+ tracking_radius?: lf32
2389
+ # ViewOffset is only used in a follow_orbit camera and controls an offset based on a pivot point to the
2390
+ # player, causing it to be shifted in a certain direction.
2391
+ offset?: vec2f
2392
+ # EntityOffset controls the offset from the entity that the camera should be rendered at.
2393
+ entity_offset?: vec3f
2394
+ # Radius is only used in a follow_orbit camera and controls how far away from the player the camera should
2395
+ # be rendered.
2396
+ radius?: lf32
2397
+ yaw_limit_min?: lf32
2398
+ yaw_limit_max?: lf32
2399
+ ## TODO: make this an enum afer adding proper optional support inside pdefyaml
2400
+ audio_listener?: u8
2401
+ player_effects?: bool
2402
+ aim_assist?:
2403
+ # Preset is the ID of the preset that has previously been defined in the CameraAimAssistPresets packet.
2404
+ preset_id?: string
2405
+ target_mode?: li32 =>
2406
+ - angle
2407
+ - distance
2408
+ # Angle is the maximum angle around the playes's cursor that the aim assist should check for a target,
2409
+ # if `target_mode` is set to `angle`.
2410
+ angle?: vec2f
2411
+ # Distance is the maximum distance from the player's cursor should check for a target, if TargetMode is
2412
+ # set to target_mode distance.
2413
+ distance?: lf32
2414
+ control_scheme?: u8 =>
2415
+ - locked_player_relative_strafe
2416
+ - camera_relative
2417
+ - camera_relative_strafe
2418
+ - player_relative
2419
+ - player_relative_strafe
2420
+
2421
+
2422
+ # CameraRotationOption represents a rotation keyframe option for spline instructions.
2423
+ CameraRotationOption:
2424
+ # Value is the rotation value for the keyframe.
2425
+ value: vec3f
2426
+ # Time is the time of the keyframe within the spline.
2427
+ time: lf32
2428
+ has_ease_type: bool
2429
+ ease_type: has_ease_type ?
2430
+ if true: string
2431
+
2432
+ # CameraSplineInstruction represents a camera spline instruction definition.
2433
+ CameraSplineInstruction:
2434
+ # TotalTime is the total time for the spline animation.
2435
+ total_time: lf32
2436
+ has_spline_type: bool
2437
+ spline_type: has_spline_type ?
2438
+ if true: string
2439
+ # Curve is the list of curve points defining the spline.
2440
+ curve: vec3f[]varint
2441
+ # ProgressKeyFrames is a list of key frames for the spline progress.
2442
+ progress_key_frames: CameraProgressOption[]varint
2443
+ # RotationOptions is a list of rotation keyframes for the spline.
2444
+ rotation_options: CameraRotationOption[]varint
2445
+ spline_identifier?: string
2446
+ load_from_json?: bool
2447
+
2448
+ CameraProgressOption:
2449
+ value: lf32
2450
+ time: lf32
2451
+ has_ease_type: bool
2452
+ ease_type: has_ease_type ?
2453
+ if true: string
2454
+
2455
+ CameraSplineDefinition:
2456
+ name: string
2457
+ total_time: lf32
2458
+ spline_type?: string
2459
+ control_points: vec3f[]varint
2460
+ progress_key_frames: CameraProgressOption[]varint
2461
+ rotation_key_frames: CameraRotationOption[]varint
2462
+
2463
+ CameraAimAssistActorPriorityData:
2464
+ preset_index: li32
2465
+ category_index: li32
2466
+ actor_index: li32
2467
+ priority: li32
2468
+
2469
+ MemoryCategoryCounter:
2470
+ category: u8 =>
2471
+ - unknown
2472
+ - invalid_size_unknown
2473
+ - actor
2474
+ - actor_animation
2475
+ - actor_rendering
2476
+ - block_ticking_queues
2477
+ - biome_storage
2478
+ - cereal
2479
+ - circuit_system
2480
+ - client
2481
+ - commands
2482
+ - db_storage
2483
+ - debug
2484
+ - documentation
2485
+ - ecs_systems
2486
+ - fmod
2487
+ - fonts
2488
+ - im_gui
2489
+ - input
2490
+ - json_ui
2491
+ - json_ui_control_factory_json
2492
+ - json_ui_control_tree
2493
+ - json_ui_control_tree_control_element
2494
+ - json_ui_control_tree_populate_data_binding
2495
+ - json_ui_control_tree_populate_focus
2496
+ - json_ui_control_tree_populate_layout
2497
+ - json_ui_control_tree_populate_other
2498
+ - json_ui_control_tree_populate_sprite
2499
+ - json_ui_control_tree_populate_text
2500
+ - json_ui_control_tree_populate_tts
2501
+ - json_ui_control_tree_visibility
2502
+ - json_ui_create_ui
2503
+ - json_ui_defs
2504
+ - json_ui_layout_manager
2505
+ - json_ui_layout_manager_remove_dependencies
2506
+ - json_ui_layout_manager_init_variable
2507
+ - languages
2508
+ - level
2509
+ - level_structures
2510
+ - level_chunk
2511
+ - level_chunk_gen
2512
+ - level_chunk_gen_thread_local
2513
+ - light_volume_manager
2514
+ - network
2515
+ - marketplace
2516
+ - material_dragon_compiled_definition
2517
+ - material_dragon_material
2518
+ - material_dragon_resource
2519
+ - material_dragon_uniform_map
2520
+ - material_render_material
2521
+ - material_render_material_group
2522
+ - material_variation_manager
2523
+ - molang
2524
+ - ore_ui
2525
+ - persona
2526
+ - player
2527
+ - render_chunk
2528
+ - render_chunk_index_buffer
2529
+ - render_chunk_vertex_buffer
2530
+ - rendering
2531
+ - rendering_library
2532
+ - request_log
2533
+ - resource_packs
2534
+ - sound
2535
+ - sub_chunk_biome_data
2536
+ - sub_chunk_block_data
2537
+ - sub_chunk_light_data
2538
+ - textures
2539
+ - vr
2540
+ - weather_renderer
2541
+ - world_generator
2542
+ - tasks
2543
+ - test
2544
+ - scripting
2545
+ - scripting_runtime
2546
+ - scripting_context
2547
+ - scripting_context_bindings_mc
2548
+ - scripting_context_bindings_gt
2549
+ - scripting_context_run
2550
+ - data_driven_ui
2551
+ - data_driven_ui_defs
2552
+ - gameface
2553
+ - gameface_system
2554
+ - gameface_dom
2555
+ - gameface_css
2556
+ - gameface_display
2557
+ - gameface_temp_allocator
2558
+ - gameface_pool_allocator
2559
+ - gameface_dump
2560
+ - gameface_media
2561
+ - gameface_json
2562
+ - gameface_script_engine
2563
+ bytes: lu64
2564
+
2565
+ VoxelCells:
2566
+ x_size: u8
2567
+ y_size: u8
2568
+ z_size: u8
2569
+ storage: u8[]varint
2570
+
2571
+ VoxelShape:
2572
+ cells: VoxelCells[]varint
2573
+ x_coordinates: lf32[]varint
2574
+ y_coordinates: lf32[]varint
2575
+ z_coordinates: lf32[]varint
2576
+
2577
+ VoxelShapeNameEntry:
2578
+ name: string
2579
+ id: lu16
2580
+
2581
+ GatheringJoinInfo:
2582
+ experience_id: uuid
2583
+ experience_name: string
2584
+ experience_world_id: uuid
2585
+ experience_world_name: string
2586
+ creator_id: string
2587
+ target_id: uuid
2588
+ scenario_id: string
2589
+ server_id: string
2590
+
2591
+ StoreEntryPointInfo:
2592
+ store_id: string
2593
+ store_name: string
2594
+
2595
+ PresenceInfo:
2596
+ experience_name: string
2597
+ world_name: string
2598
+
2599
+ ServerJoinInformation:
2600
+ has_gathering_info: bool
2601
+ gathering_info: has_gathering_info ?
2602
+ if true: GatheringJoinInfo
2603
+ store_entry_point_info?: StoreEntryPointInfo
2604
+ presence_info?: PresenceInfo
2605
+
2606
+
2607
+ DisconnectFailReason: zigzag32 =>
2608
+ - unknown
2609
+ - cant_connect_no_internet
2610
+ - no_permissions
2611
+ - unrecoverable_error
2612
+ - third_party_blocked
2613
+ - third_party_no_internet
2614
+ - third_party_bad_ip
2615
+ - third_party_no_server_or_server_locked
2616
+ - version_mismatch
2617
+ - skin_issue
2618
+ - invite_session_not_found
2619
+ - edu_level_settings_missing
2620
+ - local_server_not_found
2621
+ - legacy_disconnect
2622
+ - user_leave_game_attempted
2623
+ - platform_locked_skins_error
2624
+ - realms_world_unassigned
2625
+ - realms_server_cant_connect
2626
+ - realms_server_hidden
2627
+ - realms_server_disabled_beta
2628
+ - realms_server_disabled
2629
+ - cross_platform_disallowed
2630
+ - cant_connect
2631
+ - session_not_found
2632
+ - client_settings_incompatible_with_server
2633
+ - server_full
2634
+ - invalid_platform_skin
2635
+ - edition_version_mismatch
2636
+ - edition_mismatch
2637
+ - level_newer_than_exe_version
2638
+ - no_fail_occurred
2639
+ - banned_skin
2640
+ - timeout
2641
+ - server_not_found
2642
+ - outdated_server
2643
+ - outdated_client
2644
+ - no_premium_platform
2645
+ - multiplayer_disabled
2646
+ - no_wifi
2647
+ - world_corruption
2648
+ - no_reason
2649
+ - disconnected
2650
+ - invalid_player
2651
+ - logged_in_other_location
2652
+ - server_id_conflict
2653
+ - not_allowed
2654
+ - not_authenticated
2655
+ - invalid_tenant
2656
+ - unknown_packet
2657
+ - unexpected_packet
2658
+ - invalid_command_request_packet
2659
+ - host_suspended
2660
+ - login_packet_no_request
2661
+ - login_packet_no_cert
2662
+ - missing_client
2663
+ - kicked
2664
+ - kicked_for_exploit
2665
+ - kicked_for_idle
2666
+ - resource_pack_problem
2667
+ - incompatible_pack
2668
+ - out_of_storage
2669
+ - invalid_level
2670
+ - disconnect_packet_deprecated
2671
+ - block_mismatch
2672
+ - invalid_heights
2673
+ - invalid_widths
2674
+ # deprecated
2675
+ - connection_lost
2676
+ - zombie_connection
2677
+ - shutdown
2678
+ - reason_not_set
2679
+ - loading_state_timeout
2680
+ - resource_pack_loading_failed
2681
+ - searching_for_session_loading_screen_failed
2682
+ - conn_protocol_version
2683
+ - subsystem_status_error
2684
+ - empty_auth_from_discovery
2685
+ - empty_url_from_discovery
2686
+ - expired_auth_from_discovery
2687
+ - unknown_signal_service_sign_in_failure
2688
+ - xbl_join_lobby_failure
2689
+ - unspecified_client_instance_disconnection
2690
+ - conn_session_not_found
2691
+ - conn_create_peer_connection
2692
+ - conn_ice
2693
+ - conn_connect_request
2694
+ - conn_connect_response
2695
+ - conn_negotiation_timeout
2696
+ - conn_inactivity_timeout
2697
+ - stale_connection_being_replaced
2698
+ - realms_session_not_found
2699
+ - bad_packet
2700
+ - conn_failed_to_create_offer
2701
+ - conn_failed_to_create_answer
2702
+ - conn_failed_to_set_local_description
2703
+ - conn_failed_to_set_remote_description
2704
+ - conn_negotiation_timeout_waiting_for_response
2705
+ - conn_negotiation_timeout_waiting_for_accept
2706
+ - conn_incoming_connection_ignored
2707
+ - conn_signaling_parsing_failure
2708
+ - conn_signaling_unknown_error
2709
+ - conn_signaling_unicast_delivery_failed
2710
+ - conn_signaling_broadcast_delivery_failed
2711
+ - conn_signaling_generic_delivery_failed
2712
+ - editor_mismatch_editor_world
2713
+ - editor_mismatch_vanilla_world
2714
+ - world_transfer_not_primary_client
2715
+ - server_shutdown
2716
+ - game_setup_cancelled
2717
+ - game_setup_failed
2718
+ - no_venue
2719
+ - conn_signalling_sign_in_failed
2720
+ - session_access_denied
2721
+ - service_sign_in_issue
2722
+ - conn_no_signaling_channel
2723
+ - conn_not_logged_in
2724
+ - conn_client_signalling_error
2725
+ - sub_client_login_disabled
2726
+ - deep_link_trying_to_open_demo_world_while_signed_in
2727
+ - async_join_task_denied
2728
+ - realms_timeline_required
2729
+ - guest_withough_host
2730
+ - failed_to_join_experience
2731
+ - host_signed_out
2732
+ - script_watchdog_exception
2733
+ - script_memory_limit_exceeded
2734
+ - storage_low_during_gameplay
2735
+ - storage_full_during_gameplay
2736
+ - level_storage_corruption
2737
+ - edition_mismatch_vanilla_to_edu
2738
+ - edition_mismatch_edu_to_vanilla
2739
+ - editor_mismatch_editor_to_vanilla
2740
+ - editor_mismatch_vanilla_to_editor
2741
+ - deny_listed
2742
+
2743
+ FullContainerName:
2744
+ container_id: ContainerSlotType
2745
+ dynamic_container_id?: u32
2746
+
2747
+ MovementEffectType: varint =>
2748
+ -1: invalid
2749
+ 0: GLIDE_BOOST
2750
+
2751
+ # BiomeDefinition represents a biome definition in the game. This can be a vanilla biome or a completely
2752
+ # custom biome.
2753
+ BiomeDefinition:
2754
+ # NameIndex represents the index of the biome name in the string list from BiomeDefinitionListPacket.
2755
+ name_index: li16
2756
+ # BiomeID is the biome ID. This is optional and can be empty.
2757
+ biome_id: lu16
2758
+ # Temperature is the temperature of the biome, used for weather, biome behaviours and sky colour.
2759
+ temperature: lf32
2760
+ # Downfall is the amount that precipitation affects colours and block changes.
2761
+ downfall: lf32
2762
+ # Changes leaves turning white in snow
2763
+ snow_foliage: lf32
2764
+ # Depth ...
2765
+ depth: lf32
2766
+ # Scale ...
2767
+ scale: lf32
2768
+ # MapWaterColour is an ARGB value for the water colour on maps in the biome.
2769
+ map_water_colour: li32
2770
+ # Rain is true if the biome has rain, false if it is a dry biome.
2771
+ rain: bool
2772
+ # Tags are a list of indices of tags in the string list. These are used to group biomes together for
2773
+ # biome generation and other purposes.
2774
+ tags?: lu16[]varint
2775
+ # ChunkGeneration is optional information to assist in client-side chunk generation.
2776
+ chunk_generation?: BiomeChunkGeneration
2777
+
2778
+
2779
+ # BiomeChunkGeneration represents the information required for the client to generate chunks itself
2780
+ # to create the illusion of a larger render distance.
2781
+ BiomeChunkGeneration:
2782
+ # Climate is optional information to specify the biome's climate.
2783
+ climate?: BiomeClimate
2784
+ # ConsolidatedFeatures is a list of features that are consolidated into a single feature.
2785
+ consolidated_features?: BiomeConsolidatedFeature[]varint
2786
+ # MountainParameters is optional information to specify the biome's mountain parameters.
2787
+ mountain_parameters?: BiomeMountainParameters
2788
+ # SurfaceMaterialAdjustments is a list of surface material adjustments.
2789
+ surface_material_adjustments?: BiomeElementData[]varint
2790
+ # SurfaceMaterials is a set of materials to use for the surface layers of the biome.
2791
+ surface_materials?: BiomeSurfaceMaterial
2792
+ # HasDefaultOverworldSurface is true if the biome has a default overworld surface.
2793
+ has_default_overworld_surface: bool
2794
+ # HasSwampSurface is true if the biome has a swamp surface.
2795
+ has_swamp_surface: bool
2796
+ # HasFrozenOceanSurface is true if the biome has a frozen ocean surface.
2797
+ has_frozen_ocean_surface: bool
2798
+ # HasEndSurface is true if the biome has an end surface.
2799
+ has_end_surface: bool
2800
+ # MesaSurface is optional information to specify the biome's mesa surface.
2801
+ mesa_surface?: BiomeMesaSurface
2802
+ # CappedSurface is optional information to specify the biome's capped surface, i.e. in the Nether.
2803
+ capped_surface?: BiomeCappedSurface
2804
+ # OverworldRules is optional information to specify the biome's overworld rules, such as rivers and hills.
2805
+ overworld_rules?: BiomeOverworldRules
2806
+ # MultiNoiseRules is optional information to specify the biome's multi-noise rules.
2807
+ multi_noise_rules?: BiomeMultiNoiseRules
2808
+ # LegacyRules is a list of legacy rules for the biomes using an older format, which is just a list of
2809
+ # weighted biomes.
2810
+ legacy_rules?: BiomeConditionalTransformation[]varint
2811
+ # ReplacementsData is a list of biome replacement data.
2812
+ replacements_data?: BiomeReplacementData[]varint
2813
+ has_village_type: bool
2814
+ village_type: has_village_type ?
2815
+ if true: u8
2816
+
2817
+ # BiomeClimate represents the climate of a biome, mainly for ambience but also defines certain behaviours.
2818
+ BiomeClimate:
2819
+ # Temperature is the temperature of the biome, used for weather, biome behaviours and sky colour.
2820
+ temperature: lf32
2821
+ # Downfall is the amount that precipitation affects colours and block changes.
2822
+ downfall: lf32
2823
+ # SnowAccumulationMin is the minimum amount of snow that can accumulate in the biome, every 0.125 is
2824
+ # another layer of snow.
2825
+ snow_accumulation_min: lf32
2826
+ # SnowAccumulationMax is the maximum amount of snow that can accumulate in the biome, every 0.125 is
2827
+ # another layer of snow.
2828
+ snow_accumulation_max: lf32
2829
+
2830
+ # BiomeMountainParameters specifies the parameters for a mountain biome.
2831
+ BiomeMountainParameters:
2832
+ # SteepBlock is the runtime ID of the block to use for steep slopes.
2833
+ steep_block: li32
2834
+ # NorthSlopes is true if the biome has north slopes.
2835
+ north_slopes: bool
2836
+ # SouthSlopes is true if the biome has south slopes.
2837
+ south_slopes: bool
2838
+ # WestSlopes is true if the biome has west slopes.
2839
+ west_slopes: bool
2840
+ # EastSlopes is true if the biome has east slopes.
2841
+ east_slopes: bool
2842
+ # TopSlideEnabled is true if the biome has top slide enabled.
2843
+ top_slide_enabled: bool
2844
+
2845
+ # BiomeSurfaceMaterial specifies the materials to use for the surface layers of the biome.
2846
+ BiomeSurfaceMaterial:
2847
+ # TopBlock is the runtime ID of the block to use for the top layer.
2848
+ top_block: li32
2849
+ # MidBlock is the runtime ID to use for the middle layers.
2850
+ mid_block: li32
2851
+ # SeaFloorBlock is the runtime ID to use for the sea floor.
2852
+ sea_floor_block: li32
2853
+ # FoundationBlock is the runtime ID to use for the foundation layers.
2854
+ foundation_block: li32
2855
+ # SeaBlock is the runtime ID to use for the sea layers.
2856
+ sea_block: li32
2857
+ # SeaFloorDepth is the depth of the sea floor, in blocks.
2858
+ sea_floor_depth: li32
2859
+
2860
+ # BiomeMesaSurface specifies the materials to use for the mesa biome.
2861
+ BiomeMesaSurface:
2862
+ # ClayMaterial is the runtime ID of the block to use for clay layers.
2863
+ clay_material: lu32
2864
+ # HardClayMaterial is the runtime ID of the block to use for hard clay layers.
2865
+ hard_clay_material: lu32
2866
+ # BrycePillars is true if the biome has bryce pillars, which are tall spire-like structures.
2867
+ bryce_pillars: bool
2868
+ # HasForest is true if the biome has a forest.
2869
+ has_forest: bool
2870
+
2871
+ # BiomeCappedSurface specifies the materials to use for the capped surface of a biome, such as in the Nether.
2872
+ BiomeCappedSurface:
2873
+ # FloorBlocks is a list of runtime IDs to use for the floor blocks.
2874
+ floor_blocks: li32[]varint
2875
+ # CeilingBlocks is a list of runtime IDs to use for the ceiling blocks.
2876
+ ceiling_blocks: li32[]varint
2877
+ # SeaBlock is an optional runtime ID to use for the sea block.
2878
+ sea_block?: lu32
2879
+ # FoundationBlock is an optional runtime ID to use for the foundation block.
2880
+ foundation_block?: lu32
2881
+ # BeachBlock is an optional runtime ID to use for the beach block.
2882
+ beach_block?: lu32
2883
+
2884
+ # BiomeMultiNoiseRules specifies the rules for multi-noise biomes, which are biomes that are defined by
2885
+ # multiple noise parameters instead of just temperature and humidity.
2886
+ BiomeMultiNoiseRules:
2887
+ # Temperature is the temperature level of the biome.
2888
+ temperature: lf32
2889
+ # Humidity is the humidity level of the biome.
2890
+ humidity: lf32
2891
+ # Altitude is the altitude level of the biome.
2892
+ altitude: lf32
2893
+ # Weirdness is the weirdness level of the biome.
2894
+ weirdness: lf32
2895
+ # Weight is the weight of the biome, with a higher weight being more likely to be selected.
2896
+ weight: lf32
2897
+
2898
+ # BiomeWeight defines the weight for a biome, used for weighted randomness.
2899
+ BiomeWeight:
2900
+ # Biome is the index of the biome name in the string list.
2901
+ biome: li16
2902
+ # Weight is the weight of the biome, with a higher weight being more likely to be selected.
2903
+ weight: lu32
2904
+
2905
+ # BiomeTemperatureWeight defines the weight for a temperature, used for weighted randomness.
2906
+ BiomeTemperatureWeight:
2907
+ # Temperature is the temperature that can be selected.
2908
+ temperature: zigzag32
2909
+ # Weight is the weight of the temperature, with a higher weight being more likely to be selected.
2910
+ weight: lu32
2911
+
2912
+ # BiomeConsolidatedFeature represents a feature that is consolidated into a single feature for the biome.
2913
+ BiomeConsolidatedFeature:
2914
+ # Scatter defines how the feature is scattered in the biome.
2915
+ scatter: BiomeScatterParameter
2916
+ # Feature is the index of the feature's name in the string list.
2917
+ feature: li16
2918
+ # Identifier is the index of the feature's identifier in the string list.
2919
+ identifier: li16
2920
+ # Pass is the index of the feature's pass in the string list.
2921
+ pass: li16
2922
+ # CanUseInternal is true if the feature can use internal features.
2923
+ can_use_internal: bool
2924
+
2925
+ BiomeScatterParameter:
2926
+ # Coordinates is a list of coordinate rules to scatter the feature within.
2927
+ coordinates: BiomeCoordinate[]varint
2928
+ # EvaluationOrder is the order in which the coordinates are evaluated.
2929
+ evaluation_order: zigzag32 => # BiomeCoordinateEvaluationOrder
2930
+ 0: xyz
2931
+ 1: xzy
2932
+ 2: yxz
2933
+ 3: yzx
2934
+ 4: zxy
2935
+ 5: zyx
2936
+ # ChancePercentType is the type of expression operation to use for the chance percent.
2937
+ chance_percent_type: zigzag32 # BiomeExpressionOp
2938
+ # ChancePercent is the index of the chance expression in the string list.
2939
+ chance_percent: li16
2940
+ # ChanceNumerator is the numerator of the chance expression.
2941
+ chance_numerator: li32
2942
+ # ChanceDenominator is the denominator of the chance expression.
2943
+ chance_denominator: li32
2944
+ # IterationsType is the type of expression operation to use for the iterations.
2945
+ iterations_type: zigzag32 # BiomeExpressionOp
2946
+ # Iterations is the index of the iterations expression in the string list.
2947
+ iterations: li16
2948
+
2949
+ # BiomeCoordinate specifies coordinate rules for where features can be scattered in the biome.
2950
+ BiomeCoordinate:
2951
+ # MinValueType is the type of expression operation to use for the minimum value.
2952
+ min_value_type: zigzag32 # BiomeExpressionOp
2953
+ # MinValue is the index of the minimum value expression in the string list.
2954
+ min_value: li16
2955
+ # MaxValueType is the type of expression operation to use for the maximum value.
2956
+ max_value_type: zigzag32 # BiomeExpressionOp
2957
+ # MaxValue is the index of the maximum value expression in the string list.
2958
+ max_value: li16
2959
+ # GridOffset is the offset of the grid, used for fixed grid and jittered grid distributions.
2960
+ grid_offset: lu32
2961
+ # GridStepSize is the step size of the grid, used for fixed grid and jittered grid distributions.
2962
+ grid_step_size: lu32
2963
+ # Distribution is the type of distribution to use for the coordinate.
2964
+ distribution: zigzag32 => # BiomeRandomDistributionType
2965
+ 0: single_valued
2966
+ 1: uniform
2967
+ 2: gaussian
2968
+ 3: inverse_gaussian
2969
+ 4: fixed_grid
2970
+ 5: jittered_grid
2971
+ 6: triangle
2972
+
2973
+ # BiomeElementData are set rules to adjust the surface materials of the biome.
2974
+ BiomeElementData:
2975
+ # NoiseFrequencyScale is the frequency scale of the noise used to adjust the surface materials.
2976
+ noise_frequency_scale: lf32
2977
+ # NoiseLowerBound is the minimum noise value required to be selected.
2978
+ noise_lower_bound: lf32
2979
+ # NoiseUpperBound is the maximum noise value required to be selected.
2980
+ noise_upper_bound: lf32
2981
+ # HeightMinType is the type of expression operation to use for the minimum height.
2982
+ height_min_type: zigzag32 # BiomeExpressionOp
2983
+ # HeightMin is the index of the minimum height expression in the string list.
2984
+ height_min: li16
2985
+ # HeightMaxType is the type of expression operation to use for the maximum height.
2986
+ height_max_type: zigzag32 # BiomeExpressionOp
2987
+ # HeightMax is the index of the maximum height expression in the string list.
2988
+ height_max: li16
2989
+ # AdjustedMaterials is the materials to use for the surface layers of the biome if selected.
2990
+ adjusted_materials: BiomeSurfaceMaterial
2991
+
2992
+ # BiomeOverworldRules specifies a list of transformation rules to apply to different parts of the overworld.
2993
+ BiomeOverworldRules:
2994
+ # HillsTransformations is a list of weighted biome transformations to apply to hills.
2995
+ hills_transformations: BiomeWeight[]varint
2996
+ # MutateTransformations is a list of weighted biome transformations to apply to mutated biomes.
2997
+ mutate_transformations: BiomeWeight[]varint
2998
+ # RiverTransformations is a list of weighted biome transformations to apply to rivers.
2999
+ river_transformations: BiomeWeight[]varint
3000
+ # ShoreTransformations is a list of weighted biome transformations to apply to shores.
3001
+ shore_transformations: BiomeWeight[]varint
3002
+ # PreHillsEdgeTransformations is a list of conditional transformations to apply to the edges of hills.
3003
+ pre_hills_edge_transformations: BiomeConditionalTransformation[]varint
3004
+ # PostShoreEdgeTransformations is a list of conditional transformations to apply to the edges of shores.
3005
+ post_shore_edge_transformations: BiomeConditionalTransformation[]varint
3006
+ # ClimateTransformations is a list of weighted temperature transformations to apply to the biome's climate.
3007
+ climate_transformations: BiomeTemperatureWeight[]varint
3008
+
3009
+ # BiomeConditionalTransformation is the legacy method of transforming biomes.
3010
+ BiomeConditionalTransformation:
3011
+ # WeightedBiomes is a list of biomes and their weights.
3012
+ weighted_biomes: BiomeWeight[]varint
3013
+ # ConditionJSON is an index of the condition JSON data in the string list.
3014
+ condition_json: li16
3015
+ # MinPassingNeighbours is the minimum number of neighbours that must pass the condition for the
3016
+ # transformation to be applied.
3017
+ min_passing_neighbours: lu32
3018
+
3019
+ # BiomeReplacementData represents data for biome replacements.
3020
+ BiomeReplacementData:
3021
+ # Biome is the biome ID to replace.
3022
+ biome: li16
3023
+ # Dimension is the dimension ID where the replacement applies.
3024
+ dimension: li16
3025
+ # TargetBiomes is a list of target biome IDs for the replacement.
3026
+ target_biomes: li16[]varint
3027
+ # Amount is the amount of replacement to apply.
3028
+ amount: lf32
3029
+ # NoiseFrequencyScale is the noise frequency scale to use for replacement selection.
3030
+ noise_frequency_scale: lf32
3031
+ # ReplacementIndex is the index of the replacement.
3032
+ replacement_index: lu32
3033
+
3034
+ EaseType: u8 =>
3035
+ - Linear
3036
+ - Spring
3037
+ - InQuad
3038
+ - OutQuad
3039
+ - InOutQuad
3040
+ - InCubic
3041
+ - OutCubic
3042
+ - InOutCubic
3043
+ - InQuart
3044
+ - OutQuart
3045
+ - InOutQuart
3046
+ - InQuint
3047
+ - OutQuint
3048
+ - InOutQuint
3049
+ - InSine
3050
+ - OutSine
3051
+ - InOutSine
3052
+ - InExpo
3053
+ - OutExpo
3054
+ - InOutExpo
3055
+ - InCirc
3056
+ - OutCirc
3057
+ - InOutCirc
3058
+ - InBounce
3059
+ - OutBounce
3060
+ - InOutBounce
3061
+ - InBack
3062
+ - OutBack
3063
+ - InOutBack
3064
+ - InElastic
3065
+ - OutElastic
3066
+ - InOutElastic
3067
+ - InverseLerp
3068
+
3069
+ ParameterKeyframeValue:
3070
+ # Time is the time of the keyframe.
3071
+ time: lf32
3072
+ # Value is the value at the keyframe.
3073
+ value: vec3f
3074
+
3075
+ GraphicsOverrideParameterType: u8 =>
3076
+ - sky_zenith_color
3077
+ - sky_horizon_color
3078
+ - horizon_blend_min
3079
+ - horizon_blend_max
3080
+ - horizon_blend_start
3081
+ - horizon_blend_mie_start
3082
+ - rayleigh_strength
3083
+ - sun_mie_strength
3084
+ - moon_mie_strength
3085
+ - sun_glare_shape
3086
+ - chlorophyll
3087
+ - cdom
3088
+ - suspended_sediment
3089
+ - waves_depth
3090
+ - waves_frequency
3091
+ - waves_frequency_scaling
3092
+ - waves_speed
3093
+ - waves_speed_scaling
3094
+ - waves_shape
3095
+ - waves_octaves
3096
+ - waves_mix
3097
+ - waves_pull
3098
+ - waves_direction_increment
3099
+ - midtones_contrast
3100
+ - highlights_contrast
3101
+ - shadows_contrast
3102
+ - highlights_gain
3103
+ - highlights_gamma
3104
+ - highlights_offset
3105
+ - highlights_saturation
3106
+ - midtones_gain
3107
+ - midtones_gamma
3108
+ - midtones_offset
3109
+ - midtones_saturation
3110
+ - shadows_gain
3111
+ - shadows_gamma
3112
+ - shadows_offset
3113
+ - shadows_saturation
3114
+ - highlights_min
3115
+ - shadows_max
3116
+ - temperature
3117
+ - sun_color
3118
+ - sun_illuminance
3119
+ - moon_color
3120
+ - moon_illuminance
3121
+ - flash_color
3122
+ - flash_illuminance
3123
+ - ambient_color
3124
+ - ambient_illuminance
3125
+
3126
+ DebugMarkerData:
3127
+ text: string
3128
+ position: vec3f
3129
+ color: lu32
3130
+ duration: lu64
3131
+
3132
+ DataStorePropertyValue:
3133
+ type: li32 =>
3134
+ 0: none
3135
+ 1: bool
3136
+ 2: int64
3137
+ 4: string
3138
+ 6: map
3139
+ value: type ?
3140
+ if none: void
3141
+ if bool: bool
3142
+ if int64: li64
3143
+ if string: string
3144
+ if map: DataStoreMapEntry[]varint
3145
+
3146
+ DataStoreMapEntry:
3147
+ key: string
3148
+ value: DataStorePropertyValue
3149
+
3150
+ DataStoreChangeEntry:
3151
+ change_type: lu32 =>
3152
+ 0: update
3153
+ 1: change
3154
+ 2: removal
3155
+ _: change_type ?
3156
+ if update:
3157
+ name: string
3158
+ property: string
3159
+ path: string
3160
+ data_type: lu32 =>
3161
+ 0: double
3162
+ 1: bool
3163
+ 2: string
3164
+ data: data_type ?
3165
+ if double: lf64
3166
+ if bool: bool
3167
+ if string: string
3168
+ update_count: lu32
3169
+ path_update_count: lu32
3170
+ if change:
3171
+ name: string
3172
+ property: string
3173
+ update_count: lu32
3174
+ new_value: DataStorePropertyValue
3175
+ if removal:
3176
+ name: string
3177
+
3178
+ WaypointWorldPosition:
3179
+ position: vec3f
3180
+ dimension_id: zigzag32
3181
+
3182
+ Waypoint:
3183
+ update_flags: lu32
3184
+ visible?: bool
3185
+ world_position?: WaypointWorldPosition
3186
+ texture_id?: lu32
3187
+ color?: li32
3188
+ client_position_authority?: bool
3189
+ actor_unique_id?: zigzag64
3190
+
3191
+ LocatorBarWaypoint:
3192
+ group_handle: uuid
3193
+ waypoint: Waypoint
3194
+ action: u8 =>
3195
+ 0: none
3196
+ 1: add
3197
+ 2: remove
3198
+ 3: update
3199
+
3200
+ SyncWorldClockStateData:
3201
+ clock_id: varint64
3202
+ time: zigzag32
3203
+ paused: bool
3204
+
3205
+ TimeMarkerData:
3206
+ id: varint64
3207
+ name: string
3208
+ time: zigzag32
3209
+ period?: li32
3210
+
3211
+ WorldClockData:
3212
+ id: varint64
3213
+ name: string
3214
+ time: zigzag32
3215
+ paused: bool
3216
+ time_markers: TimeMarkerData[]varint
3217
+
3218
+ AttributeLayerSettings:
3219
+ priority: li32
3220
+ weight_type: varint =>
3221
+ 0: float
3222
+ 1: string
3223
+ _: weight_type ?
3224
+ if float:
3225
+ float_weight: lf32
3226
+ if string:
3227
+ string_weight: string
3228
+ enabled: bool
3229
+ transitions_paused: bool
3230
+
3231
+ AttributeData:
3232
+ type: varint =>
3233
+ 0: bool
3234
+ 1: float
3235
+ 2: colour
3236
+ _: type ?
3237
+ if bool:
3238
+ bool_value: bool
3239
+ bool_operation?: li32
3240
+ if float:
3241
+ float_value: lf32
3242
+ float_operation?: li32
3243
+ float_constraint_min?: lf32
3244
+ float_constraint_max?: lf32
3245
+ if colour:
3246
+ colour_value: li32
3247
+ colour_operation?: li32
3248
+
3249
+ EnvironmentAttributeData:
3250
+ attribute_name: string
3251
+ from_attribute?: AttributeData
3252
+ attribute: AttributeData
3253
+ to_attribute?: AttributeData
3254
+ current_transition_ticks: lu32
3255
+ total_transition_ticks: lu32
3256
+ ease_type: li32
3257
+
3258
+ AttributeLayerData:
3259
+ name: string
3260
+ dimension_id: zigzag32
3261
+ settings: AttributeLayerSettings
3262
+ environment_attributes: EnvironmentAttributeData[]varint