diff --git a/OpenRA.Mods.RA/Effects/NukeLaunch.cs b/OpenRA.Mods.Common/Effects/NukeLaunch.cs
old mode 100755
new mode 100644
similarity index 98%
rename from OpenRA.Mods.RA/Effects/NukeLaunch.cs
rename to OpenRA.Mods.Common/Effects/NukeLaunch.cs
index bf19626ebd..8c0eebc7ba
--- a/OpenRA.Mods.RA/Effects/NukeLaunch.cs
+++ b/OpenRA.Mods.Common/Effects/NukeLaunch.cs
@@ -15,7 +15,7 @@ using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Effects
+namespace OpenRA.Mods.Common.Effects
{
public class NukeLaunch : IEffect
{
diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index e911ecaac2..5714130f15 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -61,6 +61,7 @@
+
@@ -85,7 +86,11 @@
-
+
+
+
+
+
@@ -93,6 +98,7 @@
+
@@ -145,6 +151,10 @@
+
+
+
+
diff --git a/OpenRA.Mods.RA/CloakPaletteEffect.cs b/OpenRA.Mods.Common/PaletteEffects/CloakPaletteEffect.cs
similarity index 97%
rename from OpenRA.Mods.RA/CloakPaletteEffect.cs
rename to OpenRA.Mods.Common/PaletteEffects/CloakPaletteEffect.cs
index 495299db73..fafa707da9 100644
--- a/OpenRA.Mods.RA/CloakPaletteEffect.cs
+++ b/OpenRA.Mods.Common/PaletteEffects/CloakPaletteEffect.cs
@@ -13,7 +13,7 @@ using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
public class CloakPaletteEffectInfo : TraitInfo { }
diff --git a/OpenRA.Mods.RA/LightPaletteRotator.cs b/OpenRA.Mods.Common/PaletteEffects/LightPaletteRotator.cs
similarity index 97%
rename from OpenRA.Mods.RA/LightPaletteRotator.cs
rename to OpenRA.Mods.Common/PaletteEffects/LightPaletteRotator.cs
index daec06f975..4adc6c6833 100644
--- a/OpenRA.Mods.RA/LightPaletteRotator.cs
+++ b/OpenRA.Mods.Common/PaletteEffects/LightPaletteRotator.cs
@@ -13,7 +13,7 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Palette effect used for blinking \"animations\" on actors.")]
class LightPaletteRotatorInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/MenuPaletteEffect.cs b/OpenRA.Mods.Common/PaletteEffects/MenuPaletteEffect.cs
similarity index 98%
rename from OpenRA.Mods.RA/MenuPaletteEffect.cs
rename to OpenRA.Mods.Common/PaletteEffects/MenuPaletteEffect.cs
index b206fff4fc..7469df6ca1 100644
--- a/OpenRA.Mods.RA/MenuPaletteEffect.cs
+++ b/OpenRA.Mods.Common/PaletteEffects/MenuPaletteEffect.cs
@@ -13,7 +13,7 @@ using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Fades the world from/to black at the start/end of the game, and can (optionally) desaturate the world")]
public class MenuPaletteEffectInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/NukePaletteEffect.cs b/OpenRA.Mods.Common/PaletteEffects/NukePaletteEffect.cs
similarity index 97%
rename from OpenRA.Mods.RA/NukePaletteEffect.cs
rename to OpenRA.Mods.Common/PaletteEffects/NukePaletteEffect.cs
index f7819b328c..e11c49afca 100644
--- a/OpenRA.Mods.RA/NukePaletteEffect.cs
+++ b/OpenRA.Mods.Common/PaletteEffects/NukePaletteEffect.cs
@@ -13,7 +13,7 @@ using System.Drawing;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Apply palette full screen rotations during atom bomb explosions. Add this to the world actor.")]
class NukePaletteEffectInfo : TraitInfo { }
diff --git a/OpenRA.Mods.RA/WaterPaletteRotation.cs b/OpenRA.Mods.Common/PaletteEffects/WaterPaletteRotation.cs
similarity index 98%
rename from OpenRA.Mods.RA/WaterPaletteRotation.cs
rename to OpenRA.Mods.Common/PaletteEffects/WaterPaletteRotation.cs
index a92765724a..31ca1ed226 100644
--- a/OpenRA.Mods.RA/WaterPaletteRotation.cs
+++ b/OpenRA.Mods.Common/PaletteEffects/WaterPaletteRotation.cs
@@ -13,7 +13,7 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Palette effect used for sprinkle \"animations\" on terrain tiles.")]
class WaterPaletteRotationInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/Immobile.cs b/OpenRA.Mods.Common/Traits/Immobile.cs
similarity index 98%
rename from OpenRA.Mods.RA/Immobile.cs
rename to OpenRA.Mods.Common/Traits/Immobile.cs
index 63570e95a8..cdcd55aaf4 100644
--- a/OpenRA.Mods.RA/Immobile.cs
+++ b/OpenRA.Mods.Common/Traits/Immobile.cs
@@ -12,7 +12,7 @@ using System.Collections.Generic;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
class ImmobileInfo : ITraitInfo, IOccupySpaceInfo
{
diff --git a/OpenRA.Mods.RA/PaletteFromCurrentTileset.cs b/OpenRA.Mods.Common/World/PaletteFromCurrentTileset.cs
similarity index 97%
rename from OpenRA.Mods.RA/PaletteFromCurrentTileset.cs
rename to OpenRA.Mods.Common/World/PaletteFromCurrentTileset.cs
index c33a939bae..3d523abbd6 100644
--- a/OpenRA.Mods.RA/PaletteFromCurrentTileset.cs
+++ b/OpenRA.Mods.Common/World/PaletteFromCurrentTileset.cs
@@ -12,7 +12,7 @@ using OpenRA.FileSystem;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Loads the palette specified in the tileset definition")]
class PaletteFromCurrentTilesetInfo : ITraitInfo
diff --git a/OpenRA.Mods.Common/PaletteFromFile.cs b/OpenRA.Mods.Common/World/PaletteFromFile.cs
similarity index 100%
rename from OpenRA.Mods.Common/PaletteFromFile.cs
rename to OpenRA.Mods.Common/World/PaletteFromFile.cs
diff --git a/OpenRA.Mods.RA/PaletteFromRGBA.cs b/OpenRA.Mods.Common/World/PaletteFromRGBA.cs
similarity index 98%
rename from OpenRA.Mods.RA/PaletteFromRGBA.cs
rename to OpenRA.Mods.Common/World/PaletteFromRGBA.cs
index da17d9e72f..d194ce8215 100644
--- a/OpenRA.Mods.RA/PaletteFromRGBA.cs
+++ b/OpenRA.Mods.Common/World/PaletteFromRGBA.cs
@@ -12,7 +12,7 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
[Desc("Creates a single color palette without any base palette file.")]
class PaletteFromRGBAInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/PlayerPaletteFromCurrentTileset.cs b/OpenRA.Mods.Common/World/PlayerPaletteFromCurrentTileset.cs
similarity index 97%
rename from OpenRA.Mods.RA/PlayerPaletteFromCurrentTileset.cs
rename to OpenRA.Mods.Common/World/PlayerPaletteFromCurrentTileset.cs
index 76a6c9b033..ad42eb7dcc 100644
--- a/OpenRA.Mods.RA/PlayerPaletteFromCurrentTileset.cs
+++ b/OpenRA.Mods.Common/World/PlayerPaletteFromCurrentTileset.cs
@@ -12,7 +12,7 @@ using OpenRA.FileSystem;
using OpenRA.Graphics;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common
{
class PlayerPaletteFromCurrentTilesetInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index f645279052..2e2eb8e960 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -125,7 +125,6 @@
-
@@ -202,7 +201,6 @@
-
@@ -220,7 +218,6 @@
-
@@ -235,14 +232,10 @@
-
-
-
-
@@ -324,7 +317,6 @@
-
@@ -360,7 +352,6 @@
-
@@ -401,7 +392,6 @@
-
diff --git a/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs
index f0c08a1161..1e23af0af3 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs
@@ -11,6 +11,7 @@
using System;
using System.Drawing;
using System.Linq;
+using OpenRA.Mods.Common;
using OpenRA.Mods.RA.Scripting;
using OpenRA.Network;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs
index 48251b8ef5..7b0286c4c6 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs
@@ -10,6 +10,7 @@
using System;
using OpenRA.Graphics;
+using OpenRA.Mods.Common;
using OpenRA.Mods.Common.Widgets;
using OpenRA.Widgets;