I just spent about half hour poking around regarding your echo command to screen issue.
At first, I thought ULib might be expecting a 'return' function as I saw a few return <boolean>, <String message> at the end of some functions that looked like what would be output to a user.
Then I realized, not every ulx function has that and it seems to be meant as an override.
Are you getting the command logged to your ulx server logfile?
Is the command actually running? I know we put in some checks that if for any reason the command doesn't run, it doesn't echo.
In your (currently blank) function, try something as simple as a print to console Msg() and "return" with nothing else.
Megiddo, does logString do more than write to a log file. From log.lua, it didn't look like it. And if not, what should he do to have it echo to the screen?
As for the ban, there is a 'completes' variable you can pass in your parameters.
Pass it a table, and the parameter will suggest whatever is in the table after previous parameters are chosen (if any).
Cbrad24's
recent ULX rate release shows this in action.
It has a screenshot of the 'legal' gmod allowed ratings after having typed
Earlier in his code, he sets up a table
ulx.ratings = { "naughty", "like", "love", "artistic", "star", "builder" }
Then in his command setup, he uses the following parameter after the Players parameter.
rate:addParam{ type=ULib.cmds.StringArg, completes=ulx.ratings, hint="rating", error="invalid rating \"%s\" specified", ULib.cmds.restrictToCompletes }
If you wanted to allow for more than just that table, you could leave out ULib.cmds.restrictToCompletes
It's pretty obvious what that does.
Have you seen
http://ulyssesmod.net/docs/files/lua/ulib/shared/commands-lua.html ?
It has much on the command system ULX uses and the available parameters.