diff --git a/client/entities/characters/hp.gd b/client/entities/characters/hp.gd
index dd539351e5a45b55996dee4cea1ae6cd94be66db..b13e19bef0283b2d352bb1cb401a11068a7b093b 100644
--- a/client/entities/characters/hp.gd
+++ b/client/entities/characters/hp.gd
@@ -6,12 +6,16 @@ var hp:int
 var posPv
 var player 
 var my_id
+var healVfx:Resource
+var healSfx:Resource
 
 func _ready():
 	hp = 0
 	posPv = Vector3(0,0,0)
 	player = get_node("../../")
 	my_id = get_tree().get_network_unique_id()
+	healVfx = preload("res://entities/vfx/Heal.tscn")
+	healSfx = preload("res://entities/sfx/healSfx.tscn")
 	
 	update_printed_hp(hp)
 
@@ -27,6 +31,11 @@ func _process(_delta):
 
 # update the current hp labels
 func update_printed_hp(newHp:int):
+	if (newHp < hp):
+		var particle = healVfx.instance()
+		player.get_node("Model").add_child(particle)
+		var sound = healSfx.instance()
+		player.get_node("Model").add_child(sound)
 	hp = newHp
 	if str(my_id) != str(player.get_name()):
 		set_text(String(hp) + ' %')
diff --git a/client/entities/items/beer.tscn b/client/entities/items/beer.tscn
index 2403ed8a2b585a5cf33b29535db5b59ab089dab5..5b68148c4a5fdae294348bf1ffd55cd4ffdcf4fa 100644
--- a/client/entities/items/beer.tscn
+++ b/client/entities/items/beer.tscn
@@ -1,6 +1,7 @@
-[gd_scene load_steps=13 format=2]
+[gd_scene load_steps=15 format=2]
 
 [ext_resource path="res://entities/items/item.gd" type="Script" id=1]
+[ext_resource path="res://entities/vfx/Item.tscn" type="PackedScene" id=2]
 
 [sub_resource type="Shader" id=1]
 resource_name = "Shader Nodetree"
@@ -292,14 +293,57 @@ surfaces/4 = {
 "vertex_count": 48
 }
 
+[sub_resource type="Animation" id=12]
+resource_name = "beerAnimation"
+length = 2.0
+loop = true
+tracks/0/type = "transform"
+tracks/0/path = NodePath(".")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = PoolRealArray(  )
+tracks/1/type = "value"
+tracks/1/path = NodePath(".:translation")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0, 1, 2 ),
+"transitions": PoolRealArray( 1, 1, 1 ),
+"update": 0,
+"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.3, 0 ), Vector3( 0, 0, 0 ) ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath(".:rotation_degrees")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector3( 0, -90, 0 ), Vector3( 0, 270, 0 ) ]
+}
+
 [node name="beer" type="Spatial"]
 script = ExtResource( 1 )
 
 [node name="Cylinder" type="MeshInstance" parent="."]
-transform = Transform( -1.62921e-07, 0, -1, 0, 1, 0, 1, 0, -1.62921e-07, 0, 0, 0 )
+transform = Transform( 0.66563, 0, 0.746282, 0, 1, 0, -0.746282, 0, 0.66563, 0, 0.230449, 0 )
 mesh = SubResource( 11 )
 material/0 = null
 material/1 = null
 material/2 = null
 material/3 = null
 material/4 = null
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="Cylinder"]
+autoplay = "beerAnimation"
+anims/beerAnimation = SubResource( 12 )
+
+[node name="ItemStar" parent="Cylinder" instance=ExtResource( 2 )]
+transform = Transform( 0.319264, 0, 0, 0, 0.319264, 0, 0, 0, 0.319264, 0, 0.437919, 0 )
diff --git a/client/entities/items/hot_dog.tscn b/client/entities/items/hot_dog.tscn
index b1aeb0a93ed6ea29c990346a1d79a73c2ec913e1..ef050c0266f8522894979d1fe96ebfc12b6cc136 100644
--- a/client/entities/items/hot_dog.tscn
+++ b/client/entities/items/hot_dog.tscn
@@ -1,6 +1,7 @@
-[gd_scene load_steps=9 format=2]
+[gd_scene load_steps=11 format=2]
 
 [ext_resource path="res://entities/items/item.gd" type="Script" id=1]
+[ext_resource path="res://entities/vfx/Item.tscn" type="PackedScene" id=2]
 
 [sub_resource type="Shader" id=1]
 resource_name = "Shader Nodetree"
@@ -365,12 +366,54 @@ surfaces/2 = {
 "vertex_count": 372
 }
 
+[sub_resource type="Animation" id=8]
+resource_name = "hotdogAnimation"
+length = 2.0
+loop = true
+tracks/0/type = "transform"
+tracks/0/path = NodePath(".")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = PoolRealArray(  )
+tracks/1/type = "value"
+tracks/1/path = NodePath(".:translation")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0, 1, 2 ),
+"transitions": PoolRealArray( 1, 1, 1 ),
+"update": 0,
+"values": [ Vector3( 0, 0.13317, 0 ), Vector3( 0, 0.322228, 0 ), Vector3( 0, 0.13317, 0 ) ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath(".:rotation_degrees")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector3( 21.544, -90, -3.68531e-06 ), Vector3( 21.544, 270, 0 ) ]
+}
+
 [node name="hot_dog" type="Spatial"]
 script = ExtResource( 1 )
 
-[node name="Food Island002" type="MeshInstance" parent="."]
-transform = Transform( -1.62921e-07, 0, -1, 0, 1, 0, 1, 0, -1.62921e-07, 0, 0, 0 )
+[node name="Cylinder" type="MeshInstance" parent="."]
+transform = Transform( -0.872223, -0.179608, -0.454937, -1.00905e-08, 0.930136, -0.367216, 0.489108, -0.320294, -0.811286, 0, 0.196944, 0 )
 mesh = SubResource( 7 )
 material/0 = null
 material/1 = null
 material/2 = null
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="Cylinder"]
+autoplay = "hotdogAnimation"
+anims/hotdogAnimation = SubResource( 8 )
+
+[node name="ItemStar" parent="Cylinder" instance=ExtResource( 2 )]
diff --git a/client/entities/sfx/heal.wav b/client/entities/sfx/heal.wav
new file mode 100644
index 0000000000000000000000000000000000000000..4841ae42b4b7dadaf195d95494d460e292807366
Binary files /dev/null and b/client/entities/sfx/heal.wav differ
diff --git a/client/entities/sfx/heal.wav.import b/client/entities/sfx/heal.wav.import
new file mode 100644
index 0000000000000000000000000000000000000000..bb8f582828d03c6ed96f434bc91e0bc80b89f08b
--- /dev/null
+++ b/client/entities/sfx/heal.wav.import
@@ -0,0 +1,21 @@
+[remap]
+
+importer="wav"
+type="AudioStreamSample"
+path="res://.import/heal.wav-0106b3ec1d0d39dd323787691d545751.sample"
+
+[deps]
+
+source_file="res://entities/sfx/heal.wav"
+dest_files=[ "res://.import/heal.wav-0106b3ec1d0d39dd323787691d545751.sample" ]
+
+[params]
+
+force/8_bit=false
+force/mono=false
+force/max_rate=false
+force/max_rate_hz=44100
+edit/trim=false
+edit/normalize=false
+edit/loop=false
+compress/mode=0
diff --git a/client/entities/sfx/healSfx.tscn b/client/entities/sfx/healSfx.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..0aeb74edcf937a3085570a47ec9b4ab141273305
--- /dev/null
+++ b/client/entities/sfx/healSfx.tscn
@@ -0,0 +1,9 @@
+[gd_scene load_steps=3 format=2]
+
+[ext_resource path="res://entities/sfx/heal.wav" type="AudioStream" id=1]
+[ext_resource path="res://entities/sfx/sfx.gd" type="Script" id=2]
+
+[node name="healSfx" type="AudioStreamPlayer3D"]
+stream = ExtResource( 1 )
+autoplay = true
+script = ExtResource( 2 )
diff --git a/client/entities/vfx/Heal.tscn b/client/entities/vfx/Heal.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..d545b6b30a514ba4be722f9d8071c606403f1b8d
--- /dev/null
+++ b/client/entities/vfx/Heal.tscn
@@ -0,0 +1,49 @@
+[gd_scene load_steps=10 format=2]
+
+[ext_resource path="res://entities/vfx/plus.png" type="Texture" id=1]
+[ext_resource path="res://entities/vfx/vfx.gd" type="Script" id=2]
+
+[sub_resource type="SpatialMaterial" id=1]
+flags_transparent = true
+flags_unshaded = true
+vertex_color_use_as_albedo = true
+params_billboard_mode = 1
+albedo_texture = ExtResource( 1 )
+
+[sub_resource type="Gradient" id=2]
+colors = PoolColorArray( 0.13092, 0.698242, 0.262778, 1, 0.218678, 0.948242, 0.0481529, 1 )
+
+[sub_resource type="GradientTexture" id=3]
+gradient = SubResource( 2 )
+width = 1024
+
+[sub_resource type="Curve" id=4]
+_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.253165, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.0113636 ), -1.49713, 0.0, 0, 0 ]
+
+[sub_resource type="CurveTexture" id=5]
+width = 128
+curve = SubResource( 4 )
+
+[sub_resource type="ParticlesMaterial" id=6]
+emission_shape = 1
+emission_sphere_radius = 1.0
+spread = 90.0
+gravity = Vector3( 0, 0, 0 )
+initial_velocity = 1.0
+scale_curve = SubResource( 5 )
+color_ramp = SubResource( 3 )
+
+[sub_resource type="QuadMesh" id=7]
+size = Vector2( 0.25, 0.25 )
+
+[node name="Heal" type="Particles"]
+transform = Transform( -4.88762e-08, 0.3, 0, -0.3, -4.88762e-08, 0, 0, 0, 0.3, 0, 0.85, 0 )
+material_override = SubResource( 1 )
+emitting = false
+amount = 10
+lifetime = 0.5
+one_shot = true
+local_coords = false
+process_material = SubResource( 6 )
+draw_pass_1 = SubResource( 7 )
+script = ExtResource( 2 )
diff --git a/client/entities/vfx/Item.tscn b/client/entities/vfx/Item.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..244f65687fdadd4f7b306e0186a4b9e835c5c086
--- /dev/null
+++ b/client/entities/vfx/Item.tscn
@@ -0,0 +1,50 @@
+[gd_scene load_steps=9 format=2]
+
+[ext_resource path="res://entities/vfx/star.png" type="Texture" id=1]
+
+[sub_resource type="SpatialMaterial" id=1]
+flags_transparent = true
+flags_unshaded = true
+vertex_color_use_as_albedo = true
+params_billboard_mode = 1
+albedo_texture = ExtResource( 1 )
+
+[sub_resource type="Gradient" id=2]
+offsets = PoolRealArray( 0.451852, 1 )
+colors = PoolColorArray( 0.955078, 0.711951, 0.0261154, 1, 0.927734, 0.92428, 0.0434875, 1 )
+
+[sub_resource type="GradientTexture" id=3]
+gradient = SubResource( 2 )
+
+[sub_resource type="Curve" id=4]
+max_value = 0.5
+_data = [ Vector2( 0, 0.5 ), 0.0, 0.0, 0, 0, Vector2( 0.835443, 0.346591 ), -0.746909, -0.746909, 0, 0, Vector2( 1, 0 ), -3.43381, 0.0, 0, 0 ]
+
+[sub_resource type="CurveTexture" id=5]
+width = 128
+curve = SubResource( 4 )
+
+[sub_resource type="ParticlesMaterial" id=6]
+emission_shape = 1
+emission_sphere_radius = 1.0
+direction = Vector3( 0, 1, 0 )
+spread = 40.0
+gravity = Vector3( 0, -2, 0 )
+initial_velocity = 5.0
+initial_velocity_random = 0.25
+scale = 0.2
+scale_curve = SubResource( 5 )
+color_ramp = SubResource( 3 )
+
+[sub_resource type="QuadMesh" id=7]
+size = Vector2( 0.2, 0.2 )
+
+[node name="ItemStar" type="Particles"]
+transform = Transform( 0.319264, 0, 0, 0, 0.319264, 0, 0, 0, 0.319264, 0, 0, 0 )
+material_override = SubResource( 1 )
+amount = 5
+randomness = 0.5
+visibility_aabb = AABB( -4, -3.44923, -4, 8, 6.89846, 8 )
+local_coords = false
+process_material = SubResource( 6 )
+draw_pass_1 = SubResource( 7 )
diff --git a/client/entities/vfx/plus.png b/client/entities/vfx/plus.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2b7273783d90deafb98d0d09d286829289f742c
Binary files /dev/null and b/client/entities/vfx/plus.png differ
diff --git a/client/entities/vfx/plus.png.import b/client/entities/vfx/plus.png.import
new file mode 100644
index 0000000000000000000000000000000000000000..6b526204393b6ecb74d18ebd1f2fcb1f56fadad3
--- /dev/null
+++ b/client/entities/vfx/plus.png.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path.s3tc="res://.import/plus.png-b3680ffdbad3375cbc1cf9eac37f6a39.s3tc.stex"
+path.etc2="res://.import/plus.png-b3680ffdbad3375cbc1cf9eac37f6a39.etc2.stex"
+metadata={
+"imported_formats": [ "s3tc", "etc2" ],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://entities/vfx/plus.png"
+dest_files=[ "res://.import/plus.png-b3680ffdbad3375cbc1cf9eac37f6a39.s3tc.stex", "res://.import/plus.png-b3680ffdbad3375cbc1cf9eac37f6a39.etc2.stex" ]
+
+[params]
+
+compress/mode=2
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=true
+flags/filter=true
+flags/mipmaps=true
+flags/anisotropic=false
+flags/srgb=1
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=false
+svg/scale=1.0
diff --git a/client/entities/vfx/star.png b/client/entities/vfx/star.png
new file mode 100644
index 0000000000000000000000000000000000000000..40a69344b26cb03995d0c439c9e8c1ae1e2a0636
Binary files /dev/null and b/client/entities/vfx/star.png differ
diff --git a/client/entities/vfx/star.png.import b/client/entities/vfx/star.png.import
new file mode 100644
index 0000000000000000000000000000000000000000..e83b7724f0c87029a95a9d8a1f86ebfe726a7d16
--- /dev/null
+++ b/client/entities/vfx/star.png.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path.s3tc="res://.import/star.png-7b039bb73b1d6bb5d025875607ed811d.s3tc.stex"
+path.etc2="res://.import/star.png-7b039bb73b1d6bb5d025875607ed811d.etc2.stex"
+metadata={
+"imported_formats": [ "s3tc", "etc2" ],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://entities/vfx/star.png"
+dest_files=[ "res://.import/star.png-7b039bb73b1d6bb5d025875607ed811d.s3tc.stex", "res://.import/star.png-7b039bb73b1d6bb5d025875607ed811d.etc2.stex" ]
+
+[params]
+
+compress/mode=2
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=true
+flags/filter=true
+flags/mipmaps=true
+flags/anisotropic=false
+flags/srgb=1
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=false
+svg/scale=1.0
diff --git a/client/entities/vfx/vfx.gd b/client/entities/vfx/vfx.gd
index 5d1e29d4cd57814cde32107024086a68ac230eda..8c99911de2bf4312aaa6da4ad1d4c1e5df5366d9 100644
--- a/client/entities/vfx/vfx.gd
+++ b/client/entities/vfx/vfx.gd
@@ -4,7 +4,7 @@ extends Particles
 func _ready():
 	self.emitting = true
 	var waitTimer = Timer.new()
-	waitTimer.set_wait_time(1)
+	waitTimer.set_wait_time(2)
 	waitTimer.set_one_shot(true)
 	self.add_child(waitTimer)
 	waitTimer.start()