Unionize
A free to use, modern Discord bot for creating families within Discord
Install / Use
/learn @Benzo-Fury/UnionizeREADME
Table Of Contents
Why?
- Supports poly relationships.
- Modern & Minimalistic
- Made for speed
Technical 🛠️
sern Handler <img src="https://raw.githubusercontent.com/Benzo-Fury/Unionize/refs/heads/main/public/images/header%20emojis/sern.png" style="width: 24px; height: 24px; vertical-align: middle; margin-left: 2px;">
Unionize has been written using the latest version of the sern bot framework. I've been a supporter of this framework for years and I highly recommend them for your next bot.
Databases <img src="https://raw.githubusercontent.com/Benzo-Fury/Unionize/refs/heads/main/public/images/header%20emojis/database.png" style="width: 24px; height: 24px; vertical-align: middle; margin-left: 2px; margin-bottom: 2px;">
Unionize runs 2 databases consecutively for different purposes. Neo4j is used to store relationships between users and MongoDB is used for everything else.
Neo4j <img src="https://raw.githubusercontent.com/Benzo-Fury/Unionize/refs/heads/main/public/images/header%20emojis/Neo4j.png" style="width: 24px; height: 24px; vertical-align: middle; margin-left: 2px;">
Modules will never access the N4j client directly and therefor never handle or use cypher. All commands use the models created for them (N4jUser, N4jGuild, etc) or interact with the data interpreter.
Mongodb <img src="https://raw.githubusercontent.com/Benzo-Fury/Unionize/refs/heads/main/public/images/header%20emojis/Mongodb.png" style="width: 24px; height: 24px; vertical-align: middle; margin-left: 2px; margin-bottom: 3px;">
Our use of MongoDB is less strict due to its already strong model like ecosystem. This allows commands to interact with the DB via these models.
Graphing 📊
Family trees can be viewed with the /tree command. At the point of writing this, this command uses graphviz to render a pretty bad looking but great functionality graph. In future this will use D3 and a headless browser and look something like:
Versioning 🏷️
Unionize uses semantic versioning along with pre release labels. The format is followed:
{flag}-{major}.{minor}.{hotfix}
Usable Flags
| Version Name | Flag | Description |
| ------------------- | -------- | --------------------------------------------------------------------- |
| stable | s | Fully tested and production-ready release. |
| alpha | a | Early development version, unstable and may contain breaking changes. |
| beta | b | Feature-complete but may still contain bugs. |
| release candidate | rc | Nearly stable but requires final testing. |
Usage Docs
Proposals <img src="https://raw.githubusercontent.com/Benzo-Fury/Unionize/refs/heads/main/public/images/header%20emojis/heart.png" style="width: 24px; height: 24px; vertical-align: middle; margin-left: 2px; margin-bottom: 6px;">
Lifetime
The lifetime of a proposal will work as followed:
graph TD;
proposalCreated(Proposal created)
proposalDenied(Proposal is auto-denied)
proposalDeleted(Proposal deleted)
proposalCreated-->|Wait 48hrs|isResponse{{Has there been a response?}}
isResponse-->yes & no
yes-->|Wait 48 hrs|proposalDeleted
no-->proposalDenied
proposalDenied-->|Wait 48 hrs|proposalDeleted
Incest Levels 👬
Use this table to understand what IL correlates to what relationships. Keep in mind only premium users can modify their IL.
| IL Level | Allowed Relationships | Examples |
|-------------|--------------------------|-------------|
| 0 (Strict) | No relatives at all | Only completely unrelated people can marry |
| 1 | Distant cousins (8th+ cousin, removed) | "8th cousin 2 times removed" |
| 2 | Moderate cousins (5th+ cousin) | "5th cousin", "5th cousin 1 time removed" |
| 3 | Close cousins (3rd+ cousin) | "3rd cousin", "4th cousin" |
| 4 | First cousins allowed | "1st cousin" |
| 5 | Sibling of spouse, grandnieces/nephews | "niece/nephew", "aunt/uncle" |
| 6 | Siblings allowed | "sibling" |
| 7 | Parent-child, grandparent-grandchild allowed | "parent", "grandparent" |
🚀 Future Plans
These are ideas and planned features that are likely to be implemented but are not yet confirmed.
🔹 Database & Query Improvements
-
Convert predefined Cypher files into dynamically generated Cypher queries in JavaScript.
- Allows more flexible queries without needing to specify
ON CREATEparameters every time. - Improves performance and adaptability.
- Allows more flexible queries without needing to specify
-
Future command execution should prioritize models over the Neo4j Data Interpreter:
- A refined plugin should create models for the user executing the command.
- These models will be accessible via state and have methods for easier data interaction.
- Reduces dependency on direct database queries.
❤️ Relationship & Interaction Features
-
Love Levels
- Users will have love levels with anyone they are related to (directly or indirectly).
- Love levels will be stored in a MongoDB collection.
- Some interact commands may be partner-only.
- Love Level Decay:
- Love levels slowly decrease over time.
- Decay rate can be customized (
/set-decay-rate)—potentially a premium feature.
- Love levels will affect certain commands (e.g.,
/kissanimations change based on love level).
-
Memory Book / Relationship Milestones
- Keeps track of key events like:
- First kisses 💋
- Adoptions 🏡
- Marriage anniversaries 💍
- This could be a premium-only feature.
- Keeps track of key events like:
-
Memories Feature (like Facebook Memories?)
- Sends reminders like:
"It's your 3-month anniversary!"🎉"You've been married for 6 months!"🥳- Or a command
/relation-lengththat checks how long you've had a relationship with a specified user.- Changes response or adds different emojis dependant on the relation.
- Could be sent via DMs or appear when using relevant commands.
- Possibly a premium-only feature.
- Sends reminders like:
-
Daily Challenges
- Example:
"Hug 3 members in your tree today!" - Completing challenges could increase love level or earn bonus rewards.
- Example:
🎉 Seasonal Events & Special Commands
- Introduce seasonal or limited-time events:
- 🎃 Halloween:
/carve-pumpkin - 🎄 Christmas:
/decorate-tree - 💖 Valentine’s Day: Love level boosts
- These events could boost love levels and encourage user engagement.
- 🎃 Halloween:
🛠️ Command & System Enhancements
- Implement cooldowns on certain commands.
- Determine if premium features should be per-user or per-guild.
- If per-guild, admins could use
/set-decay-ratefor global settings.
- If per-guild, admins could use
🔹 Premium Features
- Higher traversal depth for family trees.
- Lower decay rate for love levels.
- Exclusive seasonal events and memories.
Other
- Remove the language manager from global namespace.
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
