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&BoxElement '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
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 🛠️