Thursday, August 1, 2013

Roleplaying and Add-ons! : Q&A with Packetdancer


Over on WSRP we have just finished our first round of the Nexus Free Art Trade Agreement, in which community artists volunteered to take part and then received a random person to draw their character for. We had one month to come up with something for the trade and today the results that came back were AMAZING!

Here was my gift from Kit of WSRP. I really love the atmosphere of this piece! It reminds me a lot of one of my favorite gaming series: Thief. If you want to see more of their awesome art, check out their sketch thread here!
Nowhere is safe...

The next three Vines in the “Meet the Devs” series are out!

Part Six: Crunch Food Thief and Lead Scripter Doug Koup

Part Seven: (Anti) Social Systems Lead Joe Piepora

Part Eight: (Shirtless) Animator Long Nguyen

And if you haven't read them, check out the new racial interviews with Dr. Lazarin and Mondo Zax.

Also! Just today Carbine announced that they will be having a panel at Pax Prime and will be livestreaming the event!


Today I have a nice treat: my Q&A with the illustrious WildStar community addon designer: Packetdancer about her work with roleplaying addons. Before I get started, though I want to talk just a little bit about addons in general and some of my thoughts and past experiences with them.

Pax and YoGrT, a basic friends list and the first user-created Add-on for WildStar!
First off, for those of you who do not know, an add-on is “One thing added as a supplement to another.” In the case of gaming, it is a modification made to an existing program that allows different functionalities on top of or in place of previous functions. For example, the user interface (actions bars, health display, etc) in World of Warcraft has very few customization options. Numerous add-on modifications (also known as “mods”) have been designed that, when installed, allow a user to more freely modify their UI. This includes adding more action bars, freedom in placing them anywhere on your screen and a whole slew of other convenient features.

Add-ons are primarily built for the convenience of the user. They allow us more control in customizing our UI, they might help run a visual indicator on our screen to help us keep track of cooldowns and other time-sensitive actions, or they might provide us with an easy-to-use visual display of the loot tables in specific dungeons of items we might like to obtain. Not all add-ons need to be used specifically for game functions either. They can also be used for social conveniences, such as roleplaying!

The Dominos Add-on allows for a lot of UI customization ( Image found here )

When I first started playing World of Warcraft with my friends in college I remember, with some amusement, that we were adamantly opposed to addons. We were under the impression that add-ons made the game “easier” and that we were too skilled to need anything like that. We didn't really understand that, despite what some say, add-ons can't really play for you, they just help make things a bit more convenient. I am guilty of loving just about every skill I have in WoW on my screen all at once so I can access anything I need at the touch of a button. And as much as many have rolled their eyes at HealBot, I really enjoyed how it made healing not so frightening for me when I tried it for the first time.

HealBot allows for a very simple and clutter free UI that lets you use mouse clicks on their display to set of your heals on the targets. A complete life-saver to a brand new healer <,< (Image found here)

Needless to say, we wisened up a bit and found out that add-ons were actually pretty awesome. I wasn't nearly so opposed to the idea of these when I joined the online roleplaying community for the first time. I did not use a lot of them and never got very involved with these add-ons but I did really appreciate what they could do for the community. There was Tongues, which allowed people using that same add-on to understand or even speak languages in the game that were normally blocked off from your race or faction. This added a nice bit of “realism” of characters who might have learned these languages in their travels. MRP or “My Roleplay” was the other big add-on I used. This allowed the player to fill in a “character sheet” of sorts with a field for their full name, height, weight and spaces to write about the character's physical description and back story. Now I will admit that I read these mostly while I was bored and standing around (some of them could be quite amusing) but it was nice since character models themselves were not super unique. I think my favorite part was that when you filled out your name field, it would display on your nameplate in the world for anyone using MRP.

An example of the nameplate shown with the use of RocketPig, Pax's RP add-on. This shows first and last name as well as a short description of the character and RP availability

There was one last add-on I attempted to use called Gryphonheart Items that provided a very detailed tool for making custom, non-game affecting items. These could do anything from giving custom buffs to secret messages. The only problem was that it was so difficult to use that I ended up having to give up on it. There may be some better guides or walkthroughs to using it now, however.

I am very excited to see what roleplaying add-ons will do for WildStar. Carbine alone has shown such an appreciation for the roleplaying community, but I never quite expected such awesome support so early from the community. Packetdancer has been a real pleasure to hang out with on WSRP and it is even more exciting to have a sneak peek into all the amazing work she has put in for WildStar with her add-ons in beta. If you would like to read a little more into it, check out this WildStar Wednesday posted a few weeks back.

And without further ado, the words of Packetdancer:

> What made you want to create an RP add-on?

I am a roleplayer, so I want to see there be RP tools available for WildStar at launch. I am a developer, so I can make those tools. The decision seemed pretty straightforward. :)

> Did you use any other RP addons as inspiration? (i.e. MRP for WoW )

Yes and no. I actually haven't played WoW since vanilla, so I wasn't familiar with MyRP and similar tools from a player standpoint. However, I went through the code to see what sort of problems and needs had cropped up, as well as trying to build a decent library that meshed with WildStar's own toolset. I also have made a point thus far to speak to a lot of players in the beta about what they need/want from a baseline RP toolset, and take that into account.

> What is your addon and what does it do?

Well, there are two parts to the project right now: RPCore, and an add-on currently called "RocketPig" (it's a long story). I'll try to walk you through both. RPCore is a standardized library for RP tools to be built atop. It provides a datastore for RP addons to use, both locally and client-to-client, as well as a method for discovering what extended RP protocols are supported. RocketPig is a very simplistic addon built atop RPCore.

Let's take my character Pax, for instance.

RPCore defines a public 'full name' trait, so we'll say I open up some RPCore-enabled addon and set Pax's full name to "Paksara Phillips". Any other RPCore enabled addon I am running shares that trait, so if I were to open another RPCore-enabled addon, I would see the full name had changed accordingly.

Similarly, RPCore allows me to query "what is <X>'s full name trait?" Behind the scenes, if RPCore does not know—or it has been too long since it asked—then RPCore just goes out and fetches that trait from the other player (if they are running RPCore and have the trait set).

RPCore defines a set of baseline standard traits, but add ons can define their own to use as well; if I wanted to create, for instance, an addon built around the Dominion Military which added a 'military codename' field, I could define a new RPCore trait for that addon, and it would continue to Just Work.

So for the simple cases of getting and setting traits, an addon built atop RPCore does not need to care about how to talk to other clients; an addon author can just worry about writing the addon, and let RPCore handle the data storage and communication between clients.

For more complex cases, RPCore allows you to set up "RPCore extension protocols". For instance, maybe I create a 'bartender' tool that lets me share a list of the drinks I can mix, and lets people pick a drink they'd like. That's harder to do with simple RPCore traits, so the bartender addon could define a 'drink ordering protocol' and register it with RPCore. Then, the addon can ask RPCore, "Does <X> support the <Y> protocol?" and RPCore will go and check. If they are, RPCore allows you to bundle up Lua objects and say, "Give <X> a <Y> protocol packet," and let RPCore still handle all the communication.

So, that's RPCore. RocketPig is just a super-simple addon built atop RPCore which gives you a simple UI for setting full name, title, a short blurb (limited to 250 characters) and your current RP state (a series of toggles as to whether you're in-character or out-of-character, in a scene or not, or available for public RP or not), and which replaces the stock Carbine tooltip routines to show that RP data, for those running RPCore.

> What features would you ultimately like your RP addon to end up with?

For RPCore, I'd really like to see it become an effort maintained by the community; I hope that RPCore will be adopted as a standard so that all RP addons can just talk to each other. I'd like to see things like RPCore get, effectively, standards groups within NASA (the Nexus Addon Standards Association), so that there's a genuine community effort to define future versions of it and standardize extension protocols.

For RocketPig, my goals are a lot simpler: I'd like to clean up the trait UI and make it also replace stock nameplates, so you can optionally show RP names on the nameplates as well. (Unfortunately, there's a client issue in this particular beta phase that makes RocketPig less usable than I'd like, but that's the nature of betas.)

I also have several other add ons I intend to build atop RPCore. Notably, I want to expand on Journalism—my existing travel-journal/map notes addon—into an RP tool called 'Dossiers', which will let you assemble records about places you've been, people you've met, and so on. And it would integrate into RPCore to let you have Dossiers for yourself defining 'identities' you could switch between. Very useful for ICI agents who might have to maintain cover identities, ICly!

> Gryphonheart Items was a very impressive addon, but was extremely difficult to figure out. What steps are you taking to help make your addon user friendly (if you are)?

In the beta, I'm slightly less concerned with usability than I am with functionality; like Carbine themselves with the beta, the focus right now is iterating on features (and understanding that sometimes Bitwise is going to change the API out from under me).

But even in the beta, with each addon, I try to find a few people of differing technical prowess and let them loose on it. And if more than one person stumbles over the same issue repeatedly or has to ask me the same questions, I know that's an area that could use improvement.

For instance, right now there's no Curse-like tool for installing or managing add ons in the beta, and that became one of the most frequent stumbling blocks; people were having trouble even installing the addon to try it out. As a result, I wrote a super-basic addon installation and management tool called MissionControl (which works for any of the addons currently put out in beta, not just my own), to streamline that part of the process.

That said, the main part of this effort is RPCore, and that's targeted more at developers than end-users. If RocketPig proves not to be too user-friendly UI-wise, someone else will build a better addon using RPCore… and due to the design of RPCore, that should just work seamlessly for the changeover.

> Tell us a bit about your history in creating add ons

In all honestly, though I am an experienced developer (hey, it's how I make a paycheck), WildStar's the first game I've actively done any sort of modding for that I bothered to distribute.

Sure, I've used addons in other games—I can't play LotRO without Palantir!—but generally I never felt the itch to make my own, save for minor tweaks for personal preference/taste in addons I used. And lord knows I spent more time modding Skyrim than actually playing it, even if I never distributed any of those mods.

If you give me a modding toolkit or a scripting language, I will probably spend more time in there than I do actually playing the game. I love tweaking things, tinkering, changing them and otherwise exploring possibilities. But generally I do so for my own amusement and never bother to distribute them.


> What made you want to build this for WildStar?

…something about WildStar was a perfect storm of interest for me. I love the lore and humor of the game, and I love how responsive the developers are to their testers (and their modders).

When I first installed the beta and saw that there was an addon tool, well, of course I had to play with it. And since I was curious to see what other people were doing, I decided to post my first little addon (the now-infamous YoGrT) a few hours later. Bitwise's enthusiasm and excitement upon seeing someone had posted an addon was infectious, and somewhere along the line it changed from "I want to write things to experiment with the API and provide bug reports" to "I am actually writing things I intend to maintain after launch."

So, I blame Bitwise. After all, if there's someone named John or Jon, it's probably their fault anyway, right? No offense, Hawkens. ;)

> What advice to you have for people looking to start creating addons? Any sources you would recommend, etc?

If you know basic programming, Lua's pretty easy to pick up. It has some weird grammar quirks—using ~= for inequality tests instead of !=, and so on—but overall it's a pretty straightforward language. You can find plenty of Lua tutorials out there.

But really, since Lua is so flexible, every game has a different API to use. So the best thing to do, once you have access to the game, is simply to find other addons and look through the source. WildStar, this is particularly easy with, because Carbine wrote all of the game's UI using the exact same API we have access to, and Houston is built to allow you to view the source to any built-into-the-game addon.

Reading Carbine addons is how I learned the API in the first place, and since we still don't have documentation—since Bitwise is still iterating on the API (and, hopefully, feature requests from addon devs!)—I still learn new bits of WildStar API each new milestone build by looking at the source to Carbine's addons.

> Anything else you would like to share?

I'd like to take a moment to explain NASA, the Nexus Addon Standards Association, which I touched on briefly several questions ago.

As background, "Lua" means "Moon" in Portuguese, so WildStar's addon system is all named after things around the moon landing program. The addon API is "Apollo", the addon development environment is "Houston", and the client/UI team at Carbine is the "Bit Propulsion Laboratory". As such, the community addon effort is "NASA".

My hope for NASA is that it becomes something which can actually set some addon standards, such as defining new extension protocols for RPCore as standards, or maintaining standard reusable libraries. But another goal would be to generate user-provided tutorials and tips-and-tricks for those interested in addon development, as well as a detailed set of documentation. Another might be that, since many people cannot read Lua well enough to know what they're downloading, a group of trustworthy/reputable addon authors could be available to review an addon and give it a "NASA Verified" badge to show that it wasn't malicious or harmful.

I've registered a domain for the effort, though there's nothing there yet; I've gotten a few people together who will help build up the NASA site, but I dearly hope that those who are interested in addon development in WildStar will keep an eye on the site—and the NASA effort as a whole—once that's ready.

> Are your addons Cassian friendly? Do they adhere to Dominion Protocol?

I'll just turn this over to Pax and Minerva, my in-character alter-egos, to answer that.

Dominion protocol? Why in tarnation would she want anything to adhere t' that? Ain't like th' Dominion're th' only characters out there. Ah'm pretty sure we Exiles outnumber y'all like two-t'-one on WSRP. Even Hawkens there has had t' bite th' bullet an' RP with us.

Quantity does not mean quality. After all, we Cassians are capable of talking in coherent sentences, a feat which is clearly beyond some of you Exiles. Why hasn't that apostrophe key broken yet?

Ah buy 'em in bulk.

…all right, then. To answer your question, yes, the addons do interact quite properly with Dominion standard systems. I use them myself. Of course, as they're a civilian product—and, unfortunately, the Exiles have access to them too…

Hey! Ah got two pistols right here, y'know.

…as I was saying, due to those circumstances they're obviously not approved for transmission of secure Dominion military or intelligence materials. As they are extensible, however, I fully expect someone to produce Dominion-specific protocols that will not be shared with our… ah, 'regrettable' neighbors on this world.

Oh, yes. Stick your tongue out at me, very mature. If you'll excuse me, I'm afraid I should get back to my own duties. Now, where did my scanbot get to, anywa… oh, Scions grant me patience. TINKER, stop trying to crack the blog passwords, or I'll turn you into a coffee-maker. The Exile has been a bad influence on you, hasn't she?

Ah think y'mean a good influence. Seems t'me that hackin' an ICI blog ain't 'xactly a bad thing. What'd y'all call it… 'propaganda an' misinf'rmation?'

I'm just going to pretend I heard none of that. Since my counterpart here is not likely to say anything—having, apparently, been raised in a barn—I'd like to thank you for having us on, Agent.

A pleasure Pax and Minerva, thank you both for your time. I am certain Hawkens here agrees.

Of course Lady Minerva. Always good to have another Imperial---Pax you put that back THIS INSTANT! Oh you best run alright...Emperor help you when I catch up with you...!


A hearty thanks to Packetdancer for your time and contribution! Always a pleasure to spend time with you! (Even if you do enjoy messing with unstable Eldan tech...)

The Scowling Aurin: Or why Pax should never be allowed near mysterious Eldan Tech... (Art by Evion) (Hey not everything has to be serious, yes? ) 

And a thanks to all of you, my dear readers, for your continued support and encouragement. You guys are certainly #BestCommunityEver ;)  As always please feel free to shoot me a line at with any topics or ideas that you would like to see on the Scowling Cassian! (Or if you have questions for Hawkens)


  1. I'm obviously very late to this party, however I wanted to pass along my thanks for this fantastic post. I couldn't be more excited to explore all of the wonderful roleplaying aspects of Wildstar. I whole-heartedly support the notion of RPCore being a standard within which all other RP add-ons can function and interact. Again, great post; thank you!

    1. Not late at all! There's still plenty of time before the game comes out to get all excited for it! And if you like rp, I recommend heading over to to check out the RP fansite! Thank you kindly, glad you liked the post!