Files
DorkNet/DorkNet.Server/Protos/dorknet_room_data.proto
T
Alexa 323c17bedb Refactor room data blob handling and permissions
- Updated the RoomsController to utilize synthetic CDN keys for data blobs.
- Introduced methods for determining current or synthetic data blob names.
- Adjusted room role permissions to align with new game role definitions.
- Enhanced the SanitizeController with a new endpoint for purity checks.
- Modified Match and PlayerPresence services to handle deferred presence commits.
- Improved RoomDataBlobService to support new game role and tool tag settings.
- Added support for boot dorm grace period in PlayerPresenceService.
- Updated protobuf definitions to reflect new room role and game role structures.

You are now able to go into dorm and the rec center!
2026-06-24 12:02:13 +03:00

189 lines
5.6 KiB
Protocol Buffer

syntax = "proto3";
// Trimmed subset of Rec Room's persistence schema. Only the messages and
// fields we actually populate when handing the client a "default-but-with-
// permissions" room blob. Wire-compatible with the full schema in
// RR_ProtobufDefinitions.zip because proto3 ignores unknown fields and
// uses defaults for missing ones — so the client deserializes the bytes we
// emit into its richer types just fine.
//
// Field numbers MUST match the upstream schema exactly; deviating breaks
// the wire format.
package rec_room;
option csharp_namespace = "RecRoom.Protobuf";
// ── Overridable wrappers (rec_room/persistence/overridable_field_data.proto)
message OverridableIntData {
bool overrides = 1;
int32 inner_value = 2;
}
message OverridableBoolData {
bool overrides = 1;
bool inner_value = 2;
}
message OverridableStringData {
bool overrides = 1;
string inner_value = 2;
}
message OverridableListStringData {
bool overrides = 1;
repeated string inner_value = 2;
}
// ── Game role collection (rec_room/player_roles/game_role_collection_data.proto)
message PlayerGameRoleData {
}
message GameRoleCollectionData {
repeated PlayerGameRoleData DEPRECATED_game_roles = 1;
}
// ── Tool tag settings (rec_room/tools/tool_tag_settings_data.proto)
message TagData {
repeated string tags = 1;
}
message ToolTagSettingsData {
TagData runtime_tag_data = 1;
}
// ── Per-role permission grants (rec_room/player_roles/player_room_role_data.proto)
//
// Field numbers verified against the 2023 WriteTo disassembly in
// C:\tmp\recroom-2023-03-21-isil\IsilDump\RecRoom.Protobuf.Runtime.
message PlayerRoomRoleData {
reserved 15;
int32 DEPRECATED_role_id = 1;
int32 DEPRECATED_role_rank = 2;
bool DEPRECATED_is_role_active = 3;
bool DEPRECATED_is_ag_role = 4;
string role_name = 5;
OverridableStringData name = 6;
OverridableBoolData can_assign_roles = 7;
OverridableIntData vote_kick_permission = 8;
OverridableBoolData can_invite = 9;
OverridableBoolData DEPRECATED_can_edit_circuits = 10;
OverridableBoolData can_start_games = 11;
OverridableBoolData can_talk = 12;
OverridableBoolData can_print_photos = 13;
OverridableBoolData can_edit_room_roles = 14;
OverridableBoolData can_self_revive = 16;
OverridableBoolData can_end_games_early = 17;
bool is_modified_by_player = 18;
OverridableListStringData auto_assigned_game_roles = 19;
int32 role_version = 20;
OverridableBoolData can_change_game_mode = 21;
OverridableBoolData can_use_maker_pen = 22;
OverridableBoolData can_use_delete_all_button = 23;
OverridableBoolData can_save_inventions = 24;
OverridableBoolData disable_mic_auto_mute = 25;
OverridableBoolData can_use_share_cam = 26;
string role_guid = 27;
OverridableBoolData can_spawn_inventions = 28;
OverridableBoolData can_spawn_consumables = 29;
OverridableBoolData can_use_room_reset_button = 30;
OverridableBoolData can_use_play_gizmos_toggle = 31;
}
// ── Role collection (rec_room/player_roles/room_role_collection_data.proto)
enum MigratedToRecNetVersion {
NotYetMigrated = 0;
MigratedToRecNet = 1;
}
message RoomRoleCollectionData {
repeated PlayerRoomRoleData room_roles = 1;
MigratedToRecNetVersion rec_net_migration_version = 2;
}
// ── PersistedRoomData top-level (rec_room/persistence/persisted_room_data.proto)
//
enum DEPRECATED_RoomPersistenceVersion {
option allow_alias = true;
V0NewRoomPersistenceVersion = 0;
V1Initial = 1;
V2ExtrusionsCenterOfMass = 2;
V3PersistentHostSettings = 3;
V4RadioPersistence = 4;
V5ExtrusionsPhysicsMode = 5;
V6CustomGameSettings = 6;
V7NewSandboxButton = 7;
V8CircuitChipOrientation = 8;
V9NewTriggerVolume = 9;
V10RoomRoles = 10;
V11SubextrusionsPersistedIds = 11;
V12EverythingARoom = 12;
V13CreationObjectAdded = 13;
V14InventionPieceAdded = 14;
V15GameConfigurationAdded = 15;
V16EraserMarkersFixed = 16;
V17GrabbableAdded = 17;
V18ManualSpawnPointsAdded = 18;
V19StuntRunnerButtonNodeChange = 19;
V20GameRolesInChips = 20;
V21PlayerAttractorConfigurable = 21;
V22AutosaveValidation = 22;
V23TriggerVolumeNoShapeContainers = 23;
V24GadgetVisibilityMovedToSubroomSetting = 24;
V25RoomKeysBeta = 25;
V26DirectionalVoiceChat = 26;
V27JuniorEnabledObjectFlag = 27;
V28SfxPlayForAll = 28;
V29UVManipulationAdded = 29;
V30HomeValuesAdded = 30;
V31SeatCollisionToggleAdded = 31;
V32StoringRotationAsVector4 = 32;
V33LightValuesFloat = 33;
V34OptimizeCollidersToggle = 34;
V35AudioPlayerProperties = 35;
V36BackpackToolsForbiddenInSpawner = 36;
V37ToolHandednessAdded = 37;
V38ProjectileSpreadFloat = 38;
LatestRoomPersistenceVersion = 38;
}
enum PersistedRoomVersion {
option allow_alias = true;
V0New = 0;
V1SerializeDefaultTags = 1;
V2ProgressionEventPopupShop = 2;
V3SandboxGunHandleCanReload = 3;
V4StudioAssetBundleChanges = 4;
V5ParticleEmitterSettings = 5;
V6HolotarProjectorCV2 = 6;
V7LaserPointer = 7;
V8TextScreenRelease = 8;
V9AudioPlayerRolloff = 9;
V7SunDirection = 10;
V11StudioSingleAudioMixer = 11;
V12StudioExposedProperties = 12;
V13AuthorizeRestrictedTools = 13;
V14LaserDirection = 14;
V15StudioAudioClipRegistry = 15;
V16NewUGCShapes = 16;
V17TriggerHandleControlLabel = 17;
V18StudioObjectCanvasInteraction = 18;
V19February23BetaRelease = 19;
LatestVersion = 19;
}
message PersistedRoomData {
DEPRECATED_RoomPersistenceVersion DEPRECATED_version = 1;
ToolTagSettingsData tool_tag_settings_data = 20;
GameRoleCollectionData game_role_data = 22;
RoomRoleCollectionData room_role_data = 23;
PersistedRoomVersion version = 30;
bool creative_roles_enabled = 31;
}