-
-
Notifications
You must be signed in to change notification settings - Fork 68
Coder Guidelines
VespertinePetrichor edited this page Feb 24, 2023
·
25 revisions
Here we explain some advanced guidelines for editing text files for the coders.
- I advise you to search the Wiki for the subject you work on.
- Check Triggers and Effects to understand conditional logic and possible commands.
- Almost every CK3 folder contains documentation by Paradox in
.info
file type. It can be opened with any text editor.
- You may use Notepad++ for scripting. In these Notepad Tricks you will find the download link and some tricks.
- Some useful tools like Visual Studio are mentioned in the Modding.
- Often you have to search text files for culture names, characters, etc. We use Total Commander for it.
If you don't have permission, ping Zumbak#9042 on Discord.
- Class Ideas, a list of class perk ideas.
- Balance Spreadsheet, a spreadsheet we use for balancing calculations. Feel free to open new lists.
- Racials stats
- Lifespan Values, a spreadsheet mentioning values and lore used to set mode lifespans.
- GoA2 Dates, a spreadsheet of the dates of major events.
- Tips & Guidelines of Wiki, a set of tips written on the wiki.
- We recommend following this Code Style so it's easier to read our code.
- When you create some new script like an event, decision, etc., try to leave a comment so other developers can know the context.
- 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
- We recommend reading the Debug Article to find bugs easier. After you enable the Debug mode, errors will be reported in
C:\Users\<User>\Documents\Paradox Interactive\Crusader Kings III\logs\error.log
- 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
}
- Try to name Event Namespaces like this:
WC + 3-2 Letters of Abbreviation
. For example, the namespace ofwc_third_war_events.txt
isWCTHW
. - Before making an event chain, make and show your plan to team leads. Both others and you should understand your design before you start working on it. It may be in text format on GitHub Issues or Google Docs. Example, Arthas' Event Chain.
- ID templates:
- If you add a placeholder/random-generated character, use this:
<culture><Some Number>
. - If you add a historical character, use its name in lower-case, with
_
instead of spaces and without special symbols like:jakrazet
.
- If you add a placeholder/random-generated character, use this:
- Balancing:
- When designing a new character, assign a maximum of 3 traits and keep the sum of attribute points at or below 30.
- Don't force governments in the history files (like
government = feudal_government
). It's bad! It makes you not able to use your own holdings. If you really want to change the government, change the holdings they own instead.