A script is the actual program which checks details of your (finds/hides/trackables).
Tags are configuration for the script, so that the same script can be used for different caches.
For example, there's a script for checking the length of your longest streak (days in a row with finds). That same script can have different tags to be used as a checker for a cache with a challenge of a 100 day streak and another cache with a challenge of a 365 day streak.
Edited to add:
If you're wanting a checker for a new challenge cache, the first step is to search to see if there is a script already which can handle the conditions of the cache. If there is, a tag can be created on that script. If not, a new script will need to be created and then a tag can be created on the new script.