diff --git a/src/components/Map/Drawer/AvailablePluginsDrawer/AvailablePluginsDrawer.constants.ts b/src/components/Map/Drawer/AvailablePluginsDrawer/AvailablePluginsDrawer.constants.ts
index e628e141901704881c7243aea0324512518107ad..f1d6a4e7d0428ea00bfb30743dceb9a635403534 100644
--- a/src/components/Map/Drawer/AvailablePluginsDrawer/AvailablePluginsDrawer.constants.ts
+++ b/src/components/Map/Drawer/AvailablePluginsDrawer/AvailablePluginsDrawer.constants.ts
@@ -1 +1,2 @@
 export const PLUGIN_LOADING_ERROR_PREFIX = 'Failed to load plugin';
+export const PLUGIN_LOADING_TWICE_ERROR = 'Plugin cannot be loaded more than once';
diff --git a/src/components/Map/Drawer/AvailablePluginsDrawer/LoadPluginFromUrl/hooks/useLoadPluginFromUrl.ts b/src/components/Map/Drawer/AvailablePluginsDrawer/LoadPluginFromUrl/hooks/useLoadPluginFromUrl.ts
index 5616dca84f7348306ded4a590f3de408146666f4..f6d45309a0562cb8971e4dc4504984bcfebb52f0 100644
--- a/src/components/Map/Drawer/AvailablePluginsDrawer/LoadPluginFromUrl/hooks/useLoadPluginFromUrl.ts
+++ b/src/components/Map/Drawer/AvailablePluginsDrawer/LoadPluginFromUrl/hooks/useLoadPluginFromUrl.ts
@@ -1,10 +1,14 @@
 import { PluginsManager } from '@/services/pluginsManager';
 import axios from 'axios';
 import { ChangeEvent, useMemo, useState, KeyboardEvent } from 'react';
-import { ENTER_KEY_CODE } from '@/constants/common';
+import { ENTER_KEY_CODE, ZERO } from '@/constants/common';
 import { showToast } from '@/utils/showToast';
 import { getErrorMessage } from '@/utils/getErrorMessage';
-import { PLUGIN_LOADING_ERROR_PREFIX } from '../../AvailablePluginsDrawer.constants';
+import md5 from 'crypto-js/md5';
+import {
+  PLUGIN_LOADING_ERROR_PREFIX,
+  PLUGIN_LOADING_TWICE_ERROR,
+} from '../../AvailablePluginsDrawer.constants';
 
 type UseLoadPluginReturnType = {
   handleChangePluginUrl: (event: ChangeEvent<HTMLInputElement>) => void;
@@ -29,6 +33,20 @@ export const useLoadPluginFromUrl = (): UseLoadPluginReturnType => {
       const response = await axios(pluginUrl);
       let pluginScript = response.data;
 
+      const hash = md5(pluginScript).toString();
+
+      if (
+        Array.isArray(PluginsManager.activePlugins[hash]) &&
+        PluginsManager.activePlugins[hash].length > ZERO
+      ) {
+        setIsLoading(false);
+        showToast({
+          type: 'error',
+          message: PLUGIN_LOADING_TWICE_ERROR,
+        });
+        return;
+      }
+
       PluginsManager.setHashedPlugin({
         pluginUrl,
         pluginScript,