Thread: Addon Etiquette
View Single Post
04/20/14, 04:44 AM   #1
NonameFTW
Join Date: Apr 2014
Posts: 5
Exclamation Addon Etiquette

Is there any discussion about how Authors SHOULD built their addons yet ? As like in all programming languages there are things that you CAN do and things that you SHOULD do. I can imagine that over the time the author community for TESO needs some standarts on how to implement your addon to get the maximum amount off compability and usabillity.

Myself I'm not an author (yet (mabye)) and I don't have much experience with lua and such a community like this. But I feel that all authors should have a discussion on how they can work together more efficiently without loosing their own independence.

I'm talking about the idea of creating libraries and some basic addons that every addon>user< almost has to use.
(https://en.wikipedia.org/wiki/Request_for_Comments)

Examples: SkyUI in Skyrim. It was so popular that at some point the devs started implementing tools that other addons used. Same with SKSE. Almost no addon from some point on ran without SKSE.

I'm also talking about ways on how you SHOULD implement a feature to work as good as possible with other addons. An Etiquette.

These ways are common to occur and should be discussed as soon as possible.


To get the discussion going I will start with my own Ideas. Please feel free to post you own Idea on what the community needs to do to get good standarts.


This section of the post below is up for anyone to change. Ask a moderator.
Summary and Discussions Status



Topic: Libraries

Proposition:
- Libraries should use a common folder and addon authors should not include the libraries in their addon zip files. Instead Minion should watch over needed libraries.

- Addon authors should have to make sure that minion and other addons know the needed libraries of their addons.

- libraries should be a standalone ressource

Current Discussion Status: Solution found. Further opinions are still accepted.

Seerah explained that there is already a better system in place (That new libraries could adapt).

A library registers with LibStub as it loads. If you have 5 addons installed, for example, that all use LibAddonMenu-1.0, then all five instances of LAM make a call to LibStub, passing along their version numbers. LibStub only accepts the library with the most recent version number and discards the rest. What does this mean for a user? They may have 5 copies of LAM installed inside their addons, but only 1 is being used.
Topic: Settings Names

Proposition:
Authors should not use their Username as Settings Name because it creates confusion.

Current Discussion Status: Open. Better Solution has to be found.

Seerah explained that he/she proposed for a long time that authors should condense their addons in one settings panel and that some authors are not naming their addons in one series name.

Now, here come conventions for certain circumstances.
  • If you addon has no settings, and you only want to put a description in your settings panel, don't create a panel for your addon.
  • If your addon only has one or two settings that could easily be done through slash commands instead, don't create a panel for your addon.
  • If the settings for your addon are complicated, or would have better usability if presented in a different format that LAM provides, don't create a panel for your addon. Create your own options GUI that users can open with a slash-command and/or keybind.
NonameFTW stated that naming settings names after the authors username can get confusing later on and that different addons should use different settings panels.

It's not confusing YET to have these kind of username named settings. But there will be players who are gonna heavily modify their interface with HUNDREDS of addons.
Now try to think of the situation here: This user would have thousands of settings he has to manage. This is not the problem. The problem comes down when multiple addons with totally different purpose use the same settings menu. You then have about 60 settings menus. Not the problem. The problem is when you have 60 settings menus which do not tell you which settings are inside.
I think that such a user would rather like to have 200 settings menus which tell him excatly what settings are inside than to click through 60 settings menus and scroll through them.
The discussion went on to the conclusion that a addon settings interface for all addons would be the best solution.



Topic: Saved Variables
Proposition:
What would be nice is if a standard was established, like, if you are going to use non-global/accountwide saved settings, you should have a variable in your savedvariable table called "pretty name" or something similar.

This would allow other tool(s) to present settings for manipulation in a much more readable and trackable way.
Current Discussion Status: Open.

Seerah disagreed.



Topic: Formatting

Proposition:

Tabs, not spaces (though completely up to whomever), I strip all extra white space and I use CR+LF for EOLs.

The above things allow me to do kdiffs very easily without getting a lot of "non" changed changes, especially the white space strip.


Current Discussion Status:
Open.

Seerah disagreed.
Joviex explained the proposition further.



Topic: Global Variables

Proposition:

.... the biggest concern ANYONE should have regarding the standards/conventions being used with addon development would be poorly named global variables. I couldn't care less how awkward and convoluted your globals name is as long as it is unique enough to not pose potential overlaps with the default UI and other addons. As for your locals, you could obfuscate them to a letter table for all I care, tbh...



Current Discussion Status:
Open.



Vicster0 gave some examples.



Last edited by NonameFTW : 04/27/14 at 10:56 AM.
  Reply With Quote