Use this DueUtil Weapon Designer to help you easily set up a weapons shop for your Discord users. Just fill out the form and copy the command string then paste it into your Discord server.
DueUtil Weapon Designer
{source}<script type="text/javascript"> function updateName() {
function updateName() {
 let weaponName = document.getElementById("weaponName").value;
let weaponName = document.getElementById("weaponName").value;
 let length = weaponName.length;
let length = weaponName.length;
 if (length < 1) {
if (length < 1) {

 // show the error box
// show the error box

 document.getElementById("nameEmpty").style.display = "";
document.getElementById("nameEmpty").style.display = "";
 }
}
 if (length > 0) {
if (length > 0) {

 // hide the error box
// hide the error box

 document.getElementById("nameEmpty").style.display = "none";
document.getElementById("nameEmpty").style.display = "none";
 }
}
 // update master string
// update master string
 // updateCommand("name", weaponName);
// updateCommand("name", weaponName);
 updateCommand();
updateCommand();

 }
} function updateBaseDamage() {
function updateBaseDamage() {
 // check for valid entry
// check for valid entry
 let baseDamage = document.getElementById("baseDamage").value;
let baseDamage = document.getElementById("baseDamage").value;
 let length = baseDamage.length;
let length = baseDamage.length;
 // console.log("baseAttck: " + baseDamage);
// console.log("baseAttck: " + baseDamage);
 // console.log("length: " + length);
// console.log("length: " + length);
 // check to see if value is too low
// check to see if value is too low
 document.getElementById("baseDamageEmpty").style.display = "";
document.getElementById("baseDamageEmpty").style.display = "";
 if (baseDamage >= 1) {
if (baseDamage >= 1) {

 // hide the error box
// hide the error box

 document.getElementById("baseDamageLow").style.display = "none";
document.getElementById("baseDamageLow").style.display = "none";

 document.getElementById("baseDamageEmpty").style.display = "none";
document.getElementById("baseDamageEmpty").style.display = "none";
 }
}
 if (baseDamage <1) {
if (baseDamage <1) {

 // hide the error box
// hide the error box

 document.getElementById("baseDamageLow").style.display = "";
document.getElementById("baseDamageLow").style.display = "";
 }
}
 // check to see if value is empty
// check to see if value is empty
 if (length==0) {
if (length==0) {

 document.getElementById("baseDamageEmpty").style.display = "";
document.getElementById("baseDamageEmpty").style.display = "";
 }
}
 if (length > 0) {
if (length > 0) {

 document.getElementById("baseDamageEmpty").style.display = "none";
document.getElementById("baseDamageEmpty").style.display = "none";
 }
}
 //check to see if a fraction was entered
//check to see if a fraction was entered
 if (hasDecimal(baseDamage)== -1) {
if (hasDecimal(baseDamage)== -1) {




 document.getElementById("baseDamageFraction").style.display = "none";
document.getElementById("baseDamageFraction").style.display = "none";
 }
}
 if (hasDecimal(baseDamage) != -1) {
if (hasDecimal(baseDamage) != -1) {



 document.getElementById("baseDamageFraction").style.display = "";
document.getElementById("baseDamageFraction").style.display = "";
 }
}
 updateCommand();
updateCommand(); }
} function hasDecimal(num) {
function hasDecimal(num) {
 // console.log("num:" + num)
// console.log("num:" + num)
 // console.log("index: "+num.indexOf("."))
// console.log("index: "+num.indexOf("."))
 return num.indexOf(".");
return num.indexOf("."); }
} function updateBaseAccuracy() {
function updateBaseAccuracy() {
 // check for valid entry
// check for valid entry
 let baseAccuracy = document.getElementById("baseAccuracy").value;
let baseAccuracy = document.getElementById("baseAccuracy").value;
 let length = baseAccuracy.length;
let length = baseAccuracy.length;
 // console.log("baseAttck: " + baseAccuracy);
// console.log("baseAttck: " + baseAccuracy);
 // console.log("length: " + length);
// console.log("length: " + length);
 // check to see if value is too low
// check to see if value is too low
 document.getElementById("baseAccuracyEmpty").style.display = "";
document.getElementById("baseAccuracyEmpty").style.display = "";
 if (baseAccuracy >= 1) {
if (baseAccuracy >= 1) {

 // hide the error box
// hide the error box

 document.getElementById("baseAccuracyLow").style.display = "none";
document.getElementById("baseAccuracyLow").style.display = "none";

 document.getElementById("baseAccuracyEmpty").style.display = "none";
document.getElementById("baseAccuracyEmpty").style.display = "none";
 }
}
 if (baseAccuracy < 1) {
if (baseAccuracy < 1) {

 // hide the error box
// hide the error box

 document.getElementById("baseAccuracyLow").style.display = "";
document.getElementById("baseAccuracyLow").style.display = "";
 }
}
 if (length == 0) {
if (length == 0) {

 document.getElementById("baseAccuracyEmpty").style.display = "";
document.getElementById("baseAccuracyEmpty").style.display = "";
 }
}
 if (length > 0) {
if (length > 0) {

 document.getElementById("baseAccuracyEmpty").style.display = "none";
document.getElementById("baseAccuracyEmpty").style.display = "none";
 }
}
 updateCommand();
updateCommand(); }
} function updateWeaponMessage() {
function updateWeaponMessage() {
 // check for valid entry
// check for valid entry
 let weaponMessage = document.getElementById("weaponMessage").value;
let weaponMessage = document.getElementById("weaponMessage").value;
 let length = weaponMessage.length;
let length = weaponMessage.length;
 // check to see if value is too low
// check to see if value is too low
 document.getElementById("weaponMessage").style.display = "";
document.getElementById("weaponMessage").style.display = "";
 if (length == 0) {
if (length == 0) {

 document.getElementById("weaponMessageEmpty").style.display = "";
document.getElementById("weaponMessageEmpty").style.display = "";
 }
}
 if (length > 0) {
if (length > 0) {

 document.getElementById("weaponMessageEmpty").style.display = "none";
document.getElementById("weaponMessageEmpty").style.display = "none";
 }
}
 updateCommand();
updateCommand(); }
} function updateWeaponDescription() {
function updateWeaponDescription() {
 // check for valid entry
// check for valid entry
 // console.log("updateWeaponDescription Entered");
// console.log("updateWeaponDescription Entered");
 updateCommand();
updateCommand(); }
} function updateWeaponRanged() {
function updateWeaponRanged() {
 // check for valid entry
// check for valid entry
 // console.log("updateWeaponDescription Entered");
// console.log("updateWeaponDescription Entered");
 updateCommand();
updateCommand(); }
} function updateImageLink() {
function updateImageLink() {
 // check for valid entry
// check for valid entry
 // console.log("updateImageLink Entered");
// console.log("updateImageLink Entered");
 updateCommand();
updateCommand(); }
} function updateWeaponIcon() {
function updateWeaponIcon() {
 // check for valid entry
// check for valid entry
 // console.log("updateWeaponIcon Entered");
// console.log("updateWeaponIcon Entered");
 updateCommand();
updateCommand(); }
} function updateImageLink() {
function updateImageLink() {
 // check for valid entry
// check for valid entry
 // console.log("updateImageLink Entered");
// console.log("updateImageLink Entered");
 updateCommand();
updateCommand(); }
} function init() {
function init() {
 // clear all fields
// clear all fields
 document.getElementById("weaponName").value = "";
document.getElementById("weaponName").value = "";
 document.getElementById("weaponMessage").value = "";
document.getElementById("weaponMessage").value = "";
 document.getElementById("baseDamage").value = "";
document.getElementById("baseDamage").value = "";
 document.getElementById("baseAccuracy").value = "";
document.getElementById("baseAccuracy").value = "";
 document.getElementById("imageLink").value = "";
document.getElementById("imageLink").value = "";
 document.getElementById("weaponDescription").value = "";
document.getElementById("weaponDescription").value = "";
 document.getElementById("weaponIcon").value = "";
document.getElementById("weaponIcon").value = "";
 document.getElementById("rangedCheckbox").checked = false;
document.getElementById("rangedCheckbox").checked = false;
 document.getElementById("weaponString").innerHTML = "";
document.getElementById("weaponString").innerHTML = ""; }
} function updateCommand() {
function updateCommand() {
 // Put together the command in the proper order
// Put together the command in the proper order
 // // console.log(field, value);
// // console.log(field, value);
 let weaponString = "d!makeweapon";
let weaponString = "d!makeweapon";
 let weaponName = "\"" + document.getElementById("weaponName").value + "\" " ;
let weaponName = "\"" + document.getElementById("weaponName").value + "\" " ;
 let baseDamage = " dmg " + document.getElementById("baseDamage").value;
let baseDamage = " dmg " + document.getElementById("baseDamage").value;
 let baseAccuracy = " accy " +document.getElementById("baseAccuracy").value;
let baseAccuracy = " accy " +document.getElementById("baseAccuracy").value;
 let weaponMessage = " msg " + "\"" + document.getElementById("weaponMessage").value + "\"";
let weaponMessage = " msg " + "\"" + document.getElementById("weaponMessage").value + "\"";
 // optionals
// optionals
 let weaponDescription = "";
let weaponDescription = "";
 if (document.getElementById("weaponDescription").value.length>0) {
if (document.getElementById("weaponDescription").value.length>0) {

 weaponDescription = " desc " + "\"" + document.getElementById("weaponDescription").value + "\"";
weaponDescription = " desc " + "\"" + document.getElementById("weaponDescription").value + "\"";
 }
}
 let weaponRanged = "";
let weaponRanged = "";
 if (document.getElementById("rangedCheckbox").checked == true) {
if (document.getElementById("rangedCheckbox").checked == true) {

 weaponRanged = " ranged " + "true";
weaponRanged = " ranged " + "true";
 }
}
 let weaponIcon = "";
let weaponIcon = "";
 if (document.getElementById("weaponIcon").value.length > 0) {
if (document.getElementById("weaponIcon").value.length > 0) {

 weaponIcon = " icon " + document.getElementById("weaponIcon").value;
weaponIcon = " icon " + document.getElementById("weaponIcon").value;
 }
}
 let imageLink = "";
let imageLink = "";
 if (document.getElementById("imageLink").value.length > 0) {
if (document.getElementById("imageLink").value.length > 0) {

 imageLink = " image " + document.getElementById("imageLink").value;
imageLink = " image " + document.getElementById("imageLink").value;
 }
}
 // document.getElementById("weaponString").value = weaponString + " " + "\"" + weaponName + "\" " + baseAttack + " " + baseStrength + " " + baseAccuracy + " "+ baseHP;
// document.getElementById("weaponString").value = weaponString + " " + "\"" + weaponName + "\" " + baseAttack + " " + baseStrength + " " + baseAccuracy + " "+ baseHP;
 document.getElementById("weaponString").innerHTML = weaponString + " " + weaponName + weaponMessage + baseDamage + baseAccuracy + weaponDescription + weaponRanged + weaponIcon + imageLink;
document.getElementById("weaponString").innerHTML = weaponString + " " + weaponName + weaponMessage + baseDamage + baseAccuracy + weaponDescription + weaponRanged + weaponIcon + imageLink; }
}
</script>
<form> <table class="auto-style3">
<table class="auto-style3">
 <tr>
<tr>

 <td class="auto-style4">
<td class="auto-style4">
 <strong><span style="color: #CC0000">*</span>Weapon Name
<strong><span style="color: #CC0000">*</span>Weapon Name  (Cannot be empty)<br />
(Cannot be empty)<br />
 </strong> <strong><input id="weaponName" name="QName" type="text" onkeyup="updateName()" /></strong><br /></td>
</strong> <strong><input id="weaponName" name="QName" type="text" onkeyup="updateName()" /></strong><br /></td>

 <td class="auto-style1">
<td class="auto-style1">
<p id="nameEmpty" style="color: #CC0066"><strong>Weapon Name is empty</strong></p>

 </td>
</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style4">
<td class="auto-style4">
 <strong><span style="color: #CC0000">*</span>Weapon Base Damage Value (Min 1)<br />
<strong><span style="color: #CC0000">*</span>Weapon Base Damage Value (Min 1)<br /> <input id="baseDamage" name="Text3" type="text" onkeyup="updateBaseDamage()" /></strong></td>
<input id="baseDamage" name="Text3" type="text" onkeyup="updateBaseDamage()" /></strong></td>

 <td class="auto-style1">
<td class="auto-style1">
<p id="baseDamageEmpty" style="color: #CC0066" ><strong>Weapon Base Damage is empty </strong> </p>
<p id="baseDamageLow" style="color: #CC0066"><strong>Weapon Base Damage cannot be less than 1</strong></p>


 <p id="baseDamageFraction" style="color: #CC0066"><strong>Weapon Base Damage must be a whole number (no fractions)</strong></p>
<p id="baseDamageFraction" style="color: #CC0066"><strong>Weapon Base Damage must be a whole number (no fractions)</strong></p>

 </td>
</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style4">
<td class="auto-style4"> <p>
<p>
 <strong><span style="color: #CC0000">*</span>Weapon Base Accuracy Value (Min 1)<br />
<strong><span style="color: #CC0000">*</span>Weapon Base Accuracy Value (Min 1)<br /> <input id="baseAccuracy" name="Text5" type="text" onkeyup="updateBaseAccuracy()" /></strong></p>
<input id="baseAccuracy" name="Text5" type="text" onkeyup="updateBaseAccuracy()" /></strong></p>

 </td>
</td>

 <td class="auto-style1">
<td class="auto-style1">
<p id="baseAccuracyEmpty" style="color: #CC0066"><strong>Weapon Base Accuracy is empty</strong></p>
<p id="baseAccuracyLow" style="color: #CC0066"><strong>Weapon Base Accuracy cannot be more than 86 or less than 1</strong></p>

 </td>
</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style4">
<td class="auto-style4"> <p>
<p>
 <strong><span style="color: #CC0000">*</span>Weapon Message<br />
<strong><span style="color: #CC0000">*</span>Weapon Message<br /> <input id="weaponMessage" name="Text6" type="text" onkeyup="updateWeaponMessage()" style="width: 289px" /></strong></p>
<input id="weaponMessage" name="Text6" type="text" onkeyup="updateWeaponMessage()" style="width: 289px" /></strong></p>

 </td>
</td>

 <td class="auto-style1">
<td class="auto-style1">
<p id="weaponMessageEmpty" style="color: #CC0066"><strong>Weapon Message is empty</strong></p>

 </td>
</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style5">
<td class="auto-style5"> <p>
<p> Weapon Description (optional)<br />
Weapon Description (optional)<br /> <input id="weaponDescription" name="Text7" type="text" onkeyup="updateWeaponDescription()" /></p>
<input id="weaponDescription" name="Text7" type="text" onkeyup="updateWeaponDescription()" /></p>

 </td>
</td>

 <td class="auto-style2"></td>
<td class="auto-style2"></td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style5">
<td class="auto-style5"> <p>
<p> Weapon Ranged (optional)<br /><input id="rangedCheckbox" type="checkbox" onclick="updateWeaponRanged()" /> Weapon is Ranged
Weapon Ranged (optional)<br /><input id="rangedCheckbox" type="checkbox" onclick="updateWeaponRanged()" /> Weapon is Ranged


 </p>
</p>

 </td>
</td>

 <td class="auto-style2">Default: False</td>
<td class="auto-style2">Default: False</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style5">
<td class="auto-style5"> <p>
<p>
 Weapon Icon (Optional)<br />
Weapon Icon (Optional)<br /> <input id="weaponIcon" name="Text9" type="text" onkeyup="updateWeaponIcon()" /></p>
<input id="weaponIcon" name="Text9" type="text" onkeyup="updateWeaponIcon()" /></p>

 </td>
</td>

 <td class="auto-style2">
<td class="auto-style2">
<p id="weaponIconError" style="color: #000000">Default: Dagger</p>

 </td>
</td>
 </tr>
</tr>
 <tr>
<tr>

 <td class="auto-style5">
<td class="auto-style5"> <p>
<p> Weapon Image Link (optional)<br />
Weapon Image Link (optional)<br /> <input id="imageLink" name="Text8" type="text" onkeyup="updateImageLink()" /></p>
<input id="imageLink" name="Text8" type="text" onkeyup="updateImageLink()" /></p>

 </td>
</td>

 <td class="auto-style2">Default: Icon</td>
<td class="auto-style2">Default: Icon</td>
 </tr>
</tr>
 </table>
</table> <p>
<p>
 <input id="Button1" type="button" value="Clear" onclick="init()"/></p>
<input id="Button1" type="button" value="Clear" onclick="init()"/></p>
 <hr />
<hr />
</form>
Weapon Command: <br /><h2><label id="weaponString">d!makeweapon</label></h2>{/source}
More DueUtil Resources
What's Next?
Now that you have set up a weapons store, check out this article on how to make Quests.
What is DueUtil?
DueUtil is a Discord Bot that lets you set up a quest game where users can buy items in a shop, fight level-scaling monsters, collect pets, fight other users, and customize their game profile.
Find out more about this Discord Bot here: https://dueutil.tech/
Your Turn. What Do You Do?
Did you find this DueUtil Weapons Generator useful?
Tell me about it in the Comments Section. I'm interested in your feedback.
E-mail Notification Opt-in
Do you want to receive email notifications when we add content?
Sign up on our private mailing list.
YES! Notify me of new posts!
 
				 
	 
	 
	 
	 
         
        