I am trying to make the GMCP variables available to the general scripting space, through mediation of a plugin. In the plugin, I have a nested table called "vitals", and I'm trying to make an alias that can call information from the table. However, GetPluginVariable doesn't seem to be able to access the plugin.
vitals=GetPluginVariable("c19700e70d6a8d03b9866c24","vitals") --returned an empty value
vitals=GetPluginVariableList("c19700e70d6a8d03b9866c24") --returned a table of size 0

I double checked the ID of the plugin and the spelling of vitals. I also verified that IsPluginInstalled returned true for the plugin in question.

I can't quite make out what you are doing. GetPluginVariable gets the contents of a variable setup by SetVariable in the plugin. However your plugin is not setting any variables. You are doing this in your alias:

require "ppi"

However that alias does not use ppi. You seem to be combining a number of different methods here.

I can't quite make out what you are doing. GetPluginVariable gets the contents of a variable setup by SetVariable in the plugin. However your plugin is not setting any variables. You are doing this in your alias:

require "ppi"

However that alias does not use ppi. You seem to be combining a number of different methods here.

Thank you, Nick, for the fast reply.

Sorry, the variation of the line should have been GetPluginVariableList, not GetPluginVariable. I've corrected the error in my opening post.
-----
I had misunderstood GetPluginVariable as operating on any element that I thought of as variables (including non-constant tables), which doesn't make sense now that you point it out. Is there a general method to retrieve table-type information from the plugin? One that hopefully doesn't involve converting to an intermediate string form? I'm guessing that I could pass it through json.encode and json.decode if all else fails?

Please don't mind the require "ppi". I have the bad habit of starting to including extra libraries when a piece of code isn't working the way I expected.

Different plugins have different script "execution" spaces (they may even be different languages). Hence communication between them cannot be by simple Lua tables. Things need to be converted into text format and back again (if you want to pass complicated stuff like tables).

You could use JSON, but the serialization functions that come with MUSHclient are a simpler way of achieving the same thing.