diff --git a/game/modules/tome/data/gfx/particles/arcanestorm.lua b/game/modules/tome/data/gfx/particles/arcanestorm.lua
index 575b14d90a28822855a114bc766db2f389d54705..0716663e0b9a215bb3e887c69f39306d7e7e8afc 100644
--- a/game/modules/tome/data/gfx/particles/arcanestorm.lua
+++ b/game/modules/tome/data/gfx/particles/arcanestorm.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/blightzone.lua b/game/modules/tome/data/gfx/particles/blightzone.lua
index 1db2667fd83e92d507c1442571d80be74d3dc307..077c7c889c6888907918093b24240dd9f3ebbfc2 100644
--- a/game/modules/tome/data/gfx/particles/blightzone.lua
+++ b/game/modules/tome/data/gfx/particles/blightzone.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/circle_of_death.lua b/game/modules/tome/data/gfx/particles/circle_of_death.lua
index ec064f53a2854cbc55115534304488faefc253be..d74fed467bfba65faa7af140cae6622f8e1a8072 100644
--- a/game/modules/tome/data/gfx/particles/circle_of_death.lua
+++ b/game/modules/tome/data/gfx/particles/circle_of_death.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/dark_inferno.lua b/game/modules/tome/data/gfx/particles/dark_inferno.lua
index b29401778d30353fdf24876673c89954f46388b3..01d190aa79a07a31343e1322b95124805a8b9044 100644
--- a/game/modules/tome/data/gfx/particles/dark_inferno.lua
+++ b/game/modules/tome/data/gfx/particles/dark_inferno.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(20+90, 160+90)
diff --git a/game/modules/tome/data/gfx/particles/gravity_well.lua b/game/modules/tome/data/gfx/particles/gravity_well.lua
index 2e899b9e329e64f5bbad4b816b260107c4eb0aec..83fd3e09e1f29735d3dcb9e411d8c0c050fe1ff5 100644
--- a/game/modules/tome/data/gfx/particles/gravity_well.lua
+++ b/game/modules/tome/data/gfx/particles/gravity_well.lua
@@ -22,6 +22,7 @@ if core.shader.allow("distort") then
 end
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/healing_vapour.lua b/game/modules/tome/data/gfx/particles/healing_vapour.lua
index 22b9187f363b2b42532b5baa4987b14ee0f5dd9d..f5424f30cb435166816a8cabc95bd26bd84bfcb8 100644
--- a/game/modules/tome/data/gfx/particles/healing_vapour.lua
+++ b/game/modules/tome/data/gfx/particles/healing_vapour.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/ice_vapour.lua b/game/modules/tome/data/gfx/particles/ice_vapour.lua
index d2f028556223034b373e180ca76f168e6de15e7b..9fa429cb2331a5c34ef57af41a9fcb1cef02b8ef 100644
--- a/game/modules/tome/data/gfx/particles/ice_vapour.lua
+++ b/game/modules/tome/data/gfx/particles/ice_vapour.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/icestorm.lua b/game/modules/tome/data/gfx/particles/icestorm.lua
index de05d80e260d0d8d38008a8b32b437f2c69eefc2..e1d5d3f109ef7e6b3b7eab38ca21d58ce91041f0 100644
--- a/game/modules/tome/data/gfx/particles/icestorm.lua
+++ b/game/modules/tome/data/gfx/particles/icestorm.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/leavestide.lua b/game/modules/tome/data/gfx/particles/leavestide.lua
index ab1995149ecf50d2078170c7303fe7628b8cbcba..1cd114fb4ed4cdd9bd85a75b1faf31a82b209641 100644
--- a/game/modules/tome/data/gfx/particles/leavestide.lua
+++ b/game/modules/tome/data/gfx/particles/leavestide.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/light_zone.lua b/game/modules/tome/data/gfx/particles/light_zone.lua
index f37a68aee95f74311b148737516af78851b16bf8..f3a4e2e54af545ac80f27d68cf644815eccd7cae 100644
--- a/game/modules/tome/data/gfx/particles/light_zone.lua
+++ b/game/modules/tome/data/gfx/particles/light_zone.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/moss.lua b/game/modules/tome/data/gfx/particles/moss.lua
index ad991e16f5ba8c5627bcaced05e463e9cecd8ed3..fbe7a041f5de297e4c2f73d00e82ab43b9565d81 100644
--- a/game/modules/tome/data/gfx/particles/moss.lua
+++ b/game/modules/tome/data/gfx/particles/moss.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 64
+can_shift = true
 
 local nb = 0
 
diff --git a/game/modules/tome/data/gfx/particles/mucus.lua b/game/modules/tome/data/gfx/particles/mucus.lua
index bbdab91e84d49025144b16aca5b390e5c52bf238..c7f6049b0b078ae8ba13cb309bb737d23c6fd1dc 100644
--- a/game/modules/tome/data/gfx/particles/mucus.lua
+++ b/game/modules/tome/data/gfx/particles/mucus.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 64
+can_shift = true
 
 local nb = 0
 
diff --git a/game/modules/tome/data/gfx/particles/quake.lua b/game/modules/tome/data/gfx/particles/quake.lua
index 5754a46a5c66e64fb06187b23b110e5800dd2c0e..48d1e30fe6f31d3c32e05eeff7edd593c7e9b9ef 100644
--- a/game/modules/tome/data/gfx/particles/quake.lua
+++ b/game/modules/tome/data/gfx/particles/quake.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/shadow_zone.lua b/game/modules/tome/data/gfx/particles/shadow_zone.lua
index 218aa62ee5622c1f0ba136f60ef60699265c558c..17f67c23353566b8eff78c4af6f5bd4280856af1 100644
--- a/game/modules/tome/data/gfx/particles/shadow_zone.lua
+++ b/game/modules/tome/data/gfx/particles/shadow_zone.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/temporal_cloud.lua b/game/modules/tome/data/gfx/particles/temporal_cloud.lua
index f99b7475c664b211450c7b8e60eeffba8b479462..489691b363c1fed6f3259c76a010e65c26dfeda5 100644
--- a/game/modules/tome/data/gfx/particles/temporal_cloud.lua
+++ b/game/modules/tome/data/gfx/particles/temporal_cloud.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)
diff --git a/game/modules/tome/data/gfx/particles/vapour.lua b/game/modules/tome/data/gfx/particles/vapour.lua
index ad1570bdf5632a57f82a3445a0f646a2be77c2f4..cb32d6eceeb6c8921dcb86c3bfdaa650ddc3eba9 100644
--- a/game/modules/tome/data/gfx/particles/vapour.lua
+++ b/game/modules/tome/data/gfx/particles/vapour.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 base_size = 32
+can_shift = true
 
 return { generator = function()
 	local ad = rng.range(0, 360)