Contributing tools
Thanks for considering to contribute to Awesome Arcade! Submitting a tool will allow others to find it, helping others in their game making process!
There are two main ways to contribute tools to Awesome Arcade: Issues and pull requests
Submit an issue
The GitHub repository that hosts the source code for Awesome Arcade accepts issues on new tools! You can use the new tool issue template to help you quickly file an issue for me to add a tool to the list.
Please insert the relevant information, replacing the brackets as necessary.
For example, if I wanted to contribute my Arcade-MIDI-to-Song tool that helps you play MIDI music in a MakeCode Arcade game, I would choose the "New tool" issue template:
And then I would fill out the template with information, like this:
As you can see, the only required information is the tool URL (obviously) and the GitHub URL but filling out the other details will help me out. Thanks!
Submit a pull request
The GitHub repository that hosts the source code for Awesome Arcade accepts pull requests on new tools! You can edit the tools.xml
file to add a tool the list. (Yes, it resides in an XML file.) Editing it will automatically fork the repository, afterwards you can submit a pull request to merge your changes into the main repository.
You'll see an XML file like this:
<?xml version="1.0" encoding="utf-8"?>
<allTools>
<toolList label="Tools">
<tool repo="kristianpedersen/Convert-Image-to-MakeCode-Arcade-Sprite">
<description>This tool will convert your images (like `.png` files) to Arcade code! Simply copy the output, open JavaScript mode in your project, navigate to where you want the image block to go, and paste in the image code! You may need to remove some redundant characters. Remember that Arcade has a maximum image size of 500x500!</description>
<links>
<url label="Tool" isPrimary="true">https://kristianpedersen.github.io/Convert-Image-to-MakeCode-Arcade-Sprite/</url>
<url label="GitHub repo">https://github.com/kristianpedersen/Convert-Image-to-MakeCode-Arcade-Sprite</url>
<url label="Forum post">https://forum.makecode.com/t/ive-made-an-image-file-to-arcade-sprite-converter-feedback-and-code-improvements-wanted/2076?u=unsignedarduino</url>
</links>
</tool>
<!-- More tools... -->
</toolList>
</allTools>
To add a tool, add it to the end of the <toolList>
element.
For example, if I wanted to contribute my Arcade-MIDI-to-Song tool that helps you play MIDI music in a MakeCode Arcade game, I would add the following XML to the end of the <toolList>
element like so:
<tool repo="UnsignedArduino/Arcade-MIDI-to-Song">
<description>I have written a Python script that will turn MIDI files into MakeCode Arcade songs! Note that this tools requires at least Python 3.11 on a computer, and command line knowledge is highly recommended!</description>
<links>
<url label="GitHub repo" isPrimary="true">https://github.com/UnsignedArduino/Arcade-MIDI-to-Song</url>
<url label="Forum post">https://forum.makecode.com/t/new-song-format/17763/11?u=unsignedarduino</url>
<url label="Demos">https://forum.makecode.com/t/piano-synthesia/22138?u=unsignedarduino</url>
</links>
</tool>
Tool XML elements
Here is a sample using all the possible XML elements in a <tool>
:
<tool repo="user/github-repo">
<description>Some description about the tool's capabilities.</description>
<links>
<url label="Tool" isPrimary="true">The tool's link (for example, a web page)</url>
<url label="GitHub repo">GitHub repo link</url>
<url label="Forum post">Link to forum post</url>
<!-- There can be multiple links with any label -->
</links>
<forks>
<toolRef repo="user/github-repo" />
<!-- There can be multiple forks elements -->
</forks>
<depreciatedBy>
<toolRef repo="user/github-repo" />
<!-- There can be multiple tools depreciating this tool -->
</depreciatedBy>
<inBeta asOf="some date">
Some description why.
</inBeta>
</tool>