diff --git a/NarrativesUnlimitedD10/OpenEndedD10.js b/NarrativesUnlimitedD10/OpenEndedD10.js
new file mode 100644
index 0000000000..f21c92ebc9
--- /dev/null
+++ b/NarrativesUnlimitedD10/OpenEndedD10.js
@@ -0,0 +1,40 @@
+/* Openended D10 roll script
+This script attempts to check for any openended rolls and provide a calculated openended roll.
+*/
+on("chat:message", function(msg) {
+ if (msg.type == 'rollresult' || msg.type == 'gmrollresult') {
+ var content = JSON.parse(msg.content);
+ var userwho = msg.who;
+ var total = content.total -10;
+ log(total);
+ if (content.rolls[0].results[0]['v'] == 10) {
+ sendChat(msg.who,'Open Ended Roll...')
+ rerolls = 0;
+ finalroll = 0;
+ while (rerolls < 4 && finalroll == 0) {
+ rerolls++;
+ roll = randomInteger(10);
+ if (roll !== 10){
+ finalroll = roll;
+ }
+ }
+ sendChat(msg.who, '' + rerolls + ' aditional rolls
final roll of ' + finalroll +'
')
+ if (isEven(finalroll)) {
+ finalresult = 10 + (rerolls * 10) + finalroll;
+ log(finalresult);
+ }
+ else
+ {
+ finalresult = 0 - ((rerolls -1) *10) - finalroll;
+ }
+
+ sendChat(userwho, 'The roll had a value of ' + finalresult + '')
+ overall = finalresult + total;
+ sendChat(userwho, 'for a net roll of ' + overall + '')
+
+ }
+ }
+ function isEven(n) {
+ return n == parseFloat(n)? !(n%2) : void 0;
+ }
+});