Data Model: Difference between revisions

From Resonite Wiki
Created a page for the Data Model.
 
m Minor grammatical correction and rewording
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
The '''Data Model''' refers to the collection of primitive types and abstract concepts within the [[FrooxEngine]], and are therefore synced with the model when defined within the code base in the engine.
The '''Data Model''' refers to the collection of primitive types and [[Core Concepts|core concepts]] within the [[FrooxEngine]], and are therefore synced with the model when defined within the code base in the engine.
 
== Further Concepts ==
 
=== Storage ===
 
You can store data in several different variable types, one of which is the [[ProtoFlux:Data_Model_Store|Data Model Store]] node. It takes in a valid [[Value Type|value]] or [[Reference Type|reference]] and globally syncs the contents across the network. This differs from the [[ProtoFlux:Store|Store]] node, which does take in a value or reference, but does not sync it.
 
{{Note|You could get around the regular store variable limitation to make it sync with the data model, by using a [[ProtoFlux:Continuously_Changing_Relay|Continuously Changing Relay]] node along with it.|suggestion}}
 
=== Simi-Supported Types ===


An example of a [[Type:Type|type]] that is not defined currently (or at least not very supported) with the Data Model is the [[Type:Guid|GUID]] type, and thus has a high potential of breaking the engine, causing a crash when used in certain ways, and many other oddities.
An example of a [[Type:Type|type]] that is not defined currently (or at least not very supported) with the Data Model is the [[Type:Guid|GUID]] type, and thus has a high potential of breaking the engine, causing a crash when used in certain ways, and many other oddities.
=== Local Elements ===


Local elements are also not part of the data model and thus also not synced, but are tracked using the [[ProtoFlux:Is Local Element|Is Local Element]] node. There is currently no way of making a slot have this kind of behavior without the use of mods.
Local elements are also not part of the data model and thus also not synced, but are tracked using the [[ProtoFlux:Is Local Element|Is Local Element]] node. There is currently no way of making a slot have this kind of behavior without the use of mods.


for a complete list of what is in the data model, see [[Core Concepts#Data Model|core concepts]].
=== Mods VS Plugins ===
 
[[Mods]] to the engine are modifications that do not effect the data model and are not changed in a way where synced objects could be in conflict with other users. This allows users to have different combination of mods and not have problems or issues when being used with other users that don't have the same mods.
 
[[Plugins]] are modifications to the engine that add or remove something from the data model. When users that use a plugin that other users don't have, it crashes the engine for those users that are missing that plugin, and normally users can't join users that have plugins unless they also have the same plugin most of the time.
 
== See Also ==
* For a complete list of what is in the data model, see [[Core Concepts#Data Model|core concepts]].

Latest revision as of 16:34, 1 October 2024

The Data Model refers to the collection of primitive types and core concepts within the FrooxEngine, and are therefore synced with the model when defined within the code base in the engine.

Further Concepts

Storage

You can store data in several different variable types, one of which is the Data Model Store node. It takes in a valid value or reference and globally syncs the contents across the network. This differs from the Store node, which does take in a value or reference, but does not sync it.

You could get around the regular store variable limitation to make it sync with the data model, by using a Continuously Changing Relay node along with it.

Simi-Supported Types

An example of a type that is not defined currently (or at least not very supported) with the Data Model is the GUID type, and thus has a high potential of breaking the engine, causing a crash when used in certain ways, and many other oddities.

Local Elements

Local elements are also not part of the data model and thus also not synced, but are tracked using the Is Local Element node. There is currently no way of making a slot have this kind of behavior without the use of mods.

Mods VS Plugins

Mods to the engine are modifications that do not effect the data model and are not changed in a way where synced objects could be in conflict with other users. This allows users to have different combination of mods and not have problems or issues when being used with other users that don't have the same mods.

Plugins are modifications to the engine that add or remove something from the data model. When users that use a plugin that other users don't have, it crashes the engine for those users that are missing that plugin, and normally users can't join users that have plugins unless they also have the same plugin most of the time.

See Also

  • For a complete list of what is in the data model, see core concepts.