ID:280017
 
Hello all; I haven't been on BYOND much at all in the recent years. I know BYOND is probably the best platform around for rapid Text MUD development. However I am no programmer, so I am looking for a pre-made engine with combat, inventory, character creation, saving/loading, etc etc... so that I may have the infrastructure in place to start building a MUD.

Does anyone know if such a resource exists?

Thanks all.

~Kujila
I can't comment on the quality, but Dan himself made a MUD engine.

This is the engine: http://www.byond.com/developer/Dan/mud
This is a combat system made by Dan: http://www.byond.com/developer/Dan/NightSoil
And this is an example MUD combining the two above: http://www.byond.com/developer/Dan/Source.NightMud

(I don't know if the links to the latter two are still working - hopefully they are!)

As I remember it, it's very barebones but straightforward and elegant to work with.
Thanks, I'll take a look.

Does this one work with Telnet clients? Does BYOND 4.0 still do Telnet? I think BYOND 3 allowed Telnet users to connect as well as the regular BYOND client.

I don't remember any of the specifics

~Kujila
As far as I know BYOND still does Telnet, The Saloon makes use of it.
BYOND 4.0 has telnet support, yes. I use it regularly. I don't know whether Dan's library works with telnet though, sorry!
Thanks a lot guys. This MUD tutorial seems pretty good. Even without Telnet I guess it doesn't matter since apparently DM can build EXE's now (?!).

I am getting a build error on it, though:

\lib\dan\mud\action.dm:14:error: visibility: undefined var
\lib\dan\mud\action.dm:48:error: visibility: undefined var

Sorry for the newbie questions, but thanks for the help!

I think I need to go find my old "Blue Book" lying around. (Hopefully the syntax hasn't changed much since the printed copy)

~Kujila
'visibility' was once a builtin variable the functionality of which is now taken care of by the 'invisibility' var. I don't remember the specifics of how they work, but once you brush up on DM's syntax you should look up 'invisibility' in the DM Reference and replaces mentions of 'visibility' with that. Someone who is more familiar with DM could probably post here with the specifics.
Hey you were right again Toadfish; I changed it to invisibility and it compiles ok.

Tell me if you think my logic is correct here:

since visibility = invisibility, and those are opposites,

I changed

"visibility = 0" to "invisibility = 1"

and

"set visibility = 0" to "set invisibility = 1"


It's just switched, right?

Thanks again.

~Kujila
In response to Toadfish
Anything programmed in DM can use Telnet ... as long as it has been programmed correctly...

One of the best MUD sources was made by Ebonshadow I believe.
That seems okay, Kujila. I'd still check the reference to make sure what the effect of setting invisibility = 1 is (visibility could receive only two values: 0 or 1, whereas invisibility can receive multiple, if I remember correctly).
Not sure if this still works, but...
http://www.byond.com/developer/Alathon/Intermundia
Did you even try to compile that before suggesting it?

loading Intermundia2.dme
ebonshadow_inputs.dm:88:error: dd_text2list: undefined proc
ebonshadow_inputs.dm:98:error: dd_text2list: undefined proc
ebonshadow_inputs.dm:103:error: dd_text2list: undefined proc
ebonshadow_inputs.dm:145:error: dd_list2text: undefined proc
ebonshadow_inputs.dm:161:error: dd_list2text: undefined proc
ebonshadow_inputs.dm:175:error: dd_list2text: undefined proc
ebonshadow_mudbase.dm:74:error: dd_replacetext: undefined proc
prompt.dm:33:error: dd_replacetext: undefined proc
prompt.dm:36:error: dd_replacetext: undefined proc
prompt.dm:39:error: dd_replacetext: undefined proc
prompt.dm:42:error: dd_replacetext: undefined proc
prompt.dm:45:error: dd_replacetext: undefined proc
prompt.dm:48:error: dd_replacetext: undefined proc
prompt.dm:52:error: dd_replacetext: undefined proc
prompt.dm:54:error: dd_replacetext: undefined proc
calender.dm:2:error: real_time: unknown variable type
calender.dm:3:error: game_time: unknown variable type
mud.dm:788:error: game_time.CurrentTime: undefined type: game_time.CurrentTime
parser.dm:134:error: Allowed: undefined var
parser.dm:136:error: Error: undefined proc
parser.dm:150:error: Commands.len: undefined var
parser.dm:151:error: Commands.len: undefined var
parser.dm:152:error: Commands: undefined var
parser.dm:154:error: Commands: undefined var
parser.dm:154:error: Commands.Copy: undefined var
parser.dm:154:error: Commands.Copy: undefined var
parser.dm:157:error: Commands: undefined var
parser.dm:271:error: ParseMatch: undefined proc
abilities.dm:185:error: dd_replacetext: undefined proc
abilities.dm:186:error: dd_replacetext: undefined proc
abilities.dm:187:error: dd_replacetext: undefined proc
abilities.dm:188:error: dd_replacetext: undefined proc
abilities.dm:192:error: dd_replacetext: undefined proc
abilities.dm:193:error: dd_replacetext: undefined proc
abilities.dm:194:error: dd_replacetext: undefined proc
abilities.dm:195:error: dd_replacetext: undefined proc
abilities.dm:199:error: dd_replacetext: undefined proc
abilities.dm:200:error: dd_replacetext: undefined proc
abilities.dm:201:error: dd_replacetext: undefined proc
abilities.dm:202:error: dd_replacetext: undefined proc
abilities.dm:208:error: dd_replacetext: undefined proc
abilities.dm:209:error: dd_replacetext: undefined proc
abilities.dm:210:error: dd_replacetext: undefined proc
abilities.dm:211:error: dd_replacetext: undefined proc
abilities.dm:215:error: dd_replacetext: undefined proc
abilities.dm:216:error: dd_replacetext: undefined proc
abilities.dm:217:error: dd_replacetext: undefined proc
abilities.dm:218:error: dd_replacetext: undefined proc
abilities.dm:222:error: dd_replacetext: undefined proc
abilities.dm:223:error: dd_replacetext: undefined proc
abilities.dm:224:error: dd_replacetext: undefined proc
abilities.dm:225:error: dd_replacetext: undefined proc
calender.dm:8:error: game_time.setAlwaysConsiderLeapYears: undefined type: ˙˙me_time.Calendar
calender.dm:9:error: game_time.setTimeSpeed: undefined type: game_time.setTimeSpeed
calender.dm:10:error: game_time.setBaseYear: undefined type: game_time.setBaseYear
abilities.dm:423:error: format: undefined var
abilities.dm:426:error: Process: undefined proc
abilities.dm:431:error: format: undefined var
abilities.dm:440:error: format: undefined var
abilities.dm:442:error: Process: undefined proc
abilities.dm:449:error: format: undefined var
abilities.dm:451:error: Process: undefined proc
abilities.dm:464:error: format: undefined var
abilities.dm:466:error: Process: undefined proc
boards.dm:142:error: format: undefined var
boards.dm:191:error: format: undefined var
calender.dm:14:error: format: undefined var
calender.dm:18:error: real_time.CurrentTime: undefined type: real_time.CurrentTime
calender.dm:19:error: game_time.CurrentTime: undefined type: game_time.CurrentTime
calender.dm:16:error: Process: undefined proc
channels.dm:165:error: format: undefined var
channels.dm:202:error: format: undefined var
channels.dm:217:error: format: undefined var
channels.dm:247:error: format: undefined var
channels.dm:263:error: format: undefined var
channels.dm:452:error: format: undefined var
channels.dm:473:error: format: undefined var
channels.dm:333:error: format: undefined var
help.dm:151:error: format: undefined var
OLC.dm:287:error: format: undefined var
OLC.dm:323:error: format: undefined var
OLC.dm:342:error: format: undefined var
OLC.dm:345:error: Process: undefined proc
OLC.dm:755:error: format: undefined var
OLC.dm:757:error: Process: undefined proc
OLC.dm:779:error: format: undefined var
OLC.dm:1155:error: format: undefined var
OLC.dm:1414:error: format: undefined var
OLC.dm:1659:error: format: undefined var
OLC.dm:1662:error: Process: undefined proc
resets.dm:4:error: format: undefined var
shell.dm:195:error: format: undefined var
shell.dm:198:error: Process: undefined proc
socials_olc.dm:3:error: format: undefined var
socials_olc.dm:25:error: format: undefined var
wizobj.dm:8:error: format: undefined var
wizobj.dm:97:error: format: undefined var
wizobj.dm:113:error: format: undefined var
wizobj.dm:127:error: format: undefined var
wizobj.dm:141:error:
Intermundia2.dmb - 458 errors, 1 warning (max count reached) (double-click on an error to jump to it)
In response to Zecronious
Looks to me like you need to download Deadron.TextHandling, Deadron.Calendar, and AbyssDragon.Parser.

There's still one or two compile-time errors, but that may just be from some minor change in syntax over the years.
Why don't people ever read the files that come with libraries ..

setup.txt

The MUD only needs one thing as 'extra' setup, provided that you have


the following libraries installed: AbyssDragon.Parser, Deadron.Calender, Deadron.TextHandling





Those libraries may be found at developer.byond.com, under the Libraries section.


Please note that AbyssDragon.Parser requires a BYONDscape subscription, at a meager


price of $1, which provides you with lots of other content too, anyway!



The modification is as follows, to the library AbyssDragon.Parser:



Replace the following line(Use the search function): cont = (!temp_list || temp_list.Find(match))

With this line : cont = (!temp_list || temp_list.Find(match) || List == "world")
Intermundia isn't a library, if that's what you're referring to. It's a base source code, which is completely different. Libraries are used in sources, but complete sources can only be built off of, I think. Or at least in this case, if I understand it right.
It's a library, just a pretty big library. Nothing wrong with that.


Flick wrote:
Not sure if this still works, but...
http://www.byond.com/developer/Alathon/Intermundia

Hey there old-timer.
In response to Zecronious
No, I didn't. I was at work and posting from my phone. That's why I said I wasn't sure if it still worked.
In response to Toadfish
Morning ;)