How to Create a Module Page

From Vassal

Overview

Each VASSAL module has its own page in the Modules namespace here on the VASSAL Wiki. There are four steps to creating a module page:

  1. Start a new page for the module.
  2. Copy the module page template to your new module page.
  3. Fill in the details for your module.
  4. Upload your module.

This tutorial will walk you through each step.

Please note that many of the steps described here require you to be logged in to the site to do them. If you are following the tutorial but are not logged in, log in now.

Start a new page

There are several ways to start a new page; the most straightforward one is to type "Module:", followed by the name of the game for which you are creating a module, in the wiki's search box at the top of the page. (Note: The "Module:" preceding the name of the game is a namespace. Namespaces help separate types of content in our wiki.) If you are browsing in a narrow window, you may need to click he hamburger menu to reveal the search box.

The search box

This will take you to a "Search results" page. If there really is no page for your module, you'll see the link "create this page", circled in green in the screenshot below.

The "create this page" link

After clicking the link, you will be taken to a page where you can begin editing.

Edit the new page

Proceed to the next section, where we will begin to fill in the module page.

Copy the module page template

All VASSAL module pages follow a set style in order to make it easy for users to locate the information they need and to give our module pages a uniform appearance. Creating a module page from scratch is a fair amount of typing, so we provide a template for you to copy:

{{GameInfo|image=|publisher=|year=|era=|topic=|series=|scale=|players=|length=}}

== Files and Module Information==
{{ModuleFilesTable2}}
{{ModuleVersion2|version=}}
{{ModuleFile2|filename=|description=|date=|size=|compatibility=|maintainer=|contributors=}}
|}

== Change Log ==

== Comments ==

== Screen Shots ==
<gallery heights=200px widths=300px perrow=3>
</gallery>

== Players ==
<div style="column-count: 4; -moz-column-count: 4; -webkit-column-count: 4">
* {{email|someguy@example.com|Some Guy}}
</div>

__NOTOC__

Select the template text and paste it into the text area on the editing page. Then, click the "Show Preview" button below the editing area.

Show preview button

You should now see a skeletal version of your module page previewed above the editing area. Proceed to the next section, where we will describe what each element in the template does and how to fill in the details for your module.

Fill in Your Module Details

In this section, we will walk you through adding the information for your module to the module page template. We will make frequent use of wiki markup. For more details on wiki markup see Help:Formatting.

Module pages are divided into sections marked by level-2 headings: == Heading ==. (Level-2 headings correspond to the <h2> element in HTML.) If you look at the module page template, you'll see headings for "Files and Module Information", "Change Log", "Screen Shots", and "Players":

{{GameInfo|image=|publisher=|year=|era=|topic=|series=|scale=|players=|length=}}

== Files and Module Information ==
{{ModuleFilesTable2}}
{{ModuleVersion2|version=}}
{{ModuleFile2|filename=|description=|date=|size=|compatibility=|maintainer=|contributors=}}
|}

== Change Log ==

== Comments ==


== Screen Shots ==
<gallery heights=200px widths=300px perrow=3>

</gallery>

== Players ==
<div style="column-count: 4; -moz-column-count: 4; -webkit-column-count: 4">
* {{email|someguy@example.com|Some Guy}}
</div>

__NOTOC__

These headings divide the module page into sections. Above the "Files" section is the markup which produces an information box for your module.

The Module Information Box

Here we will look at the module information box one piece at a time. The module information box is produced by a MediaWiki template. Templates define text which will be included into a page when it is rendered. The syntax for templates is {{Name|arg1=val1|...|argn=valn}}, where Name is the name of the template, arg1 to argn are named arguments, and val1 to valn are the values of those arguments. Argument-value pairs are separated from the template name and from each other by the pipe character ("|").

The template which produces the module information box is called GameInfo, and takes the following arguments:

image
the name of the image to display,
The Image shall be no taller than 200 pixels. Anything larger will result in image being replaced


publisher
the publisher of the game Current Publisher list
year
the year the game was first published (regardless of publisher)
era
the historical era the game covers, if applicable. Defined Era examples
topic
the topic the game covers, if applicable. Defined Topic examples
series
the series the game is part of, if applicable
scale
the scale of the game, if applicable. Defined Scale examples
players
the number of players the game accomodates, format as "n to n". Defined Players examples
length
the minimum length the game, in minutes, it takes to play the board game


Now, an example: The module for The Longest Day uses this code

{{GameInfo|image=TLD.jpg|publisher=Avalon Hill|year=1980|era=WWII|topic=Normandy
Invasion|scale=operational|players=2+|length=long}}

which produces this info box:

TLD.jpg
Publisher Avalon Hill Era WWII
Year 1980 Topic Western Front
Players 2 to 4 Scale Operational
Length 240 min

Notice that the series isn't specified here; series is an optional argument, since not every game is part of a series. The GameInfo template automatically adds your module page to the Modules category, as well as the categories for the game's publisher, era, and topic.

The Files and Module Information Section

This section of the module page contains the table listing files available for download. The code for this section consists of four parts, seen here:

{{ModuleFilesTable2}}
{{ModuleVersion2|version=}}
{{ModuleFile2|filename=|description=|date=|size=|compatibility=|maintainer=|contributors=}}
|}

The parts:

  1. The ModuleFilesTable2 template creates the table header.
  2. The ModuleVersion2 template creates a table row which specifies the module version for the files appearing in subsequent rows.
  3. The ModuleFile2 template creates a row containing information about a file and a link for downloading it as well as who created or contributed to the development of the module.
  4. The final |} ends the table.

An example: The following code

{{ModuleFilesTable2}}
{{ModuleVersion2|version=1.1}}
{{ModuleFile2|filename=battle_of_example-1.1.vmod|description=module|date=2010-08-03|compatibility=3.1|maintainer={{email|tom@example.com|Tom Johnson}}|contributors={{email|richard@example.com|Dick Smith}}, {{email|harold@somewhere.edu|Harry Jones}}}}
{{ModuleVersion2|version=1.0}}
{{ModuleFile2|filename=battle_of_example-1.0.vmod|description=module|date=2009-10-10|compatibility=3.0|maintainer={{email|tom@example.com|Tom Johnson}}|contributors={{email|richard@example.com|Dick Smith}}, {{email|harold@somewhere.edu|Harry Jones}}}}
{{ModuleFile2|filename=battle_of_example-maps-1.0.vmdx|description=extra maps|date=2009-10-10|compatibility=3.0|maintainer={{email|tom@example.com|Tom Johnson}}|contributors={{email|richard@example.com|Dick Smith}}, {{email|harold@somewhere.edu|Harry Jones}}}}
|}

produces this table of files:

Filename Filetype Size Date Compatibility Developer Other Contributors
1.1
battle_of_example-1.1.vmod module "battle_of_example-1.1.vmod" does not exist 2010-08-03 3.1 Tom Johnson Dick Smith, Harry Jones
1.0
battle_of_example-1.0.vmod module "battle_of_example-1.0.vmod" does not exist 2009-10-10 3.0 Tom Johnson Dick Smith, Harry Jones
battle_of_example-maps-1.0.vmdx extra maps "battle_of_example-maps-1.0.vmdx" does not exist 2009-10-10 3.0 Tom Johnson Dick Smith, Harry Jones


The parameters for ModuleFile2 are described here:

filename
the name of the file
filetype
the type of file or very short description i.e module, extension, help files, rules summary etc..
date
the release date of the file, format is YYYY-MM-DD
size
the size of the file (this is calculated for you)
compatibility
the versions of VASSAL this file is compatible with
maintainer
the developer of the module / responsible for the module's maintenance
contributors
other people that contributed or helped make the module possible

If a file is not already uploaded, then you'll see a red link in the row in the file table corresponding to that file. You can use this link to upload your file, as we will see in the final section of this tutorial.

Email addresses are listed using the email template. The first argument of this template is the email address, while the second (optional) argument is the text to display for the link. The email template ensures that email addresses are shown only to users who are logged in to the wiki.

Below the ModuleFile2 is an appropriate place to display other important information about the module.

The Change Log

The Change Log can be used to list changes/improvements/fixes that are added over time from version to version. Changes should be grouped by version, and the changes for the most recent version(s) should appear at the top.

* Version 10.4 - Requires VASSAL Version 3.5.8 or later!
** Warning displayed when desert spaces or desert-adjacent spaces activated for combat in summer turns.
** Warning displayed when MEF is played as the event when Salonika already marked as having been played.
** Right-click menu now allows trenches to be placed properly while besieging an enemy fort.
** CP Removed pile now sorts correctly the way the other piles do (when "Draw Specific Cards" selected).
** Automatic placement of control markers, besieged markers, and trench capture can be disabled in preferences
* Version 10.3 - Requires VASSAL Version 3.5.5 or later!
** 10.3.1 - Cracow was missing from the internal list of forts, so didn't behave like a fort space.
** SPANISH language translations now available, courtesy of javiermunozk! 
.
.
.

The Comments Section

This section contains longer descriptive information about the various files, module versions, how to play or use the module etc. If the information provided here is very extensive it should be moved to the Module's talk page instead and provide a simple link to the talk page here. Users with comments or questions for the game can also use the Module Talk page that Module Contributors, Maintainers, Designers or Vassal Developers can check for info or answer etc..

FIXME: How to access module talk page and link

The Screen Shots Section

This section contains a gallery of screen shots of the module in action. To add an image to the screen shot gallery, add the name of the image on a new line between the gallery tags, one image name per line:

<gallery heights=200px widths=300px perrow=3>
  Image:Twilight_Struggle_Map.png
  Image:TunisiaScreenshot.jpg
</gallery>

The above code produces this screen shot gallery:

For full details on how image galleries work in this wiki, see the gallery documentation.

For full details on how to upload images see Upload a file.

The Players Section

This section contains a listing of people interested in playing this game. Email addresses are specified as in the the Module Information section. The following code

<div style="column-count: 4; -moz-column-count: 4; -webkit-column-count: 4">
* {{email|someguy@example.com|Some Guy}}
* {{email|s.o.guy@example.com|Some Other Guy}}
* {{email|y.a.guy@example.com|Yet Another Guy}}
</div>

produces this:

  • Some Guy
  • Some Other Guy
  • Yet Another Guy

Each email address is an item in a bullet list.

Upload Your Module

If you've added an entry for your module in the Files section of your module page, then you should see a red link in that row. To upload the file corresponding to that link, simply click the link. Doing so will take you to an upload page where you can upload your file. To see an example of such an upload page, follow this link: DoesNotExist.vmod. Note: Please do not upload a file with this name—that will ruin the example.

If you are uploading a new version of a module, please do not overwrite an existing version. Give your new version its own version number and put that version number in the filename. This will help users tell which version of your module they're using.

Do not upload modules/files in zip format - they will be rejected. Use the correct extension: .vmod for modules, .vmdx for extensions, .vsav for saved setups and .vdck for saved decks