Skip to content

tydel/IdleRPG-ng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IdleRPG

A Python rewrite of the classic IRC IdleRPG bot inspired by https://idlerpg.net/.

The core game is deliberately separate from IRC. idlerpg.game.Game owns levels, penalties, items, battles, quests, movement, and persistence-friendly state. idlerpg.irc.IrcBot is the network adapter.

Quick Start

.venv/bin/python -m idlerpg --init-config idlerpg.toml
.venv/bin/python -m idlerpg --config idlerpg.toml

Edit idlerpg.toml before connecting it to a real network.

For a NickServ-registered bot nickname, set nickserv_nick and nickserv_password in idlerpg.toml. When both are present, the bot uses SASL PLAIN during IRC connection registration.

The IRC connection also has client-side liveness checks. client_liveness_message_interval controls how often the bot sends a protocol PING when connected, and defaults to 30 seconds. server_ping_timeout controls how long a silent connection is tolerated before the socket is closed and the normal reconnect loop starts.

Commands

Private-message the bot:

  • REGISTER <username> <password> <class>
  • LOGIN <username> <password>
  • LOGOUT
  • STATUS [username]
  • ALIGN good|neutral|evil
  • QUEST
  • INFO

Admin private-message commands:

  • DELOLD <days>
  • DEL <username>
  • MKADMIN <username>
  • DELADMIN <username>
  • HOG
  • CHPASS <username> <password>
  • CHUSER <username> <new username>
  • CHCLASS <username> <new class>
  • PUSH <username> <seconds>
  • BACKUP
  • RELOADDB
  • PAUSE
  • SILENT <0-3>
  • LOGLEVEL <DEBUG|INFO|WARNING|ERROR|CRITICAL>
  • RAW <irc protocol line>
  • CLEARQ
  • REHASH
  • DIE
  • RESTART
  • JUMP <server[:port]>
  • PEVAL <expression> when explicitly enabled in config

The game channel is intentionally punitive: player chat, notices, nick changes, parts, quits, and kicks add time to the player's next level.

On startup, the bot scans the channel with WHO, auto-logs matching users from the previous database state, and gives logged-in users +v.

Development

.venv/bin/python -m unittest

About

A Python rewrite of the classic IRC IdleRPG bot inspired by https://idlerpg.net/.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages