Skip to content

Navigation Menu

Sign in
Sign up

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.

๐Ÿ“š 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

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /