Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EU5 Modding Skill

An agent skill for modding Europa Universalis V — a self-contained bundle of reference documentation and PowerShell tooling that you drop into an AI coding assistant so it stops guessing at EU5 script and starts checking the game files.

It is plain Markdown and PowerShell. Nothing in it is tied to a particular assistant, model, or vendor: any agent that can read files and run a shell can use it, and any chat assistant that accepts uploaded documents can use the reference half of it.


Why this exists

EU5 runs on Clausewitz/Jomini, so it looks like EU4, CK3 and Vic3 — and that is the trap. The folder layout, the load order, and a long list of trigger and effect names differ enough that habits from the other Paradox games produce script which loads without error and silently does nothing.

The skill is built around one rule:

Never write EU5 script from memory. Find vanilla's version first, then copy its shape.

The game ships 95 readme.txt / *.info files, one per common/ subfolder, and those are authoritative for the installed patch. The skill's job is to make consulting them the path of least resistance, and to record the things the shipped docs don't say — which were measured in-game rather than inferred from other Paradox titles.

What's in it

eu5-modding/
  SKILL.md                 entry point: the rules, the layer map, the workflow
  references/              12 deep-dive documents
  scripts/                 12 PowerShell tools
  assets/snippets.md       verified copy-paste shapes for common content types
Reference Covers
mod-design.md Content vs feature vs rebalance, historical-alignment and balance method
mod-structure.md Game-flow layers, .metadata, load order, INJECT:/REPLACE:, folder map
script-syntax.md Paradox script grammar, scopes, triggers, effects, script values
content-types.md What each of the ~115 common/ folders is, and which readme to read
events-missions-onactions.md Event blocks, on_action dispatch, missions
localization.md .yml format, custom loc, trigger loc, data functions, formatting
map-modding.md Locations, geography hierarchy, adjacencies, ports, start state
gui-modding.md .gui widgets, data binding, scripted GUIs, the reload gui loop
graphics.md Coats of arms, flags, textures, icons, models
debugging.md debug_mode, console commands, script_docs, error.log triage
tooling.md CWTools, Community Mod Framework/Toolkit, Arcanum, Git setup
Script Does
Get-EU5Example.ps1 Shipped docs + file list + one representative vanilla entry, bounded
Test-EU5Mod.ps1 Pre-launch lint: metadata, BOM/CRLF, layer placement, loc coverage, dead entry-mode targets. -Fix repairs encoding
Start-EU5.ps1 Launches the game in debug mode with only your mod in the playset
New-EU5Mod.ps1 Scaffolds a mod with valid .metadata and layer folders
New-EU5Content.ps1 Scaffolds a content file into the right layer with the right prefix, BOM, and loc stubs
Find-EU5Content.ps1 Greps the install and reports source / layer / folder / file / line
Test-EU5Conflicts.ps1 Resolves keys shared with installed mods through the operation chain
Test-EU5Compat.ps1 Hashes the vanilla files your mod is coupled to; reports what a patch changed
Get-EU5Errors.ps1 Reads error.log with vanilla's own noise filtered out
Find-EU5.ps1 Locates install, user dir, mod dir, logs, Workshop dir, and game build
Test-EU5Docs.ps1 Reports whether the script_docs dump matches the installed build
Test-EU5Identifiers.ps1 Checks every identifier in this skill's examples against the dump and vanilla

Requirements

  • Europa Universalis V installed (Steam App ID 3450310).
  • Windows with PowerShell 5.1 or later, for the scripts. The reference documents are plain Markdown and work anywhere.
  • An assistant that can read local files and run shell commands, if you want the scripts used. A browser-only chat assistant still gets the full reference half.

Measured against game build 1.3.11. Paradox patches move things — see Keeping it current.

Install

Option 1 — download the release (recommended)

  1. Download eu5-modding-<version>.zip from the latest release.
  2. Unzip it so that the eu5-modding folder — with SKILL.md directly inside it — lands where your assistant looks for skills.
Assistant Put the eu5-modding folder in
Claude Code ~/.claude/skills/ for all projects, or <project>/.claude/skills/ for one
Any file-reading coding agent Anywhere in your mod's workspace; tell it to read eu5-modding/SKILL.md before writing EU5 files
Chat assistants with project / knowledge files Upload the .md files as project knowledge and paste SKILL.md into the custom instructions

The .md files carry the knowledge; the .ps1 scripts carry the automation. An assistant with no shell access can use everything except the scripts.

Option 2 — clone

git clone https://github.com/BerFoe/eu5-modding-skill.git
Copy-Item -Recurse .\eu5-modding-skill\eu5-modding "$env:USERPROFILE\.claude\skills\"

To track updates without re-copying, symlink instead (needs an elevated shell or Windows Developer Mode):

New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\skills\eu5-modding" -Target "<path-to-clone>\eu5-modding"

Using it

Once installed, describe what you want built and let the assistant work:

"Add an event to my Burgundy mod that fires when the ruler dies without an heir."

"Why is my localization showing raw keys in game?"

"Add a new building that unlocks from a university advance."

If your assistant doesn't pick the skill up on its own, point it at the entry file: "Read eu5-modding/SKILL.md first, then ..."

The loop the skill drives, for reference:

Get-EU5Example (see the real shape) → New-EU5Content (create it in the right place) → edit → Test-EU5Mod (catch it statically) → Start-EU5 -Solo -Wait (see it run) → Get-EU5Errors (confirm the log is clean).

Scope

In scope: content mods (nations, flavour, events, missions, buildings), feature mods within what the engine allows, and rebalances. Total conversions are not.

Two defaults the skill applies to content mods, both overridable on request: content is historically plausible and not overpowered relative to the closest vanilla equivalent. Ask for something outside them and it builds what you asked for.

Keeping it current

EU5 is patching quickly, and anything written down about it goes stale.

  • Find-EU5.ps1 warns when the game has patched past the build the skill was written against, and when the script_docs dump is missing or stale.
  • Test-EU5Docs.ps1 compares the dump to the installed build.
  • Test-EU5Identifiers.ps1 re-checks every identifier used in the skill's own examples against the dump and against vanilla files. Run it after a patch.

When the game and the skill disagree, the game is right. Please open an issue.

Contributing

Issues and pull requests are welcome, especially:

  • corrections where a patch has invalidated something,
  • behaviour that was measured in-game rather than assumed (say which build),
  • coverage for a common/ folder the references don't reach yet.

Two housekeeping rules, because this repo is encoding-sensitive: files stay UTF-8 and the .ps1 scripts keep their BOM and CRLF endings (.gitattributes disables Git's newline rewriting to protect them), and script content stays plain ASCII.

License

MIT.

Disclaimer

Unofficial and unaffiliated. Not endorsed by or associated with Paradox Interactive. Europa Universalis is a trademark of Paradox Interactive AB. All game content referenced here belongs to its respective owners.

About

AI skill to create mods for Europa Universalis 5

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages