> For the complete documentation index, see [llms.txt](https://docs.robpod.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.robpod.cloud/appendix/robot-specific-functions/doosan-robotics/sub-modules.md).

# Sub Modules

With Robpod Studio you can use DRL scripts as common python modules and use the **import** statment to make code in one module available in another.

This way, you don’t have to put all your code into a single script—you can organize your robot application using libraries.

In order to setup a project with multiple modules:

1. Put your module files in the project folder.&#x20;
2. Use the **import** statement to load the code of a module inside another.&#x20;

   <figure><img src="/files/OroYXc3IXevXOH7LQNiV" alt=""><figcaption></figcaption></figure>
3. ![](/files/fUAFnlT4YBuap8A2BWqV) [Synchronize](/synchronization/upload-on-robot.md#doosan-robotics) all the module files.
4. Inside task editor add a **Robpod Script** command and in its properties specify the main entry point of the application.&#x20;

   <figure><img src="/files/2c3e2ORptPIKLy7zENFO" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Modules Cache**

The robot uses a caching mechanism that imports and loads modules only once, storing them for later use. Because of this, if you modify a submodule after the application has already run, the changes won’t take effect immediately. To apply the updates, a robot restart is required.

To avoid this inconvenience, you can add a **Robpod Script** command for each of your modules at the beginning of the program and enable the ***Load as Module*** option. This forces the robot to reload the module, allowing you to test your changes without restarting the robot.&#x20;

<img src="/files/mbDFozL3NI5CKv5phj0E" alt="" data-size="original">

{% endhint %}
