Alright, I hope this is the right forum for this. For some time I have tried to wrap my head around the custom commands, looked everywhere for a hint on how they could work but only found pre-1.0 stuff like this thread. But none of that works for 1.0 or later, so what exactly changed? I'm sorry if this is a duplicate thread or if this has already been asked/answered before, but right now I'm very confident (because I have swept over every inch of the forum and reddit about this topic) that there is no explanation to this on the forums yet
I got help from @Apple Juice and didn't want to leave this thread unsolved in case someone else needs help with this. The new format for making commands is Code: function command(commandName, clientId, args) # Do things here return "This is what is returned privately to the player" end commandName is the command executed by the client. For example, when typing /test, the commandName would be the string test. clientId is the.. clientId, duh. args is a table of arguments that are supplied by the client. For example, /test "123" 1 2 3 "5" would output the table {"123,"1","2","3","5"} Getting the scripts into the game is the same as it was before with using the patch method to apply it to the universe_server.config Code: [ { "op": "add", "path": "/commandProcessorScripts/-", "value": "/serverCommands.lua" } ] This gives some interesting new flexibility in my opinion
This doesn't work for me. I also don't really understand this format... A function name AND a command name, separated... Anyways, it only says that the command doesn't exist. Tried on a local server and singleplayer, and a few commands
I'm pretty sure you misunderstood the format. The function must be command(...) and not test(...) or customCommand(...). For example, what I use looks like this: Code: function command(commandName, clientId, args) if commands[commandName] ~= nil then user = universe.clientNick(clientId) return commands[commandName](clientId, user, args) else return "The command ^blue;"..commandName.."^reset; does not exist" end end This allows me easily to introduce additional commands like this: Code: commands = {} function commands.d20(clientId, user, args) local result = math.random(20) universe.adminBroadcast("^red;"..user.."^reset; rolled a ^red;1d20^reset; and got ^red;"..result.."^reset;") return "You rolled a ^red;"..result.."^reset;" end