Michael H.
said: which is exactly what I suggested above - a way to add a script with a click, have it copy said code into your personal 'bank' of scripts, and allow you to modify it there, only with a snapshot of what you've done stored in the bank along with a 'working copy' which you can modify and store when it works the way you want it, replacing the old snapshot - none of that modifies the original code you copied it from, so peoples work is safe from outside interference. but the idea of having a place to go and browse scripts by function and/or author, as well as any other variable the roll20 team or community decide works, is a valid, and I think almost necessary, thing that needs to happen for this whole project to be exanded on in the future, and I believe each method - pulling scripts and adding them to a personal library which can be accessed from any campaign you might be included in - should be something that integrates as seamlessly as possible with the currently used method of working with the API. My only concern here is that it's not just about what might work right now. I believe we have to think about what the roll20 team can do with it in the future, and a bit of work now getting it right will be worth the time and hassle of helping them make it something great - anything that puts an edge on helping those supporters and guests of the site want to further support roll20 and purchase prescriptions can only be good for the community, if it helps it to stand out even more to the average user who just wants to be able to click and go with no hassles and no fear of ruining the work they have already done. Also to note in the bigger picture is the possibility of companies (certainly independent companies and perhaps even commercial) out there wanting to provide tools for roll20 as it expands and grows larger, and a well planned, well built, and robust system for distributing API scripts would be an incentive to any such businesses who might wish to use roll20 for their products. Yes, it is all in what amounts to alpha right now. its still being expanded and quantified, but isn't that the best time lay the ground work for something that hope will become something truly user friendly and completely customizable to each individual experience? It has to be something that is easy for normal (read non-technical) user to use without creating problems for developers, while at the same time I feel it need to take things like quality of code and prevent conflicts both in code and within the development community. So lets break this down: Easy for User: One click adding to campaigns. NO CODE!!!!! there is no good reason for a regular user to see any code at all, I agree you should be able to access it some way but it should be an option not a requirement to see it. Easy configs Auto Updates (disabled for those who are editing the code in some way) Not creating problems for Devs: Auto updates, it is hard to support something when everyone is using different versions. Code hidden and uneditable by default, with a resort function if it is changed. Nothing is more difficult that supporting something that has been changed. Some sort of auto bug report generator, gives any errors they are getting a list of all scripts they have installed, what versions they are running and copies of any edited scripts. Link everything in with gist, dev just submits a gist link and tell the system what commit to use, then when they want to update it they just pick what commit to update it to. Dependencies, auto downloading and updating. Quality of code/Preventing Conflicts: Have a system where scripts can be validated, ether by the community via voting or by dedicated moderators. List all scripts validated or not in the repository but put a mark showing there validation status, ie validated, pending, rejected. Have a set of standards as to what should be considered a valid script, ie uses name-spaces, isn't malicious, etc. A way to report scripts for errors, malicious intent and compatibility issues. A licence or set of licences (so you can pic the one you prefer) that ever dev must agree to, just to stop the sort of thing that goes on with the Minecraft modding community.