diff --git a/projects/fire_works/shaders/generation.comp b/projects/fire_works/shaders/generation.comp
index 0f8551dffdee1544dae31362a7b44f4207874940..13c21d314e2bfbd7ca22671f7feb99e41fad57af 100644
--- a/projects/fire_works/shaders/generation.comp
+++ b/projects/fire_works/shaders/generation.comp
@@ -136,6 +136,7 @@ void main() {
     particles[id].size = size * split;
     particles[id].color = color;
     particles[id].mass = events[event_id].mass / events[event_id].count;
+    particles[id].eventId = event_id;
 
     {
         const uint tid = atomicAdd(trailIndex, 1) % trails.length();
diff --git a/projects/fire_works/shaders/particle.inc b/projects/fire_works/shaders/particle.inc
index f3da76332452a17256a53dabb0ade6abb0b4caea..488c9349d72ac04d48e523d5c9a97057bdfb1f78 100644
--- a/projects/fire_works/shaders/particle.inc
+++ b/projects/fire_works/shaders/particle.inc
@@ -8,6 +8,8 @@ struct particle_t {
 	float size;
 	vec3 color;
 	float mass;
+	vec3 pad0;
+	uint eventId;
 };
 
 #endif // PARTICLE_INC
\ No newline at end of file
diff --git a/projects/fire_works/src/main.cpp b/projects/fire_works/src/main.cpp
index acd9411255e0bf33f3aa930a74d5466f8c12ca7b..ea24d23a21517f0e02ee707d5dd0204f9c36c91d 100644
--- a/projects/fire_works/src/main.cpp
+++ b/projects/fire_works/src/main.cpp
@@ -16,6 +16,8 @@ struct particle_t {
 	float size;
 	glm::vec3 color;
 	float pad2;
+	glm::vec3 pad0;
+	uint32_t eventId;
 };
 
 struct event_t {
@@ -311,7 +313,7 @@ int main(int argc, const char **argv) {
 		
 		100,
 		0,
-		events.size() - 1,
+		events.size() - 3,
 		0,
 		
 		10.0f,
@@ -319,6 +321,40 @@ int main(int argc, const char **argv) {
 		0.0f,
 		0.0f
 	);
+
+	events.emplace_back(
+		glm::vec3(0.5, 1, 0), 
+		0.1f, 
+		glm::vec3(0.0f, 1.5f, 0.0f), 
+		15.0f,
+
+		1, 
+		0, 
+		UINT_MAX, 
+		0,
+
+		0.5f, 
+		1.0f, 
+		0.5f, 
+		0.0f
+	);
+
+	events.emplace_back(
+		glm::vec3(0.0f), 
+		1.0f, 
+		glm::vec3(0.0f, 1.5f, 1.0f), 
+		8.0f,
+
+		150, 
+		0, 
+		events.size() - 1, 
+		0,
+
+		10.0f, 
+		1.0f, 
+		0.0f, 
+		0.0f
+	);
 	
 	vkcv::Buffer<event_t> eventBuffer = core.createBuffer<event_t>(
 		vkcv::BufferType::STORAGE,