Skip to content

Compatibility Left Out

SharpMUSH leaves out some RhostMUSH and TinyMUX functions, commands and switches on purpose. Imported code that calls one of the functions gets #-1 FUNCTION (<NAME>) NOT FOUND, one of the commands gets Huh?, and a command with one of the switches is refused as an unknown switch. The import report names each use and points here.

> think [execscript(backup.sh)]
#-1 FUNCTION (EXECSCRIPT) NOT FOUND
  • account_boot(), account_login(), account_owner(), account_su(), account_who(): SharpMUSH has accounts of its own; see account() and @account.
  • attrpass(), genpassword(), passwd(): a password is never an attribute or a softcode value.
  • isunicode(), isutf8(): text is always Unicode.
  • execscript(), execscriptnr(), logtofile(), stderr(), nslookup(), ipv4math(): they reach the host. Use @http or a plugin.
  • sqlite_query(), sqlon(), sqloff(), sqlping(): sql() runs queries, and the server keeps the connection.
  • crc32obj(), chkgarbage(), safebuff(), limits(), logstatus(), countspecial(): they report RhostMUSH’s own buffers, logs and storage.
  • ruler(), runintz(), listtzones(), secstz(), msecstz(): no time zone design yet.
  • guild(), race(): write get(<player>/GUILD) and get(<player>/RACE).
  • shift(), args(), passthrough(): %10 and up, and uargs(), reach every argument.

A cluster spreads one object’s attributes over several objects to get past RhostMUSH’s limits. An object here holds up to 100,000 attributes, so neither the functions nor @cluster are needed.

  • iscluster(), cluster_add(), cluster_attrcnt(), cluster_default(), cluster_edefault(), cluster_flags(), cluster_get(), cluster_get_eval(), cluster_grep(), cluster_hasattr(), cluster_hasflag(), cluster_lattr(), cluster_regrep(), cluster_regrepi(), cluster_set(), cluster_stats(), cluster_u(), cluster_u2(), cluster_u2default(), cluster_u2ldefault(), cluster_u2local(), cluster_udefault(), cluster_ueval(), cluster_uldefault(), cluster_ulocal(), cluster_vattrcnt(), cluster_wipe(), cluster_xget()

Little used in shipped RhostMUSH code. One is added when a game needs it.

  • array(), template(), strmath(), packmath(), sortlist(), garble(), rotl(), rotr(), trreverse(), ee(), bucket(), lloc(), sees(), writable(), sweep(), quietnomatch(), regnummatch(), regnummatchi(), regeditlit(), regeditilit(), regeditalllit(), regeditallilit(), esclist(), unesclist(), editansi(), ansipos(), xorflag(), listnewsgroups(), listprotection(), inprogram(), programmer(), rset()
  • @mark, @mark_all, @apply_marked, @cut, @fixdb, @dbclean, @bfree, @fnd, @destroyall, @convert, @timewarp: upkeep of RhostMUSH’s database. @backup and @storage look after SharpMUSH’s.
  • @crc32obj, @atrcache, @limit, @flaglevel, @protect, @money, @robot: RhostMUSH’s own administration.
  • @snoop: watching another player’s session.
  • @turtle: @nuke and @chownall do the work.
  • slay: TinyMUD money combat.
  • @rwho, @mudwho, rwho: the RWHO protocol is gone.
  • head, post, put: RhostMUSH’s HTTP on the game port. SharpMUSH’s HTTP handler takes web requests.
  • @door: plugins and @http reach other services.
  • @sqlconnect, @sqldisconnect: the server keeps the SQL connection.
  • @tor: sitelock bans addresses.
  • @remote: @force an object in that room.
  • @list_file: @listmotd and the connect screen show the text files.
  • newsdb, +players, wielded, worn: softcode does these.
  • mail: RhostMUSH’s mail system. @mail is SharpMUSH’s, as in PennMUSH; see compatibility mail.

The switch names are as RhostMUSH spells them, under SharpMUSH’s name for the command.

  • @pemit/noansi, @emit/noansi, say/noansi, pose/noansi, think/noansi, page/noansi, @edit/raw: colour is markup, not text, so there is no raw form to show or edit.
  • @pemit/reality, @pemit/toreality: there are no reality levels.
  • @include/target, @include/sudo, @include/become, @include/possess, @hook/include: they run code as another object or change who owns what runs. @force/inplace runs code as an object you control.
  • @power/guildmaster, @power/architect, @power/councilor, @power/check, @power/purge, @power/off: a power here is a role or a permission, with no levels. See @role.
  • @halt/stop, @halt/cont: @queue/pause <pid> and @queue/resume <pid> pause and resume a queue entry.
  • @wait/recpid, @notify/pid: @wait does not hand back the pid of what it queues. @ps lists pids, and @halt/pid and @wait/pid act on one.
  • @decompile/tags: there is no @tag.
  • @clone/inherit: a clone keeps the original’s flags; its powers come across only with @clone/preserve.
  • @emit/sub, @wipe/owner, @wipe/preserve, @decompile/noextra, @include/override, @include/ignore, @function/protected, @edit/braces, @search/zone, examine/quick, examine/regexp: little used in shipped RhostMUSH code; one is added when a game needs it. @search takes zone=<zone> as a class.
  • rserror(), rsnext(), rsprev(), rsrec(), rsrecnext(), rsrecprev(), rsrelease(), rsrows(): SQL row sets. sql() returns every row at once.
  • setname(), setparent(): write @name and @parent.
  • text(): textfile() reads a text file.
  • format(): wrap() and align() lay out text.
  • mailj(): mail() and mailinfo() read a message.
  • @cron, @crondel, @crontab: @wait and STARTUP queue timed work.
  • @lua: plugins add code in other languages.
  • @clone/cost: there is no money.
  • @emit/html, @pemit/html: softcode never sends raw HTML. Each client gets styled text, pictures and links in its own form.
  • @open/inventory: exits are opened only from rooms.
  • @clist/headers: a channel has no header apart from its name, which @clist shows.
  • @flag/remove: TinyMUX’s @flag renames a flag until the next restart. @flag/alias <flag>=<aliases> sets a flag’s whole alias list here.
  • comtitle/on, comtitle/off, comtitle/gag, comtitle/ungag: everyone sees titles. @channel/mute hides a channel’s connection notices.