Home›Java›Mods›Magnetization
Magnetization
ModsJava

Magnetization

Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.

by stonytark_mkii · on CurseForge

A Create: Aeronautics addon adding a full magnetism layer for Sable-driven contraptions: emitters that pull or push ships (electromagnets, anchors…

⬇ Download on CurseForge

The author built this one for Minecraft 1.21.1 on NeoForge. On other versions it may install and then do nothing.

Magnetization

A NeoForge 1.21.1 addon for Create: Aeronautics that adds magnetic forces, anchors, and propulsion for Sable-driven contraptions.

Current release: 1.4.1. This hotfix completes the expandable Tokamak and Gas Detector behavior that 1.4.0 described prematurely; adds coolant loops, Railgun projectile auto-assembly, iron-oxide golems, active-thruster exhaust feedback, per-golem controls, and complete Ponder scene localization; and restores the MR Fluid Golem, Curios slots, EMP drains, MR Fluid redstone hardening, Solar Sail cutoff, metallic horse-armor interactions, and ship-mounted Railguns.

Requirements

Optional integrations (auto-detected when installed):

New in 1.3.0 — Fusion, Railgun & the fuel overhaul

1.4.0 feature set — Excitable noble gases

Addon and modpack authors can make a non-placeable fluid ventable by adding data/<namespace>/magnetization/gas_excitation_profiles/<name>.json:

{
  "fluids": ["example:gas", "example:flowing_gas"],
  "buoyancy": "rise",
  "dormant_argb": "30D0F2F5",
  "excited_argb": "FFFF6FAE"
}

buoyancy accepts rise, sink, or neutral; colors are eight-digit ARGB. Standard neoforge:conditions are supported, so profiles can remain fully optional. Duplicate fluid claims and references to missing fluids fail data reload with the profile ID named in the error.

The rare-earth progression contract for this release is in PROPOSED_1.4.0.md.

How it works

Every block in this addon either emits a magnetic field or responds to one. Fields have a polarity (NORTH or SOUTH), a strength tier (WEAK→EXTREME), and a shape (omnidirectional, directional, conical). Like polarities repel, opposite polarities attract. Forces are applied to:

Onboard-only configurations (every magnet on the same ship) produce zero net thrust — internal forces cancel, just like real physics. To propel a ship, you build between the world and the ship.

External fields integrate over the ship's volume: a coarse 3×3×3 sample grid (configurable) means a long ship feels stronger pull at the end closest to a magnet than the far end, which naturally produces torque so the ship rotates into alignment instead of just sliding. Off-center impulses also feed back as angular velocity via the contraption's true inverse inertia tensor, so a tractor beam clipping the nose yaws the ship around its center of mass. A small per-tick linear drag (default 2%) is applied to any ship being pulled by a magnet so constant-force tugs reach a terminal velocity instead of accelerating forever, and the per-tick acceleration cap is now shared across every emitter touching the same ship — three STRONG anchors stacked can't stack 3× the cap.

Ship polarity & susceptibility

Every Sable sub-level carries a derived magnetic state, scanned periodically from its blocks:

Magnets mounted on a ship still never pull their own ship directly (the carrying sub-level is excluded from each emitter's force pass). But a static magnet on the ground will pull a ship with onboard magnets normally — composition affects susceptibility, presence doesn't gate it.

Block reference

Block Power Field shape Use
Electromagnet redstone omnidirectional, MEDIUM Generic pull. Nice for item collectors and "tractor docking" stations.
Kinetic Electromagnet Create rotation omnidirectional, scales with RPM Variable strength via gearbox/clutch; fits Create-pack progression.
Magnetic Anchor redstone omnidirectional, STRONG Locks a ship in place. The first ship in range becomes the bound target; binding persists across reload.
Repulsor Coil redstone conical (placement-aligned), MEDIUM Pushes ships in the direction the coil faces. Place upward for a hover pad; place sideways/downward to line a tunnel and shove ships through it.
Tractor Beam Emitter redstone directional, STRONG Pulls ships in front of it toward the emitter. Wrench-rotatable.
Magnetic Excavator redstone or internal redstone slot continuous cone scan, default STRONG Continuously projects a widening cone along its facing and pulls every ferromagnetic block in range — each as its own Sable sub-level that tunnels through obstructions toward the emitter, drops on arrival, and feeds adjacent inventories. GUI has strength/range knobs, an in-flight cap slider, an enchanted-tool slot (Fortune/Silk Touch), and an internal redstone-fuel slot so an external redstone signal isn't required. Wrench-rotatable.
Permanent Magnet none (always-on) omnidirectional, WEAK Right-click to flip polarity. Pairs of opposing-polarity permanent magnets between world and ship build static propulsion tracks.
Polarity Inverter passive — Adjacent emitters get their field polarity flipped. Two inverters cancel.
Magnetic Switch passive — Emits redstone signal proportional to nearest ship's distance (8-block range). Pair with anchor + comparator for auto-docking.
Lodestone Core — — Crafting component for every emitter.

Items

Propulsion track example

Line a tunnel with Repulsor Coils all facing the same horizontal direction:

[ coil → ][ coil → ][ coil → ][ coil → ]

Power the coils with redstone; any Sable contraption that enters the tunnel gets pushed along the cone of each coil it overlaps, accumulating thrust through the run.

For static propulsion using only Permanent Magnets:

World floor:     [ N ][ N ][ N ][ N ]
Ship underside:  [ N ][ N ][ N ][ N ]    ← like-pole repulsion, ship hovers

Or for forward push:

World wall:      [ N ][ N ][ N ]
Ship rear:       [ N ][ N ][ N ]    ← repels ship away from wall

Player interactions

Magnetizing armor & tools

Right-click the Electromagnet or Kinetic Electromagnet with an empty hand to open its GUI. Insert a piece of metal armor (anything in #magnetization:metal_armor) or a metal tool (anything in #magnetization:metal_tools) into the slot, then click N / S / Clear to stamp the polarity:

Magnetic Excavator

A redstone-powered (or internally-powered) ferromagnetic mining block. Right-click (empty hand) for its GUI: strength tier (W/M/S/E, default STRONG), range slider (default = half the admin ceiling), in-flight cap slider (how many concurrent pulls the emitter allows), an enchanted-tool slot, and an internal redstone-fuel slot. Wrench-rotate to change the active face direction; defaults to FACING=DOWN (place against a ceiling, mines the column below).

The field model is continuous, not per-cycle:

  1. While powered, the Excavator continuously projects a widening cone along its facing (~14° half-angle, ≥5×5 disc even at shallow depth). Every few ticks it rescans the cone for ferromagnetic blocks in #magnetization:ferromagnetic_blocks (covers c:ores/iron|gold|copper|netherite_scrap, c:storage_blocks/* for those metals, plus addon magnetite blocks and selected Create intermediates).
  2. Each newly-found cell gets assembled as its own Sable sub-level — not one big column — and added to the in-flight pool. The per-emitter "Pulls" slider caps how many can be in flight simultaneously (default 16, admin ceiling 64).
  3. Each in-flight ship gets a radial impulse toward the emitter every tick, and tunnels through obstructions: the world cells on its toward-emitter faces are destroyed (drops pop in place) so the ore can drill through dirt/stone toward the magnet. Multiple ores from the same vein each carve their own tunnel.
  4. On arrival at the emitter, the ship dismantles and its loot drops at the emitter cell — directly into adjacent inventories first (hopper / chest / barrel via IItemHandler), falling back to a dropped ItemEntity for the entity-pass to pull into the same destination.

The enchanted-tool slot at (132, 20) threads its enchantments through LootContextParams.TOOL for every ship's drop resolution — Fortune III multiplies ore drops, Silk Touch silk-mines, etc. Damageable tools take 1 durability per scan that pulls new blocks; enchanted books are immune. The redstone-fuel slot at (28, 20) accepts any item in #magnetization:redstone_fuel (dust, redstone block, torch, lever, observer, daylight detector, target, every vanilla button/pressure-plate variant). Items in the slot are never consumed — it's a presence-based internal power source so your wiring can be safely hidden from the Excavator's own pulls. Either an external redstone signal or a redstone-fuel item keeps the block active.

The strength tier no longer controls a cycle interval — it controls pull force and destruction speed per tunneling ship. Higher tiers = faster tunneling + harder pull. The whole pipeline is throttled per-emitter (destruction budget, in-flight cap) so even at cap=64 the server tick stays healthy. Pulls stop at any block entity (chests, beacons, other emitters), unbreakable block (bedrock-class), or anything tagged #magnetization:excavator_immune — append to that tag to opt out of pulls (claim-mod boundaries, valuable spawners, etc.).

Cooperative Anchors

Two or more powered Magnetic Anchors that share a bound ship apply a once-per-second angular damp (30%) on top of their normal pull, so a multi-anchor dock keeps the airship level instead of letting it spin from accumulated torques. Single-anchor docks behave exactly as before. Use it for stable airship docking pads.

Goggles / HUD

Wearing Create's Engineer's Goggles shows a tier/polarity/range readout above any emitter. Without goggles, you still get a one-line "TIER POLARITY" hint when crosshairing. Jade, WTHIT, and TheOneProbe all surface the same info if installed.

Emitters mounted on a contraption also report the host ship's polarity and susceptibility — for example On ship: NORTH ×1.40 with a 12 ferrous, 3 magnets, 1 inverter breakdown when goggles are on. The snapshot is synced from the server so all four surfaces (goggles, Jade, WTHIT, TOP) read from the same number.

While goggles are worn, additional world overlays appear:

Configuration

The built-in Mods → Magnetization → Config screen and the generated TOML files are the canonical complete option list. Player-facing and world-generation options live in config/magnetization-common.toml; server-owner limits, diagnostics, and command permissions live in config/magnetization-server.toml; render-only options such as thruster exhaust particles live in config/magnetization-client.toml. The tables below highlight selected high-impact settings; use the config screen or generated TOML files for the exhaustive list.

For the complete generated reference, see docs/configuration.md. Regenerate it with python3 scripts/generate-config-reference.py; use --check to verify it is current.

compat — power sources

Key Default Description
compat.allowRedstonePower true Redstone counts as a valid power source for field emitters and Railgun Emitters; excludes propulsion machines, which use propulsion.allowRedstoneThrustPower.
compat.allowEnergyPower true FE/RF counts as a valid power source. The capability stays exposed either way.
compat.requireRedstoneAndEnergy false Require BOTH at once instead of either-or.
compat.emitterEnergyCapacity 50000 Internal FE buffer per emitter.
compat.emitterEnergyDrainPerTick 10 FE consumed per tick while energy-driven. Flat — not scaled by the analog signal.
compat.emitterEnergyTransferRate 200 Max FE/tick accepted from external sources.
compat.analogRedstoneElectromagnet false Scale the Electromagnet's force with the analog redstone level (1–15).
compat.analogRedstoneDipole false Same, for the Dipole Electromagnet (both poles scale together).
compat.analogRedstoneAnchor false Same, for the Magnetic Anchor.
compat.analogRedstoneRepulsor false Same, for the Repulsor Coil.
compat.analogRedstoneTractorBeam false Same, for the Tractor Beam.
compat.analogRedstoneExcavator false Same, for the Magnetic Excavator. Its internal redstone-dust fuel counts as a full signal.
compat.analogRedstoneInducer false Same, for the Structural Inducer (scales its reel-in speed — it emits no field of its own).

With an analog toggle on, signal 1 = 200 N (the Weak tier's force) and signal 15 = 8000 N (Extreme's), ramped geometrically so every level is an equal proportional step. The GUI strength tier is unchanged and still sets the field's range; only force is scaled. It applies only while redstone is the driver — an FE/RF-powered emitter always runs at full configured strength, and a partial signal still burns no FE. Hematite and Halbach arrays scale the throttled force proportionally, so both keep working as usual.

physics

Key Default Range Description
physics.strengthMultiplier 1.0 0.0–100.0 Global multiplier on every emitter's force.
physics.entityVelocityScale 0.05 0.0–1.0 Tick conversion factor for vanilla entity velocity.
physics.conicalHalfAngleCos 0.7071 0.0–0.999 Cosine of the half-angle of conical emitters.
physics.maxAccelPerTick 50.0 0.0–1000.0 Per-ship-per-tick acceleration cap (m/s²) summed across every emitter touching the ship that tick. 0 to disable.
physics.shipSampleSteps 3 1–7 Grid size for volume-integrating a field over a ship's AABB. 1 = single closest-point sample (1.0.0 behaviour); 3 = 27 samples that produce realistic torque. Quadratic cost in steps.
physics.shipLinearDrag 0.02 0.0–1.0 Linear-velocity damping per tick applied to any ship being pulled by a magnet. 0 disables.
physics.shipAngularDrag 0.05 0.0–1.0 Angular-velocity damping per tick — counterpart to shipLinearDrag. Without it, the torque from off-center sample forces could keep a ship spinning indefinitely under sustained pull. 0 disables.
physics.shipBaselineSusceptibility 1.0 0.0–10.0 Multiplier on external force a ship feels with no ferromagnetic blocks aboard. 1.0 = full strength.
physics.shipPerFerrousSusceptibility 0.05 0.0–5.0 Susceptibility added per ferromagnetic block (#magnetization:ferromagnetic_blocks) aboard.
physics.shipPerMagnetSusceptibility 0.15 0.0–5.0 Susceptibility added per magnet emitter block (#magnetization:magnetic_emitter) aboard. Magnets count as ferrous-plus; their pole does NOT shift the ship's pole.
physics.shipMaxSusceptibility 20.0 1.0–100.0 Upper cap on a ship's susceptibility multiplier.
physics.shipScanIntervalTicks 20 1–6000 How often (ticks) a ship's magnetic state is rescanned. 20 = 1 s. Ships not inside any active field never get scanned regardless.

guiLimits — per-emitter GUI ceilings (admin caps)

Key Default Range Description
guiLimits.electromagnetMaxStrength EXTREME enum Max strength tier the Electromagnet GUI can select.
guiLimits.electromagnetMaxRange 256 0–512 Max range in blocks.
guiLimits.anchorMaxStrength EXTREME enum Max strength tier the Magnetic Anchor GUI can select.
guiLimits.anchorMaxRange 256 0–512 Max range in blocks.
guiLimits.repulsorMaxStrength EXTREME enum Max strength tier the Repulsor Coil GUI can select.
guiLimits.repulsorMaxRange 256 0–512 Max range in blocks.
guiLimits.tractorMaxStrength EXTREME enum Max strength tier the Tractor Beam GUI can select.
guiLimits.tractorMaxRange 256 0–512 Max range in blocks.
guiLimits.excavatorMaxStrength EXTREME enum Max strength tier the Excavator GUI can select.
guiLimits.excavatorMaxRange 256 1–384 Max scan depth for the Excavator.
guiLimits.excavatorMaxBlocksPerCycle 256 1–512 Cap on cells the Excavator may consider per cone scan; safety against config typos.
guiLimits.excavatorMaxInFlight 16 1–64 Admin ceiling for concurrent in-flight pulls per Excavator. Each in-flight pull is a Sable sub-level, so this also caps physics-simulation cost.

content

Key Default Description
content.disabledBlocks [] Block paths (e.g. "repulsor_coil") to disable — block emits no field, hidden from creative, GUI skipped. Placed instances stay but go inert.
content.disabledItems [] Item paths to disable — hidden from creative, special effects skipped.

items

Key Default Range Description
items.grappleCooldownTicks 20 0–600 Cooldown between Magnetic Grapple right-clicks.
items.grappleMaxRange 24 4–128 Max scan range for the grapple.
items.compassRange 16 4–128 Field Compass scan radius.

tools — magnetized tool signature abilities

Key Default Description
tools.swordYankEnabled true Magnetized sword yanks opposite-pole armored targets one step on hit.
tools.pickaxeOreRipEnabled true Sneaking with a magnetized pickaxe rips nearby ferromagnetic ore as items.
tools.pickaxeRipRadius 4 (1–16) Scan radius for the pickaxe ore-rip.
tools.pickaxeRipIntervalTicks 20 (4–200) Ticks between ore-rip pulses.
tools.axePulseEnabled true Chopping a log with a magnetized axe sends a radial pull on nearby items + entities toward the player.
tools.shovelPanEnabled true Digging soil with a magnetized shovel may drop trace iron / raw magnetite.
tools.shovelPanChance 0.04 (0–1) Probability per qualifying block break.
tools.hoeDowseEnabled true Right-clicking a magnetized hoe pings ferromagnetic ore with marker particles.
tools.hoeDowseRadius 8 (2–32) Hoe dowsing ping radius.
tools.hoeDowseCooldownTicks 60 (10–600) Cooldown between dowsing pings.

worldgen

Key Default Description
worldgen.magneticPeaksEnabled false If true, denser magnetite veins generate in #minecraft:is_mountain biomes.
worldgen.rareEarthOreGenerationEnabled true Generate Bastnäsite, Monazite, Cobaltite, and Borax in new Overworld chunks. Disable before world creation when a pack supplies those materials another way.
worldgen.anomalyBiomeEnabled false Default off — opt-in. When true, the Magnetic Anomaly biome registers a TerraBlender region (so it spawns naturally) and its runtime effects activate inside it (vanilla-compass spin, field-compass scramble, 1.5× emitter strength, random chaos field). When false the biome JSON still loads, so /locate biome magnetization:anomaly and /magnetization tp anomaly still work — but it won't spawn on its own and effects are inert.
worldgen.anomalyChaosStrength 1.0 Multiplier on the anomaly's chaos-field impulses (ships, players, items). 0 = compass spin + emitter bonus only, no kinetic chaos. Range 0.0–10.0.
worldgen.petrifiedForestEnabled false Default off — opt-in. When true, the Petrified Forest biome registers a TerraBlender region so it spawns naturally. Turning it off only blocks natural generation; /locate biome and /magnetization tp petrified_forest still work.

lightning

Key Default Description
lightning.lirmEnabled true Lightning-Induced Remnant Magnetism: lightning strikes magnetize one unstamped metal armor/tool piece on the struck entity, and have a high chance of petrifying nearby logs.

debug

Key Default Description
debug.debugLogging false FieldApplicator + anchor-binding diagnostic logs. Leave off on busy servers.

The base magnetite ore vein generates in every overworld biome regardless of these flags — worldgen.* only controls optional flavor passes layered on top.

Building

./gradlew build                # produces build/libs/magnetization-<version>.jar
./gradlew test                 # unit tests on field math + ship state
./gradlew runGameTestServer    # headless in-world integration and compatibility GameTests

./gradlew runClient starts an in-development client; ./gradlew runServer starts a hands-on dedicated server. ./gradlew runData regenerates recipes, loot tables, vanilla mining tags, and crater structure templates; compatibility tags and other curated data remain hand-authored.

Prepared 1.4.1 playtest worlds

Two isolated client profiles keep persistent, disposable saves under run-playtest-lab/ and run-playtest-survival/:

./gradlew runPlaytestLabClient
./gradlew runPlaytestSurvivalClient

On the first launch of each profile, create one ordinary world from Minecraft's world screen. The first player login automatically stages that preset; subsequent launches reopen the persistent save without rebuilding over your observations.

The commands below exist only in these playtest profiles (permission level 2):

/magnetization playtest lab reset
/magnetization playtest lab kit
/magnetization playtest survival reset
/magnetization playtest survival kit
/magnetization playtest goto <station>
/magnetization playtest where

Running setup instead of reset relocates a preset to the player's current chunk-aligned position. Both operations intentionally replace the preset's marked 64×48 area; use them only inside the disposable playtest saves.

The prepared worlds can also be driven through the host desktop with scripts/run-playtest-automation.sh lab or scripts/run-playtest-automation.sh survival. The manifest in playtest/automation-matrix.json controls stations, log checks, video captures, and visual thresholds. Evidence is written beneath the ignored playtest-results/ directory. Accepted reference images are immutable, committed files under playtest/baselines/: ordinary runs fail if a declared baseline is missing, while the explicit record second argument replaces them and reports BASELINE_RECORDED. ./gradlew verifyPlaytestBaselines checks manifest coverage and every accepted PNG's SHA-256 hash without launching a client. The lab video actions spawn a moving Sable test ship, auto-assemble a Railgun projectile into a held review state, and record all four active thruster plume styles plus cooled Fusion mist. The portal station is a marked construction lane, while actual AeroPortals transfer and ship-data retention remain covered by the isolated, deterministic compatibility GameTests. The matrix also opens the major machine GUIs, records their interaction states, and stages damaged, material-active Magnetite, Pyrrhotite, Hematite, and Titanomagnetite Golems. Individual stations require the Create-goggles and WTHIT entity readouts to target each golem; isolated Jade and The One Probe profiles repeat the Titanomagnetite, Gallium, soft/hardened MR Fluid, and active Gas Exciter checks. Fuel-slot acceptance/rejection and setting changes remain operator-confirmed steps because their GUI coordinates vary with scale and recipe-viewer layout. Before traversing the lab, the runner seeds active Electrolyzer, Tokamak, Fusion Thruster, and Railgun state, saves and exits to the title screen, reopens the same world, and requires a server-side PLAYTEST_ASSERT PASS persistence marker. Pass persistence as the second argument for a focused save/reopen check. Use the attach second argument to exercise an already-running matching profile.

Known issues

License

CC0 1.0 Universal

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more