diff --git a/niflib.cpp b/niflib.cpp
index 8e2f45456536686d8ba9429181a260aa0a44993e..60ba3389e17dd5021c73c13f3e53ca5686b01718 100644
--- a/niflib.cpp
+++ b/niflib.cpp
@@ -474,4 +474,8 @@ ITriShapeData * QueryTriShapeData( blk_ref block ) {
 
 ISkinData * QuerySkinData( blk_ref block ) {
 	return (ISkinData*)block->QueryInterface( SkinData );
-}
\ No newline at end of file
+}
+
+INode * QueryNode( blk_ref block ) {
+	return (INode*)block->QueryInterface( Node );
+}
diff --git a/niflib.h b/niflib.h
index 6705f4f1ab696af5cb98a54d7e1a2f7a9201ee6c..0a7a7a7d7a09bf4698cb849e285f48280e0215b5 100644
--- a/niflib.h
+++ b/niflib.h
@@ -54,6 +54,7 @@ class IAttr;
 class IBlock;
 class ITriShapeData;
 class ISkinData;
+class INode;
 class blk_ref;
 class attr_ref;
 struct blk_link;
@@ -98,6 +99,9 @@ unsigned int BlocksInMemory();
 // These are shorthands for using QueryInterface, and required for scripting languages
 ITriShapeData * QueryTriShapeData( blk_ref block );
 ISkinData * QuerySkinData( blk_ref block );
+INode * QueryNode( blk_ref block );
+
+//--TypeDefs--//
 
 typedef float float3[3];
 typedef float matrix[3][3];