Well, I don’t really like them. On one hand, as a developer it makes my code easier to manage, but on the other if I were a user I’d have to end up downloading a bunch of scripts. And then what happens if my core script was not compatible with someone else’s core script? Tough.
But core scripts are necessary. Ace default scripts are not perfect, and in fact a lot of it is simply not flexible. While there is always the question of performance if we decided to separate one large method into say 5 smaller methods, I’d like to think that trade-off is insignificant compared to the ease of extension that it would provide.
I’ve written one core script so far – Core Learning – which overwrites 2 methods because the code I want to change was written in a block so I couldn’t do anything with aliasing, and there was no way to try to alias it to add stuff I want.
In the end it was really just re-arranging some code; the logic is the same, but the end result is likely infinitely more flexible than before.
But of course, I’m not going to add this to some sort of “Tsuki Core Script”. Any script that likely needs this will only need it for those two methods that were overwritten, and not the other dozen classes that I might have changed for my own convenience.
However you should use core scripts properly: they should be placed above the “Materials” tab. Of course this doesn’t really make a difference from placing it above the script that needs it, but since these are meant to replace the default scripts and for custom scripts to treat these as the default scripts themselves, it’d make more sense to just put it above all custom scripts.