SFM-Flow

A Re-imagined SFM with Flowcharts

File Details

sfmflow-0.3.1.alpha.jar

  • R
  • Jul 1, 2026
  • 474.42 KB
  • 10
  • 1.21.1
  • NeoForge

File Name

sfmflow-0.3.1.alpha.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:sfm-flow-1589954:8349674"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Some back end updated, but most important things are with the change in how manager data is saved means I believe we are save safe now.   The other big improment is that chaining multiple inputs and or outputs together now works as I believe it should.  This has been fun to work on.  Hope you are enjoying it.  Full change log below.

###[Added]

* Modular Plugin API: Introduced a backend plugin system (ISFMFlowPlugin / ISFMFlowClientPlugin) that allows third-party developers to register custom flowchart nodes, settings panels, and capabilities side-safely.

* Extensible Network Capabilities: Rewrote the network routing system to support custom capabilities (FlowCapability). Cable networks can now support fluid, energy, or chemical transfer integrations seamlessly in the future.

* Flowchart Wire Buffers: Connection wires now virtually queue items (FlowItemBuffer) as they travel along S-curves, preserving their source block coordinate metadata for downstream evaluation.

* Server Diagnostic Profiler: Added a /sfmflow profile command for administrators to audit active Manager blocks, displaying performance execution times, queued backlog counts, and click-to-teleport actions.

* Execution Time Budgets: Added a configurable execution time budget (limits.maxExecutionBudgetUs, defaulting to 1000 microseconds) to clamp the time spent executing transfers per tick, protecting server performance.

* External Data Storage: Flowchart layouts and configurations are now stored in dedicated .dat files within the world save folder (<world_folder>/sfmflow/managers/) instead of inside the block's NBT. This mitigates chunk NBT bloating, reduces save overhead, and keeps world save sizes stable.

* Automated Save Cleanup: When a Machine Inventory Manager block is broken, its corresponding external save file is automatically deleted from disk to prevent unreferenced data buildup.

 

###[Changed]

 

* Modular Core Layout: Decoupled built-in triggers and transfers, registering them through the new Vanilla plugin modules.

* API Promoted Widgets: Elevated BlockPreview3DWidget, InventorySelectorWidget, and ItemFilterWidget to public API packages for developers to reuse.

* Storage Architecture: Loading and saving processes now fetch layout data asynchronously from the filesystem once the world is loaded.

* Initial Client Synchronization: Data-sync tags continue to package layouts dynamically on chunk load to ensure visual flowchart canvases update immediately when logging in.

 

###[Fixed]

* Backward Compatibility: Legacy worlds storing layout data directly inside chunk NBT are automatically parsed, loaded, and migrated to the new external format upon first load.

 

###[Removed]

* Hardcoded Routines: Removed hardcoded item handler operations from the manager block entity's ticking loop in favor of the registry-backed capability executor loops.