This is actually a Small Robots error. They do not account for the possibility of layered sprites.
Specifically the function modify_robot
in data-final-fixes
, the subsection here:
for _, state in ipairs(states) do
if robot[state] then
dprint(string.format("Scaling graphics for %s[%s] (%g%%)", robot.name, state, scale * 100))
robot[state].scale = scale
if robot[state]["hr_version"] then
dprint("Scaling hr-version")
robot[state]["hr_version"].scale = 0.5 * scale
end
end
end
It assumes that hr_version
will be at the root of the state
table, but if the robot is defined with layers, properties other than layers at the root are ignored. The mod needs to check for layers, and if there, iterate through the table and apply scale changes there.