Tags
Creators
Details
0.5.15.alpha
Compatibility
Changes
added some new nodes to help orginaze the canvas along with a new skulk trigger. Also added ability to interact with entities like chest minecrafts, but not players.
[Added]
-
Entity Relay Blocks: Added Item Relay, Fluid Relay, and Energy Relay blocks to allow cables and manager networks to interact with non-player entities (such as boats, carts, and modded entities) in adjacent blocks.
-
Cluster Card Capability Registry: Added extensible API support for custom cluster cards to expose specialized block capabilities.
-
Nested Group Folders: Organize complex network setups by grouping nodes inside folders (Sub-Canvases).
-
Directory Migration: Use the new right-click context option "Move Group" to relocate placed nodes between folders.
-
Interactive Breadcrumbs: Easily navigate between directory levels using the clickable path bar (e.g., Root > Folder > Subfolder).
-
Error and Warning Bubbling: Parent folders will now glow with red outline errors or yellow warning highlights if any of their nested sub-canvas elements require attention.
-
Added
AbstractTargetSettingsOverlayandAbstractFilterableTargetSettingsOverlayclient API classes to consolidate 3D block previews, target selectors, and 12-slot ghost item grids. -
Added
AbstractTransferComponentandAbstractFilterableTransferComponentcommon API classes to unify targeted slot configurations, whitelist states, and side configurations across all item, fluid, and energy transfer components. -
Promoted base classes
AbstractModalPopupandNodeSettingsOverlayto the public client-only API package (dta.sfmflow.api.client.widget), allowing add-on developers to design and register custom overlay panels and popups cleanly. -
Added
AbstractConditionalComponentandAbstractFilterableConditionalComponentpublic API classes to unify and consolidate block targeting, directional face, whitelist, and slot-exclusion configurations for all conditional logic nodes. -
Added the
IRedstoneSidedConfigurablepublic API interface, permitting any custom redstone logic or trigger component to use standard sided threshold configuration popups. -
Added the Snapshot Profile system, which analyzes your active flowchart and restricts off-thread inventory snapshotting strictly to the blocks and capabilities being used.
-
Added a public Event API posted on the NeoForge event bus, allowing other mods to inject virtual inventories during scans, modify snapshotted logic off-thread, register custom block listeners, and cancellably block transfer tasks (e.g., for region claim protection).
-
Added a dedicated sided configuration modal popup (
SculkTriggerSideConfigModalPopup) for the Sculk Trigger, presenting an interactive, alphabetically sorted checklist of all vanilla acoustic vibration events. -
Added side-specific acoustic event filters on the Sculk Trigger, enabling distinct vibration configurations to be mapped to individual block faces.
-
Added a trigger cooldown slider to the Sculk Trigger settings panel to limit vibration detection rates and preserve server tick budgets.
-
Added the Splitter logic node, permitting execution paths to be routed to all output pins simultaneously, in a repeating Round-Robin sequence, or randomly to a single branch.
-
Added the Collector logic node, allowing up to 5 execution lines to be cleanly merged back into a single flowchart path.
-
Added the Sculk Trigger and Sculk Trigger Cable block, allowing flowchart loops to trigger in response to in-world acoustic events (e.g., footsteps, block placements, or projectile impacts).
-
Added face-specific acoustic shielding (muting individual faces) and keyword filters (e.g. "step", "break") to customize the Sculk Trigger listening profile.
-
Added a loop detection shield to both the client and server networking pipelines to block circular connection wiring that could lock up the path planner.
-
Added a modular slot layout registration framework (
ISlotLayoutSubProvider), introducing custom layout overlays for Mekanism Basic Fluid Tanks.
[Changed]
-
Cable Cluster UI: Direction configuration buttons now automatically hide or show based on whether the installed card is directional or omni-directional.
-
Network Scanning: Improved network pathfinder scanning to dynamically detect custom card and relay capabilities across all registered networks.
-
Group Terminals Limit: Enforced a strict maximum limit of 5 Inputs and 5 Outputs per group folder to ensure workspace clarity.
-
Node Spawning: Newly created nodes are now spawned directly into your currently viewed directory level instead of always appearing at Root.
-
Refactored Item, Fluid, and Energy transfer settings overlays to inherit from the consolidated target settings overlay classes, eliminating redundant coordinate setups and saving routines.
-
Refactored Item, Fluid, and Energy transfer nodes to extend the new base hierarchies, successfully eliminating hundreds of lines of duplicate boilerplate variables and setters.
-
Simplified NBT saving and loading on all transfer components to inherit properties directly from parent class handlers.
-
Re-engineered the UI command counter inside the Manager block screen to query the actual size of the flowchart map dynamically, preventing numerical sync anomalies on the client.
-
Secured face-toggle interactions inside conditional nodes to guard against null directional inputs.
-
Refactored the Energy, Fluid, and Item Conditional components to inherit from the new consolidated base classes, drastically reducing duplicate code.
-
Simplified settings saving and loading routines on conditional nodes by delegating common property serialization to parent class handlers.
-
Hardened NBT loading routines for redstone trigger comparison operators, conditional operators, and splitter execution modes to support case-insensitive evaluations of saved values.
-
Consolidated the separate trigger and conditional redstone face popup menus into a single, highly reusable polymorphic config menu (
RedstoneSideConfigModalPopup). -
Re-engineered settings configuration panels by migrating block coordination searches, capability presence checks, and packet serialization routines to standardized base helpers in
NodeSettingsOverlay. -
Hardened NBT save/load structures on all logical nodes, triggers, and splitters to use case-insensitive, serialized name checks, safeguarding against data-driven config file corruption.
-
Re-engineered the
ManagerBlockEntityto cache compiled flowchart structures and snapshot profiles, completely avoiding redundant, CPU-heavy NBT serialization on every trigger check when no layout edits are made. -
Optimized the
PhysicalNetworkMapcoordinate tracker to map packed long coordinates directly to primitive integer IDs, eliminating object allocations during position lookups. -
Re-engineered the
PhysicalNetworkpathfinding scanner to use double-buffered primitive layer swaps and mutable block positions, making network scans nearly garbage-free. -
Simplified variable card definitions by migrating from MapCodecs to standard Codecs.
-
Re-engineered environmental vibration detection to calculate the exact direction the sound hit the block, filtering acoustic checks strictly against that face's configuration.
-
Consolidated trigger registration and cleanup sweeps under a unified listener rebuilding method inside
ManagerBlockEntitythat fires the new event bus hook automatically. -
Re-engineered settings saving to dynamically prune obsolete connection wires if a node's input or output pin count contracts (e.g., resizing a Splitter/Collector).
[Fixed]
-
Capability Routing: Resolved capability binding mismatches for cluster cards and adjacent entity handlers during background flowchart planning sweeps.
-
Orphaned Node Sweeper: Fixed a potential memory and data leak by automatically sweeping and clearing orphaned child nodes if their parent folder was deleted.
-
Empty Port Safety: Resolved a visual glitch where empty nodes or groups with zero configured ports would cause UI pin rendering crashes.
-
Fixed potential coordinate and variable desyncs when loading complex layouts by standardizing inherited NBT serialization patterns.
-
Fixed potential configuration loading bugs on older layout files by ensuring that saved enum string properties parse correctly regardless of capitalization.
-
Fixed potential loading bugs on older layout configurations by implementing strict, case-insensitive string parsing fallback maps for all component operator enums.
-
Fixed major server garbage collection (GC) lag spikes and tick-rate drops during larger network scans or frequent trigger checks.
-
Fixed visual transparency and model occlusion bugs on the Sculk Trigger Cable block.
-
Fixed a potential lag bottleneck during environmental vibrations by registering active sculk cables in a flat, fast-lookup server event cache.
-
Fixed splitter chain recursion starvation by capping consecutive splitters to a customizable maximum threshold.
[Removed]
- Removed the deprecated
RedstoneConditionalSideConfigModalPopupclass, replacing its functionality with the consolidated polymorphic modal popup.
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| sfmflow-0.5.15.alpha-sources.jar | Sources jar | 492.13 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:LTva5BWN:xZpWxQV4"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LTva5BWN:xZpWxQV4"
}

