Page 1 of 2

Wanna Help? We're now looking for Content Designers.

Posted: Thu Jan 12, 2017 8:10 pm
by Jakkal
I really want to help out, what do I need to do?

Well before you jump right into it, there are some things to keep in mind. First of all, right now we'll consider people based on a few factors, one of which is their involvement into the project up to this point. If you just found out about it, and just signed up on the forums, then chances are you might be passed over. This is nothing personal, but we've found people that sign up and apply right away are the most likely to abandon the project. Those that have put time and effort into testing what we've got, or helped collect content are those we are more likely to pick from applicants.

If you are brand new to the project and really want to help out, get on there and test. Test everything. Test far and wide. We really need you folks to tell us what's wrong, what isn't working, what quests aren't done right, etc.

What's Required of a Content Designer?

1. Strong knowledge of the game, and especially quest and class mechanics. You need to have hit at least level 50 in VG on one character.
2. Scripting. It's a lot of scripting. Not all of it is automated. If you've never worked with scripts in your life you might want to rethink being a Designer. If you're willing to learn, we're willing to teach.
3. Commitment. This will take a long time and we are really looking for people who will stick with it for the long haul.
4. We really need people who can dedicate at least 5-10hrs a week to the project.

I can do that, totally! How do I proceed?

Fill out the following and send it to Jakkal and via forum PM.

Do you have any programming/scripting experience at all? (It's okay if you don't, as long as you're willing to learn.)

Do you have any online administration experience at all? (Forums, chats, groups, guild leader/officer, etc)

Are you comfortable working with lua scripting? If you have no experience with scripting, are you comfortable following instructions to edit existing scripts?

What's your experience with MMO gaming?

What's your experience with Vanguard? What classes did you play the most? What levels did you reach with them? Diplo and Crafting experience? Were you PVP or PVE (or both?)

Anything else you'd like to mention here?



We're looking for people that are willing to stick it out long term, it will probably take this team, realistically, a few years to get through most of the content. Of course we realize that RL will probably get in the way from time to time, but we really want to make sure that people understand what a huge undertaking this will be. But any help we can get, we definitely appreciate!

I am hoping to get a small set of people together sometime nearer the end of the month or early February and show you how to work our content design tools.

I await your responses.

Re: Wanna Help? We're now looking for Content Designers.

Posted: Thu Jan 12, 2017 8:11 pm
by Jakkal
For those of you wondering what we do exactly, I'd like to show you some of the actual code that we use.

This is a script that is generated for us using the tools (DBE) the developers made for Content Design. In this case, I'm making a very basic hailing script for the NPC in Vault of Heroes name "Marjok".

Code: Select all

--[[
	Script Name		: Spawns/VaultofHeroes/Marjok.lua
	Script Purpose	: Marjok 
	Script Author	: Jakkal
	Script Date		: 2017/01/12
	Script Notes	: Auto-Generated Conversation from PacketParser Data

	Quests	: Treasure? (5167)
--]]

local greeting = nil

-- Local variables go here

local Treasure? = 5167

function spawn(Npc)
	ProvidesQuest(Npc, Treasure?)

	CompletesQuest(Npc, Treasure?)
end

function hailed(Npc, Player)
	FaceTarget(Npc, Player)

	--[[
	-- Set up Greeting
	--]]


	-- Set the generic greeting for this character
	greeting = "Welcome to New Telon"

	-- Adjust the Greeting as needed during quest progress



	--[[
	-- Create the Conversation
	--]]

	conversation = CreateConversation(Npc, Player) -- only need 1 conversation per dialog
	StartConversation(conversation, greeting)


	--[[
	-- Add conversation options (dialog)
	--]]




	--[[
	-- Add Quest options
	--]]


	-- First handle quests originating elsewhere

	if QuestCurrent(Player, Treasure?) then
		AddQuestOption(conversation, Player, Treasure?, "Treasure?")
	end


	-- Now offer/update quests originating here
	-- Even if a quest does not finish here, it needs to be a quest option that shows the summary
	-- So we want to show quests that the character is eligible for, or currently working on

	if QuestEligible(Player, Treasure?) or QuestCurrent(Player, Treasure?) then
		AddQuestOption(conversation, Player, Treasure?, "Treasure?")
	end


	-- Additional quests originating/updating here




	--[[
	-- Add Diplomacy options
	--]]


	--[[
	-- Start the Conversation
	--]]

	OpenDialog(conversation, Player)
end


--[[
-- Conversation/Dialog Branching
--]]


--[[
-- Quest Branching
--]]


--[[
-- Diplomacy Branching
--]]

function  Treasure?(Npc, Player)
	FaceTarget(Npc, Player)
	DisplayQuest(Player, Treasure?)
end

function  Treasure?(Npc, Player)
	FaceTarget(Npc, Player)
	DisplayQuest(Player, Treasure?)
end

function dlg_3819_0(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Cleansing the Vault of Heroes of it\'s desecrators is our goal, but for now, we gather our strength and harry at them as we can."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_1(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "For Tahean, we fight the filth that infests the Vault of Heroes, and in Tahean\'s name, we shall drive them out."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_2(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_3(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor\'s burial grounds."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_4(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_5(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean\'s name, we will strike them down and make this lake run red with their blood."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_6(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

--[[ raw_dialog_headers
ID: 3819, Text: Marjok says, "Cleansing the Vault of Heroes of it's desecrators is our goal, but for now, we gather our strength and harry at them as we can.", Log: 53
ID: 3819, Text: Marjok says, "For Tahean, we fight the filth that infests the Vault of Heroes, and in Tahean's name, we shall drive them out.", Log: 53
ID: 3819, Text: Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers.", Log: 53
ID: 3819, Text: Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor's burial grounds.", Log: 53
ID: 3819, Text: Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us.", Log: 53
ID: 3819, Text: Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean's name, we will strike them down and make this lake run red with their blood.", Log: 53
ID: 3819, Text: Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes.", Log: 53
--]]

--[[ raw_quest_dialog_text
Quest ID: 5167, State: 1, Name: Treasure?, Log: 53
Text	:"I was out for a swim in the lake a few days ago when I caught sight of a chest. I planned on swimming down to it to see what was inside, but a mutated fish swam at me and scared me off!"

"I remember the general location of where I saw the chest. I'll make you a deal: I send you to where the general location of the chest is, and you swim down to it and get its contents. Whatever you find in there, we split between us."

"Do we have a deal?"
Summary	:Search around the area marked in your journal for the Lost Chest. Once you find it, loot its contents and return to Marjok in Tahean's Vengeance.
Note	:
Goals	: Lost Chest Contents (0/1)

Quest ID: 5167, State: 0, Name: Treasure?, Log: 53
Text	:"I was out for a swim in the lake a few days ago when I caught sight of a chest. I planned on swimming down to it to see what was inside, but a mutated fish swam at me and scared me off!"

"I remember the general location of where I saw the chest. I'll make you a deal: I send you to where the general location of the chest is, and you swim down to it and get its contents. Whatever you find in there, we split between us."

"Do we have a deal?"
Summary	:Search around the area marked in your journal for the Lost Chest. Once you find it, loot its contents and return to Marjok in Tahean's Vengeance.
Note	:
Goals	: Lost Chest Contents (0/1)

--]]

Now, as a Content Designer, it's our job to set this up for use in the actual game. First things first, Quests cannot have special characters in them, but the DBE generates quest code based on the quest name. So it's our job to find and remove it. It's also not a good idea to have a quest with a single word name, like "Treasure". So any Single-Word-Name quests need to be renamed to have more than one word in it. We typically do a Quest_ format for most quests just so it's easier to understand the code.

Line 15:

Code: Select all

local Treasure? = 5167
Needs to become:

Code: Select all

local Quest_Treasure = 5167
Next, on line 32, it's set up the very basic greeting. If we hailed her like this, she would simply say "Welcome to New Telon." But if you scroll down to the bottom of her script, you see she has actual lines of dialogue.

If she only had one line of dialogue, all we would have to do is change line 32 from:

Code: Select all

greeting = "Welcome to New Telon"
to

Code: Select all

greeting = 'Marjok says, "Cleansing the Vault of Heroes of it's desecrators is our goal, but for now, we gather our strength and harry at them as we can."'
Unfortunately, she has several lines of dialogue, so we do this:

Code: Select all

    choice = math.random(1, 6)
	
	local greeting
	if choice == 1 then
		greeting = 'Marjok says, "Cleansing the Vault of Heroes of it\'s desecrators is our goal, but for now, we gather our strength and harry at them as we can."'
	elseif choice == 2 then
		greeting = 'Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers."'
	elseif choice == 3 then
	    greeting = 'Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor\'s burial grounds."'
	elseif choice == 4 then
	    greeting = 'Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us."'
	elseif choice == 5 then
	    greeting = 'Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean\'s name, we will strike them down and make this lake run red with their blood."'
    else
        greeting = 'Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes."'
	    
	end
So in line 43: StartConversation will call the "greeting" function, and it will then pick one of those lines randomly when hailed.

Now the other things we have to change in this script are almost all the references to "Treasure?" to "Quest_Treasure".

For Example:

Code: Select all

	if QuestCurrent(Player, Treasure?) then
		AddQuestOption(conversation, Player, Treasure?, "Treasure?")
	end
becomes:

Code: Select all

	if QuestCurrent(Player, Quest_Treasure) then
		AddQuestOption(conversation, Player, Quest_Treasure, "QuestTreasure")
	end
Notice the one in Quotes there doesn't have the _. That's a function call and it needs to be different from the Quest name. Which matters down at the bottom where you see:

Code: Select all

function  Treasure?(Npc, Player)
	FaceTarget(Npc, Player)
	DisplayQuest(Player, Treasure?)
end
Which becomes:

Code: Select all

function  QuestTreasure(Npc, Player)
	FaceTarget(Npc, Player)
	DisplayQuest(Player, Quest_Treasure)
end
Also that's listed twice so we can remove the extra one. In the end, the script will look like this:

Code: Select all

--[[
	Script Name		: Spawns/VaultofHeroes/Marjok.lua
	Script Purpose	: Marjok 
	Script Author	: Jakkal
	Script Date		: 2016/08/20
	Script Notes	: Auto-Generated Conversation from PacketParser Data

	Quests	: Quest_Treasure (5167)
--]]

local greeting = nil

-- Local variables go here

local Quest_Treasure = 5167

function spawn(Npc)
	ProvidesQuest(Npc, Quest_Treasure)

	CompletesQuest(Npc, Quest_Treasure)
end

function hailed(Npc, Player)
	FaceTarget(Npc, Player)

	--[[
	-- Set up Greeting
	--]]


    choice = math.random(1, 6)
	
	local greeting
	if choice == 1 then
		greeting = 'Marjok says, "Cleansing the Vault of Heroes of it\'s desecrators is our goal, but for now, we gather our strength and harry at them as we can."'
	elseif choice == 2 then
		greeting = 'Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers."'
	elseif choice == 3 then
	    greeting = 'Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor\'s burial grounds."'
	elseif choice == 4 then
	    greeting = 'Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us."'
	elseif choice == 5 then
	    greeting = 'Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean\'s name, we will strike them down and make this lake run red with their blood."'
    else
        greeting = 'Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes."'
	    
	end
	conversation = CreateConversation(Npc, Player) -- only need 1 conversation per dialog
	StartConversation(conversation, greeting)


	--[[
	-- Add conversation options (dialog)
	--]]




	--[[
	-- Add Quest options
	--]]


	-- First handle quests originating elsewhere

	if QuestCurrent(Player, Quest_Treasure) then
		AddQuestOption(conversation, Player, Quest_Treasure, "QuestTreasure")
	end


	-- Now offer/update quests originating here
	-- Even if a quest does not finish here, it needs to be a quest option that shows the summary
	-- So we want to show quests that the character is eligible for, or currently working on

	if QuestEligible(Player, Quest_Treasure) or QuestCurrent(Player, Quest_Treasure) then
		AddQuestOption(conversation, Player, Quest_Treasure, "QuestTreasure")
	end


	-- Additional quests originating/updating here




	--[[
	-- Add Diplomacy options
	--]]


	--[[
	-- Start the Conversation
	--]]

	OpenDialog(conversation, Player)
end


--[[
-- Conversation/Dialog Branching
--]]


--[[
-- Quest Branching
--]]


--[[
-- Diplomacy Branching
--]]

function  QuestTreasure(Npc, Player)
	FaceTarget(Npc, Player)
	DisplayQuest(Player, Quest_Treasure)
end



function dlg_3819_0(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Cleansing the Vault of Heroes of it\'s desecrators is our goal, but for now, we gather our strength and harry at them as we can."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_1(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "For Tahean, we fight the filth that infests the Vault of Heroes, and in Tahean\'s name, we shall drive them out."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_2(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_3(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor\'s burial grounds."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_4(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_5(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean\'s name, we will strike them down and make this lake run red with their blood."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

function dlg_3819_6(Npc, Player)
	FaceTarget(Npc, Player)
	conversation = CreateConversation(Npc, Player)
	StartConversation(conversation, 'Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes."')
	--AddConversationOption(conversation, 'insert text', "some_function")
	--AddQuestOption(conversation, Player, Quest, "some_function")
	OpenDialog(conversation, Player)
end

--[[ raw_dialog_headers
ID: 3819, Text: Marjok says, "Cleansing the Vault of Heroes of it's desecrators is our goal, but for now, we gather our strength and harry at them as we can.", Log: 53
ID: 3819, Text: Marjok says, "For Tahean, we fight the filth that infests the Vault of Heroes, and in Tahean's name, we shall drive them out.", Log: 53
ID: 3819, Text: Marjok says, "Tahean was one of the final defenders of the Vault of Heroes. We will be his vengeance, and his avengers.", Log: 53
ID: 3819, Text: Marjok says, "The land itself is a weapon that we can use to fight for Tahean. Every advantage must be exploited in order to remove the gnolls from our ancestor's burial grounds.", Log: 53
ID: 3819, Text: Marjok says, "The spirit of Tahean fights by our side, and with his strength, the gnolls cannot stand against us.", Log: 53
ID: 3819, Text: Marjok says, "We will drive the filthy gnolls from the Vault of Heroes and take back the legacy of our ancestors. In Tahean's name, we will strike them down and make this lake run red with their blood.", Log: 53
ID: 3819, Text: Marjok says, "Where Tahean fought we shall fight, and the gnolls shall wish they had never entered the Vault of Heroes.", Log: 53
--]]

--[[ raw_quest_dialog_text
Quest ID: 5167, State: 1, Name: Quest_Treasure, Log: 53
Text	:"I was out for a swim in the lake a few days ago when I caught sight of a chest. I planned on swimming down to it to see what was inside, but a mutated fish swam at me and scared me off!"

"I remember the general location of where I saw the chest. I'll make you a deal: I send you to where the general location of the chest is, and you swim down to it and get its contents. Whatever you find in there, we split between us."

"Do we have a deal?"
Summary	:Search around the area marked in your journal for the Lost Chest. Once you find it, loot its contents and return to Marjok in Tahean's Vengeance.
Note	:
Goals	: Lost Chest Contents (0/1)

Quest ID: 5167, State: 0, Name: Quest_Treasure, Log: 53
Text	:"I was out for a swim in the lake a few days ago when I caught sight of a chest. I planned on swimming down to it to see what was inside, but a mutated fish swam at me and scared me off!"

"I remember the general location of where I saw the chest. I'll make you a deal: I send you to where the general location of the chest is, and you swim down to it and get its contents. Whatever you find in there, we split between us."

"Do we have a deal?"
Summary	:Search around the area marked in your journal for the Lost Chest. Once you find it, loot its contents and return to Marjok in Tahean's Vengeance.
Note	:
Goals	: Lost Chest Contents (0/1)

--]]

And if you can follow that, and perform the actions I performed, you can be a Content Designer.

Re: Wanna Help? We're now looking for Content Designers.

Posted: Tue Jan 24, 2017 11:48 pm
by verdicaysen
Pending my surgery tomorrow I'll finally be fit to contribute to scripting at least 20 hours a week. Put me in coach .

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Jan 25, 2017 9:52 am
by Moldew
WB Verdi! Hope surgery goes well...

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Jan 25, 2017 10:33 am
by verdicaysen
I made it home ok. On the mend! Lots of time to work for VGO. ;D

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Nov 01, 2017 7:34 pm
by Jakkal
Bump.

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Nov 01, 2017 7:44 pm
by VincentG
I'm a developer and would love to help with this. I've been chatting a bit with Jakkal, and I think I could be an asset. I am a developer, although I know very little of C++ (I know Java very well, but the stretch to C++ gaming is a bit more than it's realized). To get started, I'd really like to learn the LUA stuff and work on content. Playing the game the last few days after a long hiatus has really inspired me to get involved, and I have the bandwidth to do so at the moment.

Any thoughts on the best way to jump in? Perhaps any simple non-implemented quests that I can work on with some guidance for starters, and steps to be able to test it as I code? I am starting from scratch here, unfortunately, but I promise to be an asset once up and running - I'm a quick learner. Even a "Hello World" kind of starter maybe all I need to get things going from my end, as there's lots of good info above about how to code the scripts.

Thanks in advance!

Re: Wanna Help? We're now looking for Content Designers.

Posted: Sat Dec 23, 2017 10:56 pm
by nerdvsgeek
I would like to help out as well - I've done extensive scripts and systems automation work (python, ruby, unix shell) as well as development (C and Objective-C).

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Dec 27, 2017 10:50 am
by Jakkal
@nerdvsgeek: There's a form on the main post, can you fill that out and send it to me in PM? If the forums don't let you PM yet (spammer prevention) you can email it to me at jakkal at gmail dot com

Re: Wanna Help? We're now looking for Content Designers.

Posted: Wed Dec 27, 2017 9:54 pm
by nerdvsgeek
Hi Jakkal,

Thanks -- I'm not able to PM here, so I sent you an email with answers to the form on the main post.

Regards,

-NvG