diff --git a/client/public/images/boo.png b/client/public/images/boo.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d49d9e2fb7f0b04b027c2edcb8680752c0051d6
Binary files /dev/null and b/client/public/images/boo.png differ
diff --git a/client/src/main.js b/client/src/main.js
index 5c360d9e4f3c4f8795eeff1f465e18729373b59e..260e8c42a916bdcecee1d9d74e91870fb7c4ea91 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -17,6 +17,7 @@ const imageMortier = new Image();
 const imageProjectile = new Image();
 const imageEnemi = new Image();
 const imageEnemi2 = new Image();
+const imageEnemi3 = new Image();
 const background = new Image();
 const imageCoeur = new Image();
 
@@ -24,6 +25,7 @@ imageMortier.src = '/images/mortier.png';
 imageProjectile.src = '/images/bill.png';
 imageEnemi.src = '/images/koopa.png';
 imageEnemi2.src = '/images/bob_omb.png';
+imageEnemi3.src = '/images/boo.png';
 background.src = '/images/background2.webp';
 imageCoeur.src = '/images/heart1.webp';
 let gameStarted = false;
@@ -210,6 +212,7 @@ function render() {
 					context,
 					imageEnemi,
 					imageEnemi2,
+					imageEnemi3,
 					enemi.x,
 					enemi.y,
 					enemi
diff --git a/client/src/render.js b/client/src/render.js
index 03c4bb2eecfb009f3981cc6ed92f4abb8cbc7aec..74326532f74b08261fa21b5958cb8146bb472a4d 100644
--- a/client/src/render.js
+++ b/client/src/render.js
@@ -9,11 +9,22 @@ export default class Render {
 		}
 	}
 
-	static renderEnnemi(canvas, context, imageEnemi, imageEnemi2, x, y, enemi) {
+	static renderEnnemi(
+		canvas,
+		context,
+		imageEnemi,
+		imageEnemi2,
+		imageEnemi3,
+		x,
+		y,
+		enemi
+	) {
 		if (enemi.difficulté == 1) {
 			draw(canvas, context, imageEnemi, x, y);
 		} else if (enemi.difficulté == 2) {
 			draw(canvas, context, imageEnemi2, x, y);
+		} else if (enemi.difficulté) {
+			draw(canvas, context, imageEnemi3, x, y);
 		}
 	}
 
diff --git a/server/enemis.js b/server/enemis.js
index 0d87d1e260f7a1fad2462e4f48a30d74f5906371..45aa7ab4fa11595b584bbbe9adecfca5032477d9 100644
--- a/server/enemis.js
+++ b/server/enemis.js
@@ -18,6 +18,9 @@ export default class enemi extends Entite {
 		} else if (difficulté == 2) {
 			this.vx = 5;
 			this.vy = 1;
+		} else if (difficulté == 3) {
+			this.vx = 20;
+			this.vy = 16;
 		}
 		this.difficulté = difficulté;
 		this.vies = 2;
diff --git a/server/index.js b/server/index.js
index 1a6da4abdc1b194c68d1a076edc4fee0abcd8043..9926c8807ca782dbc8c18665d33e854952c61b8c 100644
--- a/server/index.js
+++ b/server/index.js
@@ -48,6 +48,7 @@ const bonusArray = [];
 let cpt = 0;
 let canShoot = true;
 let LVL2start = false;
+let LVL3start = false;
 
 io.on('connection', socket => {
 	cpt++;
@@ -93,14 +94,10 @@ io.on('connection', socket => {
 				canShoot = false;
 				setTimeout(function () {
 					canShoot = true;
-				}, 100);
+				}, 200);
 			}
 		});
 
-		socket.on('LVL2', LVL2start => {
-			LVL2start = true;
-		});
-
 		socket.on('canvasSize', canvasSize => {
 			console.log(canvasSize);
 			canvasSize = canvasSize;
@@ -113,6 +110,9 @@ let spawnIntervalLV1 = setInterval(() => {
 		if (t.getMin() >= 1) {
 			LVL2start = true;
 		}
+		if (t.getSec() >= 30) {
+			LVL3start = true;
+		}
 
 		let randomY = Math.random() * (canvasSize.height - 0) + 0;
 		do {
@@ -134,6 +134,17 @@ let spawnIntervalLV2 = setInterval(() => {
 	}
 }, 800);
 
+let spawnIntervalLV3 = setInterval(() => {
+	if (LVL3start && gameStarted) {
+		let randomY = Math.random() * (canvasSize.height - 0) + 0;
+		do {
+			randomY = Math.random() * (canvasSize.height - 0) + 0;
+		} while (randomY > canvasSize.height - 100);
+		const newEnemy = new enemi(canvasSize.width - 100, randomY, 1, 3);
+		enemis.push(newEnemy);
+	}
+}, 4000);
+
 let spawnBonusInterval = setInterval(() => {
 	if (gameStarted) {
 		let randomX;