I've started dabbling with some new editor tools as an extension of a kind of RPG regioning system I'm working on. The region system itself can take a scriptable object which will determine the climate (and associated elements like materials, environment meshes, etc) and can store an array of positions for placing collectibles and environmental elements like trees and rocks.
As an extension of this, I wrote several editor tools. The first is a simple vertex painting tool, it's not super intuitive yet, requiring colours to be set by buttons in the inspector or keyboard hotkeys and then the individual vertexes be clicked on, but it functions just fine. I'd like to get more of a painting tool happening but I'm having some problems getting a custom cursor or any other visual tools that could help drawing into the scene window. I do have gizmos on all vertices though which show the stored vertex colour.
The positions which are being stored for placing environmentals and such are also manipulable in editor and have mesh representations which can be configured which makes setting them quite easy, I opted for this over just having child gameobjects largely for efficiency but I also think it's a lot cleaner and was more interesting to implement.
This last tool was a bit more involved, I've made a basic mesh modification tool which snaps overlapping verts together. The intended application of this is for things like modular sets; to avoid little gaps and edges you'd put this component on both objects and it would modify an instance of the mesh just a little to clean the edges up and make them more seamless. There's still some quirks, and I haven't really tried to use it as intended yet, but I'm pretty impressed with the way its progressed.
I needed to get way deeper into matrices, multi-threading, and slightly wacky editor coding on this than I'd expected at the outset in order to get it to work properly and to get efficiency up to the point where it was a usable tool.