Added 3 Whole Artifacts

Added the Crown and Sword of St. Wenceslas and the Codex Gigus and added them to characters (Duke of Bohemia, Duchess of Moravia and the King of Sweden)
Lastly added a few files from the base-game to make templates and artifact visuals easier to find (and create)
This commit is contained in:
GoTouchSomeGrass314 2026-04-12 20:17:21 +02:00
parent 7581ab67c0
commit 044fbdb21f
14 changed files with 813 additions and 17 deletions

View file

@ -0,0 +1,59 @@
# New Era Old World Artifacts Templates
codex_template = {
can_equip = {
always = yes
}
can_benefit = {
NEOW_christian_book_artifact_trigger = yes
}
can_reforge = {
NEOW_christian_book_artifact_trigger = yes
}
can_repair = {
always = yes
}
fallback = {
learning = 2
stress_gain_mult = 0.15
negate_health_penalty_add = 0.10
catholic_religion_opinion = 20
}
ai_score = {
value = 100
}
unique = yes
}
sword_wenceslas_template = {
can_equip = {
always = yes
}
can_benefit = {
#NEOW_is_czech_king_trigger = yes
}
can_reforge = {
#NEOW_is_czech_king_trigger = yes
}
fallback = {
monthly_piety = 0.35
court_grandeur_baseline_add = 5
courtier_and_guest_opinion = 5
}
ai_score = {
value = 100
}
unique = yes
}

View file

@ -0,0 +1,40 @@
# The optional scripted base component of an artifact containing triggers and effects that cannot be read during artifact creation.
# Determines for example if a given character can wield an artifact or get its full benefits.
# Root scope is character for all triggers, but the artifact can be accessed via scope:artifact
example_template = {
# can this character equip this artifact?
can_equip = {
always = yes
}
# can this character benefit from the full modifiers of the artifact?
can_benefit = {
is_christian_trigger = yes
}
# can this character reforge this artifact (turn this artifact into another)
can_reforge = {
is_christian_trigger = yes
}
# can this character repair this artifact (restore its durability)
can_repair = {
always = no
}
# if a given character does not pass the "can_benefit" trigger then this modifier will be applied instead.
fallback = {
monthly_prestige = 0.3
}
# Adds the final value to the AI equipping score, note the can_benefit takes precedence over the score when AI equipping
# artifact_ai_will_equip_score in game/common/scripted_values/00_artifact_values.txt also effect the final score
ai_score = {
value = 100
}
# Artifacts with this templates show as unique, default = no
unique = yes
}

View file

@ -0,0 +1,460 @@
#########################
# Personal Artifacts #
#########################
# Crowns
helmet = {
slot = helmet
required_features = { crown_decoration decoration_material_wire }
optional_features = { decoration_material_gem }
}
helmet_simple = {
slot = helmet
}
# Regalia/Crown Jewels
regalia = {
slot = regalia
required_features = {
# Core regalia components:
regalia_scepter regalia_clothes regalia_accessory
# Necessary regalia materials:
decoration_material_wire # Base material for the scepter and accessory
decoration_material_gem # Gems decorating the scepter and accessory
generic_material_cloth # Base textile for the robe/cape.
decoration_material_embroidery # Thread for embroidering the robe/cape.
}
}
regalia_simple = {
slot = regalia
}
seal_of_investiture = {
slot = regalia
required_features = {
decoration_material_slate # Base material for seal's foundation
decoration_material_ink # Ink required for the calligraphy
}
}
seal_of_investiture_court = {
slot = pedestal
required_features = {
decoration_material_slate # Base material for seal's foundation
decoration_material_ink # Ink required for the calligraphy
}
}
# Armor
armor_mail = {
slot = armor
required_features = { armor_material armor_helmet }
optional_features = {
# Armor-specific
armor_decoration generic_material_cloth
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
armor_plate = {
slot = armor
required_features = { armor_material armor_helmet }
optional_features = {
# Armor-specific
armor_decoration generic_material_cloth
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
armor_scale = {
slot = armor
required_features = { armor_material armor_helmet }
optional_features = {
# Armor-specific
armor_decoration generic_material_cloth
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
armor_lamellar = {
slot = armor
required_features = { armor_material generic_material_cordage generic_material_cloth armor_helmet}
optional_features = {
# Armor-specific
armor_decoration
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
armor_laminar = {
slot = armor
required_features = { armor_material generic_material_cordage generic_material_cloth armor_helmet }
optional_features = {
# Armor-specific
armor_decoration
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
armor_brigandine = {
slot = armor
required_features = { armor_material generic_material_cloth armor_helmet }
optional_features = {
# Armor-specific
armor_decoration
# General decorations
decoration_pattern decoration_material_inlay decoration_material_wire armor_property
}
}
# Weapons
axe = {
slot = primary_armament
required_features = { head_metal shaft_wood }
optional_features = {
# Axe-specific:
head_decoration shaft_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_inlay_HSB decoration_material_wire
}
}
hammer = {
slot = primary_armament
required_features = { head_metal shaft_wood }
optional_features = {
# Hammer-specific:
head_decoration shaft_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_inlay_HSB decoration_material_wire
}
}
mace = {
slot = primary_armament
required_features = { head_metal handle_metal }
optional_features = {
# Mace-specific:
head_decoration metal_handle_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_wire
}
}
spear = {
slot = primary_armament
required_features = { head_metal shaft_wood }
optional_features = {
# Spear-specific:
head_decoration shaft_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_inlay_HSB decoration_material_wire
}
}
sword = {
slot = primary_armament
required_features = { blade_metal }
optional_features = {
# Sword-specific:
blade_decoration hilt_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_wire
}
}
dagger = {
slot = primary_armament
required_features = { blade_metal }
optional_features = {
# Dagger-specific:
blade_decoration hilt_decoration
# General decorations:
decoration_pattern decoration_material_inlay decoration_material_wire
}
}
# Trinkets
miscellaneous = {
slot = miscellaneous
optional_features = { book_subject book_cover_material book_topic book_title book_decoration decoration_pattern generic_material_wood decoration_material_gem decoration_material_inlay_HSB }
can_reforge = no
}
# Journals
journal = {
slot = journal
optional_features = { book_subject book_cover_material book_topic book_title book_decoration decoration_pattern generic_material_wood decoration_material_gem decoration_material_inlay_HSB }
can_reforge = no
}
# For artefacts that we *don't* want to start as court artefacts, because you might not have Royal Court, but which will generally be expected to convert into one at the earliest opportunity.
miscellaneous_when_not_court = {
slot = miscellaneous
# Just add to this list as new DLC court artefacts are designed.
optional_features = { sculpture_material generic_material_wood decoration_material_inlay goblet_material }
}
brooch = {
slot = miscellaneous
required_features = { brooch_decoration decoration_material_wire }
optional_features = { brooch_centerpiece brooch_adornment decoration_material_gem }
can_reforge = no
}
necklace = {
slot = miscellaneous
required_features = { decoration_material_wire decoration_material_gem }
can_reforge = no
}
ring = {
slot = miscellaneous
required_features = { ring_decoration generic_material_metal }
optional_features = { ring_centerpiece ring_adornment decoration_material_wire decoration_material_gem }
can_reforge = no
}
animal_trinket = {
slot = miscellaneous
required_features = { animal_trinket_type }
can_reforge = no
}
bird_feather = {
slot = miscellaneous
required_features = { bird_feather_type }
can_reforge = no
}
#########################
# Court Artifacts #
#########################
# 'Sculptures', or large free-standing artifacts including statues, chests, cabinets, etc.
sculpture = {
slot = sculpture
default_visuals = statue
required_features = { sculpture_material }
optional_features = { generic_material_wood }
}
chest = {
slot = sculpture
required_features = { generic_material_wood wood_decoration }
optional_features = { decoration_pattern decoration_material_inlay_HSB }
}
box = {
slot = pedestal
required_features = { box_material box_decoration }
optional_features = { decoration_pattern decoration_material_inlay }
}
cabinet = {
slot = sculpture
required_features = { generic_material_wood wood_decoration }
optional_features = { decoration_pattern decoration_material_inlay_HSB}
}
goblet = {
slot = pedestal
required_features = { goblet_material decoration_material_gem }
}
scientific_apparatus = {
slot = sculpture
default_visuals = statue
required_features = { sculpture_material }
optional_features = { generic_material_wood decoration_material_inlay }
}
jug = {
slot = pedestal
required_features = { goblet_material decoration_material_inlay }
}
brooch_pedestal = {
slot = pedestal
required_features = { brooch_decoration decoration_material_wire }
optional_features = { brooch_centerpiece brooch_adornment decoration_material_gem }
}
necklace_pedestal = {
slot = pedestal
required_features = { decoration_material_wire decoration_material_gem }
}
bowl = {
slot = pedestal
required_features = { generic_material_metal decoration_pattern }
}
plate = {
slot = pedestal
required_features = { generic_material_metal decoration_pattern }
}
urn = {
slot = pedestal
required_features = { generic_material_earthware decoration_pattern }
}
tun_barrel = {
slot = sculpture
required_features = { generic_material_wood }
}
scepter_pedestal = {
slot = pedestal
}
# Small artifacts which should be displayed on a pedestal including goblets, large gemstones, reliquaries, etc.
pedestal = {
slot = pedestal
default_visuals = rock
}
# Wall decorations, including tapestries, animal hides, weapon displays, etc.
tapestry = {
slot = wall_big
required_features = { generic_material_cloth tapestry_scene }
}
animal_skull = {
slot = wall_small
required_features = { animal_skull_type generic_material_wood }
}
animal_hide = {
slot = wall_small
required_features = { animal_hide_type }
}
animal_hide_big = {
slot = wall_big
required_features = { animal_hide_type }
}
wall_big = {
slot = wall_big
default_visuals = wall_shield
}
wall_small = {
slot = wall_small
default_visuals = animal_trophy
}
wall_shield = {
slot = wall_small
default_visuals = wall_shield
required_features = { head_metal shaft_wood decoration_pattern decoration_material_inlay_HSB }
}
# kite shields are too big for wall_small
wall_shield_special = {
slot = wall_big
default_visuals = wall_shield
required_features = { head_metal shaft_wood decoration_pattern decoration_material_inlay_HSB }
}
wall_icon_court_large = {
slot = wall_big
default_visuals = icon_court_large
required_features = { icon_decoration }
}
wall_icon_court_small = {
slot = wall_small
default_visuals = icon_court_small
required_features = { icon_decoration }
}
# Thrones
throne = { # Any throne created mid-game through Inspirations must have these:
slot = throne
required_features = { generic_material_wood generic_material_cloth }
}
throne_special = { # Special historical thrones, such as Solomon's or Charlemagne's, do not enforce the material requirements due to their unique construction.
slot = throne
optional_features = { generic_material_wood generic_material_cloth }
}
# Books
book = {
slot = book
required_features = { book_subject book_cover_material }
optional_features = { book_topic book_title book_decoration decoration_pattern generic_material_wood decoration_material_gem decoration_material_inlay_HSB }
}
chronicle = {
slot = book
optional_features = { book_topic book_title book_decoration decoration_pattern generic_material_wood decoration_material_gem decoration_material_inlay_HSB }
}
# Alchemy
elixir = {
slot = pedestal
required_features = { decoration_pattern glass_decoration }
optional_features = { elixir_type decoration_material_inlay decoration_material_wire }
}
panacea = {
slot = pedestal
required_features = { box_material box_decoration }
optional_features = { decoration_pattern decoration_material_inlay }
}
philosophers_stone = {
slot = pedestal
required_features = { box_material box_decoration }
optional_features = { decoration_pattern decoration_material_inlay }
}
# Tournaments
pas_darmes_token = {
slot = miscellaneous
required_features = { generic_material_cloth decoration_pattern }
}
pas_darmes_spurs = {
slot = miscellaneous
required_features = { generic_material_metal }
}
tournament_favor = {
slot = miscellaneous
required_features = { generic_material_cloth decoration_pattern }
}
# Bows
longbow = {
slot = primary_armament
required_features = { longbow_wood bow_string }
}
composite = {
slot = primary_armament
required_features = { composite_wood composite_horn bow_string }
}
bow = {
slot = primary_armament
required_features = { bow_wood bow_string }
}
crossbow = {
slot = primary_armament
required_features = { bow_wood bow_string }
}

View file

@ -0,0 +1,13 @@
Structure:
key = {
slot = inventory slot type
# A feature from each of these groups will be assigned automatically on creation
required_features = { group group group }
# These feature groups can be added after creation in script
optional_features = { group group group }
# optional field with no gameplay effect. Only needed for automatic test artifact generation
default_visuals = visuals_key
}
The artifact_KEY is also used as a loc key in some contexts. E.G., "artifact_helmet"

View file

@ -0,0 +1,5 @@
sword_wenceslas = {
default_type = pedestal
icon = { reference = artifact_sword_wenceslas.dds }
asset = { reference = ep1_northern_sword_01_a_entity }
}

View file

@ -0,0 +1,26 @@
# Determines the visuals of an artifact and ties together 2d and 3d visuals
# Picks a random valid one based on the triggers, passes in the scopes from the creation/reforge like the text does
example = {
icon = "icon_name.dds"
asset = "asset_name"
# optional field with no gameplay effect. Only needed for automatic test artifact generation
default_type = type_key
icon = {
trigger = {
<trigger>
#root scope is the owner
#scope:artifact is the artifact being made
#scope:artifact.creator is how to access the creator when different from the owner
}
reference = "icon_name.dds"
}
asset = {
trigger = {
<trigger>
}
reference = "asset_name"
}
}

View file

@ -0,0 +1,23 @@
crown_wenceslas_modifier = {
court_grandeur_baseline_add = 5
monthly_piety_gain_mult = 0.10
monthly_dynasty_prestige_mult = 0.02
monthly_prestige_gain_mult = 0.02
vassal_limit = 5
}
codex_gigas_modifier = {
learning = 3
monthly_lifestyle_xp_gain_mult = 0.10
stress_gain_mult = 0.10
negate_health_penalty_add = 0.10
health = 0.10
}
sword_wenceslas_modifier = {
court_grandeur_baseline_add = 5
monthly_piety = 0.5
monthly_dynasty_prestige_mult = 0.05
courtier_and_guest_opinion = 5
legitimacy_gain_mult = 0.05
}

View file

@ -0,0 +1,5 @@
on_game_start = {
events = {
historical_artifacts.999
}
}

View file

@ -26,3 +26,118 @@
save_scope_as = epic save_scope_as = epic
} }
} }
create_artifact_crown_wenceslas_effect = { # Crown of Saint Wenceslas
# Get the character the artifact is being made for.
$OWNER$ = { save_scope_as = owner }
# Not really used, but if we don't set the scopes we get errors in the feature selection
set_artifact_rarity_famed = yes
# Create the artifact
create_artifact = {
name = crown_wenceslas_name
description = crown_wenceslas_description
modifier = crown_wenceslas_modifier
template = crown_iron_template
type = pedestal
visuals = crown_court
wealth = scope:wealth
quality = scope:quality
decaying = no
save_scope_as = newly_created_artifact
history = {
type = created_before_history
date = 1346.1.1
location = province:4125 #Praha
}
}
scope:newly_created_artifact = {
set_variable = { name = historical_unique_artifact value = yes }
set_variable = crown_wenceslas
save_scope_as = epic
add_artifact_history = {
type = given
date = 2521.4.3
recipient = character:zapadoslavia0003 # Dalibor Karlovec
}
add_artifact_history = {
type = given
date = 2546.4.11
recipient = character:zapadoslavia0001 # Bedrich Karlovec
}
add_artifact_history = {
type = stolen
date = 2552.4.12
recipient = character:zapadoslavia0002 # Bedrich Karlovec
}
}
}
create_artifact_sword_wenceslas_effect = { # Ceremonial Czech Sword
$OWNER$ = { save_scope_as = owner }
set_artifact_rarity_famed = yes
create_artifact = {
name = sword_wenceslas_name
description = sword_wenceslas_description
modifier = sword_wenceslas_modifier
template = sword_wenceslas_template
type = pedestal
visuals = sword_wenceslas
wealth = scope:wealth
quality = scope:quality
decaying = no
save_scope_as = newly_created_artifact
history = {
type = created_before_history
date = 950.1.1
location = province:4125 #Praha
}
}
scope:newly_created_artifact = {
set_variable = { name = historical_unique_artifact value = yes }
set_variable = sword_wenceslas
save_scope_as = epic
add_artifact_history = {
type = given
date = 2521.4.3
recipient = character:zapadoslavia0003 # Dalibor Karlovec
}
add_artifact_history = {
type = given
date = 2546.4.11
recipient = character:zapadoslavia0001 # Bedrich Karlovec
}
}
}
create_artifact_codex_gigas_effect = { # Codex Gigas - largest medieval manuscript
$OWNER$ = { save_scope_as = owner }
set_artifact_rarity_illustrious = yes
create_artifact = {
name = codex_gigas_name
description = codex_gigas_description
modifier = codex_gigas_modifier
template = codex_template
type = chronicle
visuals = chronicle
wealth = scope:wealth
quality = scope:quality
decaying = no
save_scope_as = newly_created_artifact
history = {
type = created_before_history
date = 1215.1.1
location = province:4160 #Pardubice
}
}
scope:newly_created_artifact = {
set_variable = { name = historical_unique_artifact value = yes }
set_variable = codex_gigas
save_scope_as = epic
}
}

View file

@ -0,0 +1,13 @@
NEOW_christian_book_artifact_trigger = {
OR = {
religion = religion:catholic_religion
religion = religion:protestant_religion
religion = religion:eastern_orthodox_religion
religion = religion:novelist_religion
faith = { has_doctrine = tenet_christian_syncretism }
}
}
NEOW_is_czech_king_trigger = {
scope:owner = { has_title = title:k_bohemia }
}

View file

@ -1,19 +1,6 @@
NEOW_is_catholic_or_catholic_adjacent_trigger = { NEOW_is_catholic_or_catholic_adjacent_trigger = {
faith = { OR = {
OR = { faith = faith:orleaniste
faith = faith:roman_catholic religion = religion:catholic_religion
faith = faith:sevillian
faith = faith:celtic
faith = faith:orleaniste
faith = faith:sebastianist
faith = faith:luminarian
faith = faith:penitente
faith = faith:illuminated
faith = faith:fraticelli
faith = faith:cadaverist
faith = faith:teutonic
faith = faith:iberian
}
} }
} }

View file

@ -0,0 +1,40 @@
historical_artifacts.999 = {
scope = none
hidden = yes
immediate = {
if = {
limit = {
has_dlc_feature = royal_court
exists = title:d_moravia.holder
}
title:d_moravia.holder = {
create_artifact_crown_wenceslas_effect = { OWNER = this }
}
}
}
immediate = {
if = {
limit = {
has_dlc_feature = royal_court
exists = title:k_sweden.holder
}
title:k_sweden.holder = {
create_artifact_codex_gigas_effect = { OWNER = this }
}
}
}
immediate = {
if = {
limit = {
has_dlc_feature = royal_court
exists = title:d_bohemia.holder
}
title:d_bohemia.holder = {
create_artifact_sword_wenceslas_effect = { OWNER = this }
}
}
}
}

BIN
gfx/interface/icons/artifact/artifact_sword_wenceslas.dds (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,7 @@
l_english:
crown_wenceslas_name:0 "Crown of St. Wenceslas"
crown_wenceslas_description:0 "Forged in 1346 in Czechia for Emperor Charles IV. After the Event, some of the crown parts went missing, but the crown is still under the protection of the Czech kings and St. Wenceslas himself. \n\nHowever, a legend says those who wear the crown without permission from the saint will die within a year."
codex_gigas_name:0 "Codex Gigas"
codex_gigas_description:0 "Codex Gigas, also known as the "Devil's Bible," is the largest known medieval manuscript. Inside, there is an illustration of the Devil, hence why so many people call it the "Devil's Bible." After the Event, the manuscript was moved from the National Library of Sweden to Stockholm Castle, where it sits to this day."
sword_wenceslas_name:0 "Sword of St. Wenceslas"
sword_wenceslas_description:0 "The Sword of St. Wenceslas is a ceremonial sword used during the coronation of the Czech kings. After the Event, the sword was still used in ceremonies to fully legitimize a new Czech king and to secure him blessings from the saint that protects the land."