How 123jsen/discord-farm-game works
Dodo’s Weed Farm is a Discord farming game. Players use slash commands to manage crops and buildings, trade resources, and participate in server-wide prestige races; game state is persisted in MongoDB. The graph shows the documented command capabilities and the sampled service/model relationships. Some command handlers and services were not excerpted, so their internal call links are omitted rather than inferred.
Main entry points: prestige.service.js Race and prestige · player.js Player setup · player.model.js Player records · build.service.js Building management
Components 29
Discord runtime
- Player setup
src/player.js - Help and listings
src/commands/help.command.js - Bot entry and middleware
src/app.js
Farm gameplay
- Farm commands
src/commands/plant.command.js - Crop lifecycle
src/services/farm.service.js - Farm views
src/commands/farm.command.js - Building commands
src/commands/build.command.js - Building management
src/services/build.service.js - Farm upgrades
src/commands/upgrade.command.js - Upgrade logic
src/services/upgrade.service.js
Economy and progression
- Trade commands
src/commands/give.command.js - Resource trading
src/services/trade.service.js - Contract commands
src/commands/makecontract.command.js - Prestige commands
src/commands/prestige.command.js - Race and prestige
src/services/prestige.service.js - Achievements
src/services/achievement.service.js - Code breaker
src/commands/minigame.command.js - Minigame logic
src/services/minigame.service.js - Smoke command
src/commands/smoke.command.js - Smoke service
src/services/smoke.service.js
State and game data
- Player records
src/models/player.model.js - Server race state
src/models/server.model.js - Trade contracts
src/models/contract.model.js - Crop catalog
data/crops/export.js - Building catalog
data/buildings/export.js - Upgrade catalog
data/upgrades/export.js - Catalog loader
data/export.base.js
Other components
- Discord users
- MongoDB
Connections 36
- Discord users → Bot entry and middleware: invoke commands
README.md - Bot entry and middleware → Player setup: resolve players
src/app.js - Bot entry and middleware → Race and prestige: check race expiry
src/app.js - Farm commands → Crop lifecycle: run crop actions
src/commands/plant.command.js - Farm commands → Crop catalog: supply crop catalog
src/commands/plant.command.js - Crop lifecycle → Race and prestige: resolve race success
src/services/farm.service.js - Crop lifecycle → Achievements: unlock achievements
src/services/farm.service.js - Farm views → Crop catalog: read crop catalog
src/commands/farm.command.js - Farm views → Building catalog: read building catalog
src/commands/farm.command.js - Building commands → Building management: run building actions
src/commands/build.command.js - Building commands → Building catalog: supply building catalog
src/commands/build.command.js - Building management → Player setup: check affordability
src/services/build.service.js - Building management → Achievements: unlock achievements
src/services/build.service.js - Building management → Player records: recalculate effects
src/services/build.service.js - Farm upgrades → Upgrade logic: run upgrades
src/commands/upgrade.command.js - Farm upgrades → Upgrade catalog: supply upgrade catalog
src/commands/upgrade.command.js - Trade commands → Resource trading: run resource transfers
src/commands/give.command.js - Contract commands → Resource trading: manage contracts
src/commands/makecontract.command.js - Contract commands → Trade contracts: provide contract model
src/commands/makecontract.command.js - Resource trading → Achievements: unlock achievements
src/services/trade.service.js - Prestige commands → Race and prestige: manage prestige race
- Race and prestige → Player setup: check costs
src/services/prestige.service.js - Race and prestige → Player records: find race initiator
src/services/prestige.service.js - Race and prestige → Achievements: unlock prestige awards
src/services/prestige.service.js - Code breaker → Minigame logic: run minigame
src/commands/minigame.command.js - Smoke command → Smoke service: run smoke feature
- Help and listings → Discord users: present game guide
README.md - Player setup → Player records: find or create
src/player.js - Player setup → Server race state: find or create
src/player.js - Player records → Building catalog: calculate building effects
src/models/player.model.js - Crop catalog → Catalog loader: load JSON catalog
data/crops/export.js - Building catalog → Catalog loader: load JSON catalog
data/buildings/export.js - Upgrade catalog → Catalog loader: load JSON catalog
data/upgrades/export.js - Player records → MongoDB: persist player state
- Server race state → MongoDB: persist server state
- Trade contracts → MongoDB: persist contracts