Difference between revisions of "Module"

From Dragon Age Toolset Wiki
Jump to: navigation, search
(Properties)
m (Properties: Reformatting Presentation)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Infobox module}}
 
{{Infobox module}}
Modules are the campaigns that players can embark on. They contain the resources needed for the adventure they encompass (though you can also have modules inherit the resources of other modules).
 
 
  
 
__TOC__
 
__TOC__
 
== Overview ==
 
== Overview ==
  
A Module is a single collection of Resources, that can be the building block for another Module (Addin) or function on its own (Standalone). A set of Properties tell the game how to integrate the Resources it inherits. A Resource tells the game how it finally behaves.
+
A module is a playable set of [[Overview_of_the_toolset#Toolset_resources | resources]], which can be
  
The Single Player Campaign and Core Game Resources are each one of such modules. Modules can be setup hierarchical, for example the Singleplayer Module is connected to the Core Game Resources and thus can use its resources. Custom Modules can be connected to any other Module.
+
* A campaign that players can embark on
 +
* An extension to a campaign
 +
* An extension to all campaigns
  
Core Game Resources is however special in a way, that it is the foundation of any other Module, and any Module can use its Resources.
+
Technically, an "add-in" is the same thing as a module at present.  
  
== Working with a Module ==
+
A campaign is a standalone adventure. The term can refer to the official campaign (OC) or community-made adventures which appear in game under Other Campaigns. The OC is also called the Single Player campaign (though in fact all DAO campaigns are single player).
  
What are the possible options you have when creating the basis for your Content? Generally one can say a Module can either be standalone, or addon to the existing Campaign. Standalone is a Module which from hitting "custom campaign" in the main menu starts completely fresh into a custom campaign (like the Demo module for example). A Module is an addon, if content is added or perhaps changed to the existing campaign so that it influences the existing campaign but doesnt remove it (like Shale for example).  
+
A module can inherit resources from other modules, as specified in the module properties.  
  
*Standalone is pretty straightforward, in that you need at least a starting Area and a Waypoint in which the Player spawns. You can use any Core Game Resource while making this Module, basically the premade Houses, the Monsters, mostly anything. But the Area still has to be created ,NPCs placed, Dialogues written etc..
+
Every module can use resources from the Core Game Resources module.
*Addon is something initially tricky to do and perhaps unknown to most, even when doing something simple. You need at least one entry point that hooks into the main campaign, and from there it can be a simple added weapon, or unfold into big things. And that entry point is called "PRCSCR". See below.
+
  
A slightly dirty method is changing a Resource of the Main Campaign. This is plainly achieved by editing a Designer Resource from the Toolset and export it under the same name, which is then a override Mod, and undesired effects can potentially reflect back at the Main campaign and other Modules. This should be left for when you know really well what the consequences are.
+
The Single Player campaign inherits the Core Game Resources, and has other resources of its own. In game, Single Player resources are available to community extensions of the Single Player campaign, but not available to community campaigns.
  
=== PRCSCR - Post Release Content Script ===
+
Extensions can be as simple as (say) a magic ring that's available to all campaigns, or as complex as a new chapter of a community campaign (with any number of additional areas, stories etc).
  
'''(Also known as "Adding content into an existing Area")'''
+
Bioware's official DLC is an example of an extension. 
  
Bioware with their Addin Modules uses a functionality called PRCSCR, which enables them to insert any content u heard about into the Main Campaign. This as well is the prefered Method for Modders to add Content. PRCSCR stands for "Post Release Content Script", but isnt all that complicated as "Script" may sound.
+
== Working with a Module ==
 
+
:''See Main Article: [[PRCSCR]]''
+
*A standalone campaign is pretty straightforward, in that you need at least a starting Area and a Waypoint in which the Player spawns. You can use any Core Game Resource while making this Module, basically the premade Houses, the Monsters, mostly anything. But the Area still has to be created, NPCs placed, Dialogues written etc..
 +
*An extension needs at least one entry point that hooks into the main campaign, using a technique called [[PRCSCR]].
  
 
=== Modular File structure ===
 
=== Modular File structure ===
  
Modules are organized in the Filestructure as such the Game can read the correct files, and to allow a modular environment. The Singleplayer Campaign and Core Game Resources use a fixed set of Filefolders.
+
The toolset manages folders, so the builder doesn't often need to know where resources reside, but it's occasionally useful.
 +
 
 +
Modules are organized in the file structure as such the Game can read the correct files, and to allow a modular environment. The Singleplayer Campaign and Core Game Resources use a fixed set of File folders.
  
 
The Singleplayer Module and the Game Core Resources respecivtly (this is the actual installed content) are located in:
 
The Singleplayer Module and the Game Core Resources respecivtly (this is the actual installed content) are located in:
 
<pre>*DragonAgeInstallDir*\modules\single player\
 
<pre>*DragonAgeInstallDir*\modules\single player\
 
*DragonAgeInstallDir*\packages\core\</pre>
 
*DragonAgeInstallDir*\packages\core\</pre>
These base Folders accompany all Resourcetypes specific to that Module. However this is a fixed set, and should be of value to modders only when extracting Resources.
+
These base Folders accompany all resource types specific to that Module. However this is a fixed set, and should be of value to modders only when extracting Resources.
  
Modularity is made in your users folder, where the Toolset exporter distributes Resources into the respective Modules override Folder, as well as creates or stores "builder to player" packages from those Folders. A 3rd Moduletype called Addin is created there which similarily has a "module" Folder for any Resources for that Module alone, and a "core" Folder for any Resource to be accessible by other modules. It looks like this:
+
New modules and their resources are exported to your Documents\Addins folder. This has a Module sub-folder for that module alone, and a Core sub-folder for any Resource to be accessible by all modules. It looks like this:
  
 
<pre>*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\module\
 
<pre>*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\module\
 
*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\core\
 
*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\core\
  
alongside a double of
+
If you change any Single Player or Core resources, they end up in these folders:
  
 
*My Documents*\BioWare\Dragon Age\modules\Single Player\
 
*My Documents*\BioWare\Dragon Age\modules\Single Player\
 
*My Documents*\BioWare\Dragon Age\packages\core\</pre>
 
*My Documents*\BioWare\Dragon Age\packages\core\</pre>
  
The Toolset exports any Resource into each of these Folders, or specifically the override Folder beneath it, depending on which Module the Resource belongs to. When packing the Resources into an installable [[DAZIP]] file, you have to specify any of those folders to include. Thus it is to great part important where Resources are located, and especially where files shouldnt be located.
+
Once exported, the module can be tested in game. The [[Builder to player]] tool can be used to zip the files in a format which other players can install.
  
When you have not worked with the Toolset before you may not have adhered to that structure before, as Resources will get read from any Override anyway. However, this is to a great part organizational for the Toolset.
+
The game will usually read resources from any Override folder, using the [[Source directory priorities]] to resolve conflict if two resources have the same name.
  
 
== Properties ==
 
== Properties ==
Line 62: Line 64:
 
{{inspector row|Starting Area | The area that the player starts in when the campaign begins. }}
 
{{inspector row|Starting Area | The area that the player starts in when the campaign begins. }}
 
{{inspector row|Starting Waypoint | The waypoint within the starting area that the player appears at when the campaign begins. This property is not used if the module is an add-on to an existing module. }}
 
{{inspector row|Starting Waypoint | The waypoint within the starting area that the player appears at when the campaign begins. This property is not used if the module is an add-on to an existing module. }}
{{inspector row|StringID Begin | The line number in the [[String editor | talk table]] at which this module's text strings begins. Set to a very large random number to reduce the risk of conflict between modules.}}
+
{{inspector row|StringID Begin | The line number in the [[String editor | talk table]] at which this module's text strings begins. Set to a very large random number to reduce the risk of conflict between modules. When building as a team, each builder needs to work with a different range and be aware of a potential [[Bug:_Builder_to_Builder_Load_may_not_reproduce_resource_detail_correctly | bug]].}}
 
{{inspector row|StringID End | The end of the talk table line number range allowed for this module.}}
 
{{inspector row|StringID End | The end of the talk table line number range allowed for this module.}}
 
{{inspector row|StringID Last Used | The last line number used by this module in the talk table. Determines the line number of the next text string created.}}
 
{{inspector row|StringID Last Used | The last line number used by this module in the talk table. Determines the line number of the next text string created.}}
Line 77: Line 79:
 
{{inspector row|Game Version|}}
 
{{inspector row|Game Version|}}
 
{{inspector row|Image| An icon that's displayed in the installed content page }}
 
{{inspector row|Image| An icon that's displayed in the installed content page }}
{{inspector row|Presentation| If the module is an offer this bitmask indicates the various ways that the "hook" for the addin will be presented to the player in-game. 1: [[Chanter's board]], 2: [[journal entry]], 4: [[merchant]], 8: [[world map]], 16: [[NPC]], 32: loot. You can logically OR multiple types together.}}
+
{{inspector row|Presentation| If the module is an offer this bitmask indicates the various ways that the "hook" for the addin will be presented to the player in-game.
 +
: 1 - [[Chanter's board]]
 +
: 2 - [[Journal entry]]
 +
: 4 - [[Merchant]]
 +
: 8 - [[World map]]
 +
: 16 - [[NPC]]
 +
: 32 - Loot
 +
You can logically OR multiple types together, for example, an addin presented through the journal and world map would use a value of (2 OR 8), i.e. 10.}}
 
{{inspector row|Price|The price of the module in points. This is only meaningful for modules offered by BioWare.}}
 
{{inspector row|Price|The price of the module in points. This is only meaningful for modules offered by BioWare.}}
 
{{inspector row|Priority|}}
 
{{inspector row|Priority|}}
Line 470: Line 479:
 
{{variable table end}}
 
{{variable table end}}
  
 +
{{languages}}
 
[[category:modules]]
 
[[category:modules]]

Latest revision as of 14:20, 21 February 2013

Module topics

Overview

A module is a playable set of resources, which can be

  • A campaign that players can embark on
  • An extension to a campaign
  • An extension to all campaigns

Technically, an "add-in" is the same thing as a module at present.

A campaign is a standalone adventure. The term can refer to the official campaign (OC) or community-made adventures which appear in game under Other Campaigns. The OC is also called the Single Player campaign (though in fact all DAO campaigns are single player).

A module can inherit resources from other modules, as specified in the module properties.

Every module can use resources from the Core Game Resources module.

The Single Player campaign inherits the Core Game Resources, and has other resources of its own. In game, Single Player resources are available to community extensions of the Single Player campaign, but not available to community campaigns.

Extensions can be as simple as (say) a magic ring that's available to all campaigns, or as complex as a new chapter of a community campaign (with any number of additional areas, stories etc).

Bioware's official DLC is an example of an extension.

Working with a Module

  • A standalone campaign is pretty straightforward, in that you need at least a starting Area and a Waypoint in which the Player spawns. You can use any Core Game Resource while making this Module, basically the premade Houses, the Monsters, mostly anything. But the Area still has to be created, NPCs placed, Dialogues written etc..
  • An extension needs at least one entry point that hooks into the main campaign, using a technique called PRCSCR.

Modular File structure

The toolset manages folders, so the builder doesn't often need to know where resources reside, but it's occasionally useful.

Modules are organized in the file structure as such the Game can read the correct files, and to allow a modular environment. The Singleplayer Campaign and Core Game Resources use a fixed set of File folders.

The Singleplayer Module and the Game Core Resources respecivtly (this is the actual installed content) are located in:

*DragonAgeInstallDir*\modules\single player\
*DragonAgeInstallDir*\packages\core\

These base Folders accompany all resource types specific to that Module. However this is a fixed set, and should be of value to modders only when extracting Resources.

New modules and their resources are exported to your Documents\Addins folder. This has a Module sub-folder for that module alone, and a Core sub-folder for any Resource to be accessible by all modules. It looks like this:

*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\module\
*My Documents*\BioWare\Dragon Age\AddIns\*Modulename*\core\

If you change any Single Player or Core resources, they end up in these folders:

*My Documents*\BioWare\Dragon Age\modules\Single Player\
*My Documents*\BioWare\Dragon Age\packages\core\

Once exported, the module can be tested in game. The Builder to player tool can be used to zip the files in a format which other players can install.

The game will usually read resources from any Override folder, using the Source directory priorities to resolve conflict if two resources have the same name.

Properties

General
Client Script Client scripts simulate user input
Include In Resource Build This was used internally in the development of Dragon Age to determine whether a module in the designer database was automatically included in builds.
Name The name of the module, used internally in the toolset title bar and as a fallback in the game if a description string ID has not been set.
Script Event script assigned to the resource
Starting Area The area that the player starts in when the campaign begins.
Starting Waypoint The waypoint within the starting area that the player appears at when the campaign begins. This property is not used if the module is an add-on to an existing module.
StringID Begin The line number in the talk table at which this module's text strings begins. Set to a very large random number to reduce the risk of conflict between modules. When building as a team, each builder needs to work with a different range and be aware of a potential bug.
StringID End The end of the talk table line number range allowed for this module.
StringID Last Used The last line number used by this module in the talk table. Determines the line number of the next text string created.
Type Only the "Addin" type is supported by the end user toolset. The name "Addin" can be misleading, it's possible to create a stand-alone addin that appears as a new campaign.
UID "Unique ID", this is not seen by the player. It is used in various configuration files and as the name of the directory that the module is stored in when exported.
Info
Content Module If this module is a PRC "offer" module, this indicates the module that it is offering for download. This is not likely to be used outside of BioWare.
Description This property can't be set directly, it displays the contents of the description string ID set below.
DescriptionStringID A string ID pointing to a short description of your module
DisplayName This property can't be set directly, it displays the contents of the display name string ID set below.
DisplayNameStringID A string ID pointing to the name of your module.
Extended Module If the module is an add-on to an existing module (such as Single Player), select it from the drop-down list here. When this is set the module will be added to addins.xml when it is exported.
Game Version
Image An icon that's displayed in the installed content page
Presentation If the module is an offer this bitmask indicates the various ways that the "hook" for the addin will be presented to the player in-game.
1 - Chanter's board
2 - Journal entry
4 - Merchant
8 - World map
16 - NPC
32 - Loot
You can logically OR multiple types together, for example, an addin presented through the journal and world map would use a value of (2 OR 8), i.e. 10.
Price The price of the module in points. This is only meaningful for modules offered by BioWare.
Priority
ProductID
Publisher This property can't be set directly, it displays the contents of the publisher string ID set below.
PublisherStringID
Rating This property can't be set directly, it displays the contents of the rating string ID set below.
Rating Description This property can't be set directly, it displays the contents of the rating description string ID set below.
RatingDescriptionStringID
RatingStringID
Release Date The date the module was released in its current form
URL
URLStringID
Version The version number you've assigned to the module's current state.
Localization and VO Production
Requires Localization [Undocumented]
Requires VO (Voice-Over) [Undocumented]
Modification History
Created By User who created this module.
Created On The date it was created on.
Last Modified By The user who last modified the module.
Last Modified On The date it was last modified on.
Variables
Variable 2da 2da file containing a variable table. Only the values in the table can be set and retrieved by scripting.
Variables Opens the variable table for editing, allows the initial values of the variables to be defined.


Variables

The module_var variables 2da contains a number of variables that are only used by the original main campaign for Dragon Age. Most of these can be ignored when creating other modules. In fact, the vast majority of the variables in this table are only referred to by core scripts; most modders will likely not need to worry about these.

Variable name Type Default Description
ABILITY_ALLY_NUMBER int 4
AI_DISABLE_TABLES int 0
AI_PARTY_CLEAR_TO_ATTACK int 0 0 - non controlled followers should not attack yet. (can still run other non-offensive AI actions).

1 - non controlled followers are allowed to attack.

AI_USE_GUI_TABLES_FOR_FOLLOWERS int 1
ALISTAIR_FRIEND_TRACK int 0 A variable related to one of the main party followers in Dragon Age: Origins.
AMB_SYSTEM_DIALOG int 0
APP_APPROVAL_GIFT_COUNT_* int 0 A set of variables, one named for each of the possible main party followers in Dragon Age: Origins, for tracking how many gifts they've each been given.
APP_APPROVAL_RATE_* int 0 A set of variables, one named for each of the possible main party followers in Dragon Age: Origins, for tracking their approval score.
APP_RANGE_VALUE_* int 0 A set of threshold values for dividing party member approval scores up into "friendly", "warm", "neutral", "hostile" and "crisis".
AREA_LOAD_HINT int 0 Related to the text shown on the load screen between areas
CHARGEN_MODE int 0
CIR_FADE_FOLLOWER_* int -1 A set of three variables related to a specific plot within the original campaign of Dragon Age: Origins
CLIMAX_ARMY_CURRENT_AREA_BUFFER_SIZE int 0 A variable related to a specific plot within the original campaign of Dragon Age: Origins. The current number of living army members in the current area of army deployment.
CLI_ALISTAIR_AGREE_LEVEL int 0
COUNTER_MAIN_PLOTS_DONE int 0
CUTSCENE_SET_PLOT string NONE Cutscene function will store a plot flag to be set after the cutscene plays.
CUTSCENE_SET_PLOT_FLAG int -1 Cutscene function will store a plot flag to be set after the cutscene plays.
CUTSCENE_TALK_SPEAKER string Cutscene function will store a talk speaker who will speak after the cutscene plays.
DEATH_HINT int 0 related to the text shown on the screen after the player's death
DEBUG_ENABLE_PARTY_ITEM_SCALING int 0
DEBUG_SKILL_CHECK_OVERRIDE int 0
DEMO_ACTIVE int 0
DISABLE_APPEARANCE_LEVEL_LIMITS int 0
DISABLE_FOLLOWER_DIALOG int 0 Make followers trigger soundsets instead of dialog when the leader is not the hero and clicked on (for example: climax defense)
DISABLE_WORLD_MAP_ENCOUNTER int 0
DOG_WARLIKE_COUNTER int 0
HANDLE_EVENT_RETURN int 0
LOG_ACTIVE int 0
LOG_AI_CURRENT_LEVEL int 0
LOG_PLOT_CURRENT_LEVEL int 0
LOG_RULES_CURRENT_LEVEL int 0
LOG_SYSTEMS_CURRENT_LEVEL int 0
MODULE_COUNTER_* int 0 Three generic "counter" variables
MODULE_WORLD_MAP_ENABLED int 0
NRD_BANDIT_BELT_COUNT int 0
NRD_DIVINE_COIN_COUNT int 0
NTB_* int 0 Variables related to a specific plot within Dragon Age: Origins
ORZ_* int 0 Variables related to a specific plot within Dragon Age: Origins
PARTY_BANTER_DIALOG_FILE resource NONE
PARTY_BANTER_ROTATION_COUNTER int 0
PARTY_LEADER_STORE object 0 stores the object ID of the leader that was chosen for being a leader, before it is switched (used in the climax)
PARTY_OVERRIDE_DIALOG resource NONE
PARTY_OVERRIDE_DIALOG_ACTIVE int NONE
PARTY_PICKER_GUI_ALLOWED_TO_POP_UP int 0
PARTY_TRIGGER_DIALOG_FILE resource NONE
PARTY_TRIGGER_PLOT string
PROVING_FIGHT_ID int 0 Variable related to a specific plot in Dragon Age: Origins
RAND_*_SET int 0
RUNSCRIPT_VAR string When the console command "runscript" is used, this variable will contain a string with any parameters that the script was given. The script will need to retrieve and parse these itself.
STEALING_*_COUNTER int 0
TRACKING_GAME_ID int 0
TRACKING_SEQ_NO int 0
TUTORIAL_ENABLED int 0
TUTORIAL_HAVE_SEEN_LEVEL_UP int 0
WM_STORED_AREA string last used area - will be triggered when returning from a random encounter
WM_STORED_WP string last used transition wp - will be used when returning from a random encounter
WORLD_MAP_STORED_PRE_CAMP_AREA string The WIDE OPEN WORLD area that was visited last. Used when leaving the camp so we can know if the player returns to it from the camp and then just directly transition there instead of travel.
WORLD_MAPS_TRIP_COUNT int 0 counting the number of trips the player did in the world map, on any map in the game. Used to determine when to trigger random encounters.
WRD_* int 0


Language: English  • русский