diff --git a/fieldblock.info.yml b/fieldblock.info.yml
index 258d4a3..2cc7b30 100644
--- a/fieldblock.info.yml
+++ b/fieldblock.info.yml
@@ -4,4 +4,5 @@ type: module
 core_version_requirement: ^8.7.7 || ^9 || ^10
 dependencies:
   - drupal:block
+  - field_group:field_group
 configure: fieldblock.field_block_config_form
diff --git a/src/Plugin/Block/FieldBlock.php b/src/Plugin/Block/FieldBlock.php
index 8709bba..e4031c0 100644
--- a/src/Plugin/Block/FieldBlock.php
+++ b/src/Plugin/Block/FieldBlock.php
@@ -21,6 +21,7 @@ use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Session\AccountInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\field_group\FieldGroupFormatterInterface;
 
 /**
  * Provides a fieldblock.
@@ -127,6 +128,8 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface {
       'field_name' => '',
       'formatter_id' => '',
       'formatter_settings' => [],
+      'is_field_group' => FALSE,
+      'field_group' => NULL,
     ];
   }
 
@@ -139,9 +142,29 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface {
   protected function getFieldOptions() {
     $field_definitions = $this->entityFieldManager->getFieldStorageDefinitions($this->getDerivativeId());
     $options = [];
+    
+    // Add regular fields
     foreach ($field_definitions as $definition) {
-      $options[$definition->getName()] = $definition->getLabel();
+      $options['fields'][$definition->getName()] = $definition->getLabel();
     }
+
+    // Add field groups if available
+    if (\Drupal::moduleHandler()->moduleExists('field_group')) {
+      $entity = $this->getEntity();
+      if ($entity) {
+        $display = $this->entityTypeManager
+          ->getStorage('entity_view_display')
+          ->load($entity->getEntityTypeId() . '.' . $entity->bundle() . '.default');
+        
+        if ($display) {
+          $field_groups = $display->getThirdPartySettings('field_group');
+          foreach ($field_groups as $group_name => $group) {
+            $options['groups'][$group_name] = $group['label'] . ' (Field Group)';
+          }
+        }
+      }
+    }
+
     return $options;
   }
 
@@ -385,13 +408,40 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface {
     $entity = $this->getEntity();
 
     if ($entity) {
-      $build['field'] = $this->getTranslatedFieldFromEntity($entity)->view([
-        'label' => 'hidden',
-        'type' => $this->configuration['formatter_id'],
-        'settings' => $this->configuration['formatter_settings'],
-      ]);
-      if ($this->configuration['label_from_field'] && !empty($build['field']['#title'])) {
-        $build['#title'] = $build['field']['#title'];
+      if ($this->configuration['is_field_group']) {
+        $group = $this->getFieldGroupDefinition($this->configuration['field_name']);
+        if ($group) {
+          // Build field group with its children
+          $build['field_group'] = [
+            '#type' => 'container',
+            '#group_name' => $this->configuration['field_name'],
+            '#group' => $group,
+          ];
+
+          foreach ($group['children'] as $field_name) {
+            if ($entity->hasField($field_name)) {
+              $build['field_group'][$field_name] = $entity->get($field_name)->view([
+                'label' => 'hidden',
+                'type' => $this->configuration['formatter_id'],
+                'settings' => $this->configuration['formatter_settings'],
+              ]);
+            }
+          }
+
+          if ($this->configuration['label_from_field'] && !empty($group['label'])) {
+            $build['#title'] = $group['label'];
+          }
+        }
+      } else {
+        // Original single field logic
+        $build['field'] = $this->getTranslatedFieldFromEntity($entity)->view([
+          'label' => 'hidden',
+          'type' => $this->configuration['formatter_id'],
+          'settings' => $this->configuration['formatter_settings'],
+        ]);
+        if ($this->configuration['label_from_field'] && !empty($build['field']['#title'])) {
+          $build['#title'] = $build['field']['#title'];
+        }
       }
     }
 
@@ -484,4 +534,30 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface {
     return NULL;
   }
 
+  /**
+   * Gets the field group definition.
+   *
+   * @param string $group_name
+   *   The field group name.
+   *
+   * @return array|null
+   *   The field group definition.
+   */
+  protected function getFieldGroupDefinition($group_name) {
+    if (!$entity = $this->getEntity()) {
+      return NULL; 
+    }
+    
+    $entity_display = $this->entityTypeManager
+      ->getStorage('entity_view_display')
+      ->load($entity->getEntityTypeId() . '.' . $entity->bundle() . '.default');
+
+    if (!$entity_display) {
+      return NULL;
+    }
+
+    $field_groups = $entity_display->getThirdPartySettings('field_group');
+    return isset($field_groups[$group_name]) ? $field_groups[$group_name] : NULL;
+  }
+
 }
diff --git a/src/Plugin/Derivative/FieldBlockDeriver.php b/src/Plugin/Derivative/FieldBlockDeriver.php
index 8ac3588..fa6a7fa 100644
--- a/src/Plugin/Derivative/FieldBlockDeriver.php
+++ b/src/Plugin/Derivative/FieldBlockDeriver.php
@@ -54,7 +54,7 @@ class FieldBlockDeriver extends DeriverBase implements ContainerDeriverInterface
     foreach ($definitions as $entity_type_id => $definition) {
       if ($fb_controller->isBlockableEntityType($definition)) {
         $this->derivatives[$entity_type_id] = $base_plugin_definition;
-        $this->derivatives[$entity_type_id]['admin_label'] = $this->t('@type field', [
+        $this->derivatives[$entity_type_id]['admin_label'] = $this->t('@type field or field group', [
           '@type' => $definition->getLabel(),
         ]);
       }
