diff --git a/MrBigsock/Assets/Code/Character.cs b/MrBigsock/Assets/Code/Character.cs
index 4fcb42cabba858172e22000dfd039ea6fe600404..50524d5e2a4be94e819abcb169ec63f0ff58857d 100644
--- a/MrBigsock/Assets/Code/Character.cs
+++ b/MrBigsock/Assets/Code/Character.cs
@@ -152,7 +152,7 @@ namespace BigSock {
 		}
 
 		/*
-			Adds damage to the player if they don't have IFrames.
+			Adds damage to the character if they don't have IFrames.
 		*/
 		public virtual bool TakeDamage(AttackStats attack) {
 			// Check if player has IFrames
@@ -163,25 +163,39 @@ namespace BigSock {
 			NextTimeCanTakeDamage = DateTime.Now + IFrameDuration;
 
 			// Trigger the event for taking damage.
-			OnTakeDamage?.Invoke(this, attack?.Actor, attack);
+			OnTakeDamage?.Invoke(this, attack.Actor, attack);
+
+			// Inform the attacker they hit us.
+			if(attack.Actor != null) attack.Actor.TargetHit(this, attack);
+			
 
 			// Add damage
 			HP -= attack.Damage;
 			AfterDamage(attack);
 
-			TryKill();
+			TryKill(attack);
 
 			return true;
 		}
 
 
 		/*
-			Try to kill the player.
+			Try to kill the character.
 		*/
-		public bool TryKill() {
+		public bool TryKill(AttackStats attack) {
 			if(Alive && HP <= 0) {
+
+
+				// Trigger the event for us dying.
+				OnDeath?.Invoke(this, attack.Actor, attack);
+
+				//== PUT CODE HERE TO HANDLE IF WE DODGED DEATH (In case we had an item to revieve or cheat death)
+
 				Alive = false;
 
+				// Inform the attacker killed us.
+				if(attack.Actor != null) attack.Actor.TargetKilled(this, attack);
+
 				AfterDeath();
 
 				return true;
@@ -190,11 +204,31 @@ namespace BigSock {
 		}
 
 
+		/*
+			Method for healing the character.
+		*/
+		public bool TryHeal(float amount) {
+			// Can't heal if full.
+			if(HP >= MaxHP) {
+				print($"[Character.TryHeal()] Already Full! ({HP:N1} >= {MaxHP:N1})");
+				return false;
+			}
+
+			print($"[Character.TryHeal()] {HP:N1} + {amount:N1} = {HP + amount:N1}");
+			OnHeal?.Invoke(this, amount);
+
+			// Heal the character.
+			var res = HP + amount;
+			if(res > MaxHP) res = MaxHP;
+			HP = res;
+			return true;
+		}
+
 		/*
 			Method for what to do when the character takes damage.
 		*/
 		protected virtual void AfterDamage(IAttackStats attack) {
-			print($"[Character.AfterDamage()] {HP} - {attack.Damage}");
+			print($"[Character.AfterDamage()] {HP + attack.Damage:N1} - {attack.Damage:N1} = {HP:N1}");
 			KnockBack(attack);
 		}
 
@@ -288,6 +322,12 @@ namespace BigSock {
 			OnHit?.Invoke(this, target, attack);
 		}
 
+		/*
+			Trigers the OnKill event.
+		*/
+		public void TargetKilled(Character target, AttackStats attack) {
+			OnKill?.Invoke(this, target, attack);
+		}
 
 		/*
 			Triggers when character uses an attack.
@@ -321,7 +361,7 @@ namespace BigSock {
 			Params: actor, amount.
 				(Add heal source later on)
 		*/
-		public event Action<Character, int> OnHeal;
+		public event Action<Character, float> OnHeal;
 
 		/*
 			Triggers when character has taken fatal damage. 
diff --git a/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs b/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
index aeb2f81303eb2b14696519bb3c445a6e9baf42aa..dfc797c2f90ab87607ac90e2f58f1a99e70f2b47 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
@@ -50,7 +50,7 @@ namespace BigSock {
 			Handles cooldown and ability cost here.
 			Returns true if the ability was successfully used.
 		*/
-		public bool Use(Character actor, Vector2 target) {
+		public bool Use(Character actor, Vector3? target = null) {
 			// Check that the ability is cooled down.
 			if(Ready) {
 				//> Handle checking costs here.
@@ -77,7 +77,7 @@ namespace BigSock {
 				- Even if nothing was hit, used to indicate that cooldowns should be updated.
 			This should be overridden in sub-classes for the actual abilities.
 		*/
-		protected abstract bool Activate(Character actor, Vector2 target);
+		protected abstract bool Activate(Character actor, Vector3? target);
 
 	}
 
diff --git a/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs b/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
index 80fa70963e840b5f6aef56553106009215b67628..07034791d6bbc841104db946dc9025a1413c3647 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
@@ -57,6 +57,6 @@ namespace BigSock {
 		/*
 			Try to use the ability.
 		*/
-		bool Use(Character actor, Vector2 target);
+		bool Use(Character actor, Vector3? target);
 	}
 }
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
index b92dea6dbbca44f2f838dd7ec45ad064ef545bc1..b7e1e8189da0a411a88414cca0d135d37c661840 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
@@ -1,9 +1,11 @@
 using System.Collections;
 using System;
 using System.Collections.Generic;
+
 using UnityEngine;
 using UnityEngine.InputSystem;
 
+using BigSock.Service;
 
 namespace BigSock {
 
@@ -12,7 +14,8 @@ namespace BigSock {
 	*/
 	public class BasicProjectile1 : BaseAttack {
 		//protected static readonly GameObject PROJECTILE_BASE = new AttackMovement();
-		
+		public const string PROJECTILE_NAME = "attack";
+
 		/*
 			The attack stats of the ability.
 		*/
@@ -34,7 +37,10 @@ namespace BigSock {
 				- Even if nothing was hit, used to indicate that cooldowns should be updated.
 			This should be overridden in sub-classes for the actual abilities.
 		*/
-		protected override bool Activate(Character actor, Vector2 target) {
+		protected override bool Activate(Character actor, Vector3? target) {
+			var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position);
+			bullet.GetComponent<AttackMovement>().Actor = actor;
+
 			//MonoBehaviour.Instantiate(PROJECTILE_BASE, (Vector3) actor.transform.position, PROJECTILE_BASE.transform.rotation);
 			return true;
 		}
diff --git a/MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs
index 4a27777331f36ee29e41c331ce777d8627f8b943..8322d480a07cac05942a5223603346930b6f30d2 100644
--- a/MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs
+++ b/MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs
@@ -19,7 +19,7 @@ namespace BigSock.Item {
 		/*
 			The handler to activate when the condition is triggered.
 		*/
-		public abstract void Handler(Character source, int amount); 
+		public abstract void Handler(Character source, float amount); 
 
 	}
 } 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs b/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs
index f3401629412b59b8f921a1d530b9aa0c850d8226..d70670cf520e0fed4e54e6c08ba8cac82a5bbaeb 100644
--- a/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs
+++ b/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs
@@ -34,11 +34,11 @@ namespace BigSock.Item {
 
 			// Check if it triggers.
 			var roll = RND.NextDouble();
-			if(roll >= CHANCE) {
+			if(roll <= CHANCE) {
+				MonoBehaviour.print($"[ItemFourEyes.Handler()] Hit. ({roll:P1} <= {CHANCE:P1})");
 				attack.Damage *= 2;
-				MonoBehaviour.print($"[ItemFourEyes.Handler()] Hit. ({roll:P1} >= {CHANCE:P1})");
 			} else {
-				MonoBehaviour.print($"[ItemFourEyes.Handler()] Miss. ({roll:P1} < {CHANCE:P1})");
+				MonoBehaviour.print($"[ItemFourEyes.Handler()] Miss. ({roll:P1} > {CHANCE:P1})");
 			}
 		}
 
diff --git a/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs b/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5455172387f374488cedb6d2b130a73aa1ac0837
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs
@@ -0,0 +1,32 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+	
+	/*
+		An item that heals the user on kill.
+	*/
+	public class ItemPlasticStraw : OnKillItemBase {	
+		public override ulong Id => 202;
+		public override string Name => "Plastic Straw";
+		public override string Description => "Heal the user on kill.";
+
+		public static readonly double CHANCE = 1.0;
+
+		public override void Handler(Character source, Character target, AttackStats attack) {
+			// Check if it triggers.
+			var roll = RND.NextDouble();
+			if(roll <= CHANCE) {
+				MonoBehaviour.print($"[ItemPlasticStraw.Handler()] Hit. ({roll:P1} <= {CHANCE:P1})");
+				source.TryHeal(1.5f);
+			} else {
+				MonoBehaviour.print($"[ItemPlasticStraw.Handler()] Miss. ({roll:P1} > {CHANCE:P1})");
+			}
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs.meta b/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..55418100dec3194f3fde293cafdd23893ba3a634
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Items/ItemPlasticStraw.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c24f1f2ed9cc63f4b9de7e0997060e4e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Code/PlayerController.cs b/MrBigsock/Assets/Code/PlayerController.cs
index 5f1a6a4ace8e6c3b22c8e668b6a0e2c10464cf45..d07507999d825f65ae26b8ebbcc9a6858d8fdbf2 100644
--- a/MrBigsock/Assets/Code/PlayerController.cs
+++ b/MrBigsock/Assets/Code/PlayerController.cs
@@ -32,7 +32,7 @@ namespace BigSock {
 
 
 
-
+			protected IAttack _testAttack = new BasicProjectile1();
 
 			public DateTime NextTimeCanAttack { get; private set; } = DateTime.Now;
 
@@ -51,6 +51,8 @@ namespace BigSock {
 				//!! DEBUG: Add item to player at start to test if it works.
 				TryPickUpItem(ItemService.SINGLETON.Get(201));
 				TryPickUpItem(ItemService.SINGLETON.Get(201));
+				TryPickUpItem(ItemService.SINGLETON.Get(202));
+				var tmp = PrefabService.SINGLETON;
 			}
 
 
@@ -97,10 +99,12 @@ namespace BigSock {
 				if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButton(0)) {
 					// Manage attack cooldown.
 					if(NextTimeCanAttack <= DateTime.Now) {
-						NextTimeCanAttack = DateTime.Now.AddSeconds(AttackCooldown);
+						//NextTimeCanAttack = DateTime.Now.AddSeconds(AttackCooldown);
+
+						//var bullet = Instantiate(attack, new Vector3(transform.position.x, transform.position.y, transform.position.z), attack.transform.rotation);
+						//bullet.GetComponent<AttackMovement>().Actor = this;
 
-						var bullet = Instantiate(attack, new Vector3(transform.position.x, transform.position.y, transform.position.z), attack.transform.rotation);
-						bullet.GetComponent<AttackMovement>().Actor = this;
+						_testAttack.Use(this, Camera.main.ScreenToWorldPoint(Input.mousePosition));
 					
 					}
 				}
diff --git a/MrBigsock/Assets/Code/Services/ItemService.cs b/MrBigsock/Assets/Code/Services/ItemService.cs
index c739901a0b11b6f58a92ea998f302303a2fdb83c..364673ebf31414f9b4c276b409d35b2a9ea23452 100644
--- a/MrBigsock/Assets/Code/Services/ItemService.cs
+++ b/MrBigsock/Assets/Code/Services/ItemService.cs
@@ -51,7 +51,6 @@ namespace BigSock.Service {
 
 		/*
 			Load the items into the dictionary.
-				(Hard-coded for now, use reflection later)
 			Reflection code: https://stackoverflow.com/a/6944605
 		*/
 		private void _loadItems() {
diff --git a/MrBigsock/Assets/Code/Services/PrefabService.cs b/MrBigsock/Assets/Code/Services/PrefabService.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2dab1bbdefca4f823dd3f488fdd05c60b28a9521
--- /dev/null
+++ b/MrBigsock/Assets/Code/Services/PrefabService.cs
@@ -0,0 +1,86 @@
+using System.Collections;
+using System;
+using System.Linq;
+using System.Collections.Generic;
+using System.Reflection;
+
+using UnityEngine;
+using UnityEngine.InputSystem;
+using UnityEditor;
+
+using BigSock.Item;
+
+
+namespace BigSock.Service {
+	
+	/*
+		Service for handling prefabs.
+	*/
+	public partial class PrefabService {	
+		/*
+			The instance to use.
+		*/
+		public static readonly PrefabService SINGLETON = new PrefabService();
+
+		/*
+			Get a prefab of a name.
+		*/
+		public GameObject Get(string name) {
+			if(_prefabs.TryGetValue(_sanitize(name), out var res)) return res;
+			return null;
+		}
+
+		
+		/*
+			Create an instance of a prefab.
+		*/
+		public GameObject Instance(GameObject obj, Vector3? pos = null) {
+			var res = MonoBehaviour.Instantiate(obj, pos ?? (Vector3) obj.transform.position, obj.transform.rotation);
+			return res;
+		}
+		public GameObject Instance(string name, Vector3? pos = null)
+			=> Instance(_prefabs[_sanitize(name)], pos);
+
+		/*
+			Destroy an instance.
+		*/
+		public void Destroy(GameObject obj)
+			=> MonoBehaviour.Destroy(obj);
+			
+	}
+
+	public partial class PrefabService {	
+		private Dictionary<string, GameObject> _prefabs = new Dictionary<string, GameObject>();
+
+		private System.Random _rnd = new System.Random();
+
+		private PrefabService() {
+			_loadItems();
+		}
+
+		/*
+			Load the items into the dictionary.
+			Based on: https://stackoverflow.com/a/67670629
+		*/
+		private void _loadItems() {
+			string[] guids = AssetDatabase.FindAssets( "t:Prefab", new string[] {"Assets/Prefabs"} );
+
+			var dict = new Dictionary<string, GameObject>();
+
+			foreach(var guid in guids) {
+				var path = AssetDatabase.GUIDToAssetPath( guid );
+				var name = _sanitize(path.Replace(".prefab", "").Replace("Assets/Prefabs/", ""));
+				GameObject go = AssetDatabase.LoadAssetAtPath<GameObject>( path );
+
+				Debug.Log($"[PrefabService._loadItems()] {name}");
+				dict[name] = go;
+			}
+
+			_prefabs = dict;
+		}
+
+		private string _sanitize(string name)
+			=> name.Replace(" ", "").Replace("_", "").ToLower();
+
+	}
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Services/PrefabService.cs.meta b/MrBigsock/Assets/Code/Services/PrefabService.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..d398e58abc610651e186b702a0e089faefd61bd8
--- /dev/null
+++ b/MrBigsock/Assets/Code/Services/PrefabService.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b818d945e9735e643ab67c7190d3ac9f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Code/attack/AttackMovement.cs b/MrBigsock/Assets/Code/attack/AttackMovement.cs
index 5ed4cc03c3546ebd8334d702e8d2cbb57d10f985..37b53fa9705d5bfb24c47e4824e351bdf21de880 100644
--- a/MrBigsock/Assets/Code/attack/AttackMovement.cs
+++ b/MrBigsock/Assets/Code/attack/AttackMovement.cs
@@ -71,7 +71,7 @@ namespace BigSock {
 				if(Actor != null) {
 					attack.Damage *= Actor.Damage;
 					attack.Knockback *= Actor.KnockbackForce;
-					Actor.TargetHit(target, attack);
+					//Actor.TargetHit(target, attack);
 				}
 
 				if(target.TakeDamage(attack)) {
diff --git a/MrBigsock/Assets/Prefabs/Test.meta b/MrBigsock/Assets/Prefabs/Test.meta
new file mode 100644
index 0000000000000000000000000000000000000000..8110b43873492ac7d9053c2d8fc0a18c35392888
--- /dev/null
+++ b/MrBigsock/Assets/Prefabs/Test.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ab1236fcd80cdcd4087feefb329f93be
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab b/MrBigsock/Assets/Prefabs/Test/attack 1.prefab
new file mode 100644
index 0000000000000000000000000000000000000000..76613d515234fdb4e24ae1ca5229f74135429a9d
--- /dev/null
+++ b/MrBigsock/Assets/Prefabs/Test/attack 1.prefab	
@@ -0,0 +1,164 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7173793660907891926
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7173793660907891920}
+  - component: {fileID: 7173793660907891921}
+  - component: {fileID: 7173793660907891922}
+  - component: {fileID: 7173793660907891949}
+  - component: {fileID: 7173793660907891948}
+  - component: {fileID: 5355219341519538053}
+  m_Layer: 10
+  m_Name: attack 1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7173793660907891920
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 2.0584211, y: -1.6348, z: 0}
+  m_LocalScale: {x: 0.27652767, y: 0.27652767, z: 0.27652767}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &7173793660907891921
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  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: 2
+  m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!61 &7173793660907891922
+BoxCollider2D:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  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_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 1, y: 1}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1}
+  m_EdgeRadius: 0
+--- !u!50 &7173793660907891949
+Rigidbody2D:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  m_BodyType: 0
+  m_Simulated: 1
+  m_UseFullKinematicContacts: 0
+  m_UseAutoMass: 0
+  m_Mass: 1
+  m_LinearDrag: 0
+  m_AngularDrag: 0.05
+  m_GravityScale: 0
+  m_Material: {fileID: 0}
+  m_Interpolate: 0
+  m_SleepingMode: 1
+  m_CollisionDetection: 0
+  m_Constraints: 4
+--- !u!114 &7173793660907891948
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 08cde138491863f44997ffed19e030dd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &5355219341519538053
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7173793660907891926}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3ae233c400f83844da0350aabdf5097d, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  speed: 10
+  baseDamage: 1
+  knockbackForce: 2
diff --git a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta b/MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta
new file mode 100644
index 0000000000000000000000000000000000000000..4894bab2f51392186c537a59675dcbf622134704
--- /dev/null
+++ b/MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta	
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 90d3ad8365877544cad09c96114a968f
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: