Type:IWorldElement: Difference between revisions

From Resonite Wiki
Fixed links.
add fields
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Stub}}
The '''IWorldElement''' type is an [[interface type]] that represents any object of a [[reference type]] that may exist in a world. It is the foundation of the [[data model]].


IWorldElement is an [[Interface Type]] for anything that may exist in a world. Some elements like [[Type:User|Users]] and [[Type:IStream|Streams]] are not part of the [[Root]] hierarchy.
Every object that can be referenced can be cast to and from IWorldElement, making the type a universal interface to everything in a world.


It allows you to reference:
Objects that are IWorldElements include, but are not limited to:


* [[Component|Components]]
* [[Slots]]
* [[Slot|Slots]]
* [[Components]]
* [[Type:User|Users]]
* [[Users]]
* [[Type:ISyncElement|Sync Elements]] (includes [[Type:IValue`1|Values]]/[[Type:IField`1|Fields]])
* [[Type:SyncElement|Sync Elements]], such as [[Type:IField|fields]] on an object
* [[Type:SyncObject|Sync Objects]]
* [[Type:SyncObject|Sync Objects]], such as <code>Point</code>s on a [[Component:ValueGradientDriver|ValueGradientDriver]]
* [[Type:IStream|Streams]]
* [[Type:World|The World]]


Each networked instance is assigned a unique [[Type:RefID|RefID]] which is the basis for [[Ref Hacking]].
Every IWorldElement has a unique [[Type:RefID|reference ID]] associated with it. Only one IWorldElement in a world may have any given reference ID, including elements that exist outside of the [[Root]] hierarchy.


== Fields ==


The only exception to this type is references above root {{Clarify}}, which can only be accessed through commonly unsupported/frowned upon methods such as Reference Hacking Aka RefHacking. Types that don't fall under IWorldElement can be dangerous to mess with if you don't know what they do. If you're not the host, you can even get security kicked, booting you from the world due to the game thinking you are trying to tamper with the session's permissions.
{{Table TypeFields
 
|ReferenceID|RefID|Reference ID of the element.
See also: [[Things to Avoid#Reference IDs / "Ref Hacking"|Things to Avoid]]
|Name|string|Name of the element.
|World|World|World that the element exists in.
|Parent|IWorldElement|Potential parent element. Can be null.
|IsLocalElement|bool|Whether the element exists only for the local user and nobody else.
|IsPersistent|bool|Whether the element is marked as persistent, meaning it will get saved when a save event occurs on it or its parents.
|IsRemoved|bool|Whether the element is removed from the world.
}}


[[Category:Type]]
[[Category:Type]]
[[Category:Reference types]]

Latest revision as of 18:14, 30 June 2025

The IWorldElement type is an interface type that represents any object of a reference type that may exist in a world. It is the foundation of the data model.

Every object that can be referenced can be cast to and from IWorldElement, making the type a universal interface to everything in a world.

Objects that are IWorldElements include, but are not limited to:

Every IWorldElement has a unique reference ID associated with it. Only one IWorldElement in a world may have any given reference ID, including elements that exist outside of the Root hierarchy.

Fields

Fields
Name Type Description
ReferenceID RefID Reference ID of the element.
Name string Name of the element.
World World World that the element exists in.
Parent IWorldElement Potential parent element. Can be null.
IsLocalElement bool Whether the element exists only for the local user and nobody else.
IsPersistent bool Whether the element is marked as persistent, meaning it will get saved when a save event occurs on it or its parents.
IsRemoved bool Whether the element is removed from the world.