To get this a back on track, I'd like to summarize what was said here and add my own thoughts. I am a mudlet dev, so I might be biased and I don't use Nexus much (though I fiddled with it at the beginning): Pro Nexus: - Builtin GUI - Uses JavaScript, which has hands down the greater user base and thus greater chance to find (more or less specific) help. - Almost everything has been done already with JavaScript and can be found on the internet. - It has simplified scripting, which is great to get you started. - Nexus runs in a browser and your settings are everywhere you can access the internet
Contra Nexus: - I find it hard to find documentation about Nexus (How do I interact with the GUI programmatically? Is there a public interface or is the interface private and my interaction can break at any time? How do I add external JavaScript modules, most documentation is about having development access to the webpage? Are there any function that would make my life easier when working with Nexus, i.e. How do I echo to the main console...?) - As far as I can see there are no tutorials about doing things in Nexus. It's always "It's just JavaScript, you'll find examples on the internet". - The publicly available map is at the mercy of the development team. When I used that map, it had serious holes in it.
Pro Mudlet: - A lot of scripts are about (though with varying degree of quality) - I think the Mudlet documentation regarding the scripting interface is far superior. We could improve the "prose" manual, though. - Documentation and source are open and our development process is very transparent. We are also willing to mentor and help to get features in (but our free time is limited ) - Speedwalking/pathfinding is more flexible. - Choice between official map (new areas might appear there earlier) or Crowdsourced map (People can just add the stuff they want to be mapped, more features)
Contra Mudlet: - It's a native application, which means it needs to be installed on the computer you use it - Settings are hard to take with you - More complex means more time to learn the initial use - No builtin GUI
I probably missed some stuff that was said between the bickering and some of my own additions might be out of date. I'd be happy about corrections.
In the end, everyone has to choose their own set of features they need/want and should probably try both versions. I think both are viable options.
I'm not convinced about this "pro Nexus" item: Uses JavaScript, which has hands down the greater user base and thus greater chance to find (more or less specific) help.
Can't argue against it using JavaScript, that's obviously true. I also can't argue against JavaScript having the greater user base, in general terms. In terms of code written specifically for Achaea, I'd say that's arguably not true. The JavaScript documentation is fantastic, but when the documentation isn't sufficient - and for a lot of people new to coding the documentation rapidly becomes insufficient - you need somebody who can give you specific, tailored assistance with your problem. There are places outside of the community where you can get that help, but it's a lot easier if the person helping you inherently understands the context of your problem and doesn't need you to explain it in great detail (something people who are new to coding are also, on the whole, very bad at).
The chances of getting that help specifically for Achaea is likely much higher for Mudlet/Lua than it is for Nexus/JavaScript. Even people who know JavaScript for reasons other than Achaea aren't necessarily going to be able to - or want to - help you with Nexus, because there are no doubt specific quirks of coding for the client that they're not aware of.
Well the thing about JS is that how you interact with the web page is the same regardless of if you're playing Achaea or browsing Google. For instance I could write a script that reads all UI elements on a page, and it'll work for both Google and Achaea. Yes there are Achaea specific things you gotta find but it's kinda the same with mudlet too. It is definitely true that mudlet's interaction with Achaea is better explored, but it's also true there are crazy amounts if generalized JS things that will work for Achaea as well.
How many generalized JS scripts are useful in Achaea though? I mean, We're not talking anything that sends data to the client or displays a message to the main console, because all that is Achaea specific and your helper would need to know those functions. Nothing that interacts with aliases, triggers, hotkeys, or Nexus functions. Nothing that spans modules.
Right. I probably didn't phrase that correctly. A script to "interact with the div elements of a page" will be, with small tweaks or none at all, usable for any webpage (Nexus client included). And there are tons of those of all shapes and sizes out there already. That's just an example and I don't even use JS often.
You are right. But then someone who is new must know that the main console is a "div" (how would they know), must find documentation how to append to a div, must find the right div... you get my drift. And how would they find out? There is no basic "how do I echo stuff" tutorial (that may explain divs and so on and lead into the wide world of javascript if you want to). People who want to script their own stuff are expected to know quite a bit about how webpages work (and it's not very obvious that Nexus is just a normal webpage).
So they will be lead into the forest (Nexus), get said "it's all woodmanship" (It's all javascript), get a mobile device (for googling) and then the guide disappears.
I spent 30 minutes on Nexus last night, could not figure out how to make an alias do what I wanted to do. The interface is wonky at face value knowing nothing about it.
I wanted to make this: ^d([a-Z])$
local venom = {
c = “curare”, k = “kalmia”, }
ven1 = venom[matches[2]]
send(“attack target with ven1”)
I’m not sure if I was doing something wrong, but I couldn’t figure out where to actually code anything without the simplified scripting (which I don’t want to use). Help pls
Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
Hmm well you need to at least hook up running your suite of scripts in the "on load" of the window. Just like in mudlet you often have stuff run on load, same thing needs to happen for Nexus.
I spent 30 minutes on Nexus last night, could not figure out how to make an alias do what I wanted to do. The interface is wonky at face value knowing nothing about it.
I wanted to make this: ^d([a-Z])$
local venom = {
c = “curare”, k = “kalmia”, }
ven1 = venom[matches[2]]
send(“attack target with ven1”)
I’m not sure if I was doing something wrong, but I couldn’t figure out where to actually code anything without the simplified scripting (which I don’t want to use). Help pls
Okay! I did some work on this, and the problem is basically that JS is not Lua.
First thing: Nexus stores your regex matches inside args[], not matches[]. Second thing: Javascript is zero-indexed like a proper language should be, so indexes start at 0. Third thing: The command to send text to the game is "client.send_direct()", not "send()".
The script you are looking for would look something like this:
That stuff is buried way the fuck down in the documentation somewhere, and it took me forever to find it back when I was working on a Nexus auto-razing system for somebody on Imperian.
It sounded like the issue was that there's nowhere (obvious) to just put code without using the simplified scripting, not that he expected the Lua code he has in Mudlet to just work without changes.
send_command("attack target with " + venoms[args[1]])
Why won't that regex pattern work? If Nexus doesn't support pretty basic regular expressions in alias patterns then literally nobody should be using it.
I think it's pretty obvious. When you create an alias/trigger/whatever, one of the drop-down options, "Execute script", is obviously a write-all-your-own-code-from-scratch-here window.
Why won't that regex pattern work? If Nexus doesn't support pretty basic regular expressions in alias patterns then literally nobody should be using it.
Because the range for all lowercase/uppercase letters is not "a-Z", but "a-zA-Z"?
Why won't that regex pattern work? If Nexus doesn't support pretty basic regular expressions in alias patterns then literally nobody should be using it.
Because the range for all lowercase/uppercase letters is not "a-Z", but "a-zA-Z"?
^d([a-zA-Z])$ works.
I didn't notice he'd mixed cases, so your post seemed to be implying that ranges aren't supported by Nexus.
Ranges between lower and upper case character work, if it's in the correct order: ^d(A-z)$ works as well. However, this will also include the following characters: [\]^_`
The most compelling reason to use Mudlet is because Nexus doesn't have decent mapping/pathfinding. Nexus is pretty powerful when you get under the hood, but the lack of a functional mapper/pathfinder makes Nexus a garbage-tier client in my eyes.
Pathfinding is just SO useful that there's no reason to use any client without that capability.
Explain please? How do you get a set of scripts to activate without using the simplified scripting? Essentially, I'm curious how you get the script to be used by the webpage
Simplified scripting is exactly that: scripting made simple, for those who can't code very well (or just want to make something quick). That's literally why it was added to the client.
You don't have to touch it whatsoever if you don't want to, and just code things the 'normal' way.
Comments
Pro Nexus:
- Builtin GUI
- Uses JavaScript, which has hands down the greater user base and thus greater chance to find (more or less specific) help.
- Almost everything has been done already with JavaScript and can be found on the internet.
- It has simplified scripting, which is great to get you started.
- Nexus runs in a browser and your settings are everywhere you can access the internet
Contra Nexus:
- I find it hard to find documentation about Nexus (How do I interact with the GUI programmatically? Is there a public interface or is the interface private and my interaction can break at any time? How do I add external JavaScript modules, most documentation is about having development access to the webpage? Are there any function that would make my life easier when working with Nexus, i.e. How do I echo to the main console...?)
- As far as I can see there are no tutorials about doing things in Nexus. It's always "It's just JavaScript, you'll find examples on the internet".
- The publicly available map is at the mercy of the development team. When I used that map, it had serious holes in it.
Pro Mudlet:
- A lot of scripts are about (though with varying degree of quality)
- I think the Mudlet documentation regarding the scripting interface is far superior. We could improve the "prose" manual, though.
- Documentation and source are open and our development process is very transparent. We are also willing to mentor and help to get features in (but our free time is limited )
- Speedwalking/pathfinding is more flexible.
- Choice between official map (new areas might appear there earlier) or Crowdsourced map (People can just add the stuff they want to be mapped, more features)
Contra Mudlet:
- It's a native application, which means it needs to be installed on the computer you use it
- Settings are hard to take with you
- More complex means more time to learn the initial use
- No builtin GUI
I probably missed some stuff that was said between the bickering and some of my own additions might be out of date. I'd be happy about corrections.
In the end, everyone has to choose their own set of features they need/want and should probably try both versions. I think both are viable options.
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
Can't argue against it using JavaScript, that's obviously true. I also can't argue against JavaScript having the greater user base, in general terms. In terms of code written specifically for Achaea, I'd say that's arguably not true. The JavaScript documentation is fantastic, but when the documentation isn't sufficient - and for a lot of people new to coding the documentation rapidly becomes insufficient - you need somebody who can give you specific, tailored assistance with your problem. There are places outside of the community where you can get that help, but it's a lot easier if the person helping you inherently understands the context of your problem and doesn't need you to explain it in great detail (something people who are new to coding are also, on the whole, very bad at).
The chances of getting that help specifically for Achaea is likely much higher for Mudlet/Lua than it is for Nexus/JavaScript. Even people who know JavaScript for reasons other than Achaea aren't necessarily going to be able to - or want to - help you with Nexus, because there are no doubt specific quirks of coding for the client that they're not aware of.
Results of disembowel testing | Knight limb counter | GMCP AB files
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
So they will be lead into the forest (Nexus), get said "it's all woodmanship" (It's all javascript), get a mobile device (for googling) and then the guide disappears.
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
I wanted to make this:
^d([a-Z])$
local venom = {
c = “curare”,
k = “kalmia”,
}
ven1 = venom[matches[2]]
send(“attack target with ven1”)
I’m not sure if I was doing something wrong, but I couldn’t figure out where to actually code anything without the simplified scripting (which I don’t want to use). Help pls
Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
First thing: Nexus stores your regex matches inside args[], not matches[].
Second thing: Javascript is zero-indexed like a proper language should be, so indexes start at 0.
Third thing: The command to send text to the game is "client.send_direct()", not "send()".
The script you are looking for would look something like this:
^d(\w)$
And you can use send_command in js, i.e.:
send_command("attack target with " + venoms[args[1]])
local venom = {
c : 'curare',
k : 'kalmia',
}
note = != : dear god help us all
Why won't that regex pattern work? If Nexus doesn't support pretty basic regular expressions in alias patterns then literally nobody should be using it.
Results of disembowel testing | Knight limb counter | GMCP AB files
^d([a-zA-Z])$ works.
Results of disembowel testing | Knight limb counter | GMCP AB files
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
The most compelling reason to use Mudlet is because Nexus doesn't have decent mapping/pathfinding. Nexus is pretty powerful when you get under the hood, but the lack of a functional mapper/pathfinder makes Nexus a garbage-tier client in my eyes.
Pathfinding is just SO useful that there's no reason to use any client without that capability.
I’ll work on it, thanks guys!
Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
Currently available: Abs, Cnote, Keepalive, Lootpet, Mapmod
You don't have to touch it whatsoever if you don't want to, and just code things the 'normal' way.
I do not. To me, "Execute script" is working with the base code terminal.