diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index d7b6261c38..8d79c6701d 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -702,6 +702,7 @@
+
Component
diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs
new file mode 100644
index 0000000000..b69f2b5af4
--- /dev/null
+++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs
@@ -0,0 +1,29 @@
+using System;
+using System.ComponentModel;
+
+using BizHawk.Client.Common;
+using LuaInterface;
+
+namespace BizHawk.Client.EmuHawk
+{
+ [Description("A library for manipulating the Tastudio dialog of the EmuHawk client")]
+ public sealed class TastudioLuaLibrary : LuaLibraryBase
+ {
+ public TastudioLuaLibrary(Lua lua)
+ : base(lua) { }
+
+ public TastudioLuaLibrary(Lua lua, Action logOutputCallback)
+ : base(lua, logOutputCallback) { }
+
+ public override string Name { get { return "tastudio"; } }
+
+ [LuaMethodAttributes(
+ "engaged",
+ "returns whether or not tastudio is currently engaged (active)"
+ )]
+ public bool Engaged()
+ {
+ return GlobalWin.Tools.Has(); // TODO: eventually tastudio should have an engaged flag
+ }
+ }
+}