Scholars theorise that due to the Elves long lives they were favourite targets for Illithid indoctrination and enthralment.

Due to their isolationist attitude and fear of their dwindling nation’s status the republic allows only Elves to possess land and the ability to vote tied to this. The nation is now administered from the capital Therin and has been under the leadership of statesmen, Archon Artin Neremyn for about 300 years.

Due to their reduced numbers Elves also bear prejudice for half-elves and those who form relationships with Humans. A half-elf will produce either a human or elf child dependent on their partner. Two half-elves who produce offspring will tend to produce humans over elves.

let current = dv.current();
let title = current.file?.name || current.name || "";
 
// 0. Suppress artwork search on template notes
if (title.toLowerCase().includes("template")) {
    dv.paragraph(`*(Location / Building Image Preview)*`);
} else {
    // 1. Gather all potential names (Title, quoted nicknames, and Obsidian Aliases)
    let rawNames = [title];
 
    // Extract quoted nickname if present in title (e.g. Holy Dominion "Estwatch" -> Estwatch)
    let matchNick = title.match(/"([^"]+)"/);
    if (matchNick && matchNick[1]) {
        rawNames.push(matchNick[1]);
    }
 
    // Pull aliases safely
    let aliases = current.file?.aliases || current.aliases || [];
    if (typeof aliases === "string") {
        rawNames.push(aliases);
    } else if (Array.isArray(aliases) || (aliases && typeof aliases[Symbol.iterator] === "function")) {
        for (let a of aliases) {
            if (a && typeof a === "string") rawNames.push(a);
        }
    }
 
    // 2. Build sanitized search terms
    let searchTerms = new Set();
    for (let name of rawNames) {
        if (!name || typeof name !== "string") continue;
        
        let lower = name.toLowerCase().trim().replace(/["']/g, "");
        let slug = lower.replace(/[\s-]+/g, "_").replace(/^_+|_+$ /g, "");
        
        if (lower.length >= 2) searchTerms.add(lower);
        if (slug.length >= 2) searchTerms.add(slug);
    }
 
    // 3. Search target folders for matching image files (.png, .webp, .jpg, etc.)
    let imageFolders = ["Images/Locations", "Image/Locations", "Images/Buildings", "Image/Buildings"];
    let fallbackImage = "";
 
    let matches = app.vault.getFiles().filter(f => {
        let pathLower = f.path.toLowerCase();
        
        let inTargetFolder = imageFolders.some(folder => pathLower.includes(folder.toLowerCase()));
        if (!inTargetFolder) return false;
        
        if (fallbackImage && pathLower.includes(fallbackImage.toLowerCase())) return false;
        
        let imgName = f.name.toLowerCase();
        return Array.from(searchTerms).some(term => term && imgName.includes(term));
    });
 
    // 4. Select match (prioritize "settlement", "overview", "cover", or "map", otherwise take the first file)
    let match = matches.find(f => {
        let nameLower = f.name.toLowerCase();
        return nameLower.includes("settlement") || nameLower.includes("overview") || nameLower.includes("cover") || nameLower.includes("map");
    }) || (matches.length > 0 ? matches[0] : null);
 
    // 5. Render artwork, fallback image, or clean message
    if (match && match.path) {
        dv.paragraph(`![[${match.path}|cover]]`);
    } else {
        let fallbackFile = null;
        if (fallbackImage && fallbackImage.trim() !== "") {
            let cleanFB = fallbackImage.toLowerCase().trim();
            fallbackFile = app.vault.getFiles().find(f => 
                f.path.toLowerCase() === cleanFB || 
                f.path.toLowerCase().includes(cleanFB) || 
                f.name.toLowerCase().includes(cleanFB)
            );
        }
        
        if (fallbackFile && fallbackFile.path) {
            dv.paragraph(`![[${fallbackFile.path}|cover]]`);
        } else {
            dv.paragraph(`*No map or illustration found for ${title}*`);
        }
    }
}

Districts



Political Landscape


Hierarchy & Agents