diff --git a/include/engine/Engine.hpp b/include/engine/Engine.hpp
index e939347c..b5718da2 100644
--- a/include/engine/Engine.hpp
+++ b/include/engine/Engine.hpp
@@ -35,6 +35,7 @@ struct Engine {
void removeWire(Wire *wire);
void setParam(Module *module, int paramId, float value);
void setParamSmooth(Module *module, int paramId, float value);
+ int getNextModuleId();
void setSampleRate(float sampleRate);
float getSampleRate();
diff --git a/include/engine/Module.hpp b/include/engine/Module.hpp
index dd506ddc..8e9d4847 100644
--- a/include/engine/Module.hpp
+++ b/include/engine/Module.hpp
@@ -13,32 +13,23 @@ namespace rack {
struct Module {
+ int id = -1;
std::vector params;
std::vector inputs;
std::vector