TXBOT – UPDATE PLAN & CHANGELOG
Created July 2026, for updating the sell bot
0. READ THIS FIRST
You have two different bot generations:
TXBot_V3
- Architecture: Cogs (main.py + cogs/…)
- Database: SQLAlchemy plus legacy SQLite
- Product table: products
- Purchase function: _execute_purchase_v3
- License / key system: yes (keys)
Payment_Sell_Bot.py (the sell bot)
- Architecture: single-file monolith (5,176 lines)
- Database: raw SQLite only
- Product table: shop
- Purchase function: _execute_purchase
- License / key system: does not exist
All new features were built as cogs for TXBot_V3. There they work by "drop the
file in, restart the bot". The sell bot is an older generation with a different
data model, so "update" there means PORTING, not copy-paste. Details in
sections 3 to 5.
1. WHAT IS NEW – FEATURE CHANGELOG
In total: 15 new modules with about 75 commands plus automatic systems.
Admin & Team
Economy: /coins add, remove, set, transfer, mint
/economy freeze, unfreeze, audit, inflation, richtax
Shop: /product clone, price, hide, show, preorder, stock, info, limit, restock
/product-schedule
/review list, delete
/discount create, list, delete
/bundle create, additem, removeitem, list, info, delete
Licenses: /keys bulk-create, export, transfer, extend, lookup
/hwid reset, whitelist, ban
/launcher broadcast, forceupdate, clear-broadcast
Server tools: /lockdown, /unlock, /maintenance-all, /autorole add, remove, list
Security: /security alt-detect, fraud-score, ip-history, chargeback-flag,
flag, unflag, suspicious-list, admin-audit, blacklist-import,
vpn-block, raid-mode, verify-gate
Analytics: /reports revenue, top-spenders, products, growth, retention,
staff, tickets, export
Overview: /adminhelp
Mass DM: /cdm (custom DM to everyone or a role, with preview + confirm)
Users & Community
Shop UX: /compare, /wishlist add/remove/list, /recommend, /pricehistory, /receipt (image)
Buying: /cart add/remove/view/clear/checkout, /buybundle, /giftitem, /redeemgift
Community: /community poll, event, shoutout, spotlight, oncall, welcome-test
Social/Fun: /marry, /divorce, /marriage, /friend add/remove/list,
/pet adopt/status/feed/play/rename, /inventory
Cards: /card daily/info/give, /cards, /cardtop, /trade (two-way trade)
Utility: /botstatus, /timezone
Automatic systems (background)
- Daily price snapshot (feeds /pricehistory)
- Hourly wishlist price-drop notifier (DM when a wishlisted product gets cheaper)
- Subscription reminder (DM about 2 days before renewal)
- product-schedule publisher (auto-release a product at a set time)
- Raid mode (kicks too-new accounts on join)
Enforcement hooks (built into the purchase / login flow)
- FREEZE - frozen accounts cannot buy
- LIMIT - per-product purchase limit per user
- HWID ban - banned hardware IDs are rejected at launcher login
2. TECHNICAL CHANGES (in TXBot_V3)
15 new files under cogs/:
admin_economy.py, admin_shop.py, admin_shop_extra.py, admin_licenses.py,
admin_tools.py, admin_security.py, admin_analytics.py, community.py,
admin_help.py, mass_dm.py, user_extras.py, shop_ux.py, social.py,
collectibles.py, shop_buy.py
3 changed files:
utils/helpers.py - exe_name schema fix, plus FREEZE/LIMIT hooks in the purchase flow
database/legacy_schema.py - exe_name schema fix
web/api.py - HWID-ban check in verify_key
New DB tables / columns (created automatically at startup):
Tables: hwid_bans, security_flags, discount_codes, product_schedule,
price_history, user_settings, marriages, friends, pets, user_cards,
card_cooldowns, cart_items, gift_vouchers
Columns: users.frozen, products.purchase_limit, subscriptions.reminded
3. COMPATIBILITY WITH THE SELL BOT
The monolith already has a lot, but not everything the cogs need.
Present in the sell bot (ports cleanly):
db(), get_balance, add_balance, deduct_balance, log_history, get_user_row
em_ok, em_err, em_info, admin_only, now_berlin, is_vip
get_bot_config, set_bot_config, file_stock_count, get_item_by_name
COLOR_MAIN, CURRENCY_EMOJI, BOT_NAME
Missing in the sell bot (needs adaptation):
is_bot_admin(user) - only the admin_only() decorator exists
get_dynamic_price - missing
_execute_purchase_v3 - missing (there is _execute_purchase, different signature)
Tables products, keys, reviews, maintenance_status - missing (shop runs on the "shop" table)
Tables wishlist_items, subscriptions, waitlist, bundles - missing
Tables user_inventory, blacklist - missing
Config TEAM_SECTIONS, MODERATOR_ROLE_ID, ADMIN_LOG_CHANNEL_ID, STAFF_ACTION_LOG_FILE - missing
Bottom line: architecture AND data model differ. Some features port almost
directly, some need new tables/helpers, and the license/reviews/subscription
features assume subsystems the sell bot does not have at all.
4. THREE UPDATE PATHS
Path A - Ship the cogs bot as the product (easiest)
If you can sell TXBot_V3 (the cogs version): everything is already done.
Just deploy the 15 cogs plus 3 changed files and restart. No porting.
Recommended if buyers accept the newer structure.
Path B - Port the features into the sell monolith
Per cog you need to:
1. Remove class …Cog(commands.Cog) / async def setup(bot). Put groups/commands
at module level and register with tree.add_command(...) or @tree.command.
2. Delete "from utils.helpers import *" and "from config import *" - those
names are already global in the monolith.
3. Add missing helpers: is_bot_admin(user) (2 lines); map get_dynamic_price
to the shop price if needed.
4. Create the new tables at startup (move the _ensure_schema() blocks into init).
5. Start the background tasks (@tasks.loop) inside setup_hook.
6. Map _execute_purchase_v3 to _execute_purchase, and products to shop.
Path C - Modernise the monolith to cogs
One larger refactor (add a loader, move code into cogs/). After that every cog
is drop-in. More work, but future-proof.
5. PORTABILITY PER FEATURE (traffic light for the sell bot)
EASY
- Economy admin (/coins, /economy) - uses only users/history plus a frozen column
- /cdm mass DM - members plus admin_only
- Social (/marry, /friend, /pet) - own new tables
- Cards plus /trade - own tables plus get_balance
- Community (poll, event, shoutout, welcome-test) - standard Discord
- /recommend, /receipt - read only purchases (plus Pillow)
MEDIUM
- /community oncall, /reports staff/tickets - need TEAM_SECTIONS / JSON logs
- /lockdown, /unlock, /autorole, /maintenance-all - maintenance needs a new table
- /compare, /botstatus, /reports revenue/products - map products to shop
- /cart, /giftitem, /buybundle - rename the purchase function; bundles new
HARD
- Shop admin (/product …), wishlist, price history - require products/reviews/wishlist_items
- Licenses/launcher (/keys, /hwid), security alt/fraud - the keys system does not exist in the sell bot
6. DEPLOY & TEST CHECKLIST
Cogs bot (TXBot_V3)
- Upload the 15 cogs plus 3 changed files to /home/DC/txbot/
- Restart the bot, check the console for [Cog-Load FEHLER]
- Open /adminhelp, test a few commands
- Test buying live: /cart checkout, /buybundle, /giftitem plus /redeemgift
Sell bot (after porting)
- New tables are created at startup (check the log)
- is_bot_admin and, if needed, get_dynamic_price added
- Background tasks started in setup_hook
- Every ported group shows up after tree.sync()
7. SHORT CHANGELOG FOR YOUR BUYERS (ready to publish)
Update v2.0 - Huge feature pack
New admin suite: economy, shop, license, security and analytics tools, plus /adminhelp
Shop upgrades: cart, wishlist with price alerts, product compare, receipt image,
recommendations, bundle buying, gifting
Community and fun: collectible cards with trading, pets, marriage, friends,
polls, events, shoutouts
/cdm mass DM with a clean embed. Account freeze, purchase limits, HWID bans.
Automation: price alerts, subscription reminders, scheduled product releases
8. RECOMMENDATION & NEXT STEP
- Fast and clean: keep the cogs bot (TXBot_V3) as the product - everything is done there.
- If the monolith must stay: I can port the EASY and MEDIUM features (economy,
/cdm, social, cards, community, recommend/receipt, cart) into the sell bot,
since they fit its data model. The HARD ones (licenses/keys, reviews, wishlist)
would first need new subsystems in the monolith.
Just tell me which path you want and which features should go into the sell bot,
and I will do the porting.
