diff --git a/src/filein/src/module_loader.cpp b/src/filein/src/module_loader.cpp
index 2e4b9265ccfae07aabf08bdd8555b74f1014f70c..847cec505fe5c3956c878321827d58d95133f888 100644
--- a/src/filein/src/module_loader.cpp
+++ b/src/filein/src/module_loader.cpp
@@ -471,10 +471,14 @@ boost::json::array create_STD_matrix(const connector_ptr &connector, bool &is_id
     {
         using enum side;
         case x_pos: // in reality x_neg, switched due to opposite shoe y-axis in the editor
-            rotation = glm::quat(1.0f, glm::vec3(0.0f));
+            rotation = connector->getType(true) == connector_type::rotation 
+                                                   ? glm::quat(1.0f, glm::vec3(0.0f)) 
+                                                   : glm::angleAxis(glm::radians(180.0f), enum_to_vec(y_pos));
             break;
         case x_neg: // in reality x_pos, switched due to opposite shoe y-axis in the editor
-            rotation = glm::angleAxis(glm::radians(180.0f), enum_to_vec(y_pos));
+            rotation = connector->getType(true) == connector_type::rotation 
+                       ? glm::angleAxis(glm::radians(180.0f), enum_to_vec(y_pos)) 
+                       : glm::quat(1.0f, glm::vec3(0.0f));
             break;
         case z_neg:
             rotation = glm::angleAxis(glm::radians(180.0f), enum_to_vec(z_pos)) * glm::angleAxis(glm::radians(90.0f), enum_to_vec(y_neg));