diff --git a/engine/graphics/Cargo.toml b/engine/graphics/Cargo.toml
index a62689ad6..2087cb97b 100644
--- a/engine/graphics/Cargo.toml
+++ b/engine/graphics/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_graphics"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 
 [dependencies]
 bytemuck = { version = "1.13.1", features = ["derive"] }
diff --git a/engine/physics/Cargo.toml b/engine/physics/Cargo.toml
index 03e631344..55f99cfef 100644
--- a/engine/physics/Cargo.toml
+++ b/engine/physics/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_physics"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 
 [dependencies]
 arrayvec = "0.7.6"
diff --git a/engine/physics/src/model.rs b/engine/physics/src/model.rs
index acad79afb..33dffd5be 100644
--- a/engine/physics/src/model.rs
+++ b/engine/physics/src/model.rs
@@ -489,7 +489,7 @@ impl TransformedMesh<'_>{
 		SubmeshVertId::new(
 			self.view.topology.verts.iter()
 			.enumerate()
-			.max_by_key(|(_,&vert_id)|
+			.max_by_key(|&(_,&vert_id)|
 				dir.dot(self.transform.vertex.transform_point3(self.view.data.verts[vert_id.get() as usize].0))
 			)
 			//assume there is more than zero vertices.
diff --git a/engine/physics/src/physics.rs b/engine/physics/src/physics.rs
index 85ce37a9e..3fd234022 100644
--- a/engine/physics/src/physics.rs
+++ b/engine/physics/src/physics.rs
@@ -1259,7 +1259,7 @@ fn set_velocity_cull(body:&mut Body,touching:&mut TouchingState,models:&PhysicsM
 	culled
 }
 fn set_velocity(body:&mut Body,touching:&TouchingState,models:&PhysicsModels,hitbox_mesh:&HitboxMesh,v:Planar64Vec3){
-	body.velocity=touching.constrain_velocity(models,hitbox_mesh,v);;
+	body.velocity=touching.constrain_velocity(models,hitbox_mesh,v);
 }
 fn set_acceleration_cull(body:&mut Body,touching:&mut TouchingState,models:&PhysicsModels,hitbox_mesh:&HitboxMesh,a:Planar64Vec3)->bool{
 	//This is not correct but is better than what I have
diff --git a/engine/session/Cargo.toml b/engine/session/Cargo.toml
index 545f2bc91..075bb35b9 100644
--- a/engine/session/Cargo.toml
+++ b/engine/session/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_session"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 
 [dependencies]
 glam = "0.29.0"
diff --git a/engine/settings/Cargo.toml b/engine/settings/Cargo.toml
index b623aff58..7f3ec204c 100644
--- a/engine/settings/Cargo.toml
+++ b/engine/settings/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_settings"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 
 [dependencies]
 configparser = "3.0.2"
diff --git a/integration-testing/Cargo.toml b/integration-testing/Cargo.toml
index 2508df6a8..efe0de704 100644
--- a/integration-testing/Cargo.toml
+++ b/integration-testing/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "integration-testing"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 
 [dependencies]
 strafesnet_common = { path = "../lib/common", registry = "strafesnet" }
diff --git a/lib/bsp_loader/Cargo.toml b/lib/bsp_loader/Cargo.toml
index 2cdbbc4d5..dc59c67f7 100644
--- a/lib/bsp_loader/Cargo.toml
+++ b/lib/bsp_loader/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_bsp_loader"
 version = "0.3.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Convert Valve BSP files to StrafesNET data structures."
diff --git a/lib/common/Cargo.toml b/lib/common/Cargo.toml
index b9d5f7b35..980b9ad17 100644
--- a/lib/common/Cargo.toml
+++ b/lib/common/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_common"
 version = "0.6.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Common types and helpers for Strafe Client associated projects."
diff --git a/lib/deferred_loader/Cargo.toml b/lib/deferred_loader/Cargo.toml
index 94c0f45cb..e22f137d4 100644
--- a/lib/deferred_loader/Cargo.toml
+++ b/lib/deferred_loader/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_deferred_loader"
 version = "0.5.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Acquire IDs for objects before loading them in bulk."
diff --git a/lib/fixed_wide/Cargo.toml b/lib/fixed_wide/Cargo.toml
index 236bcec59..19700a96d 100644
--- a/lib/fixed_wide/Cargo.toml
+++ b/lib/fixed_wide/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "fixed_wide"
 version = "0.1.2"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Fixed point numbers with optional widening Mul operator."
diff --git a/lib/linear_ops/Cargo.toml b/lib/linear_ops/Cargo.toml
index ee027d7ff..1a3c1536b 100644
--- a/lib/linear_ops/Cargo.toml
+++ b/lib/linear_ops/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "linear_ops"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Vector/Matrix operations using trait bounds."
diff --git a/lib/ratio_ops/Cargo.toml b/lib/ratio_ops/Cargo.toml
index aa460a4a8..7af44440a 100644
--- a/lib/ratio_ops/Cargo.toml
+++ b/lib/ratio_ops/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "ratio_ops"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Ratio operations using trait bounds for avoiding division like the plague."
diff --git a/lib/rbx_loader/Cargo.toml b/lib/rbx_loader/Cargo.toml
index 626ad21d8..cfa836f5c 100644
--- a/lib/rbx_loader/Cargo.toml
+++ b/lib/rbx_loader/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_rbx_loader"
 version = "0.6.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Convert Roblox place and model files to StrafesNET data structures."
diff --git a/lib/rbxassetid/Cargo.toml b/lib/rbxassetid/Cargo.toml
index e7d28123c..4f226ce9d 100644
--- a/lib/rbxassetid/Cargo.toml
+++ b/lib/rbxassetid/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "rbxassetid"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Parse Roblox asset id from 'Content' urls."
diff --git a/lib/roblox_emulator/Cargo.toml b/lib/roblox_emulator/Cargo.toml
index 81b613c92..2d5263ca3 100644
--- a/lib/roblox_emulator/Cargo.toml
+++ b/lib/roblox_emulator/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "roblox_emulator"
 version = "0.4.7"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "MIT OR Apache-2.0"
 description = "Run embedded Luau scripts which manipulate the DOM."
diff --git a/lib/snf/Cargo.toml b/lib/snf/Cargo.toml
index eb0ec2cc9..dc34a9cda 100644
--- a/lib/snf/Cargo.toml
+++ b/lib/snf/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafesnet_snf"
 version = "0.3.0"
-edition = "2021"
+edition = "2024"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
diff --git a/map-tool/Cargo.toml b/map-tool/Cargo.toml
index ffa261d37..73f74751f 100644
--- a/map-tool/Cargo.toml
+++ b/map-tool/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "map-tool"
 version = "1.7.0"
-edition = "2021"
+edition = "2024"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
diff --git a/strafe-client/Cargo.toml b/strafe-client/Cargo.toml
index c4663d7bb..8326fe665 100644
--- a/strafe-client/Cargo.toml
+++ b/strafe-client/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "strafe-client"
 version = "0.11.0"
-edition = "2021"
+edition = "2024"
 repository = "https://git.itzana.me/StrafesNET/strafe-project"
 license = "Custom"
 description = "StrafesNET game client for bhop and surf."