promotional bannermobile promotional banner

Integrated Scripting Callback

Add the ability to write code to Integrated Dynamics, allowing direct writing of JavaScript/TypeScript within the network

Integrated Scripting Callback

Script your Integrated Dynamics networks with JavaScript and TypeScript.

Integrated Dynamics is powerful but visual: you build logic by dragging operators into the Logic Programmer and stacking Variable Cards. That is fine until you want something like "take everything in this chest that is stackable with a stack size of at least 16, then sort by count" — the cards pile up fast.

Integrated Scripting Callback adds a second way: write code.

Open a Scripting Terminal on your network, write a script, select a name in it, and insert an empty Variable Card. That card now carries your constant — or, if you selected a function, it becomes an Operator Card you can use as a filter or predicate. From there it behaves like any other card in the network: display values on a Display Panel, filter item lists, fill an Integrated Dynamics filter.

This is an unofficial 1.12.2 / Forge port of Integrated Scripting by rubensworks (CyclopsMC). Not affiliated with CyclopsMC — please do not report issues with this port upstream.

Features

  • In-game script IDE — the Scripting Terminal edits every .js / .ts file on every exposed disk: syntax highlighting, auto-indent, bracket and quote completion, an autocomplete dropdown for members, undo/redo, auto-save.
  • JavaScript and TypeScript — .ts scripts are compiled to JavaScript inside the game (Translanguage, shaded into the jar — no Node.js, no tsc). Types, interface, generics, parameter properties and enum all work. No type checking is performed; types are for your IDE.
  • Every value type bridges both ways — integers, longs, doubles, booleans, strings, lists, NBT, items, blocks, fluids and more.
  • Full operator access — call the built-in operators through idContext.ops.*, plus object methods such as item.stackable() or list.length().
  • Real files on disk — scripts live in world/integratedscriptingcallback/scripting-disks/<id>/, so you can edit them with an external editor while the game is running; changes are picked up automatically.
  • Generated typings — a .d.ts file is written on every world start, giving your external IDE completion and checks for idContext.ops and object methods.
  • Log to files — console.log() and console.error() go to <script>.stdout / <script>.stderr.
  • Sandboxed by default — file I/O, processes, threads and native access are disabled; a statement limit (16384 per evaluation) guards against infinite loops. All evaluation happens server-side.
  • Network Refresher — an item that repairs stale networks and desynced Display Panels: right-click a panel or a cable to clear the crashed flag, re-validate the network and force a client resync.
  • Addressable Memory — a block holding 16 addressable slots (a–p), read and written from scripts with memory.get("a") / memory.set("a", 42).
  • In-game documentation — a Scripting chapter and a Scripting Tutorial chapter are added to the On the Dynamics of Integration book, with 7 advancements.

Getting started

  1. Craft Mendesite in a Drying Basin: 1 andesite + 1000 mB menril resin (15 ticks in an electric drying basin, 300 in a regular one).
  2. Craft Scripting Disks, a Scripting Drive and a Scripting Terminal (recipes are in JEI/NEI and in the in-game book).
  3. Connect the drive to your network, right-click it and insert a disk — the disk now has a numeric disk ID. Place the terminal on a cable of the same network and right-click it.
  4. Create a file, type const myVar = 123;, double-click the name myVar, and put an empty Variable Card into the slot in the lower-right corner.

The card now equals 123. Put it in a Display Panel and you will see 123.

Requirements

Component Version
Minecraft 1.12.2
Forge 14.23.5.2847 / 2859
Java 8
Integrated Dynamics 1.12.2 (developed and tested against 1.1.11) — required
CyclopsCore 1.12.2-1.6.7 — required
CommonCapabilities 1.12.2-2.x — required

The GraalVM JavaScript runtime (21.3.0) is shaded into the release jar, so no companion runtime mod is needed. A -slim.jar build is also published; it contains only this mod and additionally requires integratedscriptingcallbacklibs.

Install on both client and server — the client runs the terminal UI, the server compiles and executes scripts. A client-only install does nothing useful.

Known limitations

  • The editor highlights but does not check syntax; errors surface when a Variable Card is evaluated.
  • let state is temporary and may be reset at any time.
  • NBT support covers compound tags only (scalars need nbtScalarWrapper).
  • TypeScript is type-erased and enum-downleveled only: no type checking, and value import, re-exports, decorators, runtime namespace and JSX are rejected.
  • No require, fs or any other Node.js capability.
  • Anyone who can open a terminal can edit every script exposed on that network; there is no fine-grained permission control.

Credits and license

  • Original Integrated Scripting: © rubensworks (CyclopsMC), MIT.
  • 1.12.2 port and translation: the maintainers of this repository.
  • Integrated Dynamics and CyclopsCore: rubensworks and the CyclopsMC team.
  • GraalVM (graal-sdk, js 21.3.0): Universal Permissive License 1.0.
  • Translanguage 2.0.3: MIT.
  • This repository's code and assets: MIT.

Integrated Scripting Callback Team

profile avatar
  • 5
    Projects
  • 6.0K
    Downloads

More from pingsu_88666View all

  • Multiblocked2 Unofficial project image

    Multiblocked2 Unofficial

    Multiblocked2-unofficial is forked from the Minecraft 1.20.1 version of Multiblocked 2. It keeps all features from the original mod, merges mbd2thread, fixes several bugs, and adds methods and events that are more useful for modpack customization

    • 5.2K
    • October 31, 2026
  • Hidden materials project image

    Hidden materials

    Using CraftTweaker script to control the display of material pages in the Tinkers' Antique (Materials and You) book in Minecraft 1.12.2

    • 15
    • October 20, 2026
  • Hex Casting: Legacy project image

    Hex Casting: Legacy

    This project is based on the upstream Hex Casting project and is maintained as a legacy branch for 1.12.2.

    • 219
    • October 10, 2026
  • Applied Ember project image

    Applied Ember

    Enhance the support of Applied Energistics 2 for Embers in Embers Rekindled

    • 624
    • September 23, 2026
  • Multiblocked2 Unofficial project image

    Multiblocked2 Unofficial

    Multiblocked2-unofficial is forked from the Minecraft 1.20.1 version of Multiblocked 2. It keeps all features from the original mod, merges mbd2thread, fixes several bugs, and adds methods and events that are more useful for modpack customization

    • 5.2K
    • October 31, 2026
  • Hidden materials project image

    Hidden materials

    Using CraftTweaker script to control the display of material pages in the Tinkers' Antique (Materials and You) book in Minecraft 1.12.2

    • 15
    • October 20, 2026
  • Hex Casting: Legacy project image

    Hex Casting: Legacy

    This project is based on the upstream Hex Casting project and is maintained as a legacy branch for 1.12.2.

    • 219
    • October 10, 2026
  • Applied Ember project image

    Applied Ember

    Enhance the support of Applied Energistics 2 for Embers in Embers Rekindled

    • 624
    • September 23, 2026