ProtoFlux

From Resonite Wiki
Revision as of 01:28, 5 February 2024 by AdamSkI2003 (talk | contribs) (→‎Variables: fix some engrish)

Introduction

Protoflux
The official ProtoFlux logo

ProtoFlux is a Node based scripting language that can be manipulated in 3D space using the ProtoFlux Tool.

ProtoFlux is the crown jewel of our creative tools - the most powerful visual programming language that our experienced team has designed to date, which lets you quickly prototype and build anything from simple interactions to complex games and systems - with full real-time collaboration support and immediate feedback. Build anything from avatar and world interactivity, to complex systems, and games.

https://resonite.com/features.html

Usage

ProtoFlux is represented in the world as nodes that can be spawned from the ProtoFlux Node Browser.

You can easily spawn a ProtoFlux Tool from the Resonite Essentials folder included in your Inventory to begin scripting with ProtoFlux.

To view a list of nodes, go to ProtoFlux Browser Version for a style like in game, or go to Alphabetical list of all nodes to see a comprehensive list. Every node page links back to both lists.

ProtoFlux can be quickly packed and unpacked from a Slot contained on an item, avatar, world, or wherever you wish to store it.

Variables

In ProtoFlux, there are 3 types of generic variables:

The simplest type of variable is a Data Model Store. It's automatically synced to all users upon being written to. Most simple scripts can be done entirely with these, but it can impact performance if overused.

The natural progression down the list is a Store. It's similar to standard variables in most languages. It does not get synced over the network, which alleviates the overhead of doing so, but could lead to desync.

Lastly, we have locals. They're instanced for different execution chains, so if your ProtoFlux is called twice at once, you can read from and write to the variable from both contexts, they will each use a unique instance of the variable that gets discarded when that execution ends.