diff --git a/Content.Shared/Containers/ItemSlot/ItemSlotsComponent.cs b/Content.Shared/Containers/ItemSlot/ItemSlotsComponent.cs
index 3def5a2e54..41cfd479cc 100644
--- a/Content.Shared/Containers/ItemSlot/ItemSlotsComponent.cs
+++ b/Content.Shared/Containers/ItemSlot/ItemSlotsComponent.cs
@@ -93,13 +93,18 @@ namespace Content.Shared.Containers.ItemSlots
/// This will be passed through Loc.GetString. If the name is an empty string, then verbs will use the name
/// of the currently held or currently inserted entity instead.
///
- [DataField("name")]
+ [DataField("name", readOnly: true)]
public string Name = string.Empty;
///
/// The entity prototype that is spawned into this slot on map init.
///
- [DataField("startingItem", customTypeSerializer: typeof(PrototypeIdSerializer))]
+ ///
+ /// Marked as readOnly because some components (e.g. PowerCellSlot) set the starting item based on some
+ /// property of that component (e.g., cell slot size category), and this can lead to unnecessary changes
+ /// when mapping.
+ ///
+ [DataField("startingItem", readOnly: true, customTypeSerializer: typeof(PrototypeIdSerializer))]
public string? StartingItem;
///