It’s definitely the proxy thing as mentioned by @8w_a, I’m pretty sure that the http request from a local script would be sent via the player’s IP and therefore not blocked.
I would first ensure that your request to Discord is written correctly because that’d be the simplest fix, writing & hosting your own proxy server is pretty much a project in its own right.
Albeit off-topic, I’d just like to stick it in here that Discord isn’t necessarily meant to be a logging service and it could potentially result in your webhook being deleted, or further disciplinary action. You should also really not log exploiter usernames - this is a part of manual moderation, which isn’t scalable in a production environment. Handle counterexploitation without a third party.
This remote also has no security, so it can be fired off at a constant rate. Even if the proxy respects rate limits, you’re still capable of overloading the proxy server and having your webhook blacklisted by the proxy’s owner.
And, at the end of it all, this client-side check can be easily circumvented. You shouldn’t really waste your time on things that don’t matter. The most you’ll stop is an exploiter who isn’t dedicated enough to bypass the check.
Good point, @posatta mentioned something similar . OP seemed to imply that it worked in a LocalScript earlier so I just assumed that the difference would be a blocked IP or an unblocked IP.