diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta b/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta
new file mode 100644
index 0000000000000000000000000000000000000000..656f28aae441eb7d09ea3313682023d4ea91e708
--- /dev/null
+++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 667d53df4e28fe94b999e5e29a452540
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat
new file mode 100644
index 0000000000000000000000000000000000000000..0f84a83e1cb5dbd1463bbc06d707a0a8d730837c
--- /dev/null
+++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat	
@@ -0,0 +1,37 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: CollectibleHealth
+  m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _AlphaTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 00e89d1057578a342b22583144a5ee03, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _EnableExternalAlpha: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Flip: {r: 1, g: 1, b: 1, a: 1}
+    - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+  m_BuildTextureStacks: []
diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta
new file mode 100644
index 0000000000000000000000000000000000000000..a03e107bb18d9b948271f7eb8c90b3b6e0fb7e1e
--- /dev/null
+++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6d2bd73899b429441a2baf276424a797
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab
new file mode 100644
index 0000000000000000000000000000000000000000..023d34349e891d7664bb4c6c7eb7daaeec1e805d
--- /dev/null
+++ b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab	
@@ -0,0 +1,124 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6033027262453235429
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3830083915671589380}
+  - component: {fileID: 5394940580506829047}
+  - component: {fileID: 7458017502642382889}
+  - component: {fileID: 2297645790402054491}
+  m_Layer: 0
+  m_Name: CollectibleHealth
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3830083915671589380
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6033027262453235429}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: -2.8, z: 0}
+  m_LocalScale: {x: 0.25515625, y: 0.27759373, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &5394940580506829047
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6033027262453235429}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 00e89d1057578a342b22583144a5ee03, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 2.56, y: 2.56}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!61 &7458017502642382889
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6033027262453235429}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: -0.11733401, y: -0.10785043}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 2.56, y: 2.56}
+    newSize: {x: 2.56, y: 2.56}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 2.325332, y: 2.0423186}
+  m_EdgeRadius: 0
+--- !u!114 &2297645790402054491
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6033027262453235429}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 611a43685f6ebf842bf42c4f01eb3d96, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta
new file mode 100644
index 0000000000000000000000000000000000000000..8d27f15e63a47e2786925d6c5f2b1343b1820861
--- /dev/null
+++ b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta	
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0dcad5d1b04f356479e4ed32c44a500b
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/2D Beginner/Assets/Scenes/MainScene.unity b/2D Beginner/Assets/Scenes/MainScene.unity
index b1203533db34839ab6414b959633471c9c4981f5..817625d585dde4446ef8339d3e63f2a9ed000386 100644
--- a/2D Beginner/Assets/Scenes/MainScene.unity	
+++ b/2D Beginner/Assets/Scenes/MainScene.unity	
@@ -1630,6 +1630,8 @@ GameObject:
   - component: {fileID: 1764730405}
   - component: {fileID: 1764730404}
   - component: {fileID: 1764730406}
+  - component: {fileID: 1764730408}
+  - component: {fileID: 1764730407}
   m_Layer: 0
   m_Name: Tilemap
   m_TagString: Untagged
@@ -1670,7 +1672,7 @@ TilemapRenderer:
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
-  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 2100000, guid: 6d2bd73899b429441a2baf276424a797, type: 2}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -4525,10 +4527,103 @@ TilemapCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 0
   m_UsedByEffector: 0
-  m_UsedByComposite: 0
+  m_UsedByComposite: 1
   m_Offset: {x: 0, y: 0}
   m_MaximumTileChangeCount: 1000
   m_ExtrusionFactor: 0.00001
+--- !u!66 &1764730407
+CompositeCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1764730402}
+  m_Enabled: 1
+  m_Density: 1
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_UsedByEffector: 0
+  m_UsedByComposite: 0
+  m_Offset: {x: 0, y: 0}
+  m_GeometryType: 0
+  m_GenerationType: 0
+  m_EdgeRadius: 0
+  m_ColliderPaths:
+  - m_Collider: {fileID: 1764730406}
+    m_ColliderPaths:
+    - - X: 60000000
+        Y: -10000000
+      - X: 70000000
+        Y: -10000000
+      - X: 70000000
+        Y: 0
+      - X: 80000000
+        Y: 0
+      - X: 80000000
+        Y: 40000000
+      - X: 20000000
+        Y: 40000000
+      - X: 20000000
+        Y: 0
+      - X: 30000000
+        Y: 0
+      - X: 30000000
+        Y: -20000000
+      - X: 60000000
+        Y: -20000000
+    - - X: -30000000
+        Y: 30000000
+      - X: -90000000
+        Y: 30000000
+      - X: -90000000
+        Y: 0
+      - X: -60000000
+        Y: 0
+      - X: -60000000
+        Y: -30000000
+      - X: -30000000
+        Y: -30000000
+  m_CompositePaths:
+    m_Paths:
+    - - {x: 5.999971, y: -2}
+      - {x: 6.0000296, y: -1}
+      - {x: 7, y: -0.99997073}
+      - {x: 7.0000296, y: 0}
+      - {x: 8, y: 0.000029300001}
+      - {x: 7.9999704, y: 4}
+      - {x: 2, y: 3.999971}
+      - {x: 2.0000293, y: 0}
+      - {x: 3, y: -0.0000294}
+      - {x: 3.0000293, y: -2}
+    - - {x: -3.0000293, y: -3}
+      - {x: -3.0000293, y: 3}
+      - {x: -9, y: 2.999971}
+      - {x: -8.99997, y: 0}
+      - {x: -6, y: -0.0000294}
+      - {x: -5.999971, y: -3}
+  m_VertexDistance: 0.0005
+  m_OffsetDistance: 0.00005
+--- !u!50 &1764730408
+Rigidbody2D:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1764730402}
+  m_BodyType: 2
+  m_Simulated: 1
+  m_UseFullKinematicContacts: 0
+  m_UseAutoMass: 0
+  m_Mass: 1
+  m_LinearDrag: 0
+  m_AngularDrag: 0.05
+  m_GravityScale: 1
+  m_Material: {fileID: 0}
+  m_Interpolate: 0
+  m_SleepingMode: 1
+  m_CollisionDetection: 0
+  m_Constraints: 0
 --- !u!1001 &1866705356
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -4869,7 +4964,8 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    m_RemovedComponents: []
+    m_RemovedComponents:
+    - {fileID: 2110435280929417719, guid: 8304b7a64eaaf8441abb739ad553a952, type: 3}
   m_SourcePrefab: {fileID: 100100000, guid: 8304b7a64eaaf8441abb739ad553a952, type: 3}
 --- !u!1001 &4236602152682955334
 PrefabInstance:
@@ -4928,6 +5024,63 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 83ce328b51fb6d4429f0a9869c7e064a, type: 3}
+--- !u!1001 &5194603723943032834
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_RootOrder
+      value: 39
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: -2.8
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6033027262453235429, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
+      propertyPath: m_Name
+      value: CollectibleHealth
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3}
 --- !u!1001 &5992971037037920545
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/2D Beginner/Assets/Scripts/HealthCollectible.cs b/2D Beginner/Assets/Scripts/HealthCollectible.cs
new file mode 100644
index 0000000000000000000000000000000000000000..798f8bb4c28924c59454902616192915145c2daf
--- /dev/null
+++ b/2D Beginner/Assets/Scripts/HealthCollectible.cs	
@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class HealthCollectible : MonoBehaviour
+{
+    void OnTriggerEnter2D(Collider2D other)
+    {
+        RubyController controller = other.GetComponent<RubyController>();
+        
+        if (controller != null)
+        {
+            if (controller.health < controller.maxHealth)
+            {
+                controller.ChangeHealth(1);
+                Destroy(gameObject); // This is the GameObject that the script is attached to (the collectible health pack)
+            }
+            
+        }
+    }
+}
diff --git a/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta b/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..080d1f7b4a1c367e0c707fa777b83e227edb7982
--- /dev/null
+++ b/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta	
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 611a43685f6ebf842bf42c4f01eb3d96
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/2D Beginner/Assets/Scripts/RubyController.cs b/2D Beginner/Assets/Scripts/RubyController.cs
index f02bb7b4f0a784ad43620e706a74cc6320cd2c1c..fd977af3bb0abefaef813ae32a92c1e313e67d06 100644
--- a/2D Beginner/Assets/Scripts/RubyController.cs	
+++ b/2D Beginner/Assets/Scripts/RubyController.cs	
@@ -4,6 +4,11 @@ using UnityEngine;
 
 public class RubyController : MonoBehaviour
 {
+    public float speed;
+    public int maxHealth = 5;
+    public int health { get { return currentHealth; } }
+    int currentHealth;
+
     Rigidbody2D rigidbody2D;
     float horizontal;
     float vertical;
@@ -12,6 +17,9 @@ public class RubyController : MonoBehaviour
     void Start()
     {
         rigidbody2D = GetComponent<Rigidbody2D>();
+        currentHealth = maxHealth;
+        currentHealth = 1;
+        speed = 3.0f;
     }
 
     // Update is called once per frame
@@ -24,8 +32,15 @@ public class RubyController : MonoBehaviour
     private void FixedUpdate()
     {
         Vector2 position = rigidbody2D.position;
-        position.x = position.x + 3.0f * horizontal * Time.deltaTime; // deltaTime is a variable that Unity fills with the time it takes for a frame to be rendered
-        position.y = position.y + 3.0f * vertical * Time.deltaTime;
+        position.x = position.x + speed * horizontal * Time.deltaTime; // deltaTime is a variable that Unity fills with the time it takes for a frame to be rendered
+        position.y = position.y + speed * vertical * Time.deltaTime;
         rigidbody2D.MovePosition(position);
     }
+
+    public void ChangeHealth(int amount)
+    {
+        // Clamping ensures that the first parameter (here currentHealth + amount) never goes lower than the second parameter (here 0) and never goes above the third parameter (maxHealth).
+        currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth);
+        Debug.Log(currentHealth + "/" + maxHealth);
+    }
 }