πContract
Relationship
π Overview
The Contract Module provides a comprehensive BDSM contract creation and management system for formal power exchange relationships. Users can create detailed contracts with customizable sections covering various aspects of the dynamic including roles, responsibilities, boundaries, consent, communication protocols, and more. Features include interactive step-by-step contract building in private threads, mutual consent requirements at every stage, contract editing with amendment tracking, contract termination by either party, automatic DM delivery of finalized contracts, and unique contract ID generation for reference. Both dominant and submissive must agree to each section and the final contract before it's stored and delivered.
βοΈ How It Works
Contract Creation Flow:
Step 1 - Initiation:
Dominant executes
/contract newPrivate thread created automatically
Dominant mentions the submissive partner
System validates the mentioned user (not bot, not self, no existing contract)
Step 2 - Submissive Confirmation:
Submissive receives ping in private thread
"I am here" button appears
Submissive must confirm participation
Process cannot continue without confirmation
Step 3 - Contract Building:
System presents multiple contract sections sequentially
Each section includes:
Agreement statement
Agreement question
Include/Exclude/Skip buttons
If included, both parties discuss and enter mutual agreement
Progress indicator shows current step out of total
Either party can timeout or exclude sections
Step 4 - Review & Consent:
Complete contract displayed in thread
Both parties review all agreed sections
Submissive presented with Accept/Decline buttons
Contract locked during review period
Step 5 - Finalization:
If accepted:
Unique contract ID generated (UUID)
Contract stored in database
Signatures and dates added
2-minute wait period before DM delivery
Both parties receive full contract via DM
Thread archived automatically
If declined:
Contract not stored
Decline notification sent
Thread archived
Contract Sections System:
The system walks through predefined contract steps covering:
Role definitions and expectations
Boundaries and limits
Communication protocols
Safety measures and safe words
Duration and termination clauses
Privacy and discretion
Other relationship-specific agreements
Each section can be:
Included: Both parties write agreement text
Excluded: Section not part of contract
Skipped: Move to next section without including
Contract Editing System:
Edit Flow:
Dominant executes
/contract editwith contract numberSystem validates contract exists
Private thread created
Submissive must confirm participation
Existing agreements shown for each section
Both parties can modify any section
Same review and consent process as new contracts
Amendment date added to contract
Updated contract delivered via DM
Edit Features:
Shows previous agreements for reference
Can add previously excluded sections
Can remove previously included sections
Can modify existing agreement text
Maintains original creation date
Records amendment date
Contract Termination:
Termination Process:
Either party can terminate using
/contract terminateMust provide valid contract number
Only parties involved can terminate
Contract removed from database immediately
Both parties receive termination confirmation via DM
2-minute delay before confirmation sent
Private Thread Management:
Thread Features:
Created automatically in current channel
Named: "[User]'s Contract"
Private thread type (invite-only)
Locked during review periods
Archived after completion/decline
Prevents outside interference
Database Storage:
Contract Document Structure:
Validation & Error Handling:
User Validation:
Cannot create with bots
Cannot create with self
Cannot create duplicate contracts
Member must exist in server
Location Validation:
Cannot use inside existing threads
Must use in regular text channels
Contract Validation:
Must include at least one section
Contract number must be valid
Only participants can edit/terminate
Consent Requirements:
Multiple Consent Checkpoints:
Submissive confirms participation initially
Both parties agree on each section content
Both parties review complete contract
Submissive explicitly accepts final contract
Either party can decline at any point
DM Delivery System:
Delivery Process:
2-minute wait after finalization
Contract split into 2000-character chunks
Sent sequentially to both parties
Includes separator lines between sections
Graceful handling if DMs closed
Warning to open DMs provided in advance
Cooldown Management:
Cooldown Behavior:
Normal cooldown: 10 minutes
Resets on validation failures
Resets on timeouts
Resets on user errors
Prevents spam while allowing retries
π Key Commands
/contract new
/contract newDescription: Create a new BDSM contract with a submissive Access: All members (as dominant) Cooldown: 10 minutes per user Default Permissions: None required
Process Overview:
Step 1 - Thread Creation:
Step 2 - Partner Selection:
Prompt: "Hey {user}, i'll help you set up a contract. Mention the other party, and we'll get started."
Timeout: 120 seconds
Validation: Must be valid user mention
Format: @username
Step 3 - Section Building:
Step 4 - Final Review:
Step 5 - Submissive Consent:
Contract displayed in full text (chunked if needed)
Buttons: β Accept | β Decline
Thread locked during decision
Only submissive can interact
Success Outcome:
Decline Outcome:
Error Responses:
Thread Location Error:
No Mention Error:
Bot Mention Error:
Self Mention Error:
Existing Contract Error:
Incomplete Contract Error:
Timeout Error:
/contract edit
/contract editDescription: Modify an existing contract Access: Dominant of the contract Cooldown: 10 minutes per user Parameters:
contract_number(required): The unique contract ID found in the contract
Process Overview:
Same process as /contract new but with modifications:
Retrieves existing contract data
Shows previous agreements for each section
Allows modification of any section
Adds amendment date to contract
Maintains original creation date
Edit Section Display:
Success Outcome:
Error Responses:
Invalid Contract:
Member Not Found:
Update Declined:
/contract terminate
/contract terminateDescription: Terminate a contract Access: Either party in the contract Cooldown: 10 minutes per user Parameters:
contract_number(required): The unique contract ID found in the contract
Termination Process:
Validates contract exists
Confirms user is a party to the contract
Deletes contract from database immediately
Sends confirmation to user
Waits 2 minutes
Sends DM confirmation to both parties
Success Response:
Error Responses:
Invalid Contract:
Unauthorized:
π₯ Who It's For
Dominants: Create, edit, and terminate contracts with submissives
Submissives: Participate in contract creation, provide consent, terminate if needed
Contract Partners: Both parties have equal ability to terminate contracts
All Members: Can create contracts if taking dominant role
π‘ Why This Feature
Formalizes power exchange relationships with clear documentation. Ensures mutual consent at every stage of the process. Provides structured framework for discussing boundaries and expectations. Creates legally-formatted document for reference. Allows relationship evolution through editing system. Protects both parties through explicit consent requirements. Encourages thorough communication before commitment. Maintains privacy through private threads and DM delivery. Enables clean relationship termination when needed. Promotes responsible BDSM practices.
Made by DIVINITY β’ Pleasure Corner
Last updated
Was this helpful?