Files
DorkNet/DorkNet.Server/Protos/recroom_2020.proto
T
Alexa 4edf25b2d5 Import december-2020-12-18 from private repo (scrubbed 2026-05-27)
Targets Rec Room 2020.12.18 client.

Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
  the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces the dorknet-clientpatch-{key}.zip
  Release asset the launcher fetches.
- .github/workflows/release.yml — auto-publishes both Release assets
  on v1-december-* tag push.

Scrubbed via maintainer-side scrub-for-public.ps1: same drop rules as
the prior import, plus build-patcher-zip.ps1 added to the tools/
allow-list so it survives the scrub.
2026-05-27 01:04:12 +03:00

987 lines
24 KiB
Protocol Buffer

syntax = "proto3";
package recroom;
option csharp_namespace = "RecRoom.Protobuf2020";
import "google/protobuf/timestamp.proto";
message AcceleratedMovementData {
float acceleration_time = 1;
bool uses_target_value = 2;
}
message AmmunitionData {
int32 ammo_gear_type = 1;
int32 ammo_amount = 2;
}
message AnimationData {
repeated KeyFrameData key_frames = 2;
int32 speed_percentage = 5;
int32 priority = 6;
int32 flags = 7;
}
message AudioSamplerDataBlob {
int32 creator_id = 1;
float duration = 2;
AudioStreamData audio_data = 3;
}
message AudioSamplerPersistenceData {
string blob_name = 1;
bool use2d_audio = 3;
int32 channel = 4;
float start_offset = 5;
float end_offset = 6;
bool interrupt_current_sound = 7;
}
message AudioStreamData {
int32 channels = 1;
int32 sample_rate = 2;
int32 sample_count = 3;
int32 format = 10;
repeated float uncompressed_samples = 11;
bytes compressed_data = 12;
float compressed_bitrate = 13;
repeated int32 compressed_packet_sizes = 14;
}
message AutosaveData {
repeated string referenced_filenames = 1;
repeated string legacy_additional_referenced_filenames = 2;
repeated int64 invention_ids = 3;
repeated int32 invention_references = 4;
}
message AvatarItemSelectionData {
string avatar_item_rec_net_string = 1;
int32 body_part = 2;
bool is_trial_item = 3;
}
message AvatarItemSelectionDataCollection {
repeated AvatarItemSelectionData avatar_item_selections = 1;
}
message BackgroundObjectData {
int32 object_id = 1;
int32 color = 2;
float alpha = 3;
float rotation = 4;
}
message BackgroundObjectsCircuitData {
repeated BackgroundObjectData object_data = 1;
}
message BattleRoyaleArsenalData {
repeated BattleRoyaleGearData gear = 1;
}
message BattleRoyaleGearData {
string display_name = 1;
bool is_available = 2;
int32 gear_type = 3;
int32 quality = 4;
int32 drop_weight = 5;
int32 equipment_id = 6;
RangedWeaponData ranged_weapon_data = 7;
HealthPotionData health_potion_data = 8;
AmmunitionData ammunition_data = 9;
}
message BloomCircuitData {
float bloom_intensity = 1;
float bloom_threshold = 2;
float bloom_diffusion = 3;
int32 bloom_color = 4;
}
message BouncePadData {
int32 mode = 1;
bool is_additive = 2;
float velocity_multiplier = 3;
float velocity_additive = 4;
float max_velocity = 5;
float impulse_velocity = 6;
int32 air_control_percentage = 7;
}
message BreakableObjectData {
bool is_breakable = 1;
}
message ButtonData {
bool signal_is_player_id = 1;
}
message CharadesCoOpClassicGameRuleData {
float max_game_duration = 1;
float max_round_duration = 2;
}
message CharadesTeamLightningGameRuleData {
int32 max_round_count = 1;
float performer_duration = 2;
float team_round_duration = 3;
}
message CheckpointData {
string spawn_point_tag = 1;
}
message ChildPersistenceViewData {
int32 child_id = 1;
PersistenceViewData data = 2;
}
message CircuitGroupCircuitReferenceData {
bytes circuit_node_id = 1;
int32 slot = 2;
bool is_input = 3;
}
message CircuitGroupConnectionData {
bytes circuit_reference_data = 1;
bytes interface_node_reference_data = 2;
}
message CircuitGroupData {
repeated CircuitGroupInterfaceNodeData input_interface_nodes = 1;
repeated CircuitGroupInterfaceNodeData output_interface_nodes = 2;
string name = 3;
repeated TransformData local_transforms = 4;
}
message CircuitGroupInterfaceNodeData {
CircuitGroupConnectionData internal_connection = 1;
CircuitGroupConnectionData external_connection = 2;
string name = 3;
}
message CircuitGroupInterfaceNodeReferenceData {
bytes circuit_group_id = 1;
int32 index = 2;
bool is_input = 3;
}
message CircuitNodeData {
int32 circuit_node_id = 1;
string node_message = 2;
}
message ColorData {
float r = 1;
float g = 2;
float b = 3;
float a = 4;
}
message ColorGradingCircuitData {
float color_grading_temp = 1;
float color_grading_tint = 2;
float color_grading_exposure = 3;
int32 color_grading_color_filter = 4;
float color_grading_color_filter_intensity = 5;
float color_grading_hue_shift = 6;
float color_grading_saturation = 7;
float color_grading_contrast = 8;
}
message ConnectableGraphData {
ConnectableNodeData root_node = 1;
}
message ConnectableNodeData {
bytes persistence_id = 1;
int32 slot_index = 2;
int32 parent_slot_index = 3;
Vector3Data position_relative_to_parent = 4;
Vector3Data rotation_relative_to_parent = 5;
repeated ConnectableNodeData children = 6;
bool is_root = 7;
bytes photon_id = 8;
}
message ControlPointData {
Vector3Data position = 1;
Vector3Data normal = 2;
float radius = 3;
}
message CreationObjectData {
ColorData color_override = 2;
int32 team_override = 3;
bool is_frozen = 4;
InventionPieceData invention_piece_data = 5;
bool is_grabbable = 6;
bool is_climbable = 7;
bool prevents_wall_run = 8;
bool prevents_clambering = 9;
}
message CurveShapeData {
repeated ControlPointData control_points = 1;
bool flat_shaded = 2;
float tube_height_scale = 3;
int32 tube_ring_points = 4;
}
message Deprecated_GameSettingsData {
int32 deprecated_mode_type = 1;
}
message Deprecated_HostSettingsData {
bool deprecated_enforce_host_only_areas = 2;
bool deprecated_only_hosts_can_invite = 3;
bool deprecated_only_hosts_can_print_polaroids = 4;
int32 deprecated_flying_permission = 6;
bool deprecated_hide_scoreboards = 7;
int32 deprecated_circuit_editing_permission = 8;
bool deprecated_only_hosts_can_start_games = 9;
bool deprecated_only_hosts_can_vote_kick = 11;
}
message Deprecated_SandboxSettingsData {
bool deprecated_limit_teleport_speed = 1;
int32 deprecated_time_limit_seconds = 2;
}
message Deprecated_ToolData {
bool is_frozen = 1;
}
message DodgeballGameRuleData {
int32 score_to_win = 1;
}
message DrawingSurfaceData {
bool is_modified = 1;
}
message DynamicLightData {
int32 intensity = 1;
int32 range = 2;
}
message FogCircuitData {
int32 color = 1;
float start_distance = 2;
float fade_distance = 3;
}
message GameCombatAutoHealConfigurationData {
float delay = 1;
float duration = 2;
}
message GameCombatDownButNotOutConfigurationData {
float deprecated_max_value = 1;
float max_depletion_duration = 2;
float invincibility_duration = 3;
}
message GameCombatEnemyUIConfigurationData {
bool opponent_ui_supported = 1;
bool teammate_ui_supported = 2;
}
message GameCombatFriendlyFireConfigurationData {
bool player_on_player_friendly_fire_supported = 1;
bool player_on_enemy_friendly_fire_supported = 2;
bool enemy_on_player_friendly_fire_supported = 3;
bool enemy_on_enemy_friendly_fire_supported = 4;
}
message GameCombatPlayerUIConfigurationData {
bool local_player_ui_supported = 1;
bool opponent_ui_supported = 2;
bool teammate_ui_supported = 3;
bool teammate_ui_always_visible = 4;
bool opponent_ui_always_visible = 5;
}
message GameCombatRespawnConfigurationData {
float auto_respawn_delay = 1;
bool restore_health_on_respawn = 2;
float respawn_invincibility_duration = 3;
}
message GameCombatReviveConfigurationData {
float required_delay = 1;
float max_revive_normalized_health = 2;
float min_revive_normalized_health = 3;
float multiplier_per_revive_normalized_health = 4;
bool pickup_tools_on_revive = 5;
float reviver_invincibility_duration = 6;
float revivee_invincibility_duration = 7;
float handshake_revive_hold_duration = 8;
}
message GameConfigurationData {
string name = 1;
GameStartRequirementConfigurationData manual_start_requirement_configuration_data = 3;
GameStartRequirementConfigurationData automatic_start_requirement_configuration_data = 4;
bool join_in_progress_supported = 5;
bool automatic_start_supported = 6;
int32 load_priority = 7;
bool respawn_on_game_start_supported = 8;
bool respawn_on_game_over_supported = 9;
bool pregame_voice_over_supported = 10;
bool results_voice_over_supported = 11;
bool end_game_if_start_requirements_not_met = 12;
bool countdown_voice_over_supported = 13;
float game_start_delay = 14;
float end_game_results_duration = 15;
bool game_mode_notifications_supported = 16;
bool in_game_player_notifications_supported = 17;
repeated GameTeamConfigurationData team_configurations = 101;
int32 team_selection_method = 102;
bool team_change_during_game_supported = 103;
bool explicit_team_selection_supported = 104;
bool spectating_supported = 105;
GameTeamPlayerVisualConfigurationData team_player_visual_configuration_data = 106;
bool team_radios_supported = 107;
GameTeamRadioConfigurationData team_radio_configuration_data = 108;
bool respawn_on_team_change_during_game_supported = 109;
bool show_open_slots_on_scoreboard = 110;
bool clear_teams_after_game = 111;
repeated GameStatConfigurationData stat_configurations = 202;
bool persist_stats_on_game_start = 203;
int32 max_health = 301;
int32 max_shield = 302;
bool auto_heal_supported = 303;
GameCombatAutoHealConfigurationData auto_heal_configuration_data = 304;
bool dbno_supported = 305;
GameCombatDownButNotOutConfigurationData dbno_configuration_data = 306;
bool auto_respawn_supported = 307;
GameCombatRespawnConfigurationData respawn_configuration_data = 308;
int32 revive_mode = 309;
GameCombatReviveConfigurationData revive_configuration_data = 310;
GameCombatFriendlyFireConfigurationData friendly_fire_configuration_data = 311;
GameCombatPlayerUIConfigurationData combat_player_ui_configuration_data = 312;
GameCombatEnemyUIConfigurationData combat_enemy_ui_configuration_data = 313;
bool monochrome_dead_effect_supported = 314;
bool monochrome_dbno_effect_supported = 315;
bool damage_red_flash_effect_supported = 316;
bool dead_persistent_notification_supported = 317;
bool deprecated_dbno_persistent_notification_supported = 318;
bool deprecated_revive_cooldown_persistent_notification_supported = 319;
bool deprecated_respawn_timer_persistent_notification_supported = 320;
bool combat_hud_supported = 322;
bool suppress_weapon_damage = 323;
bool default_hit_feedback_supported = 350;
bool default_revive_feedback_supported = 351;
bool default_downed_opponent_feedback_supported = 352;
bool default_downed_local_player_feedback_supported = 353;
bool default_downed_teammate_feedback_supported = 354;
int32 spawn_point_selection_mode = 401;
bytes main_hand_spawn_equipment_type = 501;
bytes off_hand_spawn_equipment_type = 502;
bool reset_tools_on_game_start_supported = 503;
int32 broken_tool_behavior = 504;
bool infinite_reserve_ammmunition_supported = 505;
bool tool_beacons_supported = 507;
bool movement_buffer_distance_restricted = 601;
bool out_of_bounds_supported = 701;
float out_of_bounds_grace_period = 702;
float out_of_bounds_max_duration = 703;
bool out_of_bounds_spectators_supported = 704;
bool down_out_of_bounds_players = 705;
}
message GameRoleNodeData {
int32 game_role = 1;
}
message GameRuleWrapperData {
CharadesCoOpClassicGameRuleData charades_coop_classic_game_rule_data = 1;
CharadesTeamLightningGameRuleData charades_team_lightning_game_rule_data = 2;
DodgeballGameRuleData dodgeball_game_rule_data = 3;
LaserTagGameRuleData laser_tag_game_rule_data = 4;
PaddleballGameRuleData paddleball_game_rule_data = 5;
PaintballCaptureTheFlagGameRuleData paintball_capture_the_flag_game_rule_data = 6;
PaintballTeamBattleGameRuleData paintball_team_battle_game_rule_data = 7;
SoccerGameRuleData soccer_game_rule_data = 9;
StuntrunnerGameRuleData stuntrunner_game_rule_data = 10;
}
message GameStartRequirementConfigurationData {
int32 min_player_count = 1;
int32 min_team_count = 2;
int32 min_team_size = 3;
}
message GameStatConfigurationData {
string stat_name = 1;
bool visible_in_ui = 2;
int32 stat_format = 3;
bool visible_in_hud = 4;
}
message GameTeamConfigurationData {
int32 team_size = 1;
}
message GameTeamPlayerVisualConfigurationData {
bool team_outfits_supported = 1;
bool team_name_in_feedback_supported = 2;
bool team_color_in_feedback_supported = 3;
int32 team_color_mode = 4;
int32 teammate_beacon_mode = 5;
int32 opponent_beacon_mode = 6;
}
message GameTeamRadioConfigurationData {
float volume = 1;
float enter_distance = 2;
float exit_distance = 3;
}
message HealthPotionData {
float health_restore_amount = 1;
float health_restore_duration = 2;
float shield_restore_amount = 3;
float shield_restore_duration = 4;
}
message HolotarDataBlob {
int32 creator_id = 1;
float duration = 2;
int32 pose_data = 3;
OutfitData outfit_data = 4;
AudioStreamData audio_data = 5;
int32 voip_filter = 6;
int32 version = 7;
}
message HolotarPersistenceData {
string blob_name = 1;
bool billboard = 2;
}
message ImageData {
string image_name = 1;
}
message InventionPieceData {
bytes instance_id = 1;
int64 invention_id = 2;
int32 version_number = 3;
bool originally_from_other_invention = 4;
}
message InvisibleCollisionData {
bool collide_with_players = 1;
bool collide_with_objects = 2;
repeated string filter_roles = 3;
bool restrict_roles = 4;
}
message KeyFrameData {
float time = 1;
repeated ObjectKeyFrameData object_key_frames = 2;
}
message LaserTagGameRuleData {
int32 score_to_win = 1;
float max_game_duration = 2;
}
message LeaderboardData {
repeated int32 stat_configs = 1;
string stat_full_name = 2;
string stat_short_name = 3;
bool stat_sort_ascending = 4;
int32 formatting_mode = 5;
}
message MeshShapeData {
Vector3Data legacy_scale = 1;
Vector3Data aspect_ratio = 2;
}
message MessageData {
string message = 1;
repeated string messages = 2;
}
message MoodCircuitData {
int32 priority = 1;
float blend_in_time = 2;
bytes sky_box_data = 3;
bytes sun_data = 4;
bytes bloom_data = 5;
bytes color_grading_data = 6;
bytes fog_data = 7;
bytes background_objects_data = 8;
string role_guid = 9;
float blend_out_time = 10;
int32 ease_in_out = 11;
}
message ObjectGroupData {
repeated bytes group_member_ids = 1;
bytes circuit_group_data = 2;
bytes animation_data = 3;
}
message ObjectGroupDataCollection {
repeated int32 object_groups = 1;
ObjectGroupData object_group = 2;
bool unchanged = 3;
}
message ObjectKeyFrameData {
Vector3Data position = 1;
Vector3Data rotation = 2;
int32 flags = 3;
}
message ObjectSpawnPointData {
string item_tag = 1;
bool take_from_holder = 2;
bool clear_velocity_on_respawn = 3;
bool use_respawner_rotation = 4;
}
message OutfitData {
string outfit_selections = 1;
string hair_color = 2;
string skin_color = 3;
string face_settings = 4;
}
message OverridableBoolData {
bool overrides = 1;
bool inner_value = 2;
}
message OverridableColorData {
bool overrides = 1;
ColorData inner_value = 2;
}
message OverridableFloatData {
bool overrides = 1;
float inner_value = 2;
}
message OverridableIntData {
bool overrides = 1;
int32 inner_value = 2;
}
message OverridableListBoolData {
bool overrides = 1;
repeated bool inner_value = 2;
}
message OverridableListColorData {
bool overrides = 1;
repeated ColorData inner_value = 2;
}
message OverridableListFloatData {
bool overrides = 1;
repeated float inner_value = 2;
}
message OverridableListIntData {
bool overrides = 1;
repeated int32 inner_value = 2;
}
message OverridableListStringData {
bool overrides = 1;
repeated string inner_value = 2;
}
message OverridableListVector3Data {
bool overrides = 1;
repeated Vector3Data inner_value = 2;
}
message OverridableStringData {
bool overrides = 1;
string inner_value = 2;
}
message OverridableVector3Data {
bool overrides = 1;
Vector3Data inner_value = 2;
}
message PaddleballGameRuleData {
int32 score_to_win = 1;
float max_game_duration = 2;
}
message PaintballCaptureTheFlagGameRuleData {
int32 scores_to_win = 1;
float max_game_duration = 2;
bool music_enabled = 3;
}
message PaintballTeamBattleGameRuleData {
int32 score_to_win = 1;
float max_game_duration = 2;
bool music_enabled = 3;
}
message ParticleEmitterData {
bytes effect_id = 1;
bool looping = 2;
bool use_sandbox_recolor = 3;
}
message PersistedRoomData {
int32 version = 1;
repeated PersistenceViewData persistence_views = 2;
google.protobuf.Timestamp last_save_time = 3;
string activity_id = 4;
string output_log = 5;
int64 sub_room_id = 6;
Deprecated_HostSettingsData deprecated_host_settings = 16;
Deprecated_SandboxSettingsData deprecated_sandbox_settings = 17;
bytes circuit_data = 18;
Deprecated_GameSettingsData deprecated_game_settings = 19;
ToolTagSettingsData tool_tag_settings_data = 20;
ConnectableGraphData connectable_graph_data = 21;
int32 game_role_data = 22;
int32 room_role_data = 23;
SceneSettingsData scene_settings_data = 24;
AutosaveData autosave_data = 25;
}
message PersistedSFXData {
bytes track_id = 1;
bool loop = 2;
bool shuffle = 3;
bool paused = 4;
bool use_spatial_audio = 5;
bool interrupt_current_sound = 6;
int32 volume_modifier = 7;
}
message PersistenceViewData {
bytes id = 1;
repeated ChildPersistenceViewData child_views = 3;
ToolEntityData tool_entity_data = 9;
TransformData transform = 10;
SpawnableToolData spawnable_tool_data = 11;
ShapeContainerData shape_container_data = 12;
Deprecated_ToolData deprecated_tool_data = 13;
CreationObjectData creation_object_data = 14;
TaggedToolData tagged_tool_data = 15;
StickyData sticky_data = 16;
DrawingSurfaceData drawing_surface_data = 17;
ImageData image_data = 18;
ToolHolderData tool_holder_data = 19;
RemoteControlData remote_control_data = 20;
RoomDoorData room_door_data = 21;
ToolCleanupData tool_cleanup_data = 22;
SpawnPointSpawnerData spawnpoint_spawner_data = 23;
PersistedSFXData persisted_sfx_data = 24;
CircuitNodeData circuit_node_data = 25;
MessageData message_data = 26;
HolotarPersistenceData holotar_persistence_data = 27;
SpawnPointData spawn_point_data = 28;
AudioSamplerPersistenceData audio_sampler_persistence_data = 29;
ButtonData button_data = 30;
TriggerVolumeData trigger_volume_data = 31;
SandboxGizmoData sandbox_gizmo_data = 32;
ObjectSpawnPointData object_spawn_point_data = 33;
SetTagsNodeData set_tags_node_data = 34;
BreakableObjectData breakable_object_data = 35;
SandboxColorableData sandbox_colorable_data = 36;
ParticleEmitterData particle_emitter_data = 37;
ObjectGroupData object_group_data = 38;
StateMachineStateData state_machine_state_data = 39;
GameConfigurationData game_configuration_data = 40;
GameRuleWrapperData game_rule_wrapper_data = 41;
HealthPotionData health_potion_data = 42;
ScoreboardSetupData scoreboard_setup_data = 43;
SpotlightData spotlight_data = 44;
DynamicLightData dynamic_light_data = 45;
BouncePadData bounce_pad_data = 46;
CheckpointData checkpoint_data = 47;
LeaderboardData leaderboard_data = 48;
SetLeaderboardStatData set_leaderboard_stat_data = 49;
GameRoleNodeData game_role_node_data = 50;
PlayerAttractorData player_attractor_data = 51;
ToggleButtonData toggle_button_data = 52;
SandboxDeformationData sandbox_deformation_data = 53;
TextLabelData text_label_data = 54;
ProximityMineData proximity_mine_data = 55;
InvisibleCollisionData invisible_collision_data = 56;
MoodCircuitData mood_circuit_data = 57;
}
message PhysicsThrusterData {
int32 thrust_mode = 1;
}
message PistonData {
float max_travel_distance = 1;
}
message PlayerAttractorData {
bool enabled = 1;
}
message ProximityMineData {
bool triggered_by_teammates = 1;
}
message RangedWeaponData {
int32 ammo_magazine_capacity = 1;
int32 ammo_total_capacity = 2;
bool reset_on_total_ammo_exhaustion = 3;
float projectile_damage = 4;
float rate_of_fire = 5;
float automatic_rate_of_fire = 6;
float max_projectile_speed = 7;
float critical_hit_damage_multiplier = 8;
float explosive_damage_radius = 9;
float explosive_damage_delay = 10;
}
message RemoteControlData {
bytes controlled_object_view_id = 2;
}
message RoomDoorData {
bytes room_id_deprecated = 1;
bytes target_name = 2;
int32 target_type = 3;
int32 invite_mode = 4;
}
message SandboxColorableData {
int32 color = 1;
int32 material = 2;
}
message SandboxDeformationData {
Vector3Data deformation = 1;
}
message SandboxGizmoData {
AcceleratedMovementData accelerated_movement_data = 1;
bytes thruster_data = 3;
bytes look_at_data = 5;
bytes piston_data = 6;
}
message SceneSettingsData {
bytes mood_id = 1;
bool movement_blockers_disabled = 2;
bool enforce_host_only_areas = 3;
bool show_gadgets_to_everyone = 4;
}
message ScoreboardSetupData {
string score_name = 1;
}
message SetLeaderboardStatData {
int32 set_mode = 1;
}
message SetTagsNodeData {
TagData set_tag = 1;
}
message ShapeContainerData {
ShapeDataCollection shape_collection = 1;
int32 physics_mode = 2;
}
message ShapeContainerDataCollection {
repeated int32 shape_containers = 1;
ShapeDataCollection shapes = 2;
bool unchanged = 4;
}
message ShapeData {
int32 shape_type = 1;
int32 shape_color = 2;
Vector3Data deprecated_initial_local_position = 5;
Vector3Data deprecated_initial_local_rotation = 6;
Vector3Data current_local_position = 7;
Vector3Data current_local_rotation = 8;
Vector3Data deprecated_scale_non_uniform = 9;
bool use_uncompressed_rotation = 10;
float density = 11;
bytes id = 12;
float scale = 13;
bytes mesh_shape_data = 16;
bytes curve_shape_data = 17;
int32 shape_material = 18;
}
message ShapeDataCollection {
repeated ShapeData shapes = 1;
}
message SkyBoxCircuitData {
int32 sky_top_color = 1;
int32 sky_bottom_color = 2;
int32 ground_top_color = 3;
int32 ground_bottom_color = 4;
int32 horizon_color = 5;
float horizon_size = 6;
float horizon_strength = 7;
float ambient_light_intensity = 8;
}
message SmoothLookAtData {
int32 smoothness = 1;
TagData tag_data = 2;
int32 tracking_mode = 3;
int32 target_type = 4;
string role_guid = 5;
int32 body_part = 6;
}
message SoccerGameRuleData {
float max_game_duration = 1;
}
message SpawnableTemplateData {
int32 room_data_version = 1;
repeated PersistenceViewData persistence_views = 2;
string output_log = 3;
bytes circuit_data = 4;
ConnectableGraphData connectable_graph_data = 5;
Vector3Data extents = 6;
}
message SpawnableToolData {
bytes prefab_id = 1;
}
message SpawnPointData {
int32 team_id = 1;
string primary_hand_hold_tag = 2;
bool primary_hand_take_from_holder = 3;
string secondary_hand_hold_tag = 4;
bool secondary_hand_take_from_holder = 5;
bool is_pre_post_game_spawn_point = 6;
float spawn_precision_radius = 7;
int32 spawn_point_purpose = 8;
bool keep_held_tools = 9;
}
message SpawnPointSpawnerData {
int64 room_id = 1;
}
message SpotlightData {
int32 angle = 1;
}
message StateMachineStateData {
int32 state_idx = 1;
bytes state_machine_view_id = 2;
string name = 3;
int32 val1 = 4;
int32 val2 = 5;
int32 val3 = 6;
int32 min_time_in_state = 7;
}
message StickyData {
bool is_attached = 1;
bytes connected_view_id = 2;
Vector3Data attached_relative_position = 3;
Vector3Data attached_relative_rotation = 4;
}
message StuntrunnerGameRuleData {
bool music_enabled = 1;
bool announcer_enabled = 2;
bool ambience_enabled = 3;
bool spotlights_enabled = 4;
int32 max_course_time = 5;
}
message SunCircuitData {
int32 sun_color = 1;
float disc_size = 2;
float intensity = 3;
float shadow_strength = 4;
int32 glow_color = 5;
float glow_size = 6;
float glow_strength = 7;
float glow_horizon = 8;
int32 blend_sun_direction = 9;
int32 clip_sun = 10;
float reflection_intensity = 11;
}
message TagData {
repeated string tags = 1;
}
message TaggedToolData {
TagData tag_data = 1;
}
message TextLabelData {
int32 horizontal_alignment = 1;
int32 character_spacing = 2;
int32 line_spacing = 3;
int32 paragraph_spacing = 4;
float text_thickness = 5;
}
message ToggleButtonData {
bool default_toggle_state = 1;
bool signal_is_player_id = 2;
bool projectile_collision_enabled = 3;
}
message ToolCleanupData {
int32 overrides = 1;
bool is_allowed = 2;
float delay = 3;
}
message ToolEntityData {
bool hidden_during_games = 32;
}
message ToolHolderData {
bytes held_view_id = 2;
}
message ToolTagSettingsData {
TagData runtime_tag_data = 1;
}
message TransformData {
Vector3Data position = 1;
Vector3Data rotation = 2;
Vector3Data deprecated_scale_non_uniform = 3;
float scale = 5;
}
message TriggerVolumeData {
int32 mode_id = 1;
Vector3Data deprecated_scale = 2;
Vector3Data deprecated_position = 3;
TagData filter_tags = 4;
string filter_role = 5;
}
message Vector3Data {
float x = 1;
float y = 2;
float z = 3;
}