Frequently Asked Questions (FAQ)¶
Welcome to the FAQ section! Below are some burning questions you might have about ScurryPy.
If you have a question, consult this page first. Not answered? Ask in the support server!
Q. What is ScurryPy?¶
ScurryPy is a wrapper. NOT a framework. It wraps Discord's protocol for Gateway connection, rate limiting and HTTP logic, and sharding. It does NOT route commands, hide or reinvent Discord's structures, or impose internal state or execution models.
Q. What does ScurryPy offer over other frameworks?¶
ScurryPy is NOT a framework. Trying to compare ScurryPy to frameworks like discord.py, hikari, or disnake is a category mismatch — they solve different problems. But it still offers some features that other frameworks do not. Keep reading!
Q. Why would I use a wrapper when other frameworks do more for me?¶
This hits the core of ScurryPy's value. Unlike a framework (not just other discord frameworks), ScurryPy is customizable. It doesn't try to meet the needs of everyone nor does it pretend to. It puts architectural control back in the bot dev's hands.
The only contract you have is with the Client:
- hooks receive (self)
- events receive (self, event)
Beyond that, addons are free to define their own contracts and patterns. The rest is up to you. For more details on how ScurryPy compares to other frameworks, see the Migration Guide
Q. What's an addon?¶
Addons are "subscribers" to the main client. You can pass the client to the addon, and the addon registers hooks and events to its own functions for the client to call when the event/hook runs. The only contract you have is with the Client such that hooks have params (self) and events have params (self, event). That's all! The rest us up to you! Check out examples of addons here.
Q. Should I switch from discord.py to ScurryPy?¶
If you're happy with discord.py's abstractions and don't feel constrained by them, probably not. ScurryPy is most useful when you want explicit control over how your bot is structured or when you're building your own patterns on top of Discord’s API.
Q. What is ScurryKit?¶
ScurryKit is a small framework built with ScurryPy. It provides the feel and flow of higher-level frameworks like discord.py, disnake, and hikari.
Q. Why are ScurryPy and ScurryKit separate?¶
ScurryPy is the foundation: a minimal, explicit wrapper around Discord's API. ScurryKit is a convenience layer built on top. Why separate?
- Keeps the core simple and maintainable
- Lets you use JUST the wrapper if you want
- Proves the architecture is extensible
- You can build YOUR OWN convenience layer instead
Think of it like: requests (low-level) vs httpx (higher-level), or express (minimal) vs nest.js (opinionated).
Should I use ScurryPy or ScurryKit?¶
Use ScurryPy if:
- Building a custom framework
- Want maximum control
- Learning Discord's API
- Building something unusual
Use ScurryKit if:
- Want decorator-style commands
- Building a "normal" bot
- Want to get started quickly
- Like convenience over explicitness
You can mix them! Use ScurryPy for some parts, ScurryKit for others.
Q. Is ScurryPy incomplete without ScurryKit?¶
No. ScurryPy is a complete Discord API wrapper. You can build any bot with just ScurryPy. ScurryKit adds patterns and conveniences, but nothing you couldn't build yourself. In fact, that's the point: ScurryKit is just one way to build on top of ScurryPy.
Q. Do I need both installed?¶
No. ScurryKit is dependent on ScurryPy, but not the other way around. If you only want the core wrapper, just install ScurryPy.
Q. Can I contribute?¶
Yes! See contributing for more.