Skip to content
zumbak04 edited this page Nov 20, 2020 · 50 revisions

Hello! Here you will find tips or not very strict rules that we follow to make our work easier. You may not read things not related to you: you may skip flag guidelines if you work on localization.

General Guidelines:

  1. If you want to commit changes that aren't yours, are completely generated, moved from one place to another or contain a lot of deleted lines, commented out lines, please TRY TO write in "(GDC)" at the end of your commit message.
  2. TRY TO talk to reviewers! When you fix a bug or implement a feature mentioned in the review, say to everyone on GitHub it's fixed or implemented!
  3. TRY TO add wc at the beginning of non-vanilla files (created for this mod), so we can distinguish which files are related to the mod. Examples: wc_third_war_events.txt, wc_event_modifiers.txt.
  4. PLEASE read these Console Tricks. They will help in testing.
  5. PLEASE read these GitHub Text Tricks. They will help in communicating on GitHub.
  6. If you're a developer, we RECOMMEND TO take a look at Warcraft-Guardians-of-Azeroth\.artist_resources and Warcraft-Guardians-of-Azeroth\.coder_resources folders. For example, in .artist_resources you can find layered images of our icons.

Scripting Guidelines:

  1. We RECOMMEND TO use Notepad++ for scripting. In these Notepad Tricks you will find the download link and some tricks.
  2. TRY TO follow this Code Style. This unified code style allows you to save time spent interpreting the code of other developers.
  3. When you create some new script like an event, decision etc., TRY TO leave a comment so other developers can know context.
  4. If you change vanilla lines, TRY TO write comment # Warcraft before these lines and highlight it by making gaps (empty lines) before and after the mod lines.
Example
prisoner = no

# Warcraft
culture = gurubashi
trait = creature_troll

trait = greedy
  1. We RECOMMEND TO read the Troubleshooting Article to find bugs easier. It's not said in the article, but to see the full error log you need to write these arguments: -debug -debugscripts -fullhistoricalsetuplog -scriptlog.

Performance Guidelines:

  1. TRY TO to use weight_multiplier instead of mean_time_to_happen. This makes the game less laggy. More info about what weight_multiplier is, you can find in this Event Modding Article.
  2. TRY TO add as much Event Pre-triggers and Decision Pre-triggers as possible. This makes the game less laggy. Design your features so they're limited to only_playable = yes or ai = no or both.
  3. If you're working on Targeted Decisions, TRY NOT TO use all filter. Especially, if it's ai_target_filter.

Culture names/dynasties guidelines:

  1. If your culture uses lore names TRY TO separate them from others like this:
Example
# Names
# Order:
# Arathi lore names (ancient humans)
# Azerothian lore names
# Random names
male_names = {
	Anduin Thoradin Antonius Kelsing Ignaeus Lordain Meryl

	Barathen Llane Landan Varian Ello Crispin Hogan Farrin Robin Rafe Role Catriona Sirra Medivh Nielas Gavinrad Abercrombie Moroes Attumen Edwin Bazil Klaven Gregor Aldous Bolten Morelan Remington Baurles
	
	Acton Adair_Adair Adam_Adam Adrien Aedis_Aedis Alcott Aldwin_Aldwin Allan_Allan Allison_Allison Alyn_Alyn
	Ander_Ander Ang_Ang Angus_Angus Anson_Anson Argos_Argos Arnold_Arnold Arthur_Arthur Augustus_Augustus
	Bailey Barks Barnett Baros_Baros Barrett Bazzil_Bazzil Behsten_Behsten Ben_Ben Benjamin
	Bernard_Bernard Bert Bradney Brand Brandon_Brandon Brennan Brentan Brian_Brian Brodie Bruce
	Bruno Bryan_Bryan Carrington Carson Casey Chapman Chilton_Chilton Darrel Darrius Declan Dickinson
	Dwayne Dwenn Dwite Dwyght Earl Edwardson Egerton Elbridge Emmyrson Fitch_Fitch Fitzgerald_Fitzgerald
	Gaiman_Gaiman Gavin Hesse_Hesse Hyatt Jackson Jagger Jaiden Johan Joseph Kayden Keegan Kenelm Kerwin_Kerwin Kristoff_Kristoff Lauffer_Lauffer
	Maxim Milton Neal Newall Newbold Newton Nico Osbert Parr Payton Philip Raff Ralph Randy Redfield Redmund Redwald Rell Renato Rhett Ripley Robben Rowan Ruben
	Ryan Sandon Sean Shayne Simon Spenser Stefan Stuart Sullivan Sydell Taylor_Taylor Thorne Tito Tristen Wade Welborne Whittaker Wilson Winward
}
female_names = {
	Decindra Mereldar
	
	Varia Taria Tiffin Althea Keira Dorothea Eliza Vanessa
	
	Alexandra_Alexandra Alicia_Alicia Alma_Alma Alison_Alison Akyssa_Alyssa Amber_Amber Anastasia_Anastasia Angela_Angela
	Aysa_Aysa Ardwyn_Ardwyn Alexa Alize Amanda Ann Ansley Ariana Asha Ayanna Beatrix Bela Bellatrix
	Bree Brigitte Bethany_Bethany Betty_Betty Camilla Carletta Carolaine Cecil Constance_Constance Celina Celsa Carla_Carla Cesaria
	Catarina_Catarina Catherine_Catherine Catrina_Catrina Clerice Clover Caledra_Caledra Creada Dagena Deidra Edwina Elaine Elenor
	Elisa Ellen Ember Eva  Fastrada Felita Finnula Framberta Frolaica Frotlina Genovefa Gilian Gillian Gisela Gwen Halley
	Hannah Idonea Isobel  Isolde Jaezel Jazel Jillia Jaxon_Jaxon Josphine June Kali Kelsey Kenata Landina Lantsida Eliza Liz
	Lizbeth Luana Lucille Lucretia Madelgarde Marcia Marcovefa Marjory Martinga Melania Mercy Mierelle Mirelle Morberga Nials Noira Noreen
	Parella Parker Ramona Rigunth Rose Rothaide Rubia Sarias Severina Sybil Theda Theodelinda Ursyn Velvet Zarise
}

Event Guidelines:

  1. TRY TO name Event Namespaces like this: WC + 3-2 Letters of Abbreviation. For examples, the namespace of wc_third_war_events.txt is WCTHW.

Artifact Guidelines:

  1. Artifact icons (sprites) are declared in Warcraft-Guardians-of-Azeroth\interface\wc_treasury.gfx.

Character Guidelines:

  1. If you plan to add new characters, we RECOMMEND TO take a look at This How To Create Dynasty guidelines.
  2. TRY NOT TO make character attributes higher than 25 (35 maximum). Having a higher value than this breaks certain vanilla events and balance.

Province/Title Guidelines:

  1. TRY NOT TO change province attributes without changing Warcraft-Guardians-of-Azeroth\map\provinceDef.xls. This is because the next map generation will clear all of your changes. For more information, Visit this Utility Guide. DO NOT open this provinceDef.xls in any program except Microsoft Excel 2010 or above.
  2. Using this Utility, MAKE SURE your settings in <folder where you installed utility>/config.properties look like this except for moddirectory and intalldir lines.
Click to expand
landedTitlesName=01_landed_titles.txt
writeTitleHistory=true
writeTechnologyHistory=true
PLACEHOLDER_FLAG_CHECKSUMS=730032328,2982430784,2136429345,686042394,1250550140,4068395823,1226274226
PLACEHOLDER_FLAG=default_flag.tga
LOCALISATION_PREFIX=00_

templateTop = # {name}\n\
\n\
# County Title\n\
title = {name}\n\
\n\
# Settlements\n\
max_settlements = {maxSettlements}\n

templateBottom = \n\
# Misc\n\
culture = {culture}\n\
religion = {religion}\n\
{terrain}

header = ###### AUTO GENERATED CONTENT (c) CKTools v19 ######\n\n

empireTemplate = \
e_{name} = {\n\
\tcolor={ {red} {green} {blue} }\n\
\tcolor2={ 255 255 20 }\n\
\t\n\
\tcapital = {capitalId} # {capital}\n\
\tculture = {culture}\n\
\t\n

kingdomTemplate = \
k_{name} = {\n\
\tcolor={ {red} {green} {blue} }\n\
\tcolor2={ 255 255 255 }\n\
\t\n\
\tcapital = {capitalId} # {capital}\n\
\tculture = {culture}\n\
{languages}\
\t\n

duchyTemplate = \
d_{name} = {\n\
\tcolor={ {red} {green} {blue} }\n\
\tcolor2={ 255 255 255 }\n\
\t\n\
\tcapital = {capitalId} # {capital}\n\
\tculture = {culture}\n\
{languages}\
\t\n

countyTemplate = \
c_{name} = { # {countyId}\n\
\tcolor={ {red} {green} {blue} }\n\
\tcolor2={ 255 255 255 }\n\
{languages}\
\t\n

baronyTemplate = \
b_{name} = {\n\
\tused_for_dynasty_names = no\n\
\n

titlePreamble_B = \
# {topLiege}\n\
1.1.1={\n\
\tlaw = agnatic_succession\n\
\tlaw = succ_gavelkind\n\
}\n
titlePreamble_C = \
# {topLiege}\n
titlePreamble_T = \
# {topLiege}\n

titleLiegeDefinition = \
800.1.1={\n\
\tliege={liege}\n\
}\n

defaultMap_Center = \
definitions = "definition.csv"\n\
provinces = "provinces.bmp"\n\
positions = "positions.txt"\n\
terrain = "terrain.bmp"\n\
rivers = "rivers.bmp"\n\
terrain_definition = "terrain.txt"\n\
heightmap = "topology.bmp"\n\
tree_definition = "trees.bmp"\n\
continent = "continent.txt"\n\
adjacencies = "adjacencies.csv"\n\
climate = "climate.txt"\n\
region = "island_region.txt"\n\
geographical_region = "geographical_region.txt"\n\
static = "statics"\n\
seasons = "seasons.txt"\n\
externals = {\n\
}

defaultMap_Trees = \
# Define which indices in trees.bmp palette which should count as trees for automatic terrain assignment\n\
tree = { 3 4 7 10 }\n

# first bookmark date
#tech1.year=1200
#tech1.military=0.5
#tech1.economy=1.0
#tech1.culture=1.0

# last date
#tech2.year=1600
#tech2.military=5.0
#tech2.economy=5.0
#tech2.culture=5.0

# first bookmark date
tech1.year=200
tech1.military=1.5
tech1.economy=1.5
tech1.culture=1.5

# last date
tech2.year=800
tech2.military=4.5
tech2.economy=4.5
tech2.culture=4.5
  1. We RECOMMEND TO these amounts of holding slots and built holdings:
  • 3 built holdings, 4 slots by default.
  • +1 built holding and slot if the province has a known small city, village, castle, etc.
  • +2 built holdings and slots if the province has known a known big city, castle, etc.
  • +3 built holdings and slots if the province has known a known major city, castle, etc.
  • -1 built holding and slot if the province is a wasteland.
  1. We RECOMMEND TO name provinces/titles short. Avoid 2-words titles and use of "of" in your names.
  2. TRY NOT TO change titles in 01_landed_titles.txt. It's an auto-generated file. Instead of it, use overwrite files. The file names should start with z_. To overwrite the title, you must use the exact same name (k_gilneas, e_kaldorei, etc.).
  3. TRY NOT TO make duchies too big. A normal duchy should have a maximum of 4 de-jure counties.
  4. When you add new provinces/duchies, DO NOT FORGET to update geographical_region.txt and island_region.txt. Every province must have the assigned region in geographical_region.txt and the assigned island/continent (except the Eastern Kingdoms' provinces).
  5. When you add new provinces, DO NOT FORGET to change the map object positions using The Nudge.

Icon Guidelines:

  1. province_settlement_frame_<Graphical Culture>.dds and province_capital_settlement_frame_<Graphical Culture>.dds are 4 times less saturated than the original image.

Portrait Guidelines:

  1. We RECOMMEND to read this Portrait Guide. It's under construction, but it has some important information inside.

Localization Guidelines:

  1. TRY TO add new localization at the end of the file.
  2. TRY TO to write the localization of decision names, modifier names, event titles, trait names etc. while following these rules:
    • Capitalize nouns, verbs and adjectives. Example: Use Poisonous Gas, Conjured Food for Poor.
    • Skip articles except the article when it is the only object in the world. Normal examples: Subdue Void Creature, Increases §GDeath Knight Level Up Chance§!. Examples with the: Restore the Empire of Zul, Join the Black Empire.
    • Write them as short and as concise as possible.