diff --git a/java/noppes/npcs/api/block/IBlockScripted.java b/java/noppes/npcs/api/block/IBlockScripted.java
new file mode 100644
index 0000000..8cb6687
--- /dev/null
+++ b/java/noppes/npcs/api/block/IBlockScripted.java
@@ -0,0 +1,97 @@
+package noppes.npcs.api.block;
+
+import noppes.npcs.api.IBlock;
+import noppes.npcs.api.ITimers;
+import noppes.npcs.api.item.IItemStack;
+
+public interface IBlockScripted extends IBlock {
+
+ /**
+ * @param item The item to be set as model
+ */
+ void setModel(IItemStack item);
+
+ void setModel(String name);
+
+ IItemStack getModel();
+
+ ITimers getTimers();
+
+ /**
+ * @param strength Sets the strength of the redstone signal (0-15)
+ */
+ void setRedstonePower(int strength);
+
+ /**
+ * @return Returns the current redstone power (0-15) this block is giving off
+ */
+ int getRedstonePower();
+
+ void setIsLadder(boolean enabled);
+
+ boolean getIsLadder();
+
+ /**
+ * @param value Sets the light value (0-15)
+ */
+ void setLight(int value);
+
+ /**
+ * @return Returns the light value (0-15)
+ */
+ int getLight();
+
+ /**
+ * @param x Scale x (0-10)
+ * @param y Scale y (0-10)
+ * @param z Scale z (0-10)
+ */
+ void setScale(float x, float y, float z);
+
+ float getScaleX();
+
+ float getScaleY();
+
+ float getScaleZ();
+
+ /**
+ * @param x Rotation x (0-359)
+ * @param y Rotation y (0-359)
+ * @param z Rotation z (0-359)
+ */
+ void setRotation(int x, int y, int z);
+
+ int getRotationX();
+
+ int getRotationY();
+
+ int getRotationZ();
+
+ /**
+ * On servers the enable-command-block option in the server.properties needs to be set to true
+ * Use /gamerule commandBlockOutput false/true to turn off/on command block feedback
+ * Setting NpcUseOpCommands to true in the CustomNPCs.cfg should allow the npc to run op commands, be warned this could be a major security risk, use at own risk
+ * For permission plugins the commands are run under uuid:c9c843f8-4cb1-4c82-aa61-e264291b7bd6 and name:[customnpcs]
+ * @param command The command to be executed
+ * @return Returns the commands output
+ */
+ String executeCommand(String command);
+
+ boolean getIsPassible();
+
+ void setIsPassible(boolean bo);
+
+ /**
+ * @return Harvesting hardness (-1 makes it unharvestable)
+ */
+ float getHardness();
+
+ void setHardness(float hardness);
+
+ /**
+ * @return Explosion resistance (-1 makes it unexplodable)
+ */
+ float getResistance();
+
+ void setResistance(float resistance);
+}