diff --git a/src/main/java/com/jenny/xp2items/items/xpTalisman.java b/src/main/java/com/jenny/xp2items/items/xpTalisman.java
index 685716f..b3c7477 100644
--- a/src/main/java/com/jenny/xp2items/items/xpTalisman.java
+++ b/src/main/java/com/jenny/xp2items/items/xpTalisman.java
@@ -1,8 +1,10 @@
 package com.jenny.xp2items.items;
 
 import com.jenny.xp2items.config.ServerConfig;
-import net.minecraft.server.commands.ExperienceCommand;
+import net.minecraft.core.particles.ParticleTypes;
 import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.sounds.SoundEvents;
+import net.minecraft.sounds.SoundSource;
 import net.minecraft.util.Mth;
 import net.minecraft.world.InteractionHand;
 import net.minecraft.world.InteractionResult;
@@ -12,7 +14,6 @@ import net.minecraft.world.item.Item;
 import net.minecraft.world.item.ItemStack;
 import net.minecraft.world.level.Level;
 import net.minecraftforge.registries.ForgeRegistries;
-import org.apache.logging.log4j.core.jmx.Server;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.List;
@@ -22,16 +23,8 @@ public class xpTalisman extends Item {
         super(properties);
     }
 
-    @Override
-    public @NotNull InteractionResult use(@NotNull Level level, @NotNull Player player, @NotNull InteractionHand interactionHand) {
-        if (!level.isClientSide) {
-            if (ServerConfig.C_XP_AMOUNT.get() > 0) { // xp amount mode
-                spawnItem(level, (ServerPlayer) player);
-            } else { // xp level mode
-                spawnItemLevels(level, (ServerPlayer) player);
-            }
-        }
-        return InteractionResult.SUCCESS;
+    private static int getPlayerXP(@NotNull ServerPlayer player) {
+        return Mth.floor(player.experienceProgress * (float) player.getXpNeededForNextLevel());
     }
 
     private static void spawnItem(Level level, ServerPlayer player) {
@@ -53,8 +46,11 @@ public class xpTalisman extends Item {
         }
     }
 
-    private static int getPlayerXP(ServerPlayer player) {
-        return Mth.floor(player.experienceProgress * (float) player.getXpNeededForNextLevel());
+    private static void effects(@NotNull Level level, Player player) {
+        level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.EXPERIENCE_ORB_PICKUP, SoundSource.PLAYERS, 1.0F, 1.0F);
+        for (int i = 0; i < 9; ++i) {
+            level.addParticle(ParticleTypes.PORTAL, player.getRandomX(0.5F), player.getRandomY() - (double) 0.25F, player.getRandomZ(0.5F), (player.getRandom().nextDouble() - (double) 0.5F) * (double) 2.0F, -player.getRandom().nextDouble(), (player.getRandom().nextDouble() - (double) 0.5F) * (double) 2.0F);
+        }
     }
 
     private static void spawnItemLevels(Level level, ServerPlayer player) {
@@ -71,4 +67,18 @@ public class xpTalisman extends Item {
         player.setExperiencePoints(0);
         player.giveExperiencePoints(xpPoints);
     }
+
+    @Override
+    public @NotNull InteractionResult use(@NotNull Level level, @NotNull Player player, @NotNull InteractionHand interactionHand) {
+        if (!level.isClientSide) {
+            if (ServerConfig.C_XP_AMOUNT.get() > 0) { // xp amount mode
+                spawnItem(level, (ServerPlayer) player);
+            } else { // xp level mode
+                spawnItemLevels(level, (ServerPlayer) player);
+            }
+        } else {
+            effects(level, player);
+        }
+        return InteractionResult.SUCCESS;
+    }
 }