diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj
index 6d8eda9288..ae3b220ae1 100644
--- a/OpenRA.Game/OpenRA.Game.csproj
+++ b/OpenRA.Game/OpenRA.Game.csproj
@@ -108,7 +108,6 @@
-
@@ -172,16 +171,12 @@
-
-
-
-
diff --git a/OpenRA.Mods.Common/Activities/Demolish.cs b/OpenRA.Mods.Common/Activities/Demolish.cs
index a1d95ca248..ea44d67ca7 100644
--- a/OpenRA.Mods.Common/Activities/Demolish.cs
+++ b/OpenRA.Mods.Common/Activities/Demolish.cs
@@ -11,6 +11,7 @@
using System.Linq;
using OpenRA.Effects;
+using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.Common/Activities/ExternalCaptureActor.cs b/OpenRA.Mods.Common/Activities/ExternalCaptureActor.cs
index 7518758b33..f14477185d 100644
--- a/OpenRA.Mods.Common/Activities/ExternalCaptureActor.cs
+++ b/OpenRA.Mods.Common/Activities/ExternalCaptureActor.cs
@@ -10,7 +10,7 @@
#endregion
using OpenRA.Activities;
-using OpenRA.Effects;
+using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
diff --git a/OpenRA.Game/Effects/FlashTarget.cs b/OpenRA.Mods.Common/Effects/FlashTarget.cs
similarity index 95%
rename from OpenRA.Game/Effects/FlashTarget.cs
rename to OpenRA.Mods.Common/Effects/FlashTarget.cs
index 0bcb5e4ecd..9c59bfdc94 100644
--- a/OpenRA.Game/Effects/FlashTarget.cs
+++ b/OpenRA.Mods.Common/Effects/FlashTarget.cs
@@ -11,9 +11,10 @@
using System.Collections.Generic;
using System.Linq;
+using OpenRA.Effects;
using OpenRA.Graphics;
-namespace OpenRA.Effects
+namespace OpenRA.Mods.Common.Effects
{
public class FlashTarget : IEffect
{
diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 4cb22e0ca3..458e1700b5 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -151,6 +151,7 @@
+
@@ -324,6 +325,7 @@
+
@@ -455,6 +457,8 @@
+
+
@@ -506,6 +510,7 @@
+
diff --git a/OpenRA.Game/Traits/EditorTilesetFilter.cs b/OpenRA.Mods.Common/Traits/EditorTilesetFilter.cs
similarity index 92%
rename from OpenRA.Game/Traits/EditorTilesetFilter.cs
rename to OpenRA.Mods.Common/Traits/EditorTilesetFilter.cs
index fc78d4fdcf..db6f9da191 100644
--- a/OpenRA.Game/Traits/EditorTilesetFilter.cs
+++ b/OpenRA.Mods.Common/Traits/EditorTilesetFilter.cs
@@ -10,8 +10,9 @@
#endregion
using System.Collections.Generic;
+using OpenRA.Traits;
-namespace OpenRA.Traits
+namespace OpenRA.Mods.Common.Traits
{
public class EditorTilesetFilterInfo : TraitInfo
{
diff --git a/OpenRA.Mods.Common/Traits/ProximityCapturable.cs b/OpenRA.Mods.Common/Traits/ProximityCapturable.cs
index dd3100d8ec..135ff4bcd8 100644
--- a/OpenRA.Mods.Common/Traits/ProximityCapturable.cs
+++ b/OpenRA.Mods.Common/Traits/ProximityCapturable.cs
@@ -12,8 +12,8 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
-using OpenRA.Effects;
using OpenRA.Graphics;
+using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Traits;
diff --git a/OpenRA.Game/Traits/RejectsOrders.cs b/OpenRA.Mods.Common/Traits/RejectsOrders.cs
similarity index 95%
rename from OpenRA.Game/Traits/RejectsOrders.cs
rename to OpenRA.Mods.Common/Traits/RejectsOrders.cs
index dcc985109a..3b842d8438 100644
--- a/OpenRA.Game/Traits/RejectsOrders.cs
+++ b/OpenRA.Mods.Common/Traits/RejectsOrders.cs
@@ -10,8 +10,9 @@
#endregion
using System.Collections.Generic;
+using OpenRA.Traits;
-namespace OpenRA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Can be used to make a unit partly uncontrollable by the player.")]
public class RejectsOrdersInfo : ITraitInfo
diff --git a/OpenRA.Game/Traits/DrawLineToTarget.cs b/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs
similarity index 98%
rename from OpenRA.Game/Traits/DrawLineToTarget.cs
rename to OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs
index 3407762c79..421400a43f 100644
--- a/OpenRA.Game/Traits/DrawLineToTarget.cs
+++ b/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs
@@ -12,8 +12,9 @@
using System.Collections.Generic;
using System.Drawing;
using OpenRA.Graphics;
+using OpenRA.Traits;
-namespace OpenRA.Traits
+namespace OpenRA.Mods.Common.Traits
{
public class DrawLineToTargetInfo : ITraitInfo
{
diff --git a/OpenRA.Game/Traits/ValidateOrder.cs b/OpenRA.Mods.Common/Traits/World/ValidateOrder.cs
similarity index 96%
rename from OpenRA.Game/Traits/ValidateOrder.cs
rename to OpenRA.Mods.Common/Traits/World/ValidateOrder.cs
index 1948226d4d..04f17262cc 100644
--- a/OpenRA.Game/Traits/ValidateOrder.cs
+++ b/OpenRA.Mods.Common/Traits/World/ValidateOrder.cs
@@ -10,8 +10,9 @@
#endregion
using OpenRA.Network;
+using OpenRA.Traits;
-namespace OpenRA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Used to detect exploits. Attach this to the world actor.")]
public class ValidateOrderInfo : TraitInfo { }
diff --git a/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs b/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs
index 5e4c0e913f..965bdd7796 100644
--- a/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/WorldInteractionControllerWidget.cs
@@ -12,7 +12,6 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
-using OpenRA.Effects;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Effects;
using OpenRA.Orders;
diff --git a/OpenRA.Mods.RA/Traits/Infiltration/Infiltrates.cs b/OpenRA.Mods.RA/Traits/Infiltration/Infiltrates.cs
index 31f7a813ba..9687f65b50 100644
--- a/OpenRA.Mods.RA/Traits/Infiltration/Infiltrates.cs
+++ b/OpenRA.Mods.RA/Traits/Infiltration/Infiltrates.cs
@@ -15,6 +15,7 @@ using System.Linq;
using OpenRA.Mods.Common;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Orders;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.RA.Activities;
using OpenRA.Traits;