MZ Mining Fleet & Free Logistics

v0.12.12
by Mazael (Brian, Bob)

Adds an oversized MZ mining fleet, free logistics, manufactories, and a player-built asphalt road system.

Beta 23 days ago CoI-Open No source
Source code
No source provided
Tags
Quality of Life Cheat & Sandbox Tweaks Vehicles

The live listing confirms v0.12.12 is published. Its main description is outdated; this replacement includes the current production and asphalt features. Current listing


MZ Mining Fleet & Free Logistics

Move more material, expand your production, and build your own asphalt road network!

MZ Mining Fleet & Free Logistics is a cheat-and-sandbox expansion for Captain of Industry. It combines oversized mining equipment, reduced logistics costs, increased vehicle capacity, custom production buildings, and an asphalt paving system.

The MZ vehicle fleet

  • MZ3000 Economy Hauler: A compact hauling truck with a 30-unit cargo capacity.
  • MZ6000 Front-End Loader: A 60-unit mining machine.
  • MZ9900 Dragline: A slow-moving, long-reach mining machine with a 120-unit capacity.
  • MZ9000 Conveyor Loader: A large mining machine with a 240-unit capacity.
  • MZ Asphalt Paver: A dedicated vehicle for laying and reclaiming asphalt.

The custom mining machines work through Mine Control Towers. They fill before unloading and empty before returning to work. The current release admits one haul truck at a time to each active MZ unload, reducing unnecessary empty-truck convoys.

Free logistics and productivity improvements

  • Small and Tier II stackers are free to build and operate.
  • Small and Tier II ore sorting plants are free to build and operate.
  • Stock hauling trucks have 3× cargo capacity by default.
  • Tree planters have 3× cargo capacity by default.
  • Tree harvesters work 5× faster by default, without generating extra wood.
  • Small diesel generators produce twice the power for the same fuel input.

Truck capacity, planter capacity, and harvesting multipliers are configurable. Stock excavator capacity and digging performance remain unchanged.

Custom production buildings

Expand your island with three additional facilities:

  • MZ Biofuel Refinery: Converts potatoes, vegetables, water, and a diesel seed charge into a larger quantity of ordinary diesel.
  • MZ Maintenance Works: Offers high-output recipes for Maintenance I, II, and III.
  • MZ Earth Block Plant: Turns dirt, sand, and water into ordinary concrete slabs.

These facilities are available from the start and free to construct in the current public-test build. They still require recipe ingredients, workers, electricity, and maintenance.

Build your own asphalt roads

The MZ Asphalt Plant produces asphalt from gravel and crude oil. Version 0.12.12 supports storing asphalt in ordinary loose storage, tiers I–IV, and transporting it through U-shaped conveyors.

To begin paving:

  1. Build an MZ Asphalt Plant.
  2. Find MZ Asphalt Paving Crew under Storage.
  3. Open the crew’s Assigned trucks panel and assign at least one loose-material haul truck and one MZ Asphalt Paver.
  4. Supply asphalt and paint Asphalt Road designations.

Assigned haulers deliver asphalt from the plant or loose storage to the crew. The paver collects it from its assigned crew and handles the paving. The crew itself is truck-served and has no conveyor connections.

Asphalt includes a 25% forward ground-speed bonus and a terrain-path preference for ground vehicles. Reverse and sideways movement receive no speed bonus.

To remove player-laid asphalt, use the game’s surface-removal designation. The assigned paver returns recovered asphalt to its crew, so leave room in the crew’s storage.

Compatibility and saves

The current release is a public-test build for Captain of Industry 0.8.7 on Windows. Vehicle movement, paving, animations, and save/load behavior may still have edge cases.

You can add the mod to an existing save. Do not disable or remove it after using its custom vehicles, buildings, products, or asphalt surfaces. Back up your save before installing or updating.

For bug reports, include your game version, mod version, what happened, and a screenshot or short video where possible.

AI Disclosure: AI tools assist with creating and maintaining this mod, including coding, troubleshooting, documentation, and some creative content. I direct the work and make the final decisions about what gets released. AI assistance does not guarantee bug-free results, so player feedback and bug reports help improve the mod.

No announcements yet.

v0.12.12

Latest
Game version
0.8.7 - 0.8.7
Released
Sep 07, 2026
File size
38.6 MB
License
CoI-Open
Save-game: Add · Remove
Changelog
======================================================
- Makes Asphalt storable through its own product registration. The game's real
loose-storage selectors and unassigned conveyor-input auto-assignment now accept
it; no stock or third-party storage/product prototype is rewritten.
- Assigned loose haulers can supply the paving crew from either plant or ordinary
loose storage under native logistics rules. The crew remains truck-served.
- Extends the existing asphalt input guard so newly available ordinary storage
cannot divert a paver's reclaimed asphalt. Pavers load and return only at their
exact assigned crew; plant/ordinary-storage outputs remain blocked to pavers.
- Keeps crew start/menu/assignment controls, native surface removal and single-
truck MZ miner dispatch. No asset, balance or saved prototype ID changes.
- Adds actual registered native loose-storage acceptance, unit/fluid exclusion,
existing gravel control, truck-loadability and crew/ordinary-store role tests.
- Automated checks target Captain of Industry 0.8.7. In-game belt transfer,
hauling, paving/removal and save/reload remain manual public-test acceptance.

Historical entries below describe their version; earlier non-storable-asphalt
restrictions are superseded by v0.12.12.
Loading forum…

v0.12.12 - Native asphalt storage and conveyor support

======================================================
- Makes Asphalt storable through its own product registration. The game's real
loose-storage selectors and unassigned conveyor-input auto-assignment now accept
it; no stock or third-party storage/product prototype is rewritten.
- Assigned loose haulers can supply the paving crew from either plant or ordinary
loose storage under native logistics rules. The crew remains truck-served.
- Extends the existing asphalt input guard so newly available ordinary storage
cannot divert a paver's reclaimed asphalt. Pavers load and return only at their
exact assigned crew; plant/ordinary-storage outputs remain blocked to pavers.
- Keeps crew start/menu/assignment controls, native surface removal and single-
truck MZ miner dispatch. No asset, balance or saved prototype ID changes.
- Adds actual registered native loose-storage acceptance, unit/fluid exclusion,
existing gravel control, truck-loadability and crew/ordinary-store role tests.
- Automated checks target Captain of Industry 0.8.7. In-game belt transfer,
hauling, paving/removal and save/reload remain manual public-test acceptance.

Historical entries below describe their version; earlier non-storable-asphalt
restrictions are superseded by v0.12.12.

v0.12.11 - Single-truck MZ miner dispatch

===========================================
- Fixes the MZ6000, MZ9000, and MZ9900 calling every assigned haul truck to
one active unload, then sending the unfilled trucks back when that unload ends.
- Root cause: Captain of Industry's mine-tower provider admits every eligible
empty truck to an enabled excavator queue. The custom 30-second unload window
left that queue open long enough for several trucks to register and start travel.
- An MZ excavator queue now accepts a new truck only while it has no arriving or
waiting claim. When the selected truck is released, the next eligible truck can
claim the remaining or next unload normally.
- Stock excavator queues retain the game's native multi-truck admission behavior.
Mining rate, capacities, costs, models, asphalt, and unrelated logistics do not change.
- Adds a focused admission regression plus real Harmony matching against the
installed Captain of Industry 0.8.7 mine-tower provider. Hands-on gameplay
acceptance remains separate from automated source, hook, and package proof.

v0.12.10 - Native asphalt-removal return path

================================================
- Fixes player-laid asphalt remaining under a valid clearing designation when
the dedicated paver could not complete the native reclaimed-material route.
- Root cause: Captain of Industry removal jobs put the recovered surface product
in the servicing truck and require a valid input buffer. The mod allowed only
non-paver haulers into the paving crew input, so the assigned paver could not
return reclaimed asphalt to its own crew.
- Allows an MZ Asphalt Paver assigned to that exact paving crew to deliver only
reclaimed asphalt back to the crew. The existing plant-output guard still
prevents the paver from loading fresh asphalt directly at the plant.
- Keeps asphalt out of ordinary storage. Removal therefore requires the paving
crew to have free capacity; the recovered asphalt is recycled instead of
deleted or duplicated.
- Adds a focused regression covering assigned-paver return, existing assigned
loose-hauler delivery, unassigned rejection, and incompatible-vehicle rejection.
- Build, registration, runtime-hook, recipe-port, package, and install proof are
recorded separately from hands-on gameplay acceptance.

v0.12.9 - Whole-mod audit and first-session paving fix

=======================================================
- Fixes the MZ Asphalt Paving Crew's `Assigned trucks` panel on the first session
of a brand-new game. The zero-duration start node now remains available, so
Captain of Industry 0.8.7 actually researches it and applies Custom Routes.
- Enforces paving roles at the service boundary even when the native assigned
list is empty or its toggle is manipulated: an assigned non-paver loose hauler
alone may deliver plant-to-crew, and that crew's assigned paver alone may load
crew-to-road. The paver still cannot load directly at the plant.
- Locks the crew to Asphalt during normal operation, forces assigned-vehicle
enforcement on, rejects pavers from Mine Control Towers, and cleans invalid
saved paver-to-mine assignments during load.
- Reapplies native capacity calculation to already-built base-game trucks after
save load. Capacity/speed overrides now use explicit stock prototype lists so
unknown third-party vehicle prototypes are left untouched.
- Reworks custom MZ truck-dock authorization around the active truck queue job.
It now survives pathfinding replans and save/load without a permanent strong
goal set that could leak canceled jobs.
- Splits loader, MZ9900, asphalt, and stock-capacity Harmony ownership. The loader
and asphalt families now remove every dependent patch when any required private
method or transpiler shape fails, preventing half-patched deadlocks.
- Bounds asphalt route-cost sampling to center-to-edge traversal lines instead of
scanning whole compressed pathfinding nodes, and cleans speed state when a
tracked vehicle is destroyed.
- Repairs the MZ3000 light-control material contract and names all four custom
factory work clips exactly `Working` so the engine can bind their animations.
- Raises the declared minimum game version to 0.8.7, the only installed runtime
baseline used by the private-hook, registration, and Unity contract checks.
- Adds a real net48 Harmony smoke test. Two complete construct/dispose cycles patch
35 methods / 38 owner records and return all four owner IDs to zero patches.
- Full mod build, registration smoke, all 40 recipe-port contracts, Unity bundle
build, asset readback, and release-package parity pass. Hands-on gameplay remains
required before these public-test behaviors can be called accepted.

v0.12.8 - Paving-crew construction-toolbar fix

================================================
- Fixes the MZ Asphalt Paving Crew itself being missing from the construction
toolbar even after v0.12.7 exposed its Assigned trucks panel.
- Root cause: the crew was registered under Captain of Industry 0.8.7's
obsolete, empty `Logistics` toolbar category. Stock storages use the live
`Storage` category.
- Moves the crew into Build menu -> Storage and updates its description with
the exact path to its Assigned trucks controls.
- Extends the full Core + Base + mod registration smoke test so packaging fails
if the crew is not in Storage or ever returns to obsolete Logistics.
- Keeps the Custom Routes unlock, non-storable asphalt, truck-loadability
exception, and separated hauler/paver roles from v0.12.7 and v0.12.6.
- Build and registration proof pass against Captain of Industry 0.8.7. The
corrected toolbar entry and hauling workflow still need hands-on game proof.

v0.12.7 - Paving-crew assignment controls

===========================================
- Fixes the MZ Asphalt Paving Crew having no visible way to assign haul trucks
or pavers on islands that had not researched Advanced logistics control.
- Root cause: Captain of Industry gates every storage's native `Assigned trucks`
panel behind the `Custom Routes` technology, while the mod made the paving
crew itself available from game start.
- The mod's existing zero-duration start unlock now also unlocks Custom Routes,
so selecting the crew immediately shows the native assignment panel and its
plus/minus controls. Researched start nodes replay newly locked units during
save loading, so the correction also applies to existing modded saves.
- The crew description now tells players exactly where to click: select the
MZ Asphalt Paving Crew and use the plus buttons under `Assigned trucks`.
- Adds a registration regression that fails if the crew is start-unlocked while
its required assignment-interface technology is not.
- Asphalt remains non-storable and the v0.12.6 haul-truck/paver role separation
is unchanged. Gameplay behavior still needs hands-on testing.

v0.12.6 - Forum-reported paving, vehicle-group, and dragline fixes

==================================================================
- Fixes the asphalt delivery deadlock caused by Captain of Industry 0.8.7
treating every non-storable product as non-loadable on trucks.
- Asphalt remains excluded from ordinary loose storage, but assigned loose
haul trucks can now carry it from the MZ Asphalt Plant to the paving crew.
- Separates crew roles: the paver cannot serve the crew's input or load at the
plant, ordinary haul trucks cannot take surface jobs, and only a paver
assigned to that crew may load its output and pave designated ground.
- Gives the MZ3000 and MZ Asphalt Paver their own vehicle groups instead of
mixing both into the stock pickup/truck group.
- Corrects the retained MZ9900 Blender model so its bucket mouth and teeth face
the machine and its hoist/drag cables attach to the corrected side.
- Makes the MZ9900 a slower crawler dragline and raises only its terminal
driving tolerance to one tile to stop short reposition jobs from becoming
endless circles around an unreachable quarter-tile endpoint.
- Adds regression checks for custom group separation, non-storable hot mix,
the narrow truck-loadability override, installed 0.8.7 hook signatures, and
correct dragline bucket orientation in the Unity prefab build.
- Code build, full Core + Base + mod registration, hook-shape audit, Blender
source rebuild, and Unity bundle build pass. Gameplay behavior still needs
hands-on testing.

v0.12.5 - Complete stock terrain-array contract

================================================
- Matches the installed 0.8.7 stock Concrete texture families field-for-field:
main albedo is 256x256 DXT1; main normals and smooth-metal are 256x256 DXT5;
all edge maps are 64x64 DXT5.
- Also matches mip counts, Repeat wrapping, Bilinear filtering, anisotropy 1,
graphics formats, and sRGB versus linear data handling.
- Adds a Unity comparison probe that opens the real stock game bundles and the
finished mod surface bundle, then rejects any array-relevant mismatch.
- Keeps the approved 1024x1024 source artwork intact outside runtime import.

v0.12.4 - Superseded size-only terrain fix

===========================================
- Reduced the main terrain texture size but left compression, edge resolution,
filtering, and anisotropy mismatched. Superseded by v0.12.5.

v0.12.3 - Full prototype-registration fix

===========================================
- Fixes the MZ Maintenance Works registration failure caused by duplicate
Mechanical Parts entries in every maintenance recipe's common input map.
- Groups the two valid Mechanical Parts selectors as one `AC` mapping and
keeps each recipe's electronics selector on `B`.
- Adds a standalone smoke-test harness that executes Captain of Industry
0.8.7's real Core + Base + mod prototype-registration pipeline.
- The full registration smoke test passes before this package is installed.

v0.12.2 - Custom recipe port-type audit

========================================
- Fixes the MZ Biofuel Refinery potato inlet from a countable `#` port to the
loose-product `~` port required by Captain of Industry 0.8.7.
- Adds a deterministic verification script that checks every custom recipe
input/output selector against product classes decompiled fresh from the
installed Mafi.Base.dll.
- The complete type audit found no other mismatched recipe port types.

v0.12.1 - Asphalt plant loose-output registration fix

======================================================
- Fixes the load-blocking ProtoBuilderException raised when the asphalt recipe
tried to bind LooseProductProto Asphalt to a CountableProductProto output.
- Changes the MZ Asphalt Plant's X outlet from a flat/countable `#` port to the
loose-product `~` port required by Asphalt.

v0.12.0 - Assigned hot-mix paving crews and detailed models

============================================================
- Asphalt is now a non-storable hot-mix product. Ordinary loose warehouses do
not offer it, so production cannot be turned into a general stockpile.
- Adds the MZ Asphalt Paving Crew, a small live receiver with Captain of
Industry's native assigned-vehicle controls. Assign loose haul trucks and an
MZ Asphalt Paver to this crew.
- Assigned haul trucks shuttle fresh asphalt from the plant to the crew hopper.
A paver-only surface guard prevents those dump trucks from taking road jobs;
the assigned MZ Asphalt Paver loads from the crew and lays designated tiles.
- The crew enforces assigned vehicles and automatically binds its one allowed
product, so it is a purpose-built paving receiver rather than a warehouse.
- Replaces the early blockout machines with retained detailed Blender/FBX
models for the asphalt plant, tracked paver, twin-auger screed, and paving
crew receiver. Unity prefabs retain their required animation and track paths.
- Runtime logistics and private road hooks are built against Captain of
Industry 0.8.7 and remain public-test behavior until hands-on gameplay proof.

v0.11.0 - Player-built asphalt roads

====================================
- Adds a start-unlocked MZ Asphalt Plant with a 20-second recipe: 8 gravel and
4 crude oil produce 10 asphalt.
- Adds asphalt as a storable loose product and a native player-laid terrain
surface costing 1 asphalt per tile.
- Adds a tracked, asphalt-only MZ Asphalt Paver that fulfills Captain of
Industry's native surface-modification truck jobs. Other trucks exclude the
asphalt product so road work stays on the dedicated paver.
- Adds a complete original asphalt visual set: seamless surface source, eight
terrain variants, four edge sets, derived normal/smooth-metal maps, three UI
icons, plant/paver prefabs, and paver attachment art.
- Terrain pathfinding applies a coverage-weighted 0.8 travel-time cost to
asphalt ground edges, making vehicles prefer useful paved routes without
changing native elevated/modular road costs.
- Ground vehicles on asphalt receive both a 1.25x local driver limit and a
single 1.25x forward-speed request. The two parts are required to make the
bonus real rather than cosmetic.
- Runtime hooks are checked against Captain of Industry 0.8.7 private method
shapes and disable their own behavior if a later game update breaks them.
- Save warning: do not remove the mod after paving, because saved custom
surface IDs require the asphalt prototype to remain registered.

v0.10.1 - Automation port sizing

=================================
- Gives every manufactory dedicated transport hookups for every physical
recipe input and output, with explicit product-to-port mappings.
- Biofuel Refinery: separate potato and vegetable flat-conveyor inputs,
separate diesel and water pipe inputs, and a dedicated diesel pipe output.
- Maintenance Works: two mechanical-parts flat-conveyor inputs plus one
electronics flat-conveyor input. The second parts belt lets its 96/minute
Maintenance I demand run at full speed even on 60/minute Tier-1 belts.
- Maintenance I, II, and III outputs remain on Captain of Industry's normal
virtual maintenance network; they do not use a physical output conveyor.
- Earth Block Plant: dedicated dirt and sand U-shape conveyor inputs, a water
pipe input, and a concrete-slab flat-conveyor output.

v0.10.0 - Experimental MZ manufactories

========================================
- Adds three new standalone production buildings, each with an original
retained Blender source model, finished PBR material assignment, a custom
build-menu icon, moving machinery, and a normal clickable selection volume.
- MZ Biofuel Refinery: 6 potatoes + 6 vegetables + 4 water + 4 diesel produce
12 ordinary diesel every 20 seconds. The stock-compatible output can fuel
vehicles, generators, and any other normal diesel consumer.
- MZ Maintenance Works: selectable recipes produce 640 Maintenance I,
640 Maintenance II, or 320 Maintenance III every 20 seconds. Each recipe
preserves the stock parts-to-maintenance ratio at four times the batch size.
- MZ Earth Block Plant: 12 dirt + 6 sand + 6 water produce 16 ordinary
concrete slabs every 20 seconds.
- All three buildings are start-unlocked and cost nothing to construct for
public testing. Workers, electricity, maintenance, and recipe inputs remain
enabled so the factories still have an operating economy.
- Asset project moved to the available Unity 6000.3 editor line used by the
current game branch. This package was built with Unity 6000.3.8f1.
- Existing mining vehicles, cargo multipliers, forestry speed, free logistics,
and the MZ truck-docking hotfix are otherwise unchanged.

v0.9.2 - Reachable hauling-truck docks

=======================================
- Fixes the remaining report where hauling trucks could not reach a full
MZ6000 even though native recovery, refueling, and depot movement worked.
- Replaces the fixed four-tile loading target with a dock radius calculated
from each custom machine's actual navigation clearance.
- Keeps every fallback loading tile on or outside that safe clearance ring,
including the rear-loading MZ9000.
- Preserves the intended truck angle on the first approach, then relaxes the
angle on the normal retry when terrain or turning room blocks it.
- The MZ9900 retains its long-reach loading arc with the same safe-ring rule.
- No mining rates, cargo capacities, vehicle costs, or model assets changed.

v0.9.1 - Native vehicle recovery handoff

=========================================
- Fixes COI Hub bug #1944: Recover can now take control of an MZ6000 or other
custom MZ excavator that is full and stuck in its unload/reposition cycle.
- Native recovery now clears the mod's private staging state and truck request
before the base game cancels jobs and queues its Recover Vehicle job, then
resets the excavator state so that recovery can actually execute.
- Manual move, reassignment, scrap, and replacement commands now release the
same private staging state instead of being mistaken for failed pathfinding.
- A staging navigation job restored from a save is now re-adopted by the unload
controller on its first step instead of becoming orphaned.
- A full MZ with a queued unload-staging move can no longer remain trapped in
WaitingForTruck. The move is allowed to run, then unloading starts normally.
- The custom MZ truck-loading dock is now used only by hauling trucks in the
excavator queue. Fuel and service vehicles retain the game's stock approach
tiles and retries instead of being sent to the cargo-unloading spot.
- No mining rates, cargo capacities, vehicle costs, or model assets changed.

v0.9.0 - First public test

==========================
- Public release of the MZ3000, MZ6000, MZ9900, and MZ9000 vehicle set.
- Includes free small/T2 stackers and ore sorters, 3x stock truck and tree
planter cargo, 5x tree harvester work speed, and 2x small diesel power.
- Stock excavator capacity and performance remain unchanged.
- Custom machines use Mine Control Tower jobs and native multi-truck unloading.
- MZ3000 cargo now appears visibly in the dump bed when loaded.
- Known limitation: the custom vehicle art is chunky, simplified, and closer
to Tonka-toy styling than the detailed stock game models.
- Known limitation: public beta may still contain animation, docking,
pathfinding, or terrain edge cases.
Mods that depend on this

No other mods depend on this mod yet.