Is there some AI override for the DRONE_LAUNCHER shipsystem? It's completely closed source and the DroneLauncherShipSystemAPI has no functionality for moving drones around (or other states like my post in the API suggestions thread). The image shows what I'm talking about, the drones are snapped every frame with the code below. The actual snapTo vector is just a point on circumference with a desired angle. As far as I can tell, the shipsystem script is trying to pull the drones back to their target location as defined in JSON. Free roam being on or off does not effect this.
Spoiler
private void snapTo(
ShipAPI target,
float magnitude, //==1f
ShipAPI drone,
Vector2f targetPosition
) {
if (null == target) {
return;
}
magnitude = MathUtils.clamp(magnitude, 0F, 1F);
Vector2f locationDelta = Vector2f.sub(targetPosition, drone.getLocation(), new Vector2f());
Vector2f velocityDelta = Vector2f.sub(target.getVelocity(), drone.getVelocity(), new Vector2f());
float facingDelta = target.getFacing() - drone.getFacing();
float angularVelocityDelta = target.getAngularVelocity() - drone.getAngularVelocity();
drone.getLocation().x += locationDelta.x * magnitude;
drone.getLocation().y += locationDelta.y * magnitude;
drone.getVelocity().x += velocityDelta.x * magnitude;
drone.getVelocity().y += velocityDelta.y * magnitude;
drone.setFacing(drone.getFacing() + facingDelta * magnitude);
drone.setAngularVelocity(drone.getAngularVelocity() + angularVelocityDelta * magnitude);
}