Right now (as far as i know) there’s only two settings for message cache (besides enable obviously):
Maximum Crates
Maximum Days
& i have an idea for two more:
Maximum crates per server
Maximum crates per channel
It wouldn’t let you set a value for each individual server or channel, just a single value that every server/channel must be limited to.
I don’t know if this is possible to add or not but if it is then it would probably be fairly useful.
Another idea, i don’t know much about message cache so maybe this is wrong or doesn’t make sense but as far as i know inventor will cache messages from any channel of any the server the bot is in, which is i’d think is really annoying if you only need to cache messages from a certain channel, but then again, adding the ability to set certain channels doesn’t seem realistic/possible, so maybe adding something like an option called ‘only cache messages from channel(s) bot has sent message in’ would be easier/make more sense to add but i don’t know.
This is probably a pretty dumb feature suggestion that misunderstands everything about message cache & if so then i’m really sorry you read all of this & i’m guessing a reply to this is just gonna be ‘use a database instead’ but i thought i’d make an effort to make a post about this anyway just in case it has any value at all.
I hope everyone reading this has a good day & a decent sleep! : )
This is a good idea. However, maybe a better way to implement this would be a cap on the percentage of your message cache that could be used up by a single channel and server. Maybe a toggle to enable that feature, then fields for the percentages.
I also think it would be nice to be able to see a breakdown of your msg cache usage by server and channel. Reading message cache isn’t really planned, but being able to track usage could be useful.
You are correct to assume that the operational overhead of us handling massive allow/denylists doesn’t make a ton of sense. People would want control through blocks and we would have to implement metering on the system that controls the metering… Too much work for what is ultimately a convience feature.
Unfortunately, your idea of only caching channels the bot has interacted with has pretty much exactly the same problem. That isn’t the sort of list Discord would have on-hand, so we’d need to log the channel id field as you send messages, which is basically just an allow/denylist but more opaque and harder to modify.
Pretty much. If you’re looking for something super granular, you’re going to want a database. I like the idea of preventing abuse by blocking a single server or channel from hogging your storage space, but message cache is intentionally not meant to be everything to everyone.
In the eventual future, there will probably be a slow-but-cheap object storage option for storing data like message logs, so you can build a version of message cache yourself while also being able to take advantage of the lower-cost, lower-performance storage that it uses, rather than being forced to use much more expensive (but faster) DBs.