Nodebox (Showcase)

Nodebox - A UGC (User-Generated-Content) Node Graph Library for S&Box

General keybinds apply,
  • WASD - Move && Mouse - Look
  • LMB - Interact && Enter - confirm input field changes
  • Other keybind tips you'll find in-game

Description

Nodebox is a reimagining of Wiremod gates from Garry's Mod made in S&Box

Element 'em' not allowed

Inspired by Unreal Engine's Blueprints and Resonite's Protoflux

The `Node`s themselves are abstracted away from any visual/interactive parts
You can implement wrappers for them, which provide different visuals/behaviour/etc.
Element 'em' not allowed

"Play" it:
Nodebox Showcase

Add it as a library/dependency or whatever-the-f:
Nodebox

Source code:

FAQ
Element 'em' not allowed

Why not just use ActionGraphs?
A#1: ActionGraph can't be edited in-game (someone will definitely prove me wrong)
A#2: If someone made an editor for them smh, it would have 0 collaboration features
A#3: There are no protection features, which means you either are giving players full control 

Why am I stuck and can't move?
A: You might have an input field selected on a `Constant<T>` node, try pressing Enter

Will there be a permission system to restrict which properties players can fuck with?
A: Yes and No, there should and will be one, but much later when Facepunch finally makes a Sandbox gamemode. In terms of other gamemodes - disable `ShouldLoadDefaults` on the Node Library and Do It Yourself

Execution control, For, While, Delay?
A: Nope, Soon-ish

Variables or something like that?
A#1: I ate them
A#2: There will be Components that you can add to GameObjects to store variables, soon-ish. Better options like local variables will be there when we'll figure out `NodeContext`s

User Docs?
A#1: I ate them
A#2: There are Name/Desc fields on Nodes, which will be used later for an in-game tooltip thingy

Developer Docs?
A#1: I ate them
A#2: A wiki will go up on Github, when the API is stable and doesn't shit it's pants

Where are ? and ?<?> nodes?
A: I ate them Element 'em' not allowed

"After-contest" planned features
  • Comparison and BitwiseOps nodes (and just general wiremod feature-parity)
  • Better implementations for Add, Clamp, etc..., which should be based on interfaces instead
    • (+ a shit ton of useful interfaces/math functions that should probably move into a separate library)
  • UI Helper thingy, that shows you the text input field you have focused
    • (should fix the "stuck" problem described above)
  • General codebase cleanup - repetitive code, polish up the node library API
  • In-editor WorldPanel rendering (if possible) and general In-editor QoL
  • Search functionality
  • User-side SceneTree Explorer
  • A `Pin` type, that acts as a "pulse" (i.e. UE Blueprint's Exec or Resonite's Discrete nodes)
    • (Wiremod used number pins as signals (rising edge/falling edge), which was very cumbersome)
  • Collapse/Uncollapse Nodes into/from a single Node
  • Multiplayer support, with shared/client/server -side nodes/calculations
  • A `NodeContext` which allows you to implement functions/events local to that context
  • A `Node3dGrid` component that aligns placed nodes on a 2d grid
  • Pack/Unpack nodes into GameObjects (same as Pack/Unpack in Protoflux)
  • Custom panels for some nodes, so that they are more compact (+, -, *, ...)
  • And, ofcourse, more `Node`s 🛠️