NodeWorld

SDK

La référence est en anglais : elle est générée à partir des commentaires du code, écrits en anglais.

The C# types of the NodeWorld SDK packages (com.nodeworld.sdk.base, com.nodeworld.sdk.worlds, com.nodeworld.sdk.avatars): the components you put on worlds and avatars, the publishing tools of the Unity Editor and what the game uses to run them.

Generated from the /// comments of the code, SDK 0.2.0.

global

TypeKindSummary
HandGripTrackerclassThe OpenXR grip pose of the controller in one hand (devicePosition / deviceRotation of the XR controller of that hand).
NWAvatarclassAvatar descriptor for NodeWorld.
NWAvatarControllerclassOrchestrates the active local NWAvatar and its runtime runtime full-body IK rig.
NWAvatarEditorclassCustom inspector for NWAvatar.
NWAvatarMeasurementsstructBody measurements computed from bone positions at detection time.
NWFullBodyAvatarRigclassRuntime full-body IK rig for the local NodeWorld avatar.
NWVisemeMapclassResult of scanning an avatar for viseme blendshapes.

NodeWorld.Avatar

TypeKindSummary
IAvatarViewpointProviderinterfaceGives the world position of an avatar's viewpoint (its eyes).
RemoteAvatarclassAnother player's avatar in the world: it follows the poses received from the network and carries their voice and nametag.
RemoteNameplateclassFloats above a remote avatar's head and turns to face the viewer.
SyncedBoneLayoutstatic classThe humanoid bones of a player's pose on the network, in the order of the bone arrays of the protocol (SyncedBones of NodeWorld.Protocol: Hips = 0 ...

NodeWorld.Avatar.IK

TypeKindSummary
ArmSettingsclassSettings of one arm: how the hand reaches its target and how the shoulder and elbow follow.
BodyPartclassA part of the body the solver moves: the spine or one limb.
BodyPositionOffsetenumBody parts whose solved position can be offset at runtime (FullBodyVrOffsetModifier, FullBodyVrPoseImpulse).
BodyRotationOffsetenumBody parts whose solved rotation can be offset at runtime.
FullBodyVrCalibrationstatic classPlaces the IK targets of the head, hands and feet on the player's trackers and scales the avatar to the player.
FullBodyVrCalibrationDataclassThe result of a calibration, to apply it again later without the player standing in pose.
FullBodyVrCalibrationSettingsclassSettings of a full-body calibration: tracker axes and offsets.
FullBodyVrIkComponentclassRuns the full-body IK solver on an avatar every frame.
FullBodyVrMathstatic classMath helpers of the full-body IK.
FullBodyVrMovingPlatformclassKeeps the planted feet of the IK on a moving platform the player stands on (a vehicle, a lift).
FullBodyVrOffsetModifierclassBase of the components that add offsets to the IK's body parts each frame, before it solves.
FullBodyVrPoseImpulseclassPushes the body of the avatar for a moment, as a hit would, then lets it come back.
FullBodyVrRootControllerclassKeeps the avatar root under the pelvis target and facing it, once a pelvis tracker is calibrated.
FullBodyVrSolverclassFull-body IK for VR: places the avatar's head, hands, pelvis and feet on the player's headset, controllers and trackers, and steps the feet when no foot is tracked.
HumanoidReferencesclassThe bones of a humanoid avatar the full-body IK drives, read from its Animator.
InterpolationModeenumEasing curves of the procedural steps (LocomotionSettings.stepInterpolation).
LegSettingsclassSettings of one leg: how the foot reaches its target and how the knee follows.
LimbPartclassAn arm or a leg of the solver: three bones (four with a shoulder or toes) reaching for a target.
LocomotionSettingsclassSettings of the procedural steps: when the feet step and how, when no foot is tracked.
PoseSamplestructA position and a rotation in world space: a tracked device or a bone.
ShoulderRotationModeenumHow the shoulders follow the hands.
SkeletonPartclassThe spine of the solver: pelvis, spine, chest, neck and head, driven by the head and pelvis targets.
SpineSettingsclassSettings of the spine: how the head target moves the pelvis, the chest and the neck.
VirtualBoneclassA bone of the solver: where it was read from the avatar and where the solver puts it.

NodeWorld.Avatar.Locomotion

TypeKindSummary
LocomotionAnimatorclassPlays the locomotion clips on the local humanoid avatar from the velocity of its body: idle when still, walk or run blended by direction and speed, backward being the forward walk in reverse.
LocomotionClipSetclassThe humanoid clips the local avatar plays when the player moves, as the locomotion layer of VRChat.

NodeWorld.Core

TypeKindSummary
BoneSnapshotstructSnapshot of all synced bone world-space transforms.
IAvatarServiceinterfaceLoads and shows the avatars: the local player's and those of the other players.
INWLoggerinterfaceThe log of the SDK and the game, with a context in front of each line.
IStorageServiceinterfaceSaves small data on the device, by key.
ITelemetryServiceinterfaceSends the game's log lines to NodeWorld's API, when telemetry is on.
ITokenProviderinterfaceProvides access to the current authentication token.
IUpdatableinterfaceA service ticked by the game's update loop.
IWorldServiceinterfaceLoads and unloads the world the player enters.
NWLoggerclassDefault INWLogger implementation backed by UnityEngine.Debug.
Servicesstatic classThe game's service locator: one instance per type.
SpawnPointInfostructA spawn point of a world.
UpdateTimingenumWhen an IUpdatable ticks.
WorldInfostructDescribes a world that is currently loaded or being loaded.
WorldRefusalenumWhy the game refused a world's package before using any of its files (nothing of the world was loaded).

NodeWorld.ECS

TypeKindSummary
AvatarInterpolationJobstructMoves one avatar's root and bones toward their targets.
AvatarInterpolationSystemstructMoves the other players' avatars toward their last received pose each frame.
AvatarPlayerIdstructThe player whose avatar this entity is.
AvatarRootCurrentstructThe interpolated pose of the avatar's root this frame.
AvatarRootTargetstructThe last received pose of the avatar's root.
BoneCurrentElementstructThe interpolated pose of one synced bone this frame.
BoneTargetElementstructThe last received pose of one synced bone.
ECSWorldBridgeclassThe bridge to the ECS world that interpolates the other players' avatars and lip sync.
InterpolationSpeedstructHow fast the avatar's pose catches up with the received one.
RemoteAvatarTagstructMarks the entity of another player's avatar.
VisemeActiveTagstructMarks an avatar's lip sync entity that is active.
VisemeConfigstructThe lip sync settings of an avatar.
VisemeLerpJobstructMoves one avatar's viseme weights toward their targets.
VisemeLerpSystemstructMoves the lip sync weights toward their targets each frame.
VisemeWeightCurrentstructThe current weight of one viseme blendshape.
VisemeWeightTargetstructThe weight one viseme blendshape moves toward.

NodeWorld.SDK.Client.Flux

TypeKindSummary
FluxObjectStatestructThe transform of a synchronized object, sent by its owner.
FluxOwnershipChangestructA synchronized object changed owner (0: nobody), with its state at that moment.
FluxPlayerDataclassThe values a world keeps for the local player between visits (FL# PlayerData), on this client: one small JSON file per world and per NodeWorld account, under the client's persistent data folder.
FluxRoomPlayerstructAnother player of the room, as the scripts see it.
FluxScriptEventstructA network event of a FL# script, from a player.
FluxScriptStatestructThe synced state of one FL# script (slot: its index among the FL# scripts of the object), from the owner.
FluxSpawnRefusalsstatic classWhy the server refused a spawn of the local player (IFluxRoom.ObjectSpawnRefused).
FluxSpawnedObjectstructA copy of a network template that lives in the room (FL# Networking.Instantiate), as the server told it.
FluxWorldRuntimeclassObjects spawned for the room (Networking.Instantiate): copies of the network templates of the world.
IFluxLocalPlayerinterfaceThe local player, as the FL# scripts of the world see it.
IFluxRoominterfaceThe room of the local player, as the FL# scripts of the world see it: the other players, the master, the server clock, the owners of the synchronized objects, the synced states and network events of the scripts.
IFluxVideointerfaceThe video players of the client, for the FL# scripts of a world (VideoPlayer).
IFluxVideoPlayerinterfaceOne video player.
IFluxVoiceinterfaceHow the local player hears the voices of the others (the client's voice playback).
IFluxWorldRuntimeinterfaceThe FL# scripts of the loaded world, run in the client or in Play mode of a world project.
PublicSuffixListclassThe Public Suffix List (publicsuffix.org, Mozilla Public License 2.0; the file and its notice are in Resources/NodeWorld/): where the domain of a name starts.
WorldNetworkChoiceenumWhat the player chose in the window (Ruby: « Au choix dans la fenêtre »).
WorldNetworkGateclassThe one door between a world and the Internet on the client: web (HttpClient), WebSocket, images and video of the FL# scripts go through it, never the client's own requests (API, avatars).
WorldNetworkRequestclassA world asks to contact a hostname the player has not answered yet: one request per hostname (every request of the world to it waits for the same answer).

NodeWorld.SDK.Client.Interaction

TypeKindSummary
InteractableHighlightstatic classThe blue outline of VRChat around what the player can use: an interactable or a pickup of the world, while a ray or a hand of the player hovers it and does not hold it.

NodeWorld.SDK.Client.PlayMode

TypeKindSummary
LocalFluxRoomclassThe room of Play mode: the local player alone, without a server.
PlayModeBootstrapclassPlay mode of a world project: the player rig at the spawn point and the FL# scripts of the world, compiled by the SDK when Play started.
PlayModeRemoteAvatarDriverclassShows the simulated players of Play mode with the default avatar.
PlayModeRigManagerclassThe player of a world's Play mode: the rig of the client (SDKConfig.XRRigPrefab) with the default avatar, driven by the headset, or without one (or with NWWorldRef.ForceDesktopInPlayMode) by the desktop controls of th…
WorldPlaySessionclassA Play session of a world scene in the SDK editor.

NodeWorld.SDK.Client.Video

TypeKindSummary
VlcVideoclassThe video players of the FL# scripts (VideoPlayer), in the NodeWorld client and in the Play mode of a world project: libVLC 3 (LGPL), loaded on the first player; a page of a video site is resolved to its media by yt-dlp.

NodeWorld.SDK.Client.XR

TypeKindSummary
ClientKeysstatic classThe keys the application keeps for itself: the worlds never see them (plan Flux B3, « Le bouton du menu n'est jamais transmis aux scripts »).
ClientUistatic classWhere the client's interface is drawn, above the world (plan Flux B3, « L'UI du client s'affiche au-dessus du monde »): in VR its canvases are on a layer of their own, drawn by the player's camera after the world and…
DesktopControlsclassKeyboard and mouse controls without a headset (no-VR mode of the client, and the Play mode of a world), with the keys of VRChat desktop (docs.vrchat.com/docs/keyboard-and-mouse).
DesktopPointerKeyclassTab on desktop frees the mouse to point and click at things (client and Play mode): a short press toggles it, holding the key keeps it free while held.
DesktopShortcutsstatic classThe desktop keys that ask something of the application around the player (IDesktopControlsHost): V mutes the mic or makes it speak again, Shift+R asks to respawn, P takes the camera out or puts it away.
IDesktopControlsHostinterfaceWhat the desktop controls ask of the application around the player: the client, or the Play mode of a world.
NWFarInteractionCasterclassThe far ray of the player's Near-Far interactors, as the interaction ray of VRChat: it reaches an object of the world through its trigger colliders too (the zones of the crêpe stand, the seats), and a trigger that bel…
NWPlayerControlsclassWhat the world may do to the local player's locomotion (FL# scripts: Player.walkSpeed, gravityStrength, velocity, immobilized...), on the player rig (VRPlayerController).
TypingGatestatic classThe one gate of the physical keyboard (client and Play mode).
VRPlayerControllerclassThe local player's rig: the XR origin, its character controller and gravity, its avatar, seated mode, freezing, teleports and respawn.
WorldScreenGuardstatic classWhat a world may not do to the player's view (plan Flux B3, « L'UI du client s'affiche au-dessus du monde »), held at every frame after everything the world runs (its FL# scripts, animators, UI events) and before the…

NodeWorld.SDK.ContentAllowlist

TypeKindSummary
ContentCheckResultclassThe result of checking a world bundle: what is not allowed, and the time it took.
ContentFindingclassOne thing of a world bundle that is not allowed, and so is removed from the bundle the players load (« Charger sans ce composant »).
ContentFindingKindenumWhat a finding of the content check removes from a world bundle.
WorldContentAllowliststatic classWhat a world bundle may hold: the Unity classes and scripts allowed on its objects, each with its reason, and the methods its UnityEvents may call.
WorldContentCheckstatic classReads a world bundle with AssetsTools.NET and checks it against WorldContentAllowlist: the types of each serialized file (Unity class ids; scripts by the assembly, namespace and class of their MonoScript), the calls w…

NodeWorld.SDK.Editor

TypeKindSummary
AvatarBuildPipelineclassValidates an avatar and builds its asset bundles for each platform, with the manifest and the zip uploaded on the website.
AvatarPublisherSettingsclassThe settings of the Avatar Publisher, an asset of the project.
AvatarPublisherWindowclassThe Avatar Publisher window (NodeWorld, Avatar Publisher): validates an avatar and builds it for each platform.
BuildPipelineBaseclassShared build pipeline infrastructure for avatar and world publishers.
CreatorKeyStoreclassWhere the creator's key lives on this computer: one plain PEM file in the user's profile, outside every project, so that it never goes into a git repository.
MipmapStreamingValidatorstatic classChecks that the textures of a world or an avatar have mipmaps and mipmap streaming, as the game needs on every platform, and fixes them.
PlayModeWorldMenustatic classEditor helpers for quickly adding a NodeWorld play-mode root to the active scene.
PublisherWindowBaseclassBase of the World and Avatar Publisher windows: tabs, a settings asset saved when it changes, output folder and platform fields, messages.
SignedPackagestatic classThe signed part of a world's package: the file list of manifest.json, and manifest.sig next to it.
WorldBuildPipelineclassBuild pipeline for packaging a scene as a NodeWorld world bundle.
WorldContentReportstatic classThe content check of a world at publication: the bundle each platform has just built goes through the players' own check (WorldContentCheck, same code, same verdict), and the creator sees what the players' games will…
WorldPublisherWindowclassEditor window for building the current scene as a NodeWorld world bundle.

NodeWorld.SDK.PlatformSwitch

TypeKindSummary
AnimatorOverrideclassAnimator: enabled, controller and culling mode per platform.
AudioSourceOverrideclassAudio Source: enabled, clip, volume and spatial blend per platform.
BehaviourOverrideclassAny other component (Behaviour): enabled per platform.
CameraOverrideclassCamera: enabled, field of view, clip planes and background colour per platform.
ColliderOverrideclassCollider (any kind): enabled and trigger per platform.
GameObjectOverrideclassGameObject: active, tag and layer per platform.
LODGroupOverrideclassLOD Group: enabled and size per platform.
LightOverrideclassLight: enabled, type, colour, intensity, shadows and render mode per platform.
MaterialOverrideclassMaterial: shader, main colour and GPU instancing per platform.
MeshColliderOverrideclassMesh Collider: enabled, convex and mesh per platform.
MeshFilterOverrideclassMesh Filter: the mesh per platform.
NWPlatformenumSimple enum so the runtime types never reference UnityEditor.BuildTarget.
NWPlatformSwitchclassNodeWorld Platform Switch — one per scene.
PlatformAnimatorCullingModeclassA AnimatorCullingMode per platform (serializable).
PlatformAudioClipclassA AudioClip per platform (serializable).
PlatformBoolclassA bool per platform (serializable).
PlatformColorclassA Color per platform (serializable).
PlatformField<T>classA value for desktop PC (Windows, Linux) and a value for Android (Quest).
PlatformFloatclassA float per platform (serializable).
PlatformIntclassA int per platform (serializable).
PlatformLightProbeUsageclassA LightProbeUsage per platform (serializable).
PlatformLightRenderModeclassA LightRenderMode per platform (serializable).
PlatformLightShadowsclassA LightShadows per platform (serializable).
PlatformLightTypeclassA LightType per platform (serializable).
PlatformMaterialclassA Material per platform (serializable).
PlatformMeshclassA Mesh per platform (serializable).
PlatformOverrideBaseclassAn override of the Platform Switch: the values of one object, component or asset for desktop PC and for Android (Quest), applied when the build target changes.
PlatformOverrideRegistrystatic classFinds the override type that fits an object, component or asset (exact types first, then Renderer, Collider and Behaviour for their subclasses).
PlatformQuaternionclassA Quaternion per platform (serializable).
PlatformReflectionProbeUsageclassA ReflectionProbeUsage per platform (serializable).
PlatformRenderTextureclassA RenderTexture per platform (serializable).
PlatformRuntimeAnimatorControllerclassA RuntimeAnimatorController per platform (serializable).
PlatformShaderclassA Shader per platform (serializable).
PlatformShadowCastingModeclassA ShadowCastingMode per platform (serializable).
PlatformSpriteclassA Sprite per platform (serializable).
PlatformStringclassA string per platform (serializable).
PlatformTextureclassA Texture per platform (serializable).
PlatformTransformclassA Transform per platform (serializable).
PlatformVector3classA Vector3 per platform (serializable).
ReflectionProbeOverrideclassReflection Probe: enabled, resolution and intensity per platform.
RendererOverrideclassRenderer: enabled, shadows, probes and materials per platform.
SkinnedMeshRendererOverrideclassSkinned Mesh Renderer: enabled, mesh, shadows, probes and materials per platform.
TransformOverrideclassTransform: local position, rotation and scale per platform.

NodeWorld.SDK.PlatformSwitch.Editor

TypeKindSummary
NWPlatformSwitchEditorclassThe inspector of the Platform Switch component: the same table as the Platform Switch window.
NWPlatformSwitchListenerclassAuto-applies overrides when the build target changes or a scene is opened.
NWPlatformSwitchWindowclassEditor window for the scene's single NWPlatformSwitch.
PlatformHelperstatic classConverts between UnityEditor.BuildTarget and NWPlatform.
PlatformSwitchGUIstatic classShared drawing routines used by both the inspector and the window.

NodeWorld.SDK.Shared

TypeKindSummary
CatalogImageMetadataclassA picture of the server catalog: its file, its hash and its type.
CatalogImageProcessorstatic classReads the pictures the server shows in the catalog and computes their hash.
CreatorFingerprintstatic classThe fingerprint of a creator's public key: how players tell two creators apart (they see no name).
CreatorKeyclassA creator's key: the RSA key (3072 bits, RSA-SHA256 PKCS#1) the SDK makes at the creator's first build and signs each world's manifest with.
FluxBehaviourclassA FL# script of the world on this GameObject: the class (Namespace.Name of a FluxScript of the world), the values of its public fields, and the network id of the object when its scripts synchronize it (Networking.Sync…
FluxFieldKindenumThe kind of value of a field of a FL# script.
FluxFieldValueclassThe value of one public field of a FL# script, as the scene sets it before Awake.
FluxSharpPackageValidatorstatic classChecks the FL# part of a world package before the game or the server runs it: manifest fields and native module header.
IPlayerControllerinterfaceThe local player's body as the rest of the game sees it: where it is, how it moves, teleports and freezing.
IPlayerInfointerfaceA player of the room, as the world sees it.
IServerAdmininterfaceWhat a server's administration can do to its players.
NWBakedLightingclassThe baked lightmaps of a world scene, applied by the scene itself when it loads (client, Play mode): its textures join LightmapSettings.lightmaps (an entry already there with the same textures is shared, a freed entry…
NWWorldConfigclassThe settings of a world, an asset next to its scene: identity, FL# scripts, Play mode player and platforms.
NWWorldRefclassThe NW World component: makes a scene a world, with its config, spawn point and respawn height.
NetIdRegistryclassGives the synchronized objects of a world short network IDs in place of their object IDs.
NetworkTemplateclassMarks an object of the world as a network template: FL# scripts spawn copies of it for the whole room with Networking.Instantiate.
PlayerLayersstatic classThe layers of the players' avatars, the same in the client and in every world project (TagManager): the avatar of the local player is on LocalPlayer, the others' on RemotePlayer.
SDKConfigclassThe SDK's own settings: the prefabs Play mode uses.
WorldManifestclassThe manifest.json of a published world: its format version, identity, creator's public key, FL# module and every file of the package with its size and SHA-256.
WorldManifestFileclassOne file of a world's package, as the creator signed it.
WorldManifestIntermediateArtifactsclassThe WebAssembly module of a world's scripts, before it is compiled for each platform.
WorldManifestMediaclassMedia of a published world (pictures are given on the website).
WorldManifestPlatformclassThe files of a world for one platform (their sizes and SHA-256 are in WorldManifest.files).
WorldManifestSourceArtifactsclassThe FL# source files of a world.
WorldPackageCheckstatic classThe checks the game makes on a world's package before using any of its files, in this order: the format version (ReadManifest), the creator's signature of the manifest (VerifySignature), then the size and SHA-256 of e…
WorldPackageRejectedExceptionclassA world's package refused by WorldPackageCheck: the reason the player is told, and the detail for the logs.
WorldPackageSignaturestatic classThe signature of a world's package: manifest.sig holds the creator's RSA-SHA256 (PKCS#1) signature of the exact bytes of manifest.json, which lists every file of the package with its size and SHA-256.

NodeWorld.SDK.Shared.PlayMode

TypeKindSummary
IPlayModeRemoteAvatarDriverinterfaceShows the simulated players of Play mode.
SimulatedPlayerclassA player of Play mode: the local one, or a simulated other player.
SimulatedPlayerManagerclassThe players of a world in Play mode: the local player and simulated other players, to test a world alone.