Your module-building process

Greetings! It’s a lovely day where I am. I hope the weather is good for you as well!

It’s been slow going on my personal projects because, well, I have no restraint and love ideas, so I add new ideas as I come up with them. But this post is not about me! No, I am interested in your process, when it comes to building modules.

Now, I am aware that module creation is ever-so-slightly different from writing fiction, in that it is totally different. So, for totally non-selfish reasons I would like to ask what your process looks like.

Do you have steps? Do you follow them, more or less, in order? (Areas, then NPCs, then scripts…)
Custom content: when and why do you accumulate it?
Skeletons! Do you utilize plot skeletons, or do you go for a fully-fleshed out module straightaway?
What do you use for drafting, if you draft?
Do you ever start in the middle? How?

And other things!

I don’t just wish to make my modules better: I wish to make my modules. Finishing an imperfect project reigns far supreme over never finishing a perfect brainchild. To that end, if I can pick the brains of the old pros or the new scene, I will be a very happy Crone indeed.

Thank you for your time!

1 Like

You start building a module and realize that the standard tilesets just don’t offer what you want, so you learn how to make your own tilesets and soon don’t want to use any of the vanilla tilesets any more, so you have to make more. Then the old placeables look out of place and you need to make new ones. The NPCs have to be replaced. You need more vfxs and would even want to replace all the vanilla body parts for PCs if it weren’t for the PLTs which are straight from hell!
Long story short: I have no idea if I will ever finish my module.

6 Likes

No, but I will next time . . . :innocent:

1 Like

Hey, @Zwerkules! Thanks for the reply. :smile: (Love your Arabian Nights tileset, by the way. Chef-kiss, all around.)

It’s so funny, it’s starting to evolve that way for me, too! (I wonder if this makes me “legit”…) The resources on NWVault are fantastic, but every so often I get that itch of “but if I did it this way…” And so I start cannibalizing and splicing tilesets and resources. Good thing this is such an engrossing hobby…!

1 Like

Ha! I feel this on a philosophical level. :broken_heart:

I started with a basic idea not even so much for a plot as for a premise, because what I mostly go for is the ambiance. I don’t pretend to astonish people with my intricate plotting - not smart enough for that - I’m happiest if the players feel like they’re, say, rangers in winter. (Or callous assassins, as the case may be.)

Once that’s set, I usually start with areas because I have a background in architecture and am generally a visually-oriented person. Often, some traits of the areas will determine small plot elements, such as, say, a family being a bunch of treehuggers because I want to distinguish yet another castle interior from the others, I plop potted plants everywhere and then I realise I’ve made these people live in, like, a greenhouse or something. So I roll with it.
Usually, as I toy with the areas, some sort of ideas for small storylines line up in my head and I try to make each those complete, scripts and all, so I can test that specific segment easily before moving on to the next one. I go for scripts last because, while I feel I’ve learned a lot, I still have no idea what I’m doing and I know I’ll come here to the forum to ask for help so I want everything else ready for testing and troubleshooting by then.

Story for the interested: QG's tale of discovering module-ing

I actually started experimenting with the toolset way back in 2004, when I first played NWN OC. I got frustrated by the lack of green armour for my druid to wear, so I created an armour in the toolset and then needed a module to pick that armour up. So I made a single area, all druid camp-y and stuff. And then I felt bad about the people in that area having to stand around all the time instead of sitting and being comfortable. So I tried to work out how to make them sit, all by myself and with no knowledge of coding or programming whatsoever.

I really don’t know what was I thinking.
It took me a long time to even work out that the whole “scripts” tab is important.

I started out by opening the OC in the toolset and finding creatures that I knew exhibited a given behaviour (like sitting) and just blindly copying their script sets. After some time I found out about the LS script generator and an amazing new vista opened, and by now I felt the whole thing was a fun challenge. (Also, my relationship at the time was in a very bad place and my then-BF was often furious about me making game-stories about attractive male elves, so I did a lot of it to spite him :smiley: ) For a long time I just went blindly with what the generator did, but bit by bit I started feeling limited by that. That’s when I found this forum and learned some of this stuff, though I still have no idea what I’m doing and go by blind trial and error. I actually sat down last week, opened the toolset script editor and just typed out a script, for the first time in my life. It was a super primitive script, but I wrote it down from scratch, and it works and it compiled without errors and I’m still proud of myself for that.
I guess what I’m trying to say is, this has been a really wild ride. Also, thanks guys! You’re awesome.

2 Likes

From a management perspective:

I’d suggest starting with a good event/module management system. The HCR2 is okay, nwn-core-framework is even better (actually, waaaaaaaaay better) (all nwscript). There are a few outside of nwscript also (mostly nwnx/.net). This allows your module to just work, instead of forcing it work every time you add a new system or want to change something. My modules are generally based on nwn-core-framework and I develop independent plug-ins for each module system (death, xp, businesses, horses, etc.). This let’s me plug and play various systems that I can use as a foundation for making module content work correctly (and quickly/easily!).

From a building perspective:

Your story is your problem, your module is your solution. You want to create a solution to your problem, not a solution in search of a problem. So start with your story … what’s the point of the world, what gameplay do I expect the player to enjoy? Is it a storyline or an open-ended world? If a storyline, I write it out much like a screenplay (prop requirements, settings, actors/NPCs, events, outcomes), then start to work on those resources. If an open-ended world, it becomes a bit more difficult if you’re not starting with a known quanitity (such as LOTR, Dark Sun, etc.). If open-ended, I still use the screeenplay idea for developing quests, if there are any.

Either way, though, especially if you’re working on your own, you’ll probably find yourself jumping back and forth between various areas of work, so attempting to build areas, then NPCs, etc., probably won’t work. Pick a part of your story and build everything you need to accomplish that portion, then move on.

If you’re talking a bunch of custom content creation, quit now and find something better to do with your life, cuz you’ll never finish your module (I’m working with a group of guys that are going on their fifth year of custom content creation, but have no module to work with yet).

2 Likes

Thank you so much for writing, @QuenGalad! :grin:

I think I have a very similar framework in place. I like being “done” with an area before moving on, but that doesn’t mean I cannot go back and polish up what I’ve already “finished”. Placing NPCs makes me think “why are they there? what do they do?” and all of a sudden I have two kids playing tag in the village center.

Which, by the way, scripting two kids playing tag is like trying to wrangle two school-age kids. Ugh!

Thank you so, so much for sharing your story! It’s awesome to look at where we came from, and compare it to where we’re going next. :slightly_smiling_face: (Also, it’s so true: why does my druid have orange armor?!) Thank you for reminding me to play your module, by the way. :wink: I remember when you posted for playtesters. I should have jumped on that…!

1 Like

@tinygiant, why have I never heard of these frameworks?! :open_mouth: Wow. I must be pretty bad at research! Haha. Thank you!

Thank you so much for the solid advice! I love storytelling, so this is very heartening. Like I was telling my SO, I was tortuously going over each area painstakingly, asking myself, “what does this add to my story?” If it adds nothing, or too little, I tend to cut it out. You can add flavor later, but it’s harder to cut out what you don’t need weeks or months into a project, I feel.

Haha! Well, that sounds like me, so maybe I shouldn’t be laughing. :stuck_out_tongue:

I’m not very disciplined unless working in tems or professionally, but, roughly speaking, my approach is

  • Collect random thoughts in a writer’s notebook while researching history, myth and custom content

  • Write a Storyboard - mostly text - outlining the overall story - which evolves into detailed pages on quests, characters, backplot etc

  • Capture technical standards and records (e.g. 2da changes, custom token usage, etc etc) as they unfold

  • Write and test critical new systems (e.g. AI, generic code for conversations/areas/triggers/switches, travel, law enforcement) which are difficult to retrofit

  • Choose / build core custom content e.g. tilesets

  • Make the areas (which suggest plot details like QuenGalad says) and furnish them

  • Make the characters and their kit

  • Plan one quest at a time in detail

  • Write the dialogue and scripts for that quest, unit testing each element

  • End-to-end testing with a variety of PCs

4 Likes

@Proleric, thank you so much! I think I might be in the “random thoughts” segment of the process… If you ever have looked at the Wolfcatcher Royal coat of arms, it’s…kinda freaky! That and the Beast of Gévaudan? Perfect for planting the seeds for a Red Riding Hood-themed module. :slightly_smiling_face:

Testing, testing, and testing! Something I need to get into better habits of… I tend to try to implement multiple changes at a time… No bueno!

1 Like

The frameworks are an amazing tool. You can assign any script to any custom (or normal) event and it’ll fire every time, unless you don’t want it to, then it won’t. Currently working on integrating a dispatch function to cancel useless events on specific objects. If you’re interested in integrating one of these frameworks in a new module (and you want to stay nwscript vice C# or other .net), I highly recommend squattingmonk’s nwn-core-framework. If you want to go that route, or if you just want to see how mine are setup, let me know and I can point you at our current repo. Also, SM is very helpful when it comes to his work. I believe I’m currently the only person actively integrating the framework into a module, so I’ve got a good base of how-tos and uh-ohs to go with it.

To expand on your comment, using this type of management system (any type of management system, really) makes it pretty easy to add or remove elements later on. They’re all plug-ins to the framework, so if it’s ain’t working, turn it off. Don’t like it, unplug it.

1 Like

I cannot directly advise you on module-building process because I could never build one alone for a reason. I know however how I would like to make one, so maybe you’ll find some of these tips useful (they apply to module assets making as well).

  1. Always have fun. Module-building is a great form of escapism. Regret nothing.

  2. Make backups. Your module may get corrupted by the toolset or by the system. Paranoia: you can write a shell script that will store a time-stamped copy of the module on every toolset shutdown. This will also give you a point to revert unwanted changes.

  3. Play a lot of modules and check a lot of Vault content. Every type: CEP, tilesets, phenos, scripts, etc. The more you discover beforehand the more options you will have and more time to apply them (read: at earlier stages when it’s easier to make large-scale changes).

  4. Make a list of things you plan to include from other people’s projects (i.e. which files come from which hak). It makes it easier to do version control and to correctly cite your sources.

  5. (controversial?) Scale things down. If you have an epic quest written, cut out half of it, streamline. Because during actual building, you’ll add things to it anyway.

  6. Divide & conquer: don’t build everything at once, just step by step. If possible, finish one component (i.e. some script system), then move to another (i.e. load hints).

  7. Use a separate sandbox module for testing and to avoid clutter in your main file. Also group things (scripts, convos) by giving them common ResRef prefixes.

  8. Understand that the final version of your module may look totally different from what you imagined or how it looked at the beginning.

  9. Follow-up to 7: understand that you will also change, both personally and as a module builder (and be ready to go through several burnout phases).

5 Likes

Great points, NWShacker. You can mitigate #1 with nasher or a similar module extraction tool. Source control also ensures you always have a backup and can restore your module at anytime. For #6, if you use nasher or the like, you can keep related scripts in directories together to make them easy to find (for use with an external editor, doesn’t do much for the toolset editor).

Best advice ever!

Also, very true about a separate module for testing things. I have a separate module for testing cutscenes,* it’s called Prollywood ('cause it will prolly work, geddit? :smiley: ) and it’s saved me a ton of grief over the years, if only because it can launch directly into a cutscene.
[* one of those days I’ll learn how to make them skippable, I swear!]

It’s like wrangling two schoolchildren whose parents are lawyers and who also hope to be lawyers when they grow up, so they keep saying things like “nuh-uh! You specified “go” to your room, you din’t say nothing about staying there!”
Come to think of it, all scripting is like that.

Also very true about checking out other modules. I remember playing some of the stuff from the Vault and being really shocked that you could actually do that sort of stuff in the toolset at all.

2 Likes

This is a fun and informative topic.

For my own part I have settled on a loose process that allows me a lot of freedom to drift between tasks and priorities.

I tried to compile all the custom content I wished to use first, but I knew that I would continue to find little things that I wished to use. So I got into the habit of creating my new haks, hak order, and posting them to a development server all as “one process.” This naturally entailed lots of fiddling and tinkering as I eventually settled on 2da changes, server config and other details.

As I have no current skills with tileset creation (perhaps for the best) I am definitely relegated to what others have created in terms of what settings or stories can be brought forward. Truly the single most crucial creative bottleneck is what tilesets exist to portray a particular thing, but once that hurdle is solved things get a little easier.

I use books! I like to use the books or as close as I can, and that actually frees up some bandwidth. No reinventing the wheel. Unless I can reinvent a better wheel, or a different wheel, or a classic wheel… I have pitfalls of my own, as everyone does.

Once certain paradigms like experience point gain and monsters and things are decided upon, a “skeleton” of the server map must be constructed. This is almost like constructing a canvas upon which to begin working. The initial areas might not have any placeables at all, having at the most transitions in order to show this piece as part of the greater whole. Then the designers can begin to add those placeables, points of interaction, and interiors very freely.

For me there are many enjoyable aspects of the whole process, but none exceed the joy of collaboration. Combining the experience and ideas that other developers and players have about the game is tremendously helpful and fun for me. So while my module-building is certainly an expression of my own creativity, my process is not really complete without feedback.

1 Like

@NWShacker, thank you for replying!

You remind me of my buddies in IL: “all lists must begin with zero.” :smile: Good energy!

I hear the one you have labeled as “controversial” a lot, so maybe there’s something to that? :wink: Scaling down is so much better for the creative process than getting overwhelmed by a surfeit of content you cannot possibly handle right off the bat. Very good points made!

I never actually thought of using a sandbox module! * facepalm * Can you believe it? I’m going to start doing that right now!

1 Like

This! All of my this! @pliny_the_elder, this is a super good point. I have to tell myself that I am not more “virtuous” if I tough it out and build it all from scratch. I utilize the 3e books a lot myself, so I get that angle, too!

Correct me if I am wrong, but you are also referring to PW building, right? That sounds like a beast and a half to tackle! Many, many kudos to you.

1 Like