DoNotRemove
Draw a rectangle. Everything inside is sacred.
DoNotRemove prevents players from accidentally removing or altering important parts of the factory. Protect a crash site, a unique structure, a decorative build, critical infrastructure, or any area that should survive an overly enthusiastic use of Alt+D.
How to use it
- Select Protected Area from the shortcut bar.
- Drag a rectangle around the area you want to protect.
- Use Unprotect Area and drag across protected areas to remove their protection.
An entity is protected whenever its bounding box intersects a protected area. Protection is tied to the physical area, not to a list of entities, so anything built there later is protected automatically too.
Protected areas are saved with the game and kept separately for every surface.

Blocked player actions
Protected entities cannot be:
- mined manually;
- marked with
Alt+Dor a deconstruction planner; - upgraded or downgraded;
- rotated or flipped;
- fast-replaced by direct construction.
Opening and using machines, chests, stations, and other protected entities remains unchanged.
When an action is refused, a local lock notification explains why without flooding the chat during large selections.

Discreet visualization
Protected areas are not displayed permanently. Their outlines appear only while Protected Area or Unprotect Area is held, keeping the factory view uncluttered.
Multi-surface support
Areas are associated with their surface. A protected rectangle on Nauvis does not affect the same coordinates on another planet, a Space Age surface, or a surface created by another mod.
Version 1 limitations
Protection focuses on normal player actions. It does not guarantee protection against enemy damage, scripts, or direct changes made by other mods.
Removing protection currently removes every protected rectangle intersected by the Unprotect Area selection; rectangles are not split.
Compatibility
- Factorio 2.1
- Base game and Space Age
- Mod-created surfaces
- English and French localization
Source and support
License
MIT
Remote interface
Other mods may deliberately manage protected areas with:
remote.call("protected_areas", "create", surface_index, area)
remote.call("protected_areas", "remove", surface_index, area)
remote.call("protected_areas", "is_entity_protected", entity)