mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 15:38:45 -07:00
38fbd0faf1
- 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!
189 lines
5.6 KiB
Protocol Buffer
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;
|
|
}
|