diff --git a/src/newtypes/gameplay_style.rs b/src/newtypes/gameplay_style.rs
index 1ce63bb..1983a22 100644
--- a/src/newtypes/gameplay_style.rs
+++ b/src/newtypes/gameplay_style.rs
@@ -37,6 +37,24 @@ impl Into<strafesnet_common::gameplay_style::StyleModifiers> for StyleModifiers{
 		}
 	}
 }
+impl From<strafesnet_common::gameplay_style::StyleModifiers> for StyleModifiers{
+	fn from(value:strafesnet_common::gameplay_style::StyleModifiers)->Self{
+		Self{
+			controls_mask:value.controls_mask.bits(),
+			controls_mask_state:value.controls_mask_state.bits(),
+			strafe:value.strafe.map(Into::into),
+			rocket:value.rocket.map(Into::into),
+			jump:value.jump.map(Into::into),
+			walk:value.walk.map(Into::into),
+			ladder:value.ladder.map(Into::into),
+			swim:value.swim.map(Into::into),
+			gravity:value.gravity.get().to_array(),
+			hitbox:value.hitbox.into(),
+			camera_offset:value.camera_offset.get().to_array(),
+			mass:value.mass.get(),
+		}
+	}
+}
 
 #[binrw::binrw]
 #[brw(little,repr=u8)]
diff --git a/src/newtypes/integer.rs b/src/newtypes/integer.rs
index 86a8b8c..f75ba70 100644
--- a/src/newtypes/integer.rs
+++ b/src/newtypes/integer.rs
@@ -11,6 +11,14 @@ impl Into<strafesnet_common::integer::Ratio64> for Ratio64{
 		strafesnet_common::integer::Ratio64::new(self.num,self.den).unwrap()
 	}
 }
+impl From<strafesnet_common::integer::Ratio64> for Ratio64{
+	fn from(value:strafesnet_common::integer::Ratio64)->Self{
+		Self{
+			num:value.num(),
+			den:value.den(),
+		}
+	}
+}
 
 #[binrw::binrw]
 #[brw(little)]