diff --git a/README.md b/README.md
index 0da22f4faa..062f378c86 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@ How To (Plugin Developers)
 <dependency>
     <groupId>io.papermc.paper</groupId>
     <artifactId>paper-api</artifactId>
-    <version>1.21-R0.1-SNAPSHOT</version>
+    <version>1.21.1-R0.1-SNAPSHOT</version>
     <scope>provided</scope>
 </dependency>
 ```
@@ -53,7 +53,7 @@ repositories {
 }
 
 dependencies {
-    compileOnly("io.papermc.paper:paper-api:1.21-R0.1-SNAPSHOT")
+    compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
 }
 
 java {
diff --git a/build.gradle.kts b/build.gradle.kts
index 5a2840e06e..95035067be 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -67,7 +67,7 @@ repositories {
 }
 
 dependencies {
-    paramMappings("net.fabricmc:yarn:1.21+build.1:mergedv2")
+    paramMappings("net.fabricmc:yarn:1.21.1+build.3:mergedv2")
     remapper("net.fabricmc:tiny-remapper:0.10.3:fat")
     decompiler("org.vineflower:vineflower:1.10.1")
     spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.13")
diff --git a/gradle.properties b/gradle.properties
index 7aa001f7cc..4d595c30f3 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
 group=io.papermc.paper
-version=1.21-R0.1-SNAPSHOT
-mcVersion=1.21
+version=1.21.1-R0.1-SNAPSHOT
+mcVersion=1.21.1
 
 # Set to true while updating Minecraft version
 updatingMinecraft=false
diff --git a/patches/api/Convert-project-to-Gradle.patch b/patches/api/Convert-project-to-Gradle.patch
index 90bfc56a97..c09f55698c 100644
--- a/patches/api/Convert-project-to-Gradle.patch
+++ b/patches/api/Convert-project-to-Gradle.patch
@@ -135,7 +135,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -
 -    <groupId>org.spigotmc</groupId>
 -    <artifactId>spigot-api</artifactId>
--    <version>1.21-R0.1-SNAPSHOT</version>
+-    <version>1.21.1-R0.1-SNAPSHOT</version>
 -    <packaging>jar</packaging>
 -
 -    <name>Spigot-API</name>
diff --git a/patches/server/API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/API-to-get-a-BlockState-without-a-snapshot.patch
index ea056a02cf..6ac744879a 100644
--- a/patches/server/API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/patches/server/API-to-get-a-BlockState-without-a-snapshot.patch
@@ -17,13 +17,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
 +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
 @@ -0,0 +0,0 @@ public abstract class BlockEntity {
-         this.type = type;
          this.worldPosition = pos.immutable();
+         this.validateBlockState(state);
          this.blockState = state;
 +        this.persistentDataContainer = new CraftPersistentDataContainer(DATA_TYPE_REGISTRY); // Paper - always init
      }
  
-     public static BlockPos getPosFromTag(CompoundTag nbt) {
+     private void validateBlockState(BlockState state) {
 @@ -0,0 +0,0 @@ public abstract class BlockEntity {
  
      // CraftBukkit start - read container
diff --git a/patches/server/Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/Fix-EntityArgument-suggestion-permissions-to-align-w.patch
index e94cacbc5f..160c897e40 100644
--- a/patches/server/Fix-EntityArgument-suggestion-permissions-to-align-w.patch
+++ b/patches/server/Fix-EntityArgument-suggestion-permissions-to-align-w.patch
@@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              StringReader stringreader = new StringReader(suggestionsbuilder.getInput());
  
              stringreader.setCursor(suggestionsbuilder.getStart());
--            EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2));
+-            EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, EntitySelectorParser.allowSelectors(icompletionprovider));
 +            // Paper start - Fix EntityArgument suggestion permissions
 +            final boolean permission = object instanceof CommandSourceStack stack
 +                    ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector")
diff --git a/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch
index a57d5a8df2..f52fa2936b 100644
--- a/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch
@@ -103,10 +103,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
      private boolean usesSelectors;
 +    public boolean parsingEntityArgumentSuggestions; // Paper - tell clients to ask server for suggestions for EntityArguments
  
-     public EntitySelectorParser(StringReader reader) {
-         this(reader, true);
-     }
- 
      public EntitySelectorParser(StringReader reader, boolean atAllowed) {
 +        // Paper start - tell clients to ask server for suggestions for EntityArguments
 +        this(reader, atAllowed, false);
diff --git a/patches/server/Prevent-block-entity-and-entity-crashes.patch b/patches/server/Prevent-block-entity-and-entity-crashes.patch
index d7cb9358b7..c2975880ed 100644
--- a/patches/server/Prevent-block-entity-and-entity-crashes.patch
+++ b/patches/server/Prevent-block-entity-and-entity-crashes.patch
@@ -30,8 +30,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
 +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
 @@ -0,0 +0,0 @@ public abstract class BlockEntity {
-             return s + " // " + this.getClass().getCanonicalName();
-         });
+     public void fillCrashReportCategory(CrashReportCategory crashReportSection) {
+         crashReportSection.setDetail("Name", this::getNameForReporting);
          if (this.level != null) {
 -            CrashReportCategory.populateBlockDetails(crashReportSection, this.level, this.worldPosition, this.getBlockState());
 +            // Paper start - Prevent block entity and entity crashes
diff --git a/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch
index c7d8e5e471..565c374326 100644
--- a/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch
@@ -160,15 +160,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 @@ -0,0 +0,0 @@ public class ClientboundSetEquipmentPacket implements Packet<ClientGamePacketLis
      private final List<Pair<EquipmentSlot, ItemStack>> slots;
  
-     public ClientboundSetEquipmentPacket(int id, List<Pair<EquipmentSlot, ItemStack>> equipmentList) {
+     public ClientboundSetEquipmentPacket(int entityId, List<Pair<EquipmentSlot, ItemStack>> equipmentList) {
 +        // Paper start - data sanitization
-+        this(id, equipmentList, false);
++        this(entityId, equipmentList, false);
 +    }
-+    private boolean sanitize = false;
-+    public ClientboundSetEquipmentPacket(int id, List<Pair<EquipmentSlot, ItemStack>> equipmentList, boolean sanitize) {
++    private boolean sanitize;
++    public ClientboundSetEquipmentPacket(int entityId, List<Pair<EquipmentSlot, ItemStack>> equipmentList, boolean sanitize) {
 +        this.sanitize = sanitize;
 +        // Paper end - data sanitization
-         this.entity = id;
+         this.entity = entityId;
          this.slots = equipmentList;
      }
 @@ -0,0 +0,0 @@ public class ClientboundSetEquipmentPacket implements Packet<ClientGamePacketLis
diff --git a/patches/server/Setup-Gradle-project.patch b/patches/server/Setup-Gradle-project.patch
index eb843b5c56..b772730947 100644
--- a/patches/server/Setup-Gradle-project.patch
+++ b/patches/server/Setup-Gradle-project.patch
@@ -170,7 +170,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -    <groupId>org.spigotmc</groupId>
 -    <artifactId>spigot</artifactId>
 -    <packaging>jar</packaging>
--    <version>1.21-R0.1-SNAPSHOT</version>
+-    <version>1.21.1-R0.1-SNAPSHOT</version>
 -    <name>Spigot</name>
 -    <url>https://www.spigotmc.org/</url>
 -
diff --git a/work/BuildData b/work/BuildData
index ae1e7b1e31..533b02cd6b 160000
--- a/work/BuildData
+++ b/work/BuildData
@@ -1 +1 @@
-Subproject commit ae1e7b1e31cd3a3892bb05a6ccdcecc48c73c455
+Subproject commit 533b02cd6ba8dbf8c8607250b02bf2d8c36421e8
diff --git a/work/Bukkit b/work/Bukkit
index 2ec53f498e..facd52d216 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 2ec53f498e32b3af989cb24672fc54dfab087154
+Subproject commit facd52d216243e2b7f90a9f4d5cc54a8f4bbcbf7
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 8ee6fd1b8d..b95736b13f 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 8ee6fd1b8db9896590aa321d0199453de1fc35db
+Subproject commit b95736b13f776ba47322313f482c0520630c3533
diff --git a/work/Spigot b/work/Spigot
index fb8fb722a3..5a6439b9ec 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit fb8fb722a327a2f9f097f2ded700ac5de8157408
+Subproject commit 5a6439b9eca2e28522873a0488e142cfc089c0fe