Page 1 of 1

Document prototype types allowed to be empty

Posted: Wed Sep 09, 2026 2:47 am
by sparr
If I delete every locomotive entity prototype:

> 'entity' prototype type 'locomotive' requires at least 1 prototype be defined so save files can be loaded

This rule seems to apply to locomotive and solar-panel, but not to thruster or agricultural-tower which seem to behave just fine with every prototype removed from the type.

It would be helpful if the api docs described this distinction across all the other types.

Re: Document prototype types allowed to be empty

Posted: Wed Sep 09, 2026 3:13 am
by sparr
Claude Opus 5 helped me build this partial list

Cannot be emptied: 106 types
The game refuses to start without at least one prototype of each of these.

Code: Select all

accumulator, arithmetic-combinator, arrow, artillery-turret, artillery-wagon, beacon, blueprint, boiler, burner-generator, car, cargo-wagon, character, character-corpse, cliff, constant-combinator, construction-robot, container, copy-paste-tool, curved-rail-a, curved-rail-b, decider-combinator, deconstructible-tile-proxy, display-panel, editor-controller, electric-energy-interface, electric-pole, electric-turret, elevated-curved-rail-a, elevated-curved-rail-b, elevated-half-diagonal-rail, elevated-straight-rail, entity-ghost, equipment-ghost, equipment-grid, fish, fluid-wagon, gate, generator, god-controller, gun, half-diagonal-rail, heat-interface, heat-pipe, highlight-box, infinity-cargo-wagon, infinity-container, infinity-pipe, inserter, item-entity, item-group, item-request-proxy, item-subgroup, lab, lamp, land-mine, lane-splitter, legacy-curved-rail, legacy-straight-rail, linked-belt, linked-container, loader, loader-1x1, locomotive, logistic-container, logistic-robot, map-settings, market, mining-drill, noise-expression, offshore-pump, pipe, pipe-to-ground, power-switch, programmable-speaker, proxy-container, pump, radar, rail-chain-signal, rail-ramp, rail-remnants, rail-signal, rail-support, reactor, remote-controller, roboport, rocket-silo, rocket-silo-rocket, rocket-silo-rocket-shadow, selector-combinator, simple-entity-with-force, simple-entity-with-owner, solar-panel, spectator-controller, speech-bubble, spider-vehicle, splitter, storage-tank, straight-rail, tile-ghost, train-stop, transport-belt, turret, underground-belt, upgrade-item, valve, wall
Can be emptied: 73 types
The game loads with the category present but empty.

Code: Select all

achievement, agricultural-tower, ambient-sound, ammo, assembling-machine, battery-equipment, belt-immunity-equipment, blueprint-book, build-entity-achievement, cargo-bay, cargo-landing-pad, change-surface-achievement, combat-robot-count-achievement, complete-objective-achievement, construct-with-robots-achievement, create-platform-achievement, custom-input, deconstruct-with-robots-achievement, deconstruction-item, deliver-by-robots-achievement, deliver-impact-combination, deplete-resource-achievement, destroy-cliff-achievement, dont-build-entity-achievement, dont-craft-manually-achievement, dont-kill-manually-achievement, dont-research-before-researching-achievement, dont-use-entity-in-energy-production-achievement, electric-energy-interface-equipment, energy-shield-equipment, equip-armor-achievement, furnace, fusion-generator, fusion-reactor, generator-equipment, group-attack-achievement, gui-style, inventory-bonus-equipment, item-with-entity-data, kill-achievement, map-gen-presets, module-transfer-achievement, mouse-cursor, movement-bonus-equipment, night-vision-equipment, place-equipment-achievement, player-damaged-achievement, produce-achievement, produce-per-hour-achievement, repair-tool, research-achievement, research-with-science-pack-achievement, segmented-unit, selection-tool, shoot-achievement, shortcut, solar-panel-equipment, space-connection, space-connection-distance-traveled-achievement, space-platform-starter-pack, spidertron-remote, sprite, surface, thruster, tile-effect, tips-and-tricks-item, tips-and-tricks-item-category, train-path-achievement, use-entity-in-energy-production-achievement, use-item-achievement, utility-constants, utility-sounds, utility-sprites
Undetermined: 72 types
For these, a reference somewhere else fails the load before the engine gets as far as counting prototypes, so the question never gets asked. They may or may not need a survivor.

Code: Select all

active-defense-equipment, airborne-pollutant, ammo-category, ammo-turret, armor, artillery-flare, artillery-projectile, asteroid, asteroid-chunk, asteroid-collector, autoplace-control, beam, burner-usage, capsule, capture-robot, cargo-pod, chain-active-trigger, collision-layer, combat-robot, corpse, damage-type, delayed-active-trigger, deliver-category, equipment-category, explosion, fire, fluid, fluid-turret, font, fuel-category, impact-category, item, lightning, lightning-attractor, module, module-category, noise-function, optimized-decorative, optimized-particle, particle-source, planet, plant, procession, procession-layer-inheritance-group, projectile, quality, rail-planner, recipe, recipe-category, resource, resource-category, roboport-equipment, segment, simple-entity, smoke-with-trigger, space-location, space-platform-hub, spider-leg, spider-unit, sticker, stream, surface-property, technology, temporary-container, tile, tree, trigger-target-type, trivial-smoke, tutorial, unit, unit-spawner, virtual-signal