Currency Drop + Pick
The Drop Currency System in OneeChan is an automated chat-based event where currency randomly appears in designated channels, and users must type pick to collect it. The system ensures engagement-base
Last updated
The Drop Currency System in OneeChan is an automated chat-based event where currency randomly appears in designated channels, and users must type pick to collect it. The system ensures engagement-base
Last updated
The bot listens for messages in configured Chat Channels
(Configure the channels using the )
If certain conditions are met (active users, message count), a currency drop is triggered.
The bot posts a currency drop message.
Users must type "pick" before the PickTTL
(Default 25 seconds) timer runs out to claim the currency.
The bot distributes the currency to the first user who picks it up.
A DropCooldown
is applied before the next drop can occur.
The system is triggered whenever a user sends a message in a configured chat channel.
The bot ignores messages from bots to prevent abuse.
The bot checks whether the drop system is enabled and if the message was sent in an allowed chat channel.
A drop will only occur if two conditions are met:
Minimum number of unique users chatting (PickMinimumChatters
)
Minimum number of messages sent (PickMinimumMessages
)
These numbers are tracked using Redis, ensuring that currency drops are based on real activity.
A global cooldown (DropCoolDown
) is applied to prevent frequent drops.
Each user also has a personal cooldown to prevent them from repeatedly picking up currency.
When a user types pick
, the bot checks:
Is there an active drop?
Is the user eligible to pick up the currency? (not on cooldown)
If successful, the user receives a random amount of currency within the configured range (PickMin
and PickMax
).
The bot logs the currency gain and applies a cooldown to the user.
Example Output:
The currency is automatically deposited into the user’s balance.
The bot deletes the "pick" message to keep the chat clean.
Active Users: Tracked with activeUsersKey
, ensuring the system only triggers for engaged users.
Message Count: Stored as messageCountKey
, tracking the number of messages in the channel.
Drop Cooldown: Ensures that drops do not happen too frequently.
Bot checks activity levels (message count and active users).
If conditions are met:
A drop is announced in the chat.
The bot stores the drop in Redis, marking it as active.
Users type pick
to claim the drop.
The bot checks Redis to see if the user is eligible.
The bot assigns the currency and applies cooldowns.
The bot deletes the "pick" message after processing.
The currency drop announcement is removed automatically after a set time (DropTTL
).
Uses RabbitMQ for delayed message deletion, keeping the chat clean.
(User2 is now on cooldown before they can pick up again)
No direct setup is required, except configuring server keys (/setup
).
The system is entirely automated based on server activity.
This system ensures engagement-based rewards, promoting active participation in chat while keeping the experience fair and balanced.