Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

219 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weky Logo

@m3rcena/weky

The Modern Discord.js v14 Game Engine

Strictly Typed. Crash Proof. Maintenance First.
The spiritual successor to the original `weky`, rewritten for modern bots.

NPM Version Downloads Discord Support

DJS v14 TypeScript Made in Greece


🚨 Why use this over the old weky?

The original weky library is legendary, but it is no longer maintained and breaks on Discord.js v14 due to changes in the Interaction API.

Feature ❌ Old weky ✅ @m3rcena/weky
Discord.js Support v12 / v13 v14 (Latest)
Type Safety ⚠️ Loose / Any 🛡️ 100% Strict TypeScript
Interaction Handling ❌ Crashes often ✅ Auto-detects Slash/Message
Maintenance 💀 Abandoned 🚀 Active Development

⚡ Features

  • Discord.js v14+ Native: Built specifically to handle the new Interaction and Button systems without crashing.
  • Hybrid Context: One function works for both Slash Commands (/) and Legacy Messages (!).
  • Zero "Any" Types: Full intellisense support in VS Code.
  • Plug & Play: No complex setup or databases required.
  • Fully Customizable: Change button styles, embed colors, texts, and timeouts.

📦 Installation

npm install @m3rcena/weky
# or
yarn add @m3rcena/weky
# or
pnpm add @m3rcena/weky

🚀 Quick Start (TypeScript / ESM)

1. Initialize the Manager

import { Client, GatewayIntentBits } from "discord.js";
import { WekyManager } from "@m3rcena/weky";

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ],
});

client.on("ready", (c) => {
  console.log(`✅ ${c.user.tag} is online!`);
  // Initialize Weky with your client
  client.wekyManager = new WekyManager(c);
});

client.login("YOUR_BOT_TOKEN");

2. Create a Game

Our new context system automatically detects if the command was sent via Slash Command or standard message.

🟢 Calculator (Modern Usage)

import { CommandInteraction, Message } from "discord.js";

// Inside your command handler
export async function run(interaction: CommandInteraction | Message) {
    await client.wekyManager.createCalculator({
        context: interaction, 
        embed: {
            title: "Calculator | M3rcena",
            color: "Blurple", 
            timestamp: new Date(),
        },
        disabledQuery: "Calculator is disabled!",
        invalidQuery: "The provided equation is invalid!",
        othersMessage: "Only <@{{author}}> can use the buttons!",
    });
}

🎮 Available Games

Game Function Status
2048 create2048 ✅ Stable
Calculator createCalculator ✅ Stable
Fight createFight ✅ Stable
Guess The Number createGuessTheNumber ✅ Stable
Will You Press? createWillYouPressTheButton ✅ Stable
Snake createSnake ✅ Stable
Rock Paper Scissors createRPS ✅ Stable

📸 See it in Action

Tip: Games are fully interactive using Discord Buttons.

Fight Preview 2048 Preview

📚 Documentation

Need advanced customization? Check our full docs for button styling, custom messages, and timeout handling.

Documentation

🤝 Support & Community

Found a bug? Have a game request? Join the support server.

Discord Banner

💻 Developers


Made with ❤️ in Greece

About

No description, website, or topics provided.

Resources

Security policy

Stars

2 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages