When running an "unsupported" game, you ought to go through the pinned "Stupid Roll20 Tricks" thread (the first post is an index). For example, I make heavy use of the macro character sheet and chat menu ideas from that thread. I have written a sheet that has a tab for psionics, another for spells, etc. But.. I don't use them except for items. I have a "character" for each type of magic, another for poisons and faerie foods, etc. The character for wizard spells has a chat menu for wizard spells, and an individual macro for each spell. Then when someone makes a wizard, I just copy/paste the chat menu from the macro character to the PC, set it to whisper that character, and edit it down to their exact spell knowledge. Instead of needing to set up however many macros the wizard may learn, I set them up once and just have to personalize the chat menu for that character. I have the macros on the wizard spell sheet set up to use @{selected|whateverattribute} for any attribute calls meaning that I have to make sure their token is available when they cast spells, but it will calculate saving throw targets, and any range, radius, duration, or damage variables that are based on caster level. That is the main thing on Roll20 for running games without a compendium. Figuring out how to only do the work once and have it work for PCs and NPCs alike. Other than the initial set up which certainly took some time, I actually find that macro sheet situation to be more convenient than having to add spells (one by one) to a character sheet from a compendium.