It's an issue with Railloader's on_blueprint event. The line #367 "bp.set_blueprint_entities(entities)" in function on_blueprint(event) seems to overwrite all the tags in the blueprint. I moved that command to line #364 so it only executes when railroader entities are present which fixes blueprints and cut/paste where there are no railroad entities present.
Here is the offending portion if somebody more familiar with the blueprint api can figure out how to only update railroader entities instead of the whole shebang.
for _, bp_entity in pairs(entities) do
if bp_entity.name == "railloader-chest" or bp_entity.name == "railunloader-chest" then
local chest_entity = player.surface.find_entities_filtered{
type = "container",
position = bp_entity.position,
}[1]
if not chest_entity then goto continue end
local rail = player.surface.find_entities_filtered{
type = "straight-rail",
area = chest_entity.bounding_box,
}[1]
if not rail then goto continue end
bp_entity.name = (bp_entity.name == "railloader-chest")
and "railloader-placement-proxy"
or "railunloader-placement-proxy"
-- base direction on direction of rail
bp_entity.direction = rail.direction
-- preserve chest limit
bp_entity.tags = { bar = chest_entity.get_inventory(defines.inventory.chest).get_bar() }
end
::continue::
end
bp.set_blueprint_entities(entities)