Maetco said: What software to use for coding? Is there a way to write the code and immediately see/test the changes without copy-pasting a new version to roll20 as a custom sheet after each small change? In Github, are the sheet authors (original creator) the only ones who can make/accept changes to existing sheets or can anyone release new versions? If anyone can do it, how is the quality managed? How much can one usually "loan" from other sheets generally? I don't mean leagality just practicality. How far can I expect to get by "just" looking for good examples of how to do things in other sheets and copying code from them? What would you recommend as the first step (after being to some degree familiar with tags and HTML/CSS syntax) in this process? I have use Github a bit when updating Battlescribe catalogues but in reality I'm a total noob there too. Any tips on how to use Github with the sheets effectively and efficiently? I work directly in the Roll20 custom sheet editor, personally. The Preview tab... sometimes works. You can also use a "skeleton" with Roll20's CSS files to test with. Here's an example . Basically, you need app.css and base.css , plus a little bit of HTML wrapped around your character sheet. However, if you want to do anything particularly advanced with your CSS, especially things to do with repeating sections, the only way to accurately test it is by loading up the VTT with your stuff saved as a custom sheet. No, anyone can create a pull request for any sheet. Only the Roll20 admins can accept pull requests, so not even the actual sheet authors can do that. Of course, if you fork from another sheet's author's fork and create a pull request into their repository, they would be the ones in control if it, not Roll20, but to get those changes into the community sheet listing, they would then have to create a pull request into the Roll20 repo. I will mention that I have had someone submit a pull request for a sheet I created, and Steve sent me a PM asking if the changes were okay before merging them, so the original authors aren't being entirely ignored, either. Oh, plenty. I think CoalPoweredPuppet has learned almost everything by looking at other people's sheets, and CPP is probably the most prolific sheet author around! =D I know that all (or very nearly all) of the sheets for systems which use "fill in a set of bubbles from left to right", such as White Wolf's various Storyteller System games, are straight-up copying the work I did on the Exalted Second Edition sheet. So, while it was only a runner-up in the character sheet contest , my Ex2 sheet has some far-reaching impact on the community sheets at large. G V. said: I have use Github a bit when updating Battlescribe catalogues but in reality I'm a total noob there too. Any tips on how to use Github with the sheets effectively and efficiently? If you're using a Mac, get the desktop client. Made my world A LOT easier once I got that installed. If you're not using a Mac, someone else will have to help answer this a bit more helpfully...because in many regards, github is still a magic box that I don't fully understand. :-/ There is also a Windows version of the desktop client. I created the Beginner's Guide to GitHub a while ago to help people figure out the desktop client, although my screenshots are slightly out of date now, and it's possible to create a pull request straight from the client, instead of only through the GitHub website like the guide instructs you to do. I should fix that at some point >.> Also, one "best practice" to consider would be preparing for the translation support currently on the dev server. Even if you don't want to put in the i18n data just yet, you can set up your HTML to make it slightly easier in the future. For example, take this existing HTML: <label> Name: <input type="text" name="attr_character_name"> </label> The "Name" string should be translated, but you don't want to force the translator to deal with your HTML by instructing the system to translate the entire label. So, you can change your HTML to this: <label> <span>Name:</span>
<input type="text" name="attr_character_name">
</label> When i18n support is added to the sheet, it's easy: <label> <span data-i18n="name">Name:</span> <input type="text" name="attr_character_name"> </label> You could also move the colon outside the span, so that you don't need a separate i18n key for "Name:" and "Name", if the word shows up elsewhere on the sheet without a colon (for example, in a table of weapons with a Name column): <label> <span data-i18n="name">Name</span>: <input type="text" name="attr_character_name"> </label> That does sacrifice the ability to translate for RTL languages like Arabic, but the Name string and the character_name input would be in the wrong order for RTL, anyway.