diff --git a/Cargo.lock b/Cargo.lock
index 4d66c7cb35..a9de28e092 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2235,8 +2235,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
 dependencies = [
  "ahash 0.4.7",
- "rayon",
- "serde",
 ]
 
 [[package]]
@@ -2246,6 +2244,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
 dependencies = [
  "ahash 0.7.4",
+ "rayon",
+ "serde",
 ]
 
 [[package]]
@@ -4822,12 +4822,12 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
 
 [[package]]
 name = "shred"
-version = "0.11.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3a9dff29ab65f4b7b4a5a38ca78e73b35eb8ffd7d4b5e5a77fc6936a1735eab"
+checksum = "eb0210289d693217926314867c807e0b7b42f7e23c136adb31f8697f5bf242d3"
 dependencies = [
  "arrayvec",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "mopa",
  "rayon",
  "shred-derive",
@@ -4968,11 +4968,11 @@ dependencies = [
 
 [[package]]
 name = "specs"
-version = "0.16.1"
-source = "git+https://github.com/amethyst/specs.git?rev=5a9b71035007be0e3574f35184acac1cd4530496#5a9b71035007be0e3574f35184acac1cd4530496"
+version = "0.16.2"
+source = "git+https://github.com/amethyst/specs.git?rev=f985bec5d456f7b0dd8aae99848f9473c2cd9d46#f985bec5d456f7b0dd8aae99848f9473c2cd9d46"
 dependencies = [
  "crossbeam-queue",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "hibitset",
  "log",
  "rayon",
@@ -4986,7 +4986,7 @@ dependencies = [
 [[package]]
 name = "specs-derive"
 version = "0.4.1"
-source = "git+https://github.com/amethyst/specs.git?rev=5a9b71035007be0e3574f35184acac1cd4530496#5a9b71035007be0e3574f35184acac1cd4530496"
+source = "git+https://github.com/amethyst/specs.git?rev=f985bec5d456f7b0dd8aae99848f9473c2cd9d46#f985bec5d456f7b0dd8aae99848f9473c2cd9d46"
 dependencies = [
  "proc-macro2 1.0.27",
  "quote 1.0.9",
@@ -4996,7 +4996,7 @@ dependencies = [
 [[package]]
 name = "specs-idvs"
 version = "0.1.1"
-source = "git+https://gitlab.com/veloren/specs-idvs.git?rev=b65fb220e94f5d3c9bc30074a076149763795556#b65fb220e94f5d3c9bc30074a076149763795556"
+source = "git+https://gitlab.com/veloren/specs-idvs.git?rev=8be2abcddf8f524cb5876e8dd20a7e47cfaf7573#8be2abcddf8f524cb5876e8dd20a7e47cfaf7573"
 dependencies = [
  "specs",
 ]
@@ -5732,7 +5732,7 @@ dependencies = [
  "byteorder",
  "clap",
  "futures-util",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "image",
  "num 0.4.0",
  "quinn",
@@ -5768,7 +5768,7 @@ dependencies = [
  "csv",
  "dot_vox",
  "enum-iterator",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "indexmap",
  "lazy_static",
  "num-derive",
@@ -5846,7 +5846,7 @@ version = "0.9.0"
 dependencies = [
  "bincode",
  "flate2",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "image",
  "num-traits",
  "serde",
@@ -5863,7 +5863,7 @@ name = "veloren-common-state"
 version = "0.9.0"
 dependencies = [
  "bincode",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "num_cpus",
  "rayon",
  "scopeguard",
@@ -5885,7 +5885,7 @@ dependencies = [
 name = "veloren-common-systems"
 version = "0.9.0"
 dependencies = [
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "indexmap",
  "ordered-float 2.5.1",
  "rand 0.8.3",
@@ -5907,7 +5907,7 @@ dependencies = [
  "clap",
  "deunicode",
  "git2",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "ron",
  "serde",
  "tracing",
@@ -5998,7 +5998,7 @@ dependencies = [
  "chrono",
  "crossbeam-channel",
  "futures-util",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "humantime",
  "itertools 0.10.0",
  "lazy_static",
@@ -6082,7 +6082,7 @@ dependencies = [
  "gilrs",
  "glyph_brush",
  "guillotiere",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "iced_native",
  "iced_winit",
  "image",
@@ -6162,7 +6162,7 @@ dependencies = [
  "enum-iterator",
  "flate2",
  "fxhash",
- "hashbrown 0.9.1",
+ "hashbrown 0.11.2",
  "image",
  "itertools 0.10.0",
  "lazy_static",
diff --git a/client/Cargo.toml b/client/Cargo.toml
index 02861fba46..e878fec0b0 100644
--- a/client/Cargo.toml
+++ b/client/Cargo.toml
@@ -28,9 +28,9 @@ image = { version = "0.23.12", default-features = false, features = ["png"] }
 num = "0.4"
 tracing = { version = "0.1", default-features = false }
 rayon = "1.5"
-specs = { git = "https://github.com/amethyst/specs.git", rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
+specs = { git = "https://github.com/amethyst/specs.git", rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
 vek = { version = "=0.14.1", features = ["serde"] }
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 authc = { git = "https://gitlab.com/veloren/auth.git", rev = "fb3dcbc4962b367253f8f2f92760ef44d2679c9a" }
 
 #TODO: put bot in a different crate
diff --git a/common/Cargo.toml b/common/Cargo.toml
index a9706d48a2..0d9f72e846 100644
--- a/common/Cargo.toml
+++ b/common/Cargo.toml
@@ -53,7 +53,7 @@ csv = { version = "1.1.3", optional = true }
 structopt = { version = "0.3.13", optional = true }
 
 # Data structures
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 slotmap = { version = "1.0", features = ["serde"] }
 indexmap = "1.3.0"
 slab = "0.4.2"
@@ -63,8 +63,8 @@ strum = "0.20"
 strum_macros = "0.20"
 
 # ECS
-specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "nightly"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
-specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "b65fb220e94f5d3c9bc30074a076149763795556" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "nightly"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
+specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "8be2abcddf8f524cb5876e8dd20a7e47cfaf7573" }
 
 [dev-dependencies]
 #bench
diff --git a/common/ecs/Cargo.toml b/common/ecs/Cargo.toml
index 800d8fe12d..591a26a3a4 100644
--- a/common/ecs/Cargo.toml
+++ b/common/ecs/Cargo.toml
@@ -13,7 +13,7 @@ tracing = { version = "0.1", default-features = false }
 common-base = { package = "veloren-common-base", path = "../base" }
 
 # ECS
-specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
 
 [dev-dependencies]
 #bench
diff --git a/common/net/Cargo.toml b/common/net/Cargo.toml
index 8ba5ac3f20..6c0726213e 100644
--- a/common/net/Cargo.toml
+++ b/common/net/Cargo.toml
@@ -23,11 +23,11 @@ vek = { version = "=0.14.1", features = ["serde"] }
 tracing = { version = "0.1", default-features = false }
 
 # Data structures
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 
 # ECS
-specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
-specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "b65fb220e94f5d3c9bc30074a076149763795556" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
+specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "8be2abcddf8f524cb5876e8dd20a7e47cfaf7573" }
 
 # Serde
 serde = { version = "1.0.110", features = ["derive"] }
diff --git a/common/state/Cargo.toml b/common/state/Cargo.toml
index 74b42220ce..2df6c875c9 100644
--- a/common/state/Cargo.toml
+++ b/common/state/Cargo.toml
@@ -23,10 +23,10 @@ tracing = { version = "0.1", default-features = false }
 vek = { version = "=0.14.1", features = ["serde"] }
 
 # Data structures
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 
 # ECS
-specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
 
 # Plugins
 scopeguard = "1.1.0"
diff --git a/common/systems/Cargo.toml b/common/systems/Cargo.toml
index f9bed018ce..582315e8bb 100644
--- a/common/systems/Cargo.toml
+++ b/common/systems/Cargo.toml
@@ -23,12 +23,12 @@ vek = { version = "=0.14.1", features = ["serde"] }
 ordered-float = { version = "2.0.1", default-features = false }
 
 # Data structures
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 indexmap = "1.3.0"
 slab = "0.4.2"
 
 # ECS
-specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["serde", "storage-event-control", "derive"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
 
 # Tweak running code
 # inline_tweak = { version = "1.0.8", features = ["release_tweak"] }
diff --git a/server/Cargo.toml b/server/Cargo.toml
index 4f24502bd5..c7715758b5 100644
--- a/server/Cargo.toml
+++ b/server/Cargo.toml
@@ -24,8 +24,8 @@ network = { package = "veloren-network", path = "../network", features = ["metri
 
 # inline_tweak = "1.0.8"
 
-specs = { git = "https://github.com/amethyst/specs.git", features = ["shred-derive"], rev = "5a9b71035007be0e3574f35184acac1cd4530496" }
-specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "b65fb220e94f5d3c9bc30074a076149763795556" }
+specs = { git = "https://github.com/amethyst/specs.git", features = ["shred-derive"], rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46" }
+specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "8be2abcddf8f524cb5876e8dd20a7e47cfaf7573" }
 
 num_cpus = "1.0"
 tracing = "0.1"
@@ -44,7 +44,7 @@ ron = { version = "0.6", default-features = false }
 serde = { version = "1.0.110", features = ["derive"] }
 serde_json = "1.0.50"
 rand = { version = "0.8", features = ["small_rng"] }
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 rayon = "1.5"
 crossbeam-channel = "0.5"
 prometheus = { version = "0.12", default-features = false}
diff --git a/voxygen/Cargo.toml b/voxygen/Cargo.toml
index 90c691354e..85b21bfccb 100644
--- a/voxygen/Cargo.toml
+++ b/voxygen/Cargo.toml
@@ -61,8 +61,8 @@ glyph_brush = "0.7.0"
 keyboard-keynames = { git = "https://gitlab.com/Frinksy/keyboard-keynames.git", rev = "a97ae509cdb9dc70cf1bf0af762d2d1d3a0d6e0c" }
 
 # ECS
-specs = {git = "https://github.com/amethyst/specs.git", rev = "5a9b71035007be0e3574f35184acac1cd4530496"}
-specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "b65fb220e94f5d3c9bc30074a076149763795556" }
+specs = {git = "https://github.com/amethyst/specs.git", rev = "f985bec5d456f7b0dd8aae99848f9473c2cd9d46"}
+specs-idvs = { git = "https://gitlab.com/veloren/specs-idvs.git", rev = "8be2abcddf8f524cb5876e8dd20a7e47cfaf7573" }
 
 # Mathematics
 vek = {version = "=0.14.1", features = ["serde"]}
@@ -87,7 +87,7 @@ dot_vox = "4.0"
 enum-iterator = "0.6"
 futures-executor = "0.3"
 guillotiere = "0.6"
-hashbrown = {version = "0.9", features = ["rayon", "serde", "nightly"]}
+hashbrown = {version = "0.11", features = ["rayon", "serde", "nightly"]}
 image = {version = "0.23.12", default-features = false, features = ["ico", "png"]}
 lazy_static = "1.4.0"
 native-dialog = { version = "0.5.2", optional = true }
diff --git a/voxygen/i18n/Cargo.toml b/voxygen/i18n/Cargo.toml
index 03e3efaa11..5580c453df 100644
--- a/voxygen/i18n/Cargo.toml
+++ b/voxygen/i18n/Cargo.toml
@@ -11,7 +11,7 @@ required-features = ["bin"]
 
 [dependencies]
 # Assets
-hashbrown = { version = "0.9", features = ["serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["serde", "nightly"] }
 common-assets = {package = "veloren-common-assets", path = "../../common/assets"}
 deunicode = "1.0"
 serde = { version = "1.0", features = ["derive"] }
diff --git a/world/Cargo.toml b/world/Cargo.toml
index 7975ff460b..3451fc6c5c 100644
--- a/world/Cargo.toml
+++ b/world/Cargo.toml
@@ -25,7 +25,7 @@ vek = { version = "0.14.1", features = ["serde"] }
 noise = { version = "0.7", default-features = false }
 num = "0.4"
 ordered-float = "2.0.1"
-hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
+hashbrown = { version = "0.11", features = ["rayon", "serde", "nightly"] }
 lazy_static = "1.4.0"
 tracing = { version = "0.1", default-features = false }
 rand = "0.8"