diff --git a/client/entities/characters/hp.gd b/client/entities/characters/hp.gd
index 2a2b60bc12a7144ca04b62b0babf305251856cc3..f34dfe84dfc8b3cd4e4a310247ecb5010201339b 100644
--- a/client/entities/characters/hp.gd
+++ b/client/entities/characters/hp.gd
@@ -3,21 +3,26 @@ const GAMEPATH = "/root/game/"
 
 var posPv
 var player 
-
+var my_id
 
 func _ready():
 	posPv = Vector3(0,0,0)
 	player = get_node("../../")
-	var my_id = get_tree().get_network_unique_id()
-
-	if str(my_id) != str (player.get_name()) : 
-		set_text('pv : 20% ')
+	my_id = get_tree().get_network_unique_id()
+	
+	update_printed_hp()
 	
 
 
 func _process(delta):
 	var cam = get_tree().get_root().get_camera()
-	posPv.x = player.get_global_transform().origin.x-1
-	posPv.y = player.get_global_transform().origin.y+2
+	posPv.x = player.get_global_transform().origin.x - 0.5
+	posPv.y = player.get_global_transform().origin.y + 2
 	var labelIdpos = cam.unproject_position(posPv)
 	set_position(labelIdpos)
+
+
+# update the current hp labels
+func update_printed_hp():
+	if str(my_id) != str (player.get_name()):
+		set_text(str(player.hp) + '%')
\ No newline at end of file
diff --git a/client/entities/characters/player.gd b/client/entities/characters/player.gd
index c19b556830ce7c87d301bad111cad9523bb74a55..716c9c7a16c806d8cba91d63b94ad3fbe87da746 100644
--- a/client/entities/characters/player.gd
+++ b/client/entities/characters/player.gd
@@ -1,12 +1,19 @@
 extends KinematicBody
 
+var hp:int = 0
+
+
 # Update the player's position based on the position computed by the remote scene on the server
 puppet func getRemoteMovement(position:Vector3):
 	self.set_translation(position)
 
+
 # Feedback when hurt
 puppet func hurt(hpNow:int):
-	print("You suffered a hit and are now at " + String(hpNow) + " !")
+	hp = hpNow
+	print("You suffered a hit and are now at " + String(hp))
+	get_node("Labels/Hp").update_printed_hp()
+
 
 # Feedback when killed
 puppet func die(killerId:int):
@@ -14,6 +21,4 @@ puppet func die(killerId:int):
 	
 	# Hide the killed player (NB: the client is only about inputs and display)
 	#self.set_visible(false)
-	
-	
 	
\ No newline at end of file
diff --git a/client/entities/characters/player.tscn b/client/entities/characters/player.tscn
index ed1cc7baedc2c9a9f31b3c3759de15804cb870c6..5c8fcf4b45d827153851d13b5244520656522168 100644
--- a/client/entities/characters/player.tscn
+++ b/client/entities/characters/player.tscn
@@ -7,18 +7,18 @@
 [node name="player" type="KinematicBody"]
 script = ExtResource( 1 )
 
-[node name="Labels " type="Control" parent="."]
+[node name="Labels" type="Control" parent="."]
 margin_right = 40.0
 margin_bottom = 40.0
 
-[node name="Pseudo" type="Label" parent="Labels "]
+[node name="Pseudo" type="Label" parent="Labels"]
 margin_right = 40.0
 margin_bottom = 14.0
 text = "
 "
 script = ExtResource( 2 )
 
-[node name="Hp" type="Label" parent="Labels "]
+[node name="Hp" type="Label" parent="Labels"]
 margin_right = 40.0
 margin_bottom = 14.0
 script = ExtResource( 3 )
diff --git a/client/entities/characters/pseudo.gd b/client/entities/characters/pseudo.gd
index 8dba6d621d0c245ffba582c9d24bc5efcd34bd85..a8bf8f6ff92783f8d3d7072a9994c64bce4a928d 100644
--- a/client/entities/characters/pseudo.gd
+++ b/client/entities/characters/pseudo.gd
@@ -10,7 +10,6 @@ func _ready():
 	cam = get_tree().get_root().get_camera()
 	posId = Vector3(0,0,0)
 	player = get_node("../../")
-	print("Bonjour:",player)
 	var my_id = get_tree().get_network_unique_id()
 
 	if str(my_id) != str (player.get_name()) : 
@@ -19,7 +18,7 @@ func _ready():
 
 
 func _process(delta):
-	posId.x = player.get_global_transform().origin.x-1.5
-	posId.y = player.get_global_transform().origin.y+3
+	posId.x = player.get_global_transform().origin.x - 1.65
+	posId.y = player.get_global_transform().origin.y + 2.7
 	var labelIdpos = cam.unproject_position(posId)
 	set_position(labelIdpos)
diff --git a/client/levels/lobby/lobby.gd b/client/levels/lobby/lobby.gd
index 3c453e05ff8fe45fde29c903f5ea0d6bcf39c2f3..476b381ccbc70a3b0b2e2a2fca804925dc4f2a2c 100644
--- a/client/levels/lobby/lobby.gd
+++ b/client/levels/lobby/lobby.gd
@@ -1,7 +1,6 @@
 extends Control
 
 func _ready():
-	#gamestate.connect("connected_to_server", self, "_player_connected")
 	get_tree().connect("connected_to_server", self, "_player_connected")
 	get_tree().connect("connection_failed", self, "_connection_failed")
 	get_tree().connect("server_disconnected", self, "_player_disconnected")
@@ -26,11 +25,11 @@ func _on_joinButton_pressed():
 	
 	gamestate.joinServer(ip, port)
 
-#func _player_connected():
-#	print("You successfuly joined the server with the id " + str(gamestate.get_network_unique_id()))
-#
-#func _connection_failed():
-#	print("Connection failure")
-#
-#func _player_disconnected():
-#	print("You disconnected the server")
\ No newline at end of file
+func _player_connected():
+	print("You successfuly joined the server with the id " + str(get_tree().get_network_unique_id()))
+
+func _connection_failed():
+	print("Connection failure")
+
+func _player_disconnected():
+	print("You disconnected the server")
\ No newline at end of file
diff --git a/server/entities/characters/player.gd b/server/entities/characters/player.gd
index a87dfd2b9beb688870c25bad4bf85c99f70af168..93d5ddd6a3fae55f57f9bd5b2264b642a6f58805 100644
--- a/server/entities/characters/player.gd
+++ b/server/entities/characters/player.gd
@@ -198,7 +198,7 @@ func secondaryAttack():
 func hurt(damages:int, sourceId:int):
 	hp += damages
 	lastStrikerId = sourceId
-	rpc_unreliable_id(ownId, "hurt", hp)
+	rpc_unreliable("hurt", hp)
 
 func die():
 	rpc("die", lastStrikerId)
diff --git a/server/levels/test/game.gd b/server/levels/test/game.gd
index 86489f1ce45bb299a628551eb2bd362675d6e1f0..7364c55bab5e5524e696f80ba7d031731e0f29cb 100644
--- a/server/levels/test/game.gd
+++ b/server/levels/test/game.gd
@@ -1,7 +1,6 @@
 extends Node
 
 master func sendPlayerInputs(movementInput:int, jumpInput:bool, jumpId:int, sprintInput:bool, attackStateInput:int):
-	
 	# Get the input from a client and send it to the matching remote player
 	var senderId:int = get_tree().get_rpc_sender_id()
 	if gamestate.players.has(senderId):