Skip to content

Releases: marlovestocode/Synapse-Base

Synapse V1

Choose a tag to compare

@marlovestocode marlovestocode released this 18 Aug 06:25
617a028

Hey everyone! I'm excited to share my new Discord bot handler with you. This project took me just one day to create, so there might be some bugs lurking around. Please don't hesitate to let me know if you encounter any issues or have suggestions for additional features!

Features

Cooldowns: Easily set cooldowns for commands.
Example: Cooldown: ["5"] (or any number you prefer)

Permissions: Set required permissions for commands.
Example: perms: ["Administrator"] (or any other permission)

Guild Only: Restrict commands to guild use or allow them in DMs.
Example: guildOnly: true/false

Dev Only: Limit certain commands to developers.
Example: devOnly: true/false (uses IDs from your config.json)

Analytics: Tracks command usage, users, and guilds (set to dev-only by default)

Prefix Handler: Manages command prefixes

Synapse V5

Choose a tag to compare

@marlovestocode marlovestocode released this 18 Aug 06:41
9f0d216

Changelog — Synapse V5

Dashboard

  • Complete Overhaul: Revamped and optimized for speed and features.
  • New Theme: Dark, professional theme replacing the vibrant purple.
  • Command Management: Improved API reliability and added prefix command support for customization.
  • Subfolder Support: Better organization of commands.

Servers Page

  • Redesigned Layout: Fresh look with enhanced usability.
  • Quick Deployment: "Add to Server" button for easy bot integration.
  • Guild Insights: Detailed statistics including:
    • Total text, voice, category, and thread channels accessible by the bot.
    • Breakdown of small, medium, and large servers.
    • Detection of partnered and verified servers.
    • Total premium tier 3 servers and combined server boost count.
  • Improved Channel Display: Retains previous data for better continuity.

New: Complete Command Management

  • Command Refresh: Refresh commands at will.
  • Command Toggles: Enable/disable specific commands.
  • Synapse Flags: Enable Synapse-specific command flags.
  • Expanded Command View: Assign commands to categories for better organization.

New: Console

  • Live Terminal: View logs in real-time with filtering and search functionality.
  • Available Commands:
    • help — Show available commands.
    • stats — Display bot statistics.
    • guilds — List connected servers.
    • uptime — Show bot uptime.
    • ping — Check bot latency.
    • memory — Display memory usage details.
    • commands — List all available commands.
    • clear — Clear console logs.
    • version — Show bot version information.
  • Log Management: Logs are capped at 200 entries for performance.

New: Complete Base Configuration

  • Hot Reload: Toggle hot reload on/off.
  • Dashboard & Logging: Enable/disable dashboard, command logging, and database system.
  • Maintenance Mode: Restrict bot access to owners and developers.
  • Rate Limits: Configure custom rate limits for user command usage.
  • Global Cooldown: Set a global command cooldown affecting all servers and users.
  • Auto-Recovery: Adjust auto-recovery attempts for crash detection and self-restart.
  • Bot Appearance: Fully customizable settings including custom status, online status toggle, and DM responses.
  • Remote Shutdown: Securely shut down the bot using a hashed security code.
  • User Management: Manage owners, developers, whitelisted, and blacklisted users.
  • Two-Factor Authentication: Added security for bot startup.
  • Database Backup: Local backup system with import/export functionality.

New: Logs Section

  • Centralized Logs: View all logs in one place.
  • Filtering: Filter logs by type.
  • Persistence: Logs persist for one hour before automatic deletion.
  • Management Options:
    • Delete individual logs.
    • Clear logs in bulk.
    • Export logs to a .txt file.

Sidebar Enhancements

  • Real-Time Stats: Display uptime, memory usage, and bot ping.

Core Updates

  • Dynamic Command Fix: Resolved issue with outdated commands persisting.
  • Optimized Caching: Improved storage and memory leak prevention.
  • Hidden Commands: Added hidden: true property to command interactions.
  • Backup Manager: New system for database handling.
  • Status Manager: Customizable bot presence.
  • DbConnector Optimization: Improved performance and efficiency.
  • Config Cleanup: Removed unnecessary fields (dashboardURL, clientSecret, ownerID, developerIDs).
  • Package Checker Rewrite: Faster and supports multiple package managers (npm, yarn, pnpm).
  • Hot Reload Overhaul: Integrated with dynamic command loader.
  • Data Storage Migration: Switched from JSON to SQLite (dashboard.db).
  • Component Restriction: Added interactionUserOnly: true to restrict component usage to the interaction user.
  • Anti-Crash Fix: Resolved critical issue with the bot restart system.

Quality of Life Improvements

  • Startup Sequence: Separated into distinct loading phases.
  • Synapse ASCII Art: Displays version and credits on startup.
  • Intent Checker: Improved with partial support.
  • Multi-Bot Support: Added support for managing multiple bots.

This was a massive update, so expect some bugs. Please report them!
Synapse V5 is finally here — major improvements across the board. Enjoy the new features, optimizations, and enhanced control over your bot’s functionality.

Synapse V4

Choose a tag to compare

@marlovestocode marlovestocode released this 18 Aug 06:39
9f0d216

Changelog

Changes

  • Removed HotReload for commands
    Will be added back in V5, currently causing too many issues. Still available for everything else.
  • New utils paths for better readability.
  • Removed Package Checker
    Full system rewrite planned for V5.
  • Login improvement: No longer requires ClientID.
  • Config validation system
    If required fields are missing, you'll be prompted in the terminal.
  • Dynamic Command Registration
    Implemented and tested, but may still contain bugs. Please report any issues.
  • Rewrote index.js
    Necessary for the auto restarter, looks a bit funky but functional.
  • Owner-only dashboard
    Can be shared with friends using Live Share. Ensure it runs on localhost:3000 when sharing.

Bug Fixes

  • Auto Restarter
    Fixed breaking bug where token was not provided. Restarts properly now.
  • IntentChecker update
    Added support for prefixes. Will automatically add MessageContent and GuildMessages if prefix commands are used.

That’s it for now! It’s tough to keep track of all the changes, so please report any issues you find.

Synapse V3

Choose a tag to compare

@marlovestocode marlovestocode released this 18 Aug 06:36
9f0d216

Synapse Base v3 - Advanced Systems Update

Major Enhancements

  • Advanced Caching System – multiple cache strategies for different use cases
  • Automatic Intent Detection – no need to manually configure most intents
  • Command Aliasing Support – easier command access with custom aliases
  • Template Generation System – quickly scaffold commands, events, and utilities
  • Role Management Utilities – streamlined role hierarchy and permissions handling
  • Hot Reload Improvements – safer reloads with memory leak prevention
  • Enhanced Logging System – cleaner output with improved formatting and color scheme

Other Changes

  • Fixed utils/Cache/Cache.js, optimized memory usage
  • Fixed minor bug in utils/ComponentHandler.js not updating component cache
  • Rewrote utils/HotReload.js to avoid memory leaks
  • Rewrote utils/DBConnector.js to handle MongoDB and SQLite more efficiently
  • Added utils/timedCache for efficient memory management
  • Added utils/RoleUtils for role hierarchy management
  • Modified utils/Logger.js with improved formatting
  • Fixed bug in utils/PackageChecker.js involving npm installs
  • Logs now use new color scheme for better visibility

Caching System FAQ

Q: How do the different caches work?
There are three types:

  • TimedCache – auto-expires after a set duration
  • LRUCache – limited by size, automatically evicts oldest entries
  • ExpiryMap – allows custom expiration dates

Q: Can I use multiple cache types?
Yes. Each serves different purposes:

  • Use TimedCache for temporary data
  • Use LRUCache for limited storage
  • Use ExpiryMap for scheduled deletions

Synapse V2

Choose a tag to compare

@marlovestocode marlovestocode released this 18 Aug 06:25
9f0d216

Synapse Base v2 - The Overhaul Update

Major Features

  • Hot Reload System – Live code updates without bot restarts
  • Database Integration – MongoDB and SQLite support with automatic setup
  • Package Management – Automatic dependency handling and cleanup

Systems & Architecture

Process Management

const MAX_RECONNECT_ATTEMPTS = 5;
const RECONNECT_INTERVAL = 5000;

const attemptReconnect = () => {
    if (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) {
        reconnectAttempts++;
        console.log(`Attempting to reconnect... (${reconnectAttempts}/${MAX_RECONNECT_ATTEMPTS})`);
    }
}
  • Auto-reconnection with configurable attempts
  • Graceful shutdown handling
  • Enhanced error catching

Command System Overhaul

if (command.devGuild) {
    guildCommands.push(command.data.toJSON());
} else {
    globalCommands.push(command.data.toJSON());
}
  • Split between global/guild commands
  • Dev guild support
  • Improved validation

Component Architecture

client.componentsByType = new Map();
const usedCustomIds = new Set();

if (usedCustomIds.has(component.customId)) {
    client.logs.error(`Duplicate customId "${component.customId}" found. Component IDs must be unique.`);
}
  • Type categorization
  • CustomId conflict prevention
  • Improved validation

Performance & Reliability

  • Optimized command registration
  • Enhanced error boundaries
  • Memory leak prevention
  • Improved file handling

Developer Experience

Enhanced Logging

const logLevels = new Map([
    ['database', { color: colors.fg.orange, label: "DATABASE" }],
    ['startup', { color: colors.fg.purple, label: "STARTUP" }],
    ['hotReload', { color: colors.fg.white, label: "HOTRELOAD" }]
]);
  • New log types and categories
  • Color-coded outputs
  • Better timestamp formatting

Debug Features

  • Component tracking
  • Database connection monitoring

Bug Fixes

  • Fixed command cooldown memory leaks
  • Resolved component registration conflicts
  • Fixed event handler memory issues
  • Improved error catching in interaction handling

Migration Notes

  • Database configuration required in config.json
  • New folder structure for components
  • Updated event handling implementation