diff --git a/game/modules/tome/data/gfx/shaders/cloud_anim.frag b/game/modules/tome/data/gfx/shaders/cloud_anim.frag
index 9d88c3b73b7e8fa8ccaa1a15634118bd49a12591..0a5b235fae085151d6b0208e896479c1dd648f21 100644
--- a/game/modules/tome/data/gfx/shaders/cloud_anim.frag
+++ b/game/modules/tome/data/gfx/shaders/cloud_anim.frag
@@ -2,36 +2,36 @@ uniform sampler2D tex;
 uniform float tick;
 uniform vec2 mapCoord;
 uniform vec2 texSize;
+uniform vec4 displayColor;
 
 float rand(vec2 co){
-    return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
+	return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
 }
 
 void main(void)
 {
 	vec2 uv = gl_TexCoord[0].xy;
 	vec2 r = vec2(rand(mapCoord / texSize));
-	vec4 c = texture2D(tex, uv);
 
+	int blursize = 2;
+	vec2 offset = 1.0/texSize;
 
-		int blursize = 2;
-		vec2 offset = 1.0/texSize;
+	// Center Pixel
+	vec4 sample = vec4(0.0,0.0,0.0,0.0);
+	float factor = ((float(blursize)*2.0)+1.0);
+	factor = factor*factor;
 
-		// Center Pixel
-		vec4 sample = vec4(0.0,0.0,0.0,0.0);
-		float factor = ((float(blursize)*2.0)+1.0);
-		factor = factor*factor;
-
-		for(int i = -blursize; i <= blursize; i++)
+	for(int i = -blursize; i <= blursize; i++)
+	{
+		for(int j = -blursize; j <= blursize; j++)
 		{
-			for(int j = -blursize; j <= blursize; j++)
-			{
-				sample += texture2D(tex, vec2(gl_TexCoord[0].xy+vec2(float(i)*offset.x, float(j)*offset.y)));
-			}
+			sample += texture2D(tex, vec2(gl_TexCoord[0].xy+vec2(float(i)*offset.x, float(j)*offset.y)));
 		}
-		sample /= (float(blursize)*2.0) * (float(blursize)*2.0);
-		c = sample;
+	}
+	sample /= (float(blursize)*2.0) * (float(blursize)*2.0);
+
+	sample *= displayColor;
 
-	c.a *= 0.3 + (((1 + r.x * sin(tick / 1000 + mapCoord.y)) / 2) * ((1 + r.y * cos(tick / 1000 + mapCoord.x)) / 2)) * 0.7;
-	gl_FragColor = c;
+	sample.a *= 0.3 + (((1 + r.x * sin(tick / 500 + mapCoord.y)) / 2) * ((1 + r.y * cos(tick / 500 + mapCoord.x)) / 2)) * 0.7;
+	gl_FragColor = sample;
 }