Executor Framework The Executor Framework is a bilateral, multi-threaded system which provides access to timed and sequential task execution. You have two options when providing tasks to the executor, submit it to the ScheduledExecutorService or add it to the CyclicExecutor. Each one of your tasks must implement the interface Runnable. Documentation for my choice of ScheduledExecutorService (ScheduledThreadPoolExecutor): http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html I have provided you guys with a simple Task and Transaction framework. The Task framework is a simple 2-step task. If the condition returns true, the action will be performed. Documentation for the class is available here: http://runemate.com/developer/jdocs/com/runemate/game/api/script/framework/executor/task/Task.html If you wish to subclass Task, I'd recommend utilizing AbstractTask. I have already defined the run function so you're only required to write up the condition and action methods. The Transaction framework is an object handling system designed to limit the scope of variables when passing from method to method. This eliminates the previously required class variables to pass from condition to action methods when people would use the Task framework. It calls the retrieve function and if the returned value passes isValid, it will call onRetrieval, otherwise onInvalidItem. If your retrieve function is quite intensive, and you want to restrict it to certain conditions, make use of a ConditionalTransaction. This requires condition to return true to begin the normal Transaction process, otherwise calls onDenial. Documentation for Transaction is available here: http://runemate.com/developer/jdocs...amework/executor/transaction/Transaction.html ExecutorScript example: https://gist.github.com/IITC/e3e77f31defc0b450e3d ConditionalTransaction example: https://gist.github.com/IITC/59b1f2ef9a94d1852d37 If you'd like to see anything appended onto this tutorial, feel free to comment. Thanks guys. Ian C.