diff --git a/documentation/docs/fullsimlight/fsl/fsl-gen.png b/documentation/docs/fullsimlight/fsl/fsl-gen.png
new file mode 100644
index 0000000000000000000000000000000000000000..49aa7b5ad8b607887f1c70b58a5b26f021feeabd
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-gen.png differ
diff --git a/documentation/docs/fullsimlight/fsl/fsl-mag.png b/documentation/docs/fullsimlight/fsl/fsl-mag.png
new file mode 100644
index 0000000000000000000000000000000000000000..d79d550f462d44e12c72c13420a1ac9ee2dcbad3
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-mag.png differ
diff --git a/documentation/docs/fullsimlight/fsl/fsl-main.png b/documentation/docs/fullsimlight/fsl/fsl-main.png
new file mode 100644
index 0000000000000000000000000000000000000000..a37c81e7fdd369b685e3c70e2d580ebe27627de3
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-main.png differ
diff --git a/documentation/docs/fullsimlight/fsl/fsl-reg.png b/documentation/docs/fullsimlight/fsl/fsl-reg.png
new file mode 100644
index 0000000000000000000000000000000000000000..049d669fa1944e2957896e867a9d0f522c5fc44a
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-reg.png differ
diff --git a/documentation/docs/fullsimlight/fsl/fsl-sen.png b/documentation/docs/fullsimlight/fsl/fsl-sen.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5e1b48cd1b842a7c2e0f10180f6963115e97b6d
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-sen.png differ
diff --git a/documentation/docs/fullsimlight/fsl/fsl-user.png b/documentation/docs/fullsimlight/fsl/fsl-user.png
new file mode 100644
index 0000000000000000000000000000000000000000..748c5dcc510febca6639c32305c70445e24bdc4e
Binary files /dev/null and b/documentation/docs/fullsimlight/fsl/fsl-user.png differ
diff --git a/documentation/docs/fullsimlight/fsl/index.md b/documentation/docs/fullsimlight/fsl/index.md
index ac82de0389b7d474d976cc442e0f89906b2570df..6694bf6bab998e8b65e16f0947b668f21c65b9c0 100644
--- a/documentation/docs/fullsimlight/fsl/index.md
+++ b/documentation/docs/fullsimlight/fsl/index.md
@@ -23,7 +23,7 @@ One can also load in a configuration by running fsl with the -c flag.
 ## Main Tab
 
 
-{{ imgutils_image_caption('fsl.png', 
+{{ imgutils_image_caption('fsl-main.png', 
    alt='fsl', 
    cap='fsl main tab',
    width ='700px',
@@ -38,3 +38,58 @@ The main tab allows configuration of the following parameters.
 - Number of Events
 
 It also contains the view button which shows the current configuration on the main display. The user can also run FullSimLight in the main display at any time with the current configuration by clicking on the FullSimLight button in the main tab. fsl provides similar buttons to run gmex and gmclash once a geometry input has been selected through the interface.
+
+
+## Generator Tab
+
+
+{{ imgutils_image_caption('fsl-gen.png', 
+   alt='fsl', 
+   cap='fsl main tab',
+   width ='700px',
+   urlFix=False) 
+}}
+
+
+## Magnetic Field Tab
+
+
+{{ imgutils_image_caption('fsl-mag.png', 
+   alt='fsl', 
+   cap='fsl main tab',
+   width ='700px',
+   urlFix=False) 
+}}
+
+
+## Regions Tab
+
+
+{{ imgutils_image_caption('fsl-reg.png', 
+   alt='fsl', 
+   cap='fsl main tab',
+   width ='700px',
+   urlFix=False) 
+}}
+
+
+## Sensitive Detectors Tab
+
+
+{{ imgutils_image_caption('fsl-sen.png', 
+   alt='fsl', 
+   cap='fsl main tab',
+   width ='700px',
+   urlFix=False) 
+}}
+
+
+## User Actions Tab
+
+
+{{ imgutils_image_caption('fsl-user.png', 
+   alt='fsl', 
+   cap='fsl main tab',
+   width ='700px',
+   urlFix=False) 
+}}
diff --git a/documentation/docs/fullsimlight/plugin-support/index.md b/documentation/docs/fullsimlight/plugin-support/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..11545da20cd04cff9b9888cca6e6220499b4b8c4
--- /dev/null
+++ b/documentation/docs/fullsimlight/plugin-support/index.md
@@ -0,0 +1,184 @@
+# Plugin Support
+
+FullSimLight provides the user support with writing plugins by providing the abstract classes which one has the override. These abstract classes serve as a link to interface various Geant4 functionality with simulation using FullSimLight. Header files containing these abstract classes are automatically installed with FullSimLight installation.
+
+## User Actions & Event Generators
+<!---->
+The header file which contains the abstract classes to create plugins with User actions is ***FSLUserActionPlugin.h***. 
+
+
+```c++
+#ifndef _FSLUSERACTIONPLUGIN_H_
+#define _FSLUSERACTIONPLUGIN_H_
+class G4UserEventAction;
+class G4UserRunAction;
+class G4UserSteppingAction;
+class G4UserTrackingAction;
+class G4UserStackingAction;
+class G4VUserPrimaryGeneratorAction;
+
+class FSLUserActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserActionPlugin()=default;
+  
+  // Typically a user action may inherit one or more of the five action
+  // types.  These routines should be overriden for each one. 
+  virtual G4UserEventAction    *getEventAction()    const { return nullptr;}
+  virtual G4UserRunAction      *getRunAction()      const { return nullptr;}
+  virtual G4UserSteppingAction *getSteppingAction() const { return nullptr;}
+  virtual G4UserTrackingAction *getTrackingAction() const { return nullptr;}
+  virtual G4UserStackingAction *getStackingAction() const { return nullptr;}
+  #A primary generator plugin inherits from this.
+  virtual G4VUserPrimaryGeneratorAction *getPrimaryGeneratorAction() const {return nullptr;}
+
+
+  
+ private:
+  
+  FSLUserActionPlugin (const FSLUserActionPlugin &)=delete;
+  FSLUserActionPlugin & operator=(const FSLUserActionPlugin &)=delete;
+
+};
+
+
+#endif
+```
+
+## Sensitive Detectors
+<!---->
+The header file which contains the abstract classes to create plugins with Sensitive detectors is ***FSLSensitiveDetectorPlugin.h***. 
+
+
+```c++
+#ifndef __FSLSensitiveDetectorPlugin_h__
+#define __FSLSensitiveDetectorPlugin_h__
+#include <vector>
+#include <string>
+
+
+class G4VSensitiveDetector;
+
+
+class FSLSensitiveDetectorPlugin {
+
+ public:
+  
+  // Public type definitions:
+  typedef std::vector<std::string>::const_iterator ConstIterator;
+  
+  // Constructor
+  FSLSensitiveDetectorPlugin();
+
+  // Destructor
+  virtual ~FSLSensitiveDetectorPlugin();
+
+  // Get the senstive detector
+  virtual G4VSensitiveDetector *getSensitiveDetector() const=0;
+
+  // Get the name of the hit collection into which hits go:
+  virtual std::string getHitCollectionName() const=0;
+
+  // Get the list of volume to which we attach this senstive detector
+  ConstIterator beginLogVolumeNames() const;
+  ConstIterator endLogVolumeNames() const;
+
+  // Add a logical volume for this senstive detector:
+  void addLogicalVolumeName(const std::string & logVolName);
+  
+ private:
+
+  std::vector<std::string> m_logVolNames;
+    
+  
+};
+
+
+inline FSLSensitiveDetectorPlugin::FSLSensitiveDetectorPlugin() {
+}
+
+inline FSLSensitiveDetectorPlugin::~FSLSensitiveDetectorPlugin() {
+}
+
+inline void FSLSensitiveDetectorPlugin::addLogicalVolumeName(const std::string & logVolName) {
+  m_logVolNames.push_back(logVolName);
+}
+
+inline FSLSensitiveDetectorPlugin::ConstIterator FSLSensitiveDetectorPlugin::beginLogVolumeNames() const {
+  return m_logVolNames.begin();
+}
+
+inline FSLSensitiveDetectorPlugin::ConstIterator FSLSensitiveDetectorPlugin::endLogVolumeNames() const {
+  return m_logVolNames.end();
+}
+
+#endif
+
+```
+
+## Physics List
+<!---->
+The header file which contains the abstract classes to create plugins with Physics lists is ***FSLPhysicsListPlugin.h***. 
+
+
+```c++
+#ifndef __FSLPhysicsListPlugin_h__
+#define __FSLPhysicsListPlugin_h__
+
+class G4VModularPhysicsList;
+
+class FSLPhysicsListPlugin
+{
+public:
+    FSLPhysicsListPlugin()=default;
+    ~FSLPhysicsListPlugin()=default;
+
+    virtual G4VModularPhysicsList* GetPhysicsList() const {return nullptr;}
+    virtual bool GetActivateRegionsFlag() const {return false;}
+
+};
+
+
+#endif //__FSLPhysicsListPlugin_h__
+
+```
+
+
+## Magnetic Field
+<!---->
+The header file which contains the abstract classes to create plugins with Magnetic fields is ***MagFieldPlugin.h***. 
+
+
+```c++
+#ifndef _MAGFIELDPLUGIN_H_
+#define _MAGFIELDPLUGIN_H_
+class G4MagneticField;
+class MagFieldPlugin {
+
+ public:
+
+  // Constructor
+  MagFieldPlugin()=default;
+  
+  // Destructor
+  virtual ~MagFieldPlugin()=default;
+  
+  virtual G4MagneticField *getField() =0;
+  
+ private:
+  
+  MagFieldPlugin (const MagFieldPlugin &)=delete;
+
+  MagFieldPlugin & operator=(const MagFieldPlugin &)=delete;
+};
+
+
+#endif
+
+
+```
diff --git a/documentation/docs/fullsimlight/plugins/index.md b/documentation/docs/fullsimlight/plugins/index.md
index b97bad8eeb5e6ddef45107c57920d748e2e4b2ff..aec028e273e3ac3c96ddf6497e901d19d2c80562 100644
--- a/documentation/docs/fullsimlight/plugins/index.md
+++ b/documentation/docs/fullsimlight/plugins/index.md
@@ -1,10 +1,12 @@
-# Custom Plugins
+# Plugins Example
 
 FullSimLight provides a convenient mechanism for users to extend their simulations through plugins in the form of shared libraries. Plugins can be used to add
 
 - User Actions
 - Sensititve Detectors 
 - Magnetic Field Maps
+- Physics Lists
+- Event Generators
 
 ## Hits Plugin
 
diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml
index 74b828f8041625fff8e3566801ad9108cb2c38b1..1ff5f59196d147201de401b7843b071e60a6f5e3 100755
--- a/documentation/mkdocs.yml
+++ b/documentation/mkdocs.yml
@@ -37,7 +37,8 @@ nav:
         - 'GeoModelMassCalculator': 'fullsimlight/gmmasscalc/index.md'
         - 'GeoModel2GDML': 'fullsimlight/gm2gdml/index.md'
         - 'fsl': 'fullsimlight/fsl/index.md'
-        - 'Custom Plugins': 'fullsimlight/plugins/index.md'
+        - 'Plugin Examples': 'fullsimlight/plugins/index.md'
+        - 'Plugin Support': 'fullsimlight/plugin-support/index.md'
     - FAQ: 'faq.md'
     - For Developers:
         - 'Build the Libraries and Tools': 'dev/index.md'