mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 22:11:38 +00:00
Add live syncback functionality and optimize service encoding
- Introduced a new endpoint `/api/syncback` for one-click full sync from Roblox Studio to the filesystem, eliminating the need for an active WebSocket connection. - Implemented `SyncbackRequest` and `ServiceChunk` structures to handle service-level properties and child instances during syncback. - Enhanced `encodeService` to include ObjectValue carriers for accurate reference handling and prevent data loss. - Updated the syncback process to utilize Luau-style relative paths for reference attributes, improving path management and consistency. - Integrated session caching in the matching algorithm to optimize performance during syncback operations. These changes significantly improve the live syncback experience, ensuring reliable data synchronization and enhanced performance during development.
This commit is contained in:
parent
7f4b5c4941
commit
b47eef1173
165 changed files with 5205 additions and 206 deletions
|
|
@ -121,8 +121,7 @@ methods:
|
|||
summary: ''
|
||||
tags:
|
||||
- Deprecated
|
||||
deprecation_message: |
|
||||
This deprecated property is a variant of `Class.AnalyticsService:LogCustomEvent()` which should be used instead.
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
|
|
@ -180,9 +179,10 @@ methods:
|
|||
This function has been deprecated in favor of more descriptive methods,
|
||||
including:
|
||||
|
||||
- `Class.AnalyticsService:LogCustomEvent()`
|
||||
- `Class.AnalyticsService:LogEconomyEvent()`
|
||||
- `Class.AnalyticsService:LogProgressionEvent()`
|
||||
- `Class.AnalyticsService:FireCustomEvent()`
|
||||
- `Class.AnalyticsService:FireInGameEconomyEvent()`
|
||||
- `Class.AnalyticsService:FireLogEvent()`
|
||||
- `Class.AnalyticsService:FirePlayerProgressionEvent()`
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
|
|
@ -302,8 +302,7 @@ methods:
|
|||
No return.
|
||||
tags:
|
||||
- Deprecated
|
||||
deprecation_message: |
|
||||
This deprecated property is a variant of `Class.AnalyticsService:LogEconomyEvent()` which should be used instead.
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
|
|
@ -541,8 +540,7 @@ methods:
|
|||
No return.
|
||||
tags:
|
||||
- Deprecated
|
||||
deprecation_message: |
|
||||
This deprecated property is a variant of `Class.AnalyticsService:LogProgressionEvent()` which should be used instead.
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ properties:
|
|||
description: ''
|
||||
code_samples: []
|
||||
type: Content
|
||||
tags: []
|
||||
tags:
|
||||
- Hidden
|
||||
deprecation_message: ''
|
||||
security:
|
||||
read: None
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ description: |
|
|||
|
||||
Roblox uses the following formula to throttle requests for this API based on
|
||||
the number of players in your experience:
|
||||
`max requests per minute per experience = 1 + (5 * number_of_concurrent_users)`. You can purchase additional usage using
|
||||
`max requests per minute per experience = 1 + (5 * number_of_concurrent_users)`.
|
||||
You can purchase additional usage using
|
||||
[Extended Services](../../../cloud-services/extended-services.md).
|
||||
|
||||
For more information, see
|
||||
|
|
|
|||
|
|
@ -953,7 +953,8 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- DynamicGeneration
|
||||
- name: AvatarCreationService.AvatarModerationCompleted
|
||||
summary: |
|
||||
Fires when an in-experience-created avatar's moderation status has been
|
||||
|
|
|
|||
|
|
@ -1348,7 +1348,9 @@ methods:
|
|||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService:PromptSetFavorite
|
||||
summary: |
|
||||
Prompts the `Class.Players.LocalPlayer` to favorite or unfavorite the
|
||||
|
|
@ -1512,7 +1514,9 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService.PromptDeleteOutfitCompleted
|
||||
summary: |
|
||||
Fires when the PromptDeleteOutfit operation is completed.
|
||||
|
|
@ -1530,7 +1534,9 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService.PromptRenameOutfitCompleted
|
||||
summary: |
|
||||
Fires when the PromptRenameOutfit operation is completed.
|
||||
|
|
@ -1548,7 +1554,9 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService.PromptSaveAvatarCompleted
|
||||
summary: |
|
||||
Fires when the `Class.AvatarEditorService:PromptSaveAvatar()` operation is
|
||||
|
|
@ -1572,7 +1580,9 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService.PromptSetFavoriteCompleted
|
||||
summary: |
|
||||
Fires when the `Class.AvatarEditorService:PromptSetFavorite()` operation
|
||||
|
|
@ -1592,7 +1602,9 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
- name: AvatarEditorService.PromptUpdateOutfitCompleted
|
||||
summary: |
|
||||
Fires when the `Class.AvatarEditorService:PromptUpdateOutfit()` operation
|
||||
|
|
@ -1612,5 +1624,7 @@ events:
|
|||
tags: []
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
capabilities: []
|
||||
capabilities:
|
||||
- Players
|
||||
- PlatformAvatarEditing
|
||||
callbacks: []
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ methods:
|
|||
Identifies the recording from the previous call to
|
||||
`Class.ChangeHistoryService:TryBeginRecording()|TryBeginRecording()`.
|
||||
If the operation is
|
||||
`Enum.FinishRecordingOperation.Cancel`, this
|
||||
`Enum.ChangeHistoryService.FinishRecordingOperation.Cancel`, this
|
||||
value is ignored, and the recording is determined by context.
|
||||
- name: operation
|
||||
type: FinishRecordingOperation
|
||||
|
|
|
|||
|
|
@ -230,6 +230,13 @@ methods:
|
|||
individual textures. Calling it on a `Class.SurfaceAppearance` instance
|
||||
will not do anything, but the associated textures will still be streamed
|
||||
in during runtime.
|
||||
|
||||
If PreloadAsync is called on `Class.Instance|Instances` that are not
|
||||
currently visible, such as a `Class.Decal` or an `Class.ImageLabel`, the
|
||||
Engine will download and store textures used by those Instances in its
|
||||
disk cache. Because the `Class.Instance|Instances` are not visible in
|
||||
these cases, the Engine may reduce memory consumption by unloading the
|
||||
textures after preloading them.
|
||||
code_samples:
|
||||
- ContentProvider-PreloadAsync1
|
||||
parameters:
|
||||
|
|
|
|||
|
|
@ -168,6 +168,34 @@ methods:
|
|||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
- CSG
|
||||
- name: GeometryService:FragmentAsync
|
||||
summary: |
|
||||
This API has not been released.
|
||||
description: ''
|
||||
code_samples: []
|
||||
parameters:
|
||||
- name: part
|
||||
type: BasePart
|
||||
default:
|
||||
summary: ''
|
||||
- name: sites
|
||||
type: Array
|
||||
default:
|
||||
summary: ''
|
||||
- name: options
|
||||
type: Dictionary
|
||||
default: nil
|
||||
summary: ''
|
||||
returns:
|
||||
- type: Array
|
||||
summary: ''
|
||||
tags:
|
||||
- Yields
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
- CSG
|
||||
- name: GeometryService:IntersectAsync
|
||||
summary: |
|
||||
Creates one or more `Class.PartOperation|PartOperations` from the
|
||||
|
|
@ -432,6 +460,34 @@ methods:
|
|||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
- CSG
|
||||
- name: GeometryService:SweepPartAsync
|
||||
summary: |
|
||||
This API has not been released.
|
||||
description: ''
|
||||
code_samples: []
|
||||
parameters:
|
||||
- name: part
|
||||
type: BasePart
|
||||
default:
|
||||
summary: ''
|
||||
- name: cframes
|
||||
type: Array
|
||||
default:
|
||||
summary: ''
|
||||
- name: options
|
||||
type: Dictionary
|
||||
default: nil
|
||||
summary: ''
|
||||
returns:
|
||||
- type: MeshPart
|
||||
summary: ''
|
||||
tags:
|
||||
- Yields
|
||||
deprecation_message: ''
|
||||
security: None
|
||||
thread_safety: Unsafe
|
||||
capabilities:
|
||||
- CSG
|
||||
- name: GeometryService:UnionAsync
|
||||
summary: |
|
||||
Creates one or more `Class.PartOperation|PartOperations` from one part
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ methods:
|
|||
</tr>
|
||||
<tr>
|
||||
<td><code>Timeout</code></td>
|
||||
<td><code>Integer</code></td>
|
||||
<td>Integer</td>
|
||||
<td>no</td>
|
||||
<td>An optional timeout value in seconds to make requests time out more quickly. Values must be greater than zero and no greater than the default request timeout. This can be useful when debugging hanging requests.</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -33,11 +33,14 @@ tags: []
|
|||
deprecation_message: ''
|
||||
properties:
|
||||
- name: Sound.AudioContent
|
||||
summary: ''
|
||||
description: ''
|
||||
summary: |
|
||||
A reference to an audio asset.
|
||||
description: |
|
||||
This property is a reference to an audio asset.
|
||||
code_samples: []
|
||||
type: Content
|
||||
tags: []
|
||||
tags:
|
||||
- Hidden
|
||||
deprecation_message: ''
|
||||
security:
|
||||
read: None
|
||||
|
|
|
|||
|
|
@ -6,10 +6,8 @@ name: TeleportService
|
|||
type: class
|
||||
memory_category: Instances
|
||||
summary: |
|
||||
Enables transporting `Class.Player|Players` between places and servers.
|
||||
|
||||
For more information on how to teleport players between servers, see
|
||||
|
||||
Enables transporting `Class.Player|Players` between places and servers. For
|
||||
more information on how to teleport players between servers, see
|
||||
[Teleport between places](../../../projects/teleport.md).
|
||||
description: |
|
||||
**TeleportService** is responsible for transporting `Class.Player|Players`
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ inherits:
|
|||
descendants: []
|
||||
tags:
|
||||
- NotCreatable
|
||||
- NotReplicated
|
||||
deprecation_message: ''
|
||||
properties:
|
||||
- name: VideoSampler.TimeLength
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue