Skip to content

Repository files navigation

Open Industries: Temperate

Open Industries: Temperate is a complete Temperate economy replacement for OpenTTD 15.3. Version 0.3.0 provides 28 cargoes, 28 industries, 14 stockpiled processing chains, three cargo-accepting town buildings, service-responsive primary production, unique 8bpp industry artwork, and complete English and German interfaces.

The set adds no trains, road vehicles, ships, or aircraft. New cargoes use standardized labels, cargo classes, and capacity multipliers so compatible vehicles from the base game and vehicle NewGRFs can carry them through the normal refit interface.

Installation

  1. Copy open_industries_temperate.grf into your OpenTTD newgrf directory.
  2. Open NewGRF Settings from the main menu and add Open Industries: Temperate 0.3.0.
  3. Place it after graphics-only sets and before vehicle sets that inspect cargo labels.
  4. Start a new Temperate game.

Do not combine this set with another cargo or industry economy replacement. Existing saves cannot safely be converted to or from a replacement economy; enable it before creating the game.

Updating an existing OIT1 0.1.0, 0.2.0, or 0.2.1 save to 0.3.0 is supported. The 0.2.0 and 0.2.1 upgrade paths are covered by automated OpenTTD 15.3 load-and-resave tests, and all public cargo, industry, and legacy tile IDs remain unchanged. Keep a backup before changing any NewGRF in an established game.

Playing

Primary industries always produce a baseline amount. Engineering Supplies and Fuel are optional: delivering them raises the next production cycle. At up to 100% production, a bonus consumes one unit of each used supply; above 100%, it consumes two so that production growth does not make supplies disproportionately efficient.

Transport service changes primary production gradually:

  • 75% or better transported permits an increase on one quarter of monthly reviews.
  • 26–74% transported is neutral.
  • 25% or worse transported permits a decrease on one quarter of monthly reviews.
  • Production is clamped between 50% and 200%; poor service cannot close a primary industry.

For Farms, the service value is the average transported percentage of Grain, Livestock, and Wool. The Oil Rig uses Crude Oil service and does not scale Passenger output. The current production and service percentages appear in the industry window.

Processing industries stockpile deliveries and run complete batches when cargo arrives. The industry window lists the recipe and OpenTTD lists the waiting stockpiles above it. Full-efficiency recipes are evaluated before fallback recipes.

Industry graphics communicate four operational states: idle, input stockpiled, output waiting, and high output waiting. Cargo arrival, production, and distribution trigger short machinery, smoke, loading-light, or equipment animations instead of keeping every industry continuously animated.

Industry and town-destination lists use OpenTTD's translated zone and role badges. Industry-window status text identifies primary producers, processors, final consumers, active bonuses, waiting inputs, and output awaiting pickup.

Version 0.3.0 replaces the original placeholder boxes with a unique OpenGFX-compatible 8bpp design for every industry. The artwork uses recognizable equipment and storage while remaining readable at the base zoom level. English and German both include cargo quantities, recipes, roles, bonuses, and status messages; OpenTTD selects the language automatically.

Industry clearance

A normal NewGRF cannot add a clickable company buyout command or charge the company that clicked it. OpenTTD exposes removal costs to NewGRFs, but normal gameplay does not expose industry demolition.

The set therefore provides the two mechanisms the engine supports:

  1. Every industry has an explicit removal-cost multiplier. For an immediate, paid removal, open OpenTTD's sandbox-options window with Ctrl+Alt+C, enable Magic bulldozer, demolish the industry, and turn the option off again. OpenTTD records that a sandbox option was used.
  2. The NewGRF parameter Automatic town-encroachment clearance is disabled by default. If enabled before starting the game, a rural primary industry that reaches an inner-suburb or centre town zone announces closure on a monthly review, but only while another instance of that industry type remains.

The automatic option protects the last instance and does not charge a company because no company initiated the closure. A true paid Close industry button would require a change to OpenTTD itself.

When buying a vehicle:

  1. Open its refit window.
  2. Select the new cargo.
  3. Confirm the displayed capacity and refit.

Typical matches are hopper/open vehicles for bulk cargo, tankers for liquids, refrigerated or express vehicles for Meat and Food, covered piece-goods vehicles for packaged freight, and oversized flatbeds for Glass and Vehicles. Exact availability depends on the active vehicle set.

The generic consumer cargo from the original Temperate economy is replaced by Food, Furniture, Textiles, Vehicles, Building Materials, and Printed Products. Deliver these to their named destinations or suitable town buildings.

Building

The supported build environment is Python 3.10+, NML 0.9.0, and Pillow 12.3.0. PowerShell creates an isolated local environment and pins the compiler:

.\build.ps1 -Bootstrap

Create the redistributable archive with:

.\build.ps1 -Package

Packaging creates a full developer archive, a corresponding source snapshot, and a dedicated BaNaNaS upload containing exactly one GRF plus readme.txt and changelog.txt. See the publishing guide for the exact OpenTTD Online Content release procedure.

To include an actual OpenTTD dedicated new-game and save/reload smoke test:

.\build.ps1 -OpenTTDPath "C:\Games\OpenTTD\openttd.exe"

NML 0.9.0 expects preprocessing to be external. The source manifest is open_industries_temperate.nml; tools/generate.py composes the modular files into build/open_industries_temperate.generated.nml before compilation. Generated compiler warnings fail the build.

Project layout

  • src/economy.json — authoritative public IDs and economy graph.
  • src/generated — modular generated NML for cargoes, graphics, tiles, callbacks, industries, and houses.
  • lang/english.lng — translatable English strings.
  • gfx — indexed 8bpp runtime sprite sheets.
  • art — sprite preview and the visual concept reference.
  • tools — generator, validator, packager, and OpenTTD smoke test.
  • docs/cargo-flow.md — complete production graph and recipes.
  • docs/BALANCE_REPORT.md — generated OpenTTD payment, capacity, route, recipe, and complete-chain analysis.
  • docs/INDUSTRY_BEHAVIOUR.md — service growth, reactive states, badges, and clearance behavior.
  • docs/ID_REGISTRY.md — savegame-facing ID registry.
  • docs/TESTING.md — automated and manual verification.

Compatibility

The runtime sprites are original indexed pixel art. OpenGFX/OpenGFX2 supplied the visual conventions only; no sprites were copied.

Monetary balance

The build reproduces OpenTTD 15.3's cargo-income calculation and tests local road-like, regional rail-like, fast long-distance, and slow ship-like scenarios. It applies cargo capacity multipliers, transit-time decay, empty return trips, terminal time, and representative running costs.

Guardrails constrain raw, intermediate, and consumer payment-per-vehicle ranges; compare final consumer cargoes with vanilla Goods on every route; measure rewarded recipes and primary-supply leverage; and compare eleven expanded chains with six canonical vanilla Temperate chains per capacity-equivalent unit of freight work. See the generated monetary balance report for the assumptions and full results.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages