I found the issue, just haven't been able to fix it yet.
I am using a fileserver on my localhost and things like the avatar images work fine that way (trying to work with the example of different character expressions for sad, happy, etc., but without uploading a lot of images; the custom code can snag the images via localhost with no issue).
Apparently there is some CloudFlare API in use that is OK with fetching PNG files from localhost, but NOT text files. If I use rentry (or just upload to perchance and use the URL) then the lorebooks DO work.
I had made the assumption that because I can get local PNG files, I can also get local TXT files. That's apparently not the case.
"You could add a trigger to check the name of the AI that sent the message to run a different custom code within the thread to have multiple characters use different custom codes."
Yup, doing that already. Works OK, but I need to get some better JS skills before I go much further. I just wanted to make sure that the custom code was part of the oc.thread, and not specific to each oc.character.
Thanks!
I added code to my local server to force "text/plain" for text file content type, but it didn't do the trick.
From what I can tell, somehow CloudFlare is inserting itself into text file fetches (but not image file fetches) and since there's no human in that interaction, all that comes back from a localhost LoreBook fetch is an error that the Captcha wasn't completed.
This isn't a huge issue, but it's gonna bug me until I solve it :)