Compare commits

..
27 Commits
Author SHA1 Message Date
Byroks 024f0b9c42 Squashed commit of the following:
commit 250fc499ae
Author: Byroks <byroks@gmail.com>
Date:   Thu Nov 30 16:17:04 2023 +0100

    v2.1.0

commit 28595e7dd0
Author: Byroks <byroks@gmail.com>
Date:   Thu Nov 30 15:50:59 2023 +0100

    Make Items with mods equippable (#11)

    Changes:
     + Items that can influence you stats are equippable
     + only equipped items influence your stats
     + Armor now influences your stats
     + move mods into a partial for easier changes

commit 8095785fc2
Author: Byroks <byroks@gmail.com>
Date:   Wed Nov 29 10:14:49 2023 +0100

    Movement stat (#10)

    Changes:
     + make movement stat work and be moddable by effects

commit e141839055
Merge: 14e005c 0bfa224
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:50:38 2023 +0100

    Merge branch 'main' into develop

commit 14e005cb0a
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:48:14 2023 +0100

    v2.0.0

commit c635c54f24
Author: Byroks <byroks@gmail.com>
Date:   Tue Nov 28 19:42:38 2023 +0100

    Dev Kampfkünste Items & Integration (#7)

    Changes:
     + add kampfkuenste template
     + add kampfkuenste tab
     + make kampfkuenste rollable
     + update localization

commit e27f4209e5
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 20:05:20 2023 +0100

    Squashed commit of the following:

    commit 0bfa224dae
    Author: Byroks <byroks@gmail.com>
    Date:   Mon Nov 27 19:56:05 2023 +0100

        V1.3.1 (#6)

        * v1.3.1

        * v1.3.1

        * update .gitingore

    commit 35a6b0fae9
    Author: Byroks <byroks@gmail.com>
    Date:   Mon Nov 27 19:48:56 2023 +0100

        v1.3.1

    commit db21ca93b0
    Author: Byroks <byroks@gmail.com>
    Date:   Sun Nov 26 13:13:13 2023 +0100

        subtract ap when casting spell

        Changes:
         + subtract AP when casting a spell
2023-11-30 16:19:25 +01:00
ByroksandGitHub 16df142d45 v2.0.0 (#8)
* Squashed commit of the following:

commit 0bfa224dae
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:56:05 2023 +0100

    V1.3.1 (#6)

    * v1.3.1

    * v1.3.1

    * update .gitingore

commit 35a6b0fae9
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:48:56 2023 +0100

    v1.3.1

commit db21ca93b0
Author: Byroks <byroks@gmail.com>
Date:   Sun Nov 26 13:13:13 2023 +0100

    subtract ap when casting spell

    Changes:
     + subtract AP when casting a spell

* Dev Kampfkünste Items & Integration (#7)

Changes:
 + add kampfkuenste template
 + add kampfkuenste tab
 + make kampfkuenste rollable
 + update localization

* v2.0.0
2023-11-28 19:50:56 +01:00
Byroks 0bfa224dae V1.3.1 (#6)
* v1.3.1

* v1.3.1

* update .gitingore
2023-11-27 20:04:06 +01:00
Byroks 35a6b0fae9 v1.3.1 2023-11-27 19:48:56 +01:00
Byroks db21ca93b0 subtract ap when casting spell
Changes:
 + subtract AP when casting a spell
2023-11-26 13:13:13 +01:00
Byroks 7bf0fd90b0 update verified and maximum version 2023-11-25 19:33:03 +01:00
Byroks a7bdd0434e Delete midgard5-v1.3.0.zip 2023-11-25 16:38:39 +01:00
Byroks 97d4a35cd6 update localize Keys
Changes:
 + update localize Keys, to conform with v11
2023-11-25 16:38:05 +01:00
Byroks c2996aa974 Fix Raufen roll
Changes:
 + fix roll attributes for Raufen
2023-11-25 16:04:17 +01:00
Byroks bf4f49755a adjust iniative roll
Changes:
 + fix iniative stat
2023-11-25 15:54:53 +01:00
ByroksandGitHub 57bffd492a Update de.md 2023-11-25 14:20:47 +01:00
ByroksandGitHub 5a36ee9eab V1.3.0 (#3)
* v1.3.0

* v1.3.0
2023-11-24 21:01:10 +01:00
Byroks a8a1e6e133 fix gulpfile 2023-11-24 20:54:22 +01:00
Byroks 3bf2612dd0 update system.json & gitignore 2023-11-24 20:47:21 +01:00
Byroks 68cb8fcf6d Include Weapons and effects
Changes:
 + include weapon pack and effect pack
 + handle effects as own entity
 + effects can influence your attributes and skills
 + add Aktive Effekte page for effects on your character
2023-11-24 20:11:36 +01:00
Byroks 4b2daef20a fix Gifttolleranz naming, parsing and display 2023-11-22 23:13:19 +01:00
ByroksandGitHub 792c578e0f Merge pull request #1 from LeFrique/main
Added skills & weapons from all Sourcebooks,GiT&B
2023-11-22 22:19:54 +01:00
ByroksandGitHub 3b051760ae Merge branch 'main' into main 2023-11-22 22:19:20 +01:00
Byroks bffbe97805 Revert "update system id"
This reverts commit 6428b3252e.
2023-11-22 19:11:53 +01:00
Byroks e21e5a91be Revert "adjust to id change"
This reverts commit 30d0924e3d.
2023-11-22 19:11:44 +01:00
Byroks 783f7f020b Revert "update version"
This reverts commit c77818199a.
2023-11-22 19:11:36 +01:00
Byroks ad841b111f Revert "remove"
This reverts commit 5277a3ca4b.
2023-11-22 19:11:17 +01:00
Le-Frique ba2992221d Added skills & weapons from all Sourcebooks,GiT&B 2023-11-21 20:03:46 +01:00
Byroks 5277a3ca4b remove 2023-11-21 19:57:45 +01:00
Byroks c77818199a update version 2023-11-21 19:53:32 +01:00
Byroks 30d0924e3d adjust to id change 2023-11-21 19:50:39 +01:00
Byroks 6428b3252e update system id 2023-11-21 19:18:05 +01:00
327 changed files with 2723 additions and 596 deletions
+1
View File
@@ -5,3 +5,4 @@ package-lock.json
source/packs/ source/packs/
source/generators/ source/generators/
dist dist
*.zip
+1 -1
View File
@@ -6,7 +6,7 @@ _**Warnung:** Das System befindet sich noch in der Entwicklung._
Gehe auf die Setup-Seite deiner Foundry VTT Instanz. Klicke im Reiter **Game Systems** auf den Button **Install System**. In dem dann geöffneten Dialog, unten in der Zeile **Manifest URL** den Link zur aktuellen (oder gewünschten) Version der _system.json_ eintragen und auf **Install** klicken: Gehe auf die Setup-Seite deiner Foundry VTT Instanz. Klicke im Reiter **Game Systems** auf den Button **Install System**. In dem dann geöffneten Dialog, unten in der Zeile **Manifest URL** den Link zur aktuellen (oder gewünschten) Version der _system.json_ eintragen und auf **Install** klicken:
https://github.com/michaelstein/foundry-vtt-system-midgard5/releases/download/v1.0.1/system.json https://github.com/byroks/foundry-vtt-system-midgard5/releases/download/v1.3.0/system.json
Danach kann eine Spielwelt mit dem System erstellt werden. Danach kann eine Spielwelt mit dem System erstellt werden.
+261 -291
View File
@@ -1,29 +1,28 @@
import * as gulp from "gulp" import * as gulp from "gulp";
import fs from "fs-extra" import fs from "fs-extra";
import * as path from "path" import * as path from "path";
import archiver from "archiver" import archiver from "archiver";
import stringify from "json-stringify-pretty-compact" import stringify from "json-stringify-pretty-compact";
const sourcemaps = require('gulp-sourcemaps') const sourcemaps = require("gulp-sourcemaps");
const uglify = require('gulp-uglify') const uglify = require("gulp-uglify");
const concat = require("gulp-concat") const concat = require("gulp-concat");
const buffer = require('vinyl-buffer') const buffer = require("vinyl-buffer");
const source = require('vinyl-source-stream') const source = require("vinyl-source-stream");
const through = require('through2') const through = require("through2");
const jsonminify = require('gulp-jsonminify') const jsonminify = require("gulp-jsonminify");
const merge2 = require('merge2') const merge2 = require("merge2");
const git = require('gulp-git-streamed') const git = require("gulp-git-streamed");
const loadJson = (path: string): any => { const loadJson = (path: string): any => {
try { try {
let str = fs.readFileSync(path).toString() let str = fs.readFileSync(path).toString();
return JSON.parse(str) return JSON.parse(str);
} catch {
throw Error("Unable to load " + path);
} }
catch { };
throw Error("Unable to load " + path)
}
}
import { import {
createLiteral, createLiteral,
@@ -38,36 +37,37 @@ import {
TransformerFactory, TransformerFactory,
visitEachChild, visitEachChild,
visitNode, visitNode,
} from "typescript" } from "typescript";
import less from "gulp-less" import less from "gulp-less";
import Logger from "./source/utils/Logger" import Logger from "./source/utils/Logger";
import {ModuleData} from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs" import { ModuleData } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs";
import browserify from "browserify" import browserify from "browserify";
const tsify = require("tsify") import { data } from "jquery";
const tsify = require("tsify");
const ts = require("gulp-typescript") const ts = require("gulp-typescript");
const argv = require("yargs").argv const argv = require("yargs").argv;
let distPath = "dist" let distPath = "dist";
function getConfig() { function getConfig() {
const configPath = path.resolve(process.cwd(), "foundryconfig.json") const configPath = path.resolve(process.cwd(), "foundryconfig.json");
let config let config;
if (fs.existsSync(configPath)) { if (fs.existsSync(configPath)) {
config = loadJson(configPath) config = loadJson(configPath);
return config return config;
} else { } else {
return return;
} }
} }
interface Manifest { interface Manifest {
root: string root: string;
file: ModuleData file: ModuleData;
name: string name: string;
} }
const getManifest = (): Manifest | null => { const getManifest = (): Manifest | null => {
@@ -75,237 +75,211 @@ const getManifest = (): Manifest | null => {
root: "", root: "",
// @ts-ignore // @ts-ignore
file: {}, file: {},
name: "" name: "",
} };
if (fs.existsSync("source")) { if (fs.existsSync("source")) {
json.root = "source" json.root = "source";
} else { } else {
json.root = distPath json.root = distPath;
} }
const modulePath = path.join(json.root, "module.json");
const modulePath = path.join(json.root, "module.json") const systemPath = path.join(json.root, "system.json");
const systemPath = path.join(json.root, "system.json")
if (fs.existsSync(modulePath)) { if (fs.existsSync(modulePath)) {
json.file = loadJson(modulePath) as ModuleData json.file = loadJson(modulePath) as ModuleData;
json.name = "module.json" json.name = "module.json";
} else if (fs.existsSync(systemPath)) { } else if (fs.existsSync(systemPath)) {
json.file = loadJson(systemPath) as ModuleData json.file = loadJson(systemPath) as ModuleData;
json.name = "system.json" json.name = "system.json";
} else { } else {
return null return null;
} }
return json;
return json };
}
const createTransformer = (): TransformerFactory<any> => { const createTransformer = (): TransformerFactory<any> => {
/** /**
* @param {typescript.Node} node * @param {typescript.Node} node
*/ */
const shouldMutateModuleSpecifier = (node: Node): boolean => { const shouldMutateModuleSpecifier = (node: Node): boolean => {
if (!isImportDeclaration(node) && !isExportDeclaration(node)) if (!isImportDeclaration(node) && !isExportDeclaration(node)) return false;
return false if (node.moduleSpecifier === undefined) return false;
if (node.moduleSpecifier === undefined) if (!isStringLiteral(node.moduleSpecifier)) return false;
return false if (!node.moduleSpecifier.text.startsWith("./") && !node.moduleSpecifier.text.startsWith("../")) return false;
if (!isStringLiteral(node.moduleSpecifier))
return false
if (!node.moduleSpecifier.text.startsWith("./") && !node.moduleSpecifier.text.startsWith("../"))
return false
return path.extname(node.moduleSpecifier.text) === "" return path.extname(node.moduleSpecifier.text) === "";
} };
return (context: TransformationContext): TSTransformer<any> => { return (context: TransformationContext): TSTransformer<any> => {
return (node: Node) => { return (node: Node) => {
function visitor(node: Node): Node { function visitor(node: Node): Node {
if (shouldMutateModuleSpecifier(node)) { if (shouldMutateModuleSpecifier(node)) {
if (isImportDeclaration(node)) { if (isImportDeclaration(node)) {
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`) const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
return factory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, newModuleSpecifier, undefined) return factory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, newModuleSpecifier, undefined);
} else if (isExportDeclaration(node)) { } else if (isExportDeclaration(node)) {
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`) const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
return factory.updateExportDeclaration(node, node.decorators, node.modifiers, false, node.exportClause, newModuleSpecifier, undefined) return factory.updateExportDeclaration(node, node.decorators, node.modifiers, false, node.exportClause, newModuleSpecifier, undefined);
} }
} }
return visitEachChild(node, visitor, context) return visitEachChild(node, visitor, context);
} }
return visitNode(node, visitor) return visitNode(node, visitor);
} };
} };
} };
const tsConfig = ts.createProject("tsconfig.json", { const tsConfig = ts.createProject("tsconfig.json", {
getCustomTransformers: (_program: any) => ({ getCustomTransformers: (_program: any) => ({
after: [createTransformer()], after: [createTransformer()],
}), }),
}) });
function buildTS() { function buildTS() {
const debug = process.env.npm_lifecycle_event !== "package" const debug = process.env.npm_lifecycle_event !== "package";
let res = tsConfig.src() let res = tsConfig.src().pipe(sourcemaps.init()).pipe(tsConfig());
.pipe(sourcemaps.init())
.pipe(tsConfig())
return res.js return res.js.pipe(sourcemaps.write("", { debug: debug, includeContent: true, sourceRoot: "./ts/source" })).pipe(gulp.dest(distPath));
.pipe(sourcemaps.write('', { debug: debug, includeContent: true, sourceRoot: './ts/source' }))
.pipe(gulp.dest(distPath))
} }
const bundleModule = () => { const bundleModule = () => {
const debug = argv.dbg || argv.debug const debug = argv.dbg || argv.debug;
const bsfy = browserify(path.join(__dirname, "source/index.ts"), { debug: debug }) const bsfy = browserify(path.join(__dirname, "source/index.ts"), { debug: debug });
return bsfy.on('error', Logger.err) return bsfy
.on("error", Logger.err)
.plugin(tsify) .plugin(tsify)
.bundle() .bundle()
.pipe(source(path.join(distPath, "bundle.js"))) .pipe(source(path.join(distPath, "bundle.js")))
.pipe(buffer()) .pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true})) .pipe(sourcemaps.init({ loadMaps: true }))
.pipe(uglify()) .pipe(uglify())
.pipe(sourcemaps.write('./')) .pipe(sourcemaps.write("./"))
.pipe(gulp.dest('./')) .pipe(gulp.dest("./"));
} };
const buildLess = () => { const buildLess = () => {
return gulp.src("source/style/*.less") return gulp.src("source/style/*.less").pipe(less()).pipe(concat("bundle.css")).pipe(gulp.dest(distPath));
.pipe(less()) };
.pipe(concat("bundle.css"))
.pipe(gulp.dest(distPath))
}
interface Pack { interface Pack {
root: string, root: string;
type: string, type: string;
name: string name: string;
} }
const buildPack = (pack: Pack): NodeJS.ReadWriteStream => { const buildPack = (pack: Pack): NodeJS.ReadWriteStream => {
return gulp.src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json") return gulp
.src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json")
.pipe(jsonminify()) .pipe(jsonminify())
.pipe(concat(pack.name + ".db")) .pipe(concat(pack.name + ".db"))
.pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type)) .pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type));
} };
const buildPacks = () => { const buildPacks = () => {
let packs: Pack[] = [] let packs: Pack[] = [];
const rootDir = "packs" const rootDir = "packs";
const packTypes = fs.readdirSync(rootDir).filter(p => fs.statSync(path.join(rootDir, p)).isDirectory()) const packTypes = fs.readdirSync(rootDir).filter((p) => fs.statSync(path.join(rootDir, p)).isDirectory());
packTypes.forEach(packType => { packTypes.forEach((packType) => {
const packDir = path.join(rootDir, packType) const packDir = path.join(rootDir, packType);
const packNames = fs.readdirSync(packDir).filter(p => fs.statSync(path.join(packDir, p)).isDirectory()) const packNames = fs.readdirSync(packDir).filter((p) => fs.statSync(path.join(packDir, p)).isDirectory());
packNames.forEach(packName => { packNames.forEach((packName) => {
packs.push({ packs.push({
name: packName, name: packName,
type: packType, type: packType,
root: rootDir root: rootDir,
}) });
}) });
}) });
return merge2(packs.map(p => buildPack(p))) return merge2(packs.map((p) => buildPack(p)));
} };
const copyFiles = async() => { const copyFiles = async () => {
const recursiveFileSearch = (dir: string, callback: (err: NodeJS.ErrnoException | null, res: Array<string>) => void) => { const recursiveFileSearch = (dir: string, callback: (err: NodeJS.ErrnoException | null, res: Array<string>) => void) => {
let results: Array<string> = [] let results: Array<string> = [];
fs.readdir(dir, (err, list) => { fs.readdir(dir, (err, list) => {
if (err) if (err) return callback(err, results);
return callback(err, results)
let pending = list.length let pending = list.length;
if (!pending) if (!pending) return callback(null, results);
return callback(null, results)
for (let file of list) { for (let file of list) {
file = path.resolve(dir, file) file = path.resolve(dir, file);
fs.stat(file, (err, stat) => { fs.stat(file, (err, stat) => {
if (stat && stat.isDirectory()) { if (stat && stat.isDirectory()) {
recursiveFileSearch(file, (err, res) => { recursiveFileSearch(file, (err, res) => {
results = results.concat(res) results = results.concat(res);
if (!--pending) if (!--pending) callback(null, results);
callback(null, results) });
}) } else {
results.push(file);
if (!--pending) callback(null, results);
} }
else { });
results.push(file)
if (!--pending)
callback(null, results)
}
})
} }
}) });
} };
try { try {
const modulePath = path.join("source", "module.json");
if (fs.existsSync(modulePath)) await fs.copyFile(modulePath, path.join(distPath, "module.json"));
const modulePath = path.join("source", "module.json") const systemPath = path.join("source/system.json");
if (fs.existsSync(modulePath)) if (fs.existsSync(systemPath)) await fs.copyFile(systemPath, path.join(distPath, "system.json"));
await fs.copyFile(modulePath, path.join(distPath, "module.json"))
const systemPath = path.join("source/system.json") if (!fs.existsSync(path.resolve(__dirname, "assets"))) return Promise.resolve();
if (fs.existsSync(systemPath))
await fs.copyFile(systemPath, path.join(distPath, "system.json"))
if (!fs.existsSync(path.resolve(__dirname, "assets")))
return Promise.resolve()
const filter = (src: string, dest: string): boolean => { const filter = (src: string, dest: string): boolean => {
Logger.ok("Copying file: " + dest) Logger.ok("Copying file: " + dest);
return true return true;
} };
await fs.copyFile(path.join("source", "template.json"), path.join(distPath, "template.json")) await fs.copyFile(path.join("source", "template.json"), path.join(distPath, "template.json"));
fs.copySync(path.resolve(__dirname, "assets"), path.resolve(__dirname, distPath + "/assets"), { overwrite: true, filter }) fs.copySync(path.resolve(__dirname, "assets"), path.resolve(__dirname, distPath + "/assets"), { overwrite: true, filter });
fs.copySync(path.resolve(__dirname, "lang"), path.resolve(__dirname, distPath + "/lang"), { overwrite: true, filter }) fs.copySync(path.resolve(__dirname, "lang"), path.resolve(__dirname, distPath + "/lang"), { overwrite: true, filter });
//fs.copySync(path.resolve(__dirname, "packs"), path.resolve(__dirname, distPath + "/packs"), { overwrite: true, filter }) //fs.copySync(path.resolve(__dirname, "packs"), path.resolve(__dirname, distPath + "/packs"), { overwrite: true, filter })
fs.copySync(path.resolve(__dirname, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter }) fs.copySync(path.resolve(__dirname, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter });
return Promise.resolve() return Promise.resolve();
} catch (err) { } catch (err) {
await Promise.reject(err) await Promise.reject(err);
} }
} };
const cleanDist = async () => { const cleanDist = async () => {
if (argv.dbg || argv.debug) if (argv.dbg || argv.debug) return;
return Logger.log("Cleaning dist file clutter");
Logger.log("Cleaning dist file clutter")
const files: string[] = [] const files: string[] = [];
const getFiles = async (dir: string) => { const getFiles = async (dir: string) => {
const arr = await fs.promises.readdir(dir) const arr = await fs.promises.readdir(dir);
for(const entry of arr) for (const entry of arr) {
{ const fullPath = path.join(dir, entry);
const fullPath = path.join(dir, entry) const stat = await fs.promises.stat(fullPath);
const stat = await fs.promises.stat(fullPath) if (stat.isDirectory()) await getFiles(fullPath);
if (stat.isDirectory()) else files.push(fullPath);
await getFiles(fullPath)
else
files.push(fullPath)
} }
} };
await getFiles(path.resolve(distPath)) await getFiles(path.resolve(distPath));
for(const file of files) { for (const file of files) {
if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json")) if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json")) continue;
continue
Logger.warn("Cleaning " + path.relative(process.cwd(), file)) Logger.warn("Cleaning " + path.relative(process.cwd(), file));
await fs.promises.unlink(file) await fs.promises.unlink(file);
} }
} };
/** /**
* Watch for changes for each build step * Watch for changes for each build step
*/ */
const buildWatch = () => { const buildWatch = () => {
gulp.watch("source/**/*.ts", { ignoreInitial: false }, gulp.series(buildTS, bundleModule)) gulp.watch("source/**/*.ts", { ignoreInitial: false }, gulp.series(buildTS, bundleModule));
gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess) gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess);
gulp.watch("packs", { ignoreInitial: false }, buildPacks) gulp.watch("packs", { ignoreInitial: false }, buildPacks);
gulp.watch(["assets", "lang", "templates", "source/*.json"], { ignoreInitial: false }, copyFiles) gulp.watch(["assets", "lang", "templates", "source/*.json"], { ignoreInitial: false }, copyFiles);
} };
/********************/ /********************/
/* CLEAN */ /* CLEAN */
@@ -316,67 +290,63 @@ const buildWatch = () => {
* while ignoring source files * while ignoring source files
*/ */
const clean = async () => { const clean = async () => {
if (!fs.existsSync(distPath)) if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
fs.mkdirSync(distPath)
else { else {
// Attempt to remove the files // Attempt to remove the files
try { try {
fs.rmSync(distPath, { recursive: true, force: true }) fs.rmSync(distPath, { recursive: true, force: true });
fs.mkdirSync(distPath) fs.mkdirSync(distPath);
return Promise.resolve() return Promise.resolve();
} catch (err) { } catch (err) {
await Promise.reject(err) await Promise.reject(err);
} }
} }
} };
const setTargetDir = async () => { const setTargetDir = async () => {
const dp = process.env.FOUNDRY_PATH const dp = process.env.FOUNDRY_PATH;
if (!dp) if (!dp) throw Error("FOUNDRY_PATH not defined in environment");
throw Error("FOUNDRY_PATH not defined in environment")
const name = getManifest()!.file.name ?? "midgard5" const name = getManifest()!.file.name ?? "midgard5";
distPath = path.join(dp, "Data", "systems", name) distPath = path.join(dp, "Data", "systems", name);
} };
const linkUserData = async () => { const linkUserData = async () => {
const name = getManifest()!.file.name const name = getManifest()!.file.name;
let destDir let destDir;
try { try {
if (fs.existsSync(path.resolve(".", distPath, "module.json")) || fs.existsSync(path.resolve(".", "source", "module.json"))) { if (fs.existsSync(path.resolve(".", distPath, "module.json")) || fs.existsSync(path.resolve(".", "source", "module.json"))) {
destDir = "modules" destDir = "modules";
} else if (fs.existsSync(path.resolve(".", distPath, "system.json")) || fs.existsSync(path.resolve(".", "source", "system.json"))) { } else if (fs.existsSync(path.resolve(".", distPath, "system.json")) || fs.existsSync(path.resolve(".", "source", "system.json"))) {
destDir = "systems" destDir = "systems";
} else { } else {
throw Error(`Could not find module.json or system.json`) throw Error(`Could not find module.json or system.json`);
} }
let linkDir let linkDir;
const dataPath = process.env.FOUNDRY_PATH const dataPath = process.env.FOUNDRY_PATH;
if (dataPath) { if (dataPath) {
if (!fs.existsSync(path.join(dataPath, "Data"))) if (!fs.existsSync(path.join(dataPath, "Data"))) throw Error("User Data path invalid, no Data directory found");
throw Error("User Data path invalid, no Data directory found") linkDir = path.join(dataPath, "Data", destDir, name as string);
linkDir = path.join(dataPath, "Data", destDir, name as string)
} else { } else {
throw Error("FOUNDRY_PATH not defined in environment") throw Error("FOUNDRY_PATH not defined in environment");
} }
//if (argv.clean || argv.c) { //if (argv.clean || argv.c) {
Logger.warn(`Removing build in ${linkDir}`) Logger.warn(`Removing build in ${linkDir}`);
fs.rmSync(linkDir, { recursive: true, force: true }) fs.rmSync(linkDir, { recursive: true, force: true });
fs.mkdirSync(linkDir) fs.mkdirSync(linkDir);
//} //}
Logger.ok(`Copying build to ${linkDir}`) Logger.ok(`Copying build to ${linkDir}`);
fs.copySync(path.resolve(distPath), linkDir, { overwrite: true }) fs.copySync(path.resolve(distPath), linkDir, { overwrite: true });
return Promise.resolve() return Promise.resolve();
} catch (err) { } catch (err) {
await Promise.reject(err) await Promise.reject(err);
} }
} };
/*********************/ /*********************/
/* PACKAGE */ /* PACKAGE */
@@ -386,48 +356,51 @@ const linkUserData = async () => {
* Package build * Package build
*/ */
async function packageBuild() { async function packageBuild() {
const manifest = getManifest() const manifest = getManifest();
if (manifest === null) { if (manifest === null) {
Logger.err("Manifest file could not be loaded.") Logger.err("Manifest file could not be loaded.");
throw Error() throw Error();
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try { try {
// Remove the package dir without doing anything else // Remove the package dir without doing anything else
if (argv.clean || argv.c) { if (argv.clean || argv.c) {
Logger.warn("Removing all packaged files") Logger.warn("Removing all packaged files");
fs.rmSync(distPath, { force: true, recursive: true }) fs.rmSync(distPath, { force: true, recursive: true });
return return;
} }
// Ensure there is a directory to hold all the packaged versions // Ensure there is a directory to hold all the packaged versions
if(!fs.existsSync(distPath)) if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
fs.mkdirSync(distPath)
// Initialize the zip file // Initialize the zip file
const zipName = `${manifest.file.name}-v${manifest.file.version}.zip` const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`;
const zipFile = fs.createWriteStream(path.join(distPath, zipName)) const zipFile = fs.createWriteStream(zipName);
const zip = archiver("zip", { zlib: { level: 9 } }) const zip = archiver("zip", { zlib: { level: 9 } });
zipFile.on("close", () => { zipFile.on("close", () => {
Logger.ok(zip.pointer() + " total bytes") Logger.ok(zip.pointer() + " total bytes");
Logger.ok(`Zip file ${zipName} has been written`) Logger.ok(`Zip file ${zipName} has been written`);
return resolve(true) return resolve(true);
}) });
zipFile.on("end", function () {
throw "Data has been drained";
});
zip.on("error", (err) => { zip.on("error", (err) => {
throw err throw err;
}) });
zip.pipe(zipFile) zip.pipe(zipFile);
zip.directory(path.join(process.cwd(), distPath), false) zip.directory(distPath, manifest.file.name);
return zip.finalize()
return zip.finalize();
} catch (err) { } catch (err) {
return reject(err) return reject(err);
} }
}) });
} }
/*********************/ /*********************/
@@ -438,116 +411,113 @@ async function packageBuild() {
* Update version and URLs in the manifest JSON * Update version and URLs in the manifest JSON
*/ */
const updateManifest = (cb: any) => { const updateManifest = (cb: any) => {
const packageJson = loadJson("package.json") const packageJson = loadJson("package.json");
const config = getConfig(), const config = getConfig(),
manifest = getManifest(), manifest = getManifest(),
rawURL = config.rawURL, rawURL = config.rawURL,
repoURL = config.repository, repoURL = config.repository,
manifestRoot = manifest!.root manifestRoot = manifest!.root;
if (!config) if (!config) cb(Error("foundryconfig.json not found"));
cb(Error("foundryconfig.json not found"))
if (manifest === null) { if (manifest === null) {
cb(Error("Manifest JSON not found")) cb(Error("Manifest JSON not found"));
return return;
} }
if (!rawURL || !repoURL) if (!rawURL || !repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
cb(Error("Repository URLs not configured in foundryconfig.json"))
try { try {
const version = argv.update || argv.u const version = argv.update || argv.u;
/* Update version */ /* Update version */
const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/ const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/;
const currentVersion = manifest!.file.version const currentVersion = manifest!.file.version;
let targetVersion = "" let targetVersion = "";
if (!version) { if (!version) {
cb(Error("Missing version number")) cb(Error("Missing version number"));
} }
if (versionMatch.test(version)) { if (versionMatch.test(version)) {
targetVersion = version targetVersion = version;
} else { } else {
targetVersion = currentVersion.replace(versionMatch, (substring: string, major: string, minor: string, patch: string) => { targetVersion = currentVersion.replace(versionMatch, (substring: string, major: string, minor: string, patch: string) => {
console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1) console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1);
if (version === "major") { if (version === "major") {
return `${Number(major) + 1}.0.0` return `${Number(major) + 1}.0.0`;
} else if (version === "minor") { } else if (version === "minor") {
return `${major}.${Number(minor) + 1}.0` return `${major}.${Number(minor) + 1}.0`;
} else if (version === "patch") { } else if (version === "patch") {
return `${major}.${minor}.${Number(patch) + 1}` return `${major}.${minor}.${Number(patch) + 1}`;
} else { } else {
return "" return "";
} }
}) });
} }
if (targetVersion === "") { if (targetVersion === "") {
return cb(Error("Error: Incorrect version arguments.")) return cb(Error("Error: Incorrect version arguments."));
} }
if (targetVersion === currentVersion) { if (targetVersion === currentVersion) {
return cb(Error("Error: Target version is identical to current version.")) return cb(Error("Error: Target version is identical to current version."));
} }
Logger.ok(`Updating version number to '${targetVersion}'`) Logger.ok(`Updating version number to '${targetVersion}'`);
packageJson.version = targetVersion packageJson.version = targetVersion;
manifest.file.version = targetVersion manifest.file.version = targetVersion;
/* Update URLs */ /* Update URLs */
const result = `${rawURL}/v${manifest.file.version}/${distPath}/${manifest.file.name}-v${manifest.file.version}.zip` const result = `${repoURL}/releases/download`;
manifest.file.url = repoURL manifest.file.url = repoURL;
manifest.file.manifest = `${rawURL}/master/${manifestRoot}/${manifest.name}` manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
manifest.file.download = result manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
const prettyProjectJson = stringify(manifest.file, { const prettyProjectJson = stringify(manifest.file, {
maxLength: 35, maxLength: 35,
indent: "\t", indent: "\t",
}) });
fs.writeFileSync("package.json", JSON.stringify(packageJson, null, '\t')) fs.writeFileSync("package.json", JSON.stringify(packageJson, null, "\t"));
fs.writeFileSync(path.join(manifest.root, manifest.name), prettyProjectJson, "utf8") fs.writeFileSync(path.join(manifest.root, manifest.name), prettyProjectJson, "utf8");
return cb() return cb();
} catch (err) { } catch (err) {
return cb(err) return cb(err);
} }
} };
const gitTaskManifest = (cb: gulp.TaskFunctionCallback) => { const gitTaskManifest = (cb: gulp.TaskFunctionCallback) => {
const manifest = getManifest() const manifest = getManifest();
if (!manifest) if (!manifest) return cb(Error("could not load manifest."));
return cb(Error("could not load manifest.")) return gulp
.src([`package.json`, `source/system.json`])
return gulp.src([`package.json`, `source/module.json`])
.pipe(git.add({ args: "--no-all -f" })) .pipe(git.add({ args: "--no-all -f" }))
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true })) .pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
} };
const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => { const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
const manifest = getManifest() const manifest = getManifest();
if (!manifest) if (!manifest) return cb(Error("could not load manifest."));
return cb(Error("could not load manifest."))
return gulp.src(`${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`) return gulp
.pipe(git.checkout(`v${manifest.file.version}`, { args: '-b' })) .src(`${manifest.file.name}-v${manifest.file.version}.zip`)
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
.pipe(git.add({ args: "--no-all -f" })) .pipe(git.add({ args: "--no-all -f" }))
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true })) .pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
} };
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles) const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles);
exports.build = gulp.series(clean, execBuild, bundleModule) exports.build = gulp.series(clean, execBuild, bundleModule);
exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule) exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule);
exports.watch = buildWatch exports.watch = buildWatch;
exports.watchTarget = gulp.series(setTargetDir, buildWatch) exports.watchTarget = gulp.series(setTargetDir, buildWatch);
exports.clean = clean exports.clean = clean;
exports.link = linkUserData exports.link = linkUserData;
exports.package = packageBuild exports.package = packageBuild;
exports.update = updateManifest exports.update = updateManifest;
//exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest, gitTaskBuild) exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest);
+74 -7
View File
@@ -1,13 +1,15 @@
{ {
"ACTOR.TypeCharacter": "Charakter", "TYPES.Actor.character": "Charakter",
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur", "ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.", "ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
"ITEM.TypeItem": "Gegenstand", "TYPES.Item.item": "Gegenstand",
"ITEM.TypeWeapon": "Waffe", "TYPES.Item.weapon": "Waffe",
"ITEM.TypeDefensiveWeapon": "Verteidigungswaffe", "ITEM.TypeDefensiveWeapon": "Verteidigungswaffe",
"ITEM.TypeArmor": "Rüstung", "TYPES.Item.armor": "Rüstung",
"ITEM.TypeSpell": "Zauber", "TYPES.Item.spell": "Zauber",
"TYPES.Item.effect": "Aktive Effekte",
"ITEM.type.kampfkunst": "Kampfkünste",
"midgard5.doRoll": "Würfeln", "midgard5.doRoll": "Würfeln",
"midgard5.learn": "Lernen", "midgard5.learn": "Lernen",
@@ -50,6 +52,8 @@
"midgard5.actor-zt-long": "Zaubertalent", "midgard5.actor-zt-long": "Zaubertalent",
"midgard5.actor-wk": "Wk", "midgard5.actor-wk": "Wk",
"midgard5.actor-wk-long": "Willenskraft", "midgard5.actor-wk-long": "Willenskraft",
"midgard5.actor-GiT": "GiT",
"midgard5.actor-GiT-long": "Gifttolleranz",
"midgard5.aktuell": "Akt.", "midgard5.aktuell": "Akt.",
"midgard5.maximum": "Max.", "midgard5.maximum": "Max.",
@@ -60,6 +64,8 @@
"midgard5.skills": "Fertigkeiten", "midgard5.skills": "Fertigkeiten",
"midgard5.gear": "Ausrüstung", "midgard5.gear": "Ausrüstung",
"midgard5.spells": "Zauber", "midgard5.spells": "Zauber",
"midgard5.effects": "Aktive Effekte",
"midgard5.kampfkuenste": "Kampfkünste",
"midgard5.class": "Klasse", "midgard5.class": "Klasse",
"midgard5.race": "Rasse", "midgard5.race": "Rasse",
@@ -80,21 +86,29 @@
"midgard5.destiny": "Schicksalsgunst", "midgard5.destiny": "Schicksalsgunst",
"midgard5.luckPoints": "Glückspunkte", "midgard5.luckPoints": "Glückspunkte",
"midgard5.abrichten": "Abrichten",
"midgard5.akrobatik": "Akrobatik", "midgard5.akrobatik": "Akrobatik",
"midgard5.alchimie": "Alchimie", "midgard5.alchimie": "Alchimie",
"midgard5.anfuehren": "Anführen", "midgard5.anfuehren": "Anführen",
"midgard5.askese": "Askese",
"midgard5.astrologie": "Astrologie",
"midgard5.athletik": "Athletik", "midgard5.athletik": "Athletik",
"midgard5.balancieren": "Balancieren", "midgard5.balancieren": "Balancieren",
"midgard5.beidhaendigerKampf": "Beidhändiger Kampf", "midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
"midgard5.bergreiten": "Bergreiten",
"midgard5.beredsamkeit": "Beredsamkeit", "midgard5.beredsamkeit": "Beredsamkeit",
"midgard5.betaeuben": "Betäuben", "midgard5.betaeuben": "Betäuben",
"midgard5.betaeubungsgriff": "Betäubungsgriff",
"midgard5.bootfahren": "Bootfahren", "midgard5.bootfahren": "Bootfahren",
"midgard5.dickhaeuterLenken": "Dickhäuter lenken",
"midgard5.ersteHilfe": "Erste Hilfe", "midgard5.ersteHilfe": "Erste Hilfe",
"midgard5.etikette": "Etikette", "midgard5.etikette": "Etikette",
"midgard5.fallenEntdecken": "Fallen entdecken", "midgard5.fallenEntdecken": "Fallen entdecken",
"midgard5.fallenmechanik": "Fallenmechanik", "midgard5.fallenmechanik": "Fallenmechanik",
"midgard5.faelschen": "Fälschen", "midgard5.faelschen": "Fälschen",
"midgard5.fangen": "Fangen",
"midgard5.fechten": "Fechten", "midgard5.fechten": "Fechten",
"midgard5.feueralchimie": "Feueralchimie",
"midgard5.gassenwissen": "Gassenwissen", "midgard5.gassenwissen": "Gassenwissen",
"midgard5.gaukeln": "Gaukeln", "midgard5.gaukeln": "Gaukeln",
"midgard5.gelaendelauf": "Geländelauf", "midgard5.gelaendelauf": "Geländelauf",
@@ -103,33 +117,55 @@
"midgard5.gluecksspiel": "Glücksspiel", "midgard5.gluecksspiel": "Glücksspiel",
"midgard5.heilkunde": "Heilkunde", "midgard5.heilkunde": "Heilkunde",
"midgard5.kampfInVollruestung": "Kampf in Vollrüstung", "midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
"midgard5.kampfInSchlachtreihe": "Kampf in Schlachtreihe",
"midgard5.kampfkunst": "Kampfkunst",
"midgard5.kido": "Kido",
"midgard5.klettern": "Klettern", "midgard5.klettern": "Klettern",
"midgard5.landeskunde": "Landeskunde", "midgard5.landeskunde": "Landeskunde",
"midgard5.laufen": "Laufen", "midgard5.laufen": "Laufen",
"midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift", "midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
"midgard5.lesenVonZauberrunen": "Lesen von Zauberrunen",
"midgard5.meditieren": "Meditieren", "midgard5.meditieren": "Meditieren",
"midgard5.menschenkenntnis": "Menschenkenntnis", "midgard5.menschenkenntnis": "Menschenkenntnis",
"midgard5.meucheln": "Meucheln", "midgard5.meucheln": "Meucheln",
"midgard5.musizieren": "Musizieren", "midgard5.musizieren": "Musizieren",
"midgard5.naturkunde": "Naturkunde", "midgard5.naturkunde": "Naturkunde",
"midgard5.ninjutsu": "NinJutsu",
"midgard5.orakelkunst": "Orakelkunst",
"midgard5.pflanzenkunde": "Pflanzenkunde", "midgard5.pflanzenkunde": "Pflanzenkunde",
"midgard5.raunen": "Raunen",
"midgard5.reiten": "Reiten", "midgard5.reiten": "Reiten",
"midgard5.reiterkampf": "Reiterkampf", "midgard5.reiterkampf": "Reiterkampf",
"midgard5.rutengehen": "Rutengehen",
"midgard5.scharfschiessen": "Scharfschießen", "midgard5.scharfschiessen": "Scharfschießen",
"midgard5.schiesskunst": "Schießkunst",
"midgard5.schleichen": "Schleichen", "midgard5.schleichen": "Schleichen",
"midgard5.schloesserOeffnen": "Schlösser öffnen", "midgard5.schloesserOeffnen": "Schlösser öffnen",
"midgard5.schmerzErtragen": "Schmerzen ertragen",
"midgard5.schwimmen": "Schwimmen", "midgard5.schwimmen": "Schwimmen",
"midgard5.seilkunst": "Seilkunst", "midgard5.seilkunst": "Seilkunst",
"midgard5.selbstkontrolle": "Selbstkontrolle",
"midgard5.singen": "Singen",
"midgard5.skifahren": "Skifahren",
"midgard5.spinnengang": "Spinnengang",
"midgard5.speerfechten": "Speerfechten",
"midgard5.spurensuche": "Spurensuche", "midgard5.spurensuche": "Spurensuche",
"midgard5.stehlen": "Stehlen", "midgard5.stehlen": "Stehlen",
"midgard5.taitschi": "TaiTschi",
"midgard5.tarnen": "Tarnen", "midgard5.tarnen": "Tarnen",
"midgard5.tanzen": "Tanzen",
"midgard5.tauchen": "Tauchen", "midgard5.tauchen": "Tauchen",
"midgard5.thaumagraphie": "Thaumagraphie",
"midgard5.thaumalogie": "Thaumalogie",
"midgard5.tierkunde": "Tierkunde", "midgard5.tierkunde": "Tierkunde",
"midgard5.ueberleben": "Überleben", "midgard5.ueberleben": "Überleben",
"midgard5.verfuehren": "Verführen", "midgard5.verfuehren": "Verführen",
"midgard5.verhoeren": "Verhören", "midgard5.verhoeren": "Verhören",
"midgard5.verstellen": "Verstellen", "midgard5.verstellen": "Verstellen",
"midgard5.volkstanz": "Volkstanz",
"midgard5.wagenlenken": "Wagenlenken", "midgard5.wagenlenken": "Wagenlenken",
"midgard5.wahrsagen": "Wahrsagen",
"midgard5.wasserkampf": "Wasserkampf",
"midgard5.zauberkunde": "Zauberkunde", "midgard5.zauberkunde": "Zauberkunde",
"midgard5.armor": "Rüstung", "midgard5.armor": "Rüstung",
@@ -146,7 +182,7 @@
"midgard5.spellCasting": "Zaubern", "midgard5.spellCasting": "Zaubern",
"midgard5.spellBonus": "Zauberbonus", "midgard5.spellBonus": "Zauberbonus",
"midgard5.brawl": "Raufen", "midgard5.brawl": "Raufen",
"midgard5.poisonResistance": "Giftresistenz", "midgard5.poisonResistance": "Gifttolleranz",
"midgard5.enduranceBonus": "Ausdauerbonus", "midgard5.enduranceBonus": "Ausdauerbonus",
"midgard5.new-skill": "Neue Fertigkeit", "midgard5.new-skill": "Neue Fertigkeit",
@@ -161,6 +197,8 @@
"midgard5.defensive-weapon": "Verteidigungswaffe", "midgard5.defensive-weapon": "Verteidigungswaffe",
"midgard5.no-skill": "Keine Fertigkeit", "midgard5.no-skill": "Keine Fertigkeit",
"midgard5.magic": "magisch", "midgard5.magic": "magisch",
"midgard5.equipped": "Ausgerüstet",
"midgard5.active": "Aktiv",
"midgard5.rangedWeapon": "Schusswaffe", "midgard5.rangedWeapon": "Schusswaffe",
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können", "midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können",
@@ -204,6 +242,35 @@
"midgard5.spell-effectDuration": "Wirkungsdauer", "midgard5.spell-effectDuration": "Wirkungsdauer",
"midgard5.spell-origin": "Ursprung", "midgard5.spell-origin": "Ursprung",
"midgard5.kampfkunst-type": "Kampfkunst Art",
"midgard5.kampfkunst-variante": "Kampfkunst Variante",
"midgard5.kido-type": "Kido Art",
"midgard5.kido-variante": "Kido Variante",
"midgard5.kampfkunst-type-angriff": "Angriffstechnik",
"midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik",
"midgard5.kampfkunst-type-finte": "Finte",
"midgard5.kampfkunst-type-geist": "Geistestechnik",
"midgard5.kampfkunst-type-schießkunst": "Schießkunst",
"midgard5.kampfkunst-type-fechten": "Fechtkunst",
"midgard5.kido-type-angriff": "Kido Angriffstechnik",
"midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik",
"midgard5.kido-type-finte": "Kido Finte",
"midgard5.kido-type-leib": "Kido Leibestechnik",
"midgard5.kampfkunst-variante-anstuermen": "Anstürmen",
"midgard5.kampfkunst-variante-attackieren": "Attackieren",
"midgard5.kampfkunst-variante-entwaffnen": "Entwaffnen",
"midgard5.kido-variante-anspringen": "Anspringen",
"midgard5.kido-variante-attackieren": "Attackieren",
"midgard5.kido-variante-entwaffnen": "Entwaffnen",
"midgard5.kido-variante-werfen": "Werfen",
"midgard5.kido-variante-ausweichen": "Ausweichen",
"midgard5.kido-variante-blockieren": "Blockieren",
"midgard5.kido-variante-bewegen": "Bewegen",
"midgard5.kido-variante-kontrollieren": "Kontrollieren",
"midgard5.mod-operation-add100": "Addieren (max 100)", "midgard5.mod-operation-add100": "Addieren (max 100)",
"midgard5.mod-operation-add": "Addieren", "midgard5.mod-operation-add": "Addieren",
"midgard5.mod-operation-set": "Basiswert", "midgard5.mod-operation-set": "Basiswert",
@@ -217,7 +284,7 @@
"midgard5.mod-stat-resistanceBody": "Resistenz Körper", "midgard5.mod-stat-resistanceBody": "Resistenz Körper",
"midgard5.mod-stat-spellCasting": "Zaubern", "midgard5.mod-stat-spellCasting": "Zaubern",
"midgard5.mod-stat-brawl": "Raufen", "midgard5.mod-stat-brawl": "Raufen",
"midgard5.mod-stat-poisonResistance": "Giftresistenz", "midgard5.mod-stat-poisonResistance": "Gifttolleranz",
"midgard5.mod-stat-lp": "Lebenspunkte", "midgard5.mod-stat-lp": "Lebenspunkte",
"midgard5.mod-stat-ap": "Ausdauerpunkte", "midgard5.mod-stat-ap": "Ausdauerpunkte",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "foundry-system-midgard5", "name": "foundry-system-midgard5",
"version": "1.2.2", "version": "2.1.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
+1
View File
@@ -0,0 +1 @@
{"name": "Angelhaken", "type": "item", "img": "icons/tools/fishing/hook-barbed-steel-blue.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": null, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336817949, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ptPhWX3Otql5YD5K", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Angelschnur", "type": "item", "img": "icons/tools/fishing/reel-brown-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336890575, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "HtgeX3gqlYUNmoT7", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Armbrustbolzen", "type": "item", "img": "icons/weapons/ammunition/arrows-broadhead-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336933022, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "E9BcGFvPHIG8uFAt", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Berserkerpilz", "type": "item", "img": "icons/consumables/mushrooms/umbontae-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337107612, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "6HhMzrc0X70FM0Bo", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Blasrohrnadel", "type": "item", "img": "icons/weapons/ammunition/arrows-fletching.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337134535, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Zq43rQLtzBLeJUqf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Bleikugel", "type": "item", "img": "icons/weapons/ammunition/shot-round-lead.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337162880, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tuEU5XXed5g5N1Y6", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Bolzenk\u00f6cher", "type": "item", "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340687915, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "5LcPj2gGQKaY0PCq", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Brecheisen", "type": "item", "img": "icons/tools/fasteners/bracket.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337186426, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LbVNFA0iXvadi1Zs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Bronzegl\u00f6ckchen, klein", "type": "item", "img": "icons/tools/instruments/bell-brass-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337474249, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "HvbEC1LJXfa6WGIa", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Bronzehorn", "type": "item", "img": "icons/containers/misc/horn-drinking-wood-teal.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340198012, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NTcOlPb3j7TBaYMv", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Decke, warm", "type": "item", "img": "icons/sundries/survival/bedroll-blue-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337535983, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "YWptt5cY8AuW6XNO", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Dolchscheide, einfach", "type": "item", "img": "icons/equipment/waist/belt-buckle-square-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337586636, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "4oz3iGQXLyqhWqsf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Dolchscheide, verziert", "type": "item", "img": "icons/equipment/waist/belt-leather-black-brass.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337586636, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XuFi9DRVZXVbCJ7R", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Einbrecherwerkzeug", "type": "item", "img": "icons/sundries/misc/key-ring-long-silver.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337820582, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "j14QP0JrN3xpy6lo", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Eisenkeil", "type": "item", "img": "icons/commodities/metal/hinge-brass.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337884280, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "WbebaVEJHFQj2z87", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Erste-Hilfe-Ausr\u00fcstung", "type": "item", "img": "icons/magic/life/cross-worn-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337948091, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7A2FMFRTU74hK6hY", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Erste-Hilfe-Heilmittel", "type": "item", "img": "icons/tools/laboratory/bowl-herbs-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337948091, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "X71T2SmtyzvmFhLB", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Fackeln", "type": "item", "img": "icons/sundries/lights/torch-brown-lit.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338067075, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "TGkot7doVxjuYogC", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Fernrohr (2x)", "type": "item", "img": "icons/tools/navigation/spyglass-telescope-brass.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338138751, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1SBFERO074zU5Y72", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Feuerstein & Zunder", "type": "item", "img": "icons/tools/smithing/furnace-fire-metal-orange.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338202933, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ukLdWCebvdlYWcrV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Feuertopf aus Ton", "type": "item", "img": "icons/containers/kitchenware/bowl-clay-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338268521, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ziuy5AYML53EjOGW", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Fischernetz", "type": "item", "img": "icons/tools/fishing/net-tan.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338297878, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "p0VcPlKCuthyeI1T", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Flohpulver", "type": "item", "img": "icons/consumables/grains/sack-grain-open-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338323057, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7eTVSg335jYoSoft", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Fl\u00f6te", "type": "item", "img": "icons/tools/instruments/flute-simple-wood.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338346745, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "07068MEDLhOsV4jc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Garn", "type": "item", "img": "icons/sundries/survival/rope-coiled-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338366220, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "jmuTti0JrIoqqH8O", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Greifvogel", "type": "item", "img": "icons/creatures/birds/corvid-call-sound-glowing.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338422548, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "8PoDR1FQgM8xrJKV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Greifvogelfutter", "type": "item", "img": "icons/consumables/meat/cut-bowl-wooden-pink-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338454422, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ND48kN2hmgCS8ed3", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "G\u00fcrtel", "type": "item", "img": "icons/equipment/waist/belt-buckle-square-leather-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338561470, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "cQFMuoAkQVeKdc97", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Hammer", "type": "item", "img": "icons/tools/smithing/hammer-sledge-steel-grey.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338588641, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XEM8MiGJkxLxBBRs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Hand- und Fussfessel mit Kette", "type": "item", "img": "icons/sundries/survival/cuffs-shackles-steel.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339458394, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1ifVYP0yoHL9iCYW", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Handwaage mit Waagschalen", "type": "item", "img": "icons/skills/social/trading-justice-scale-gold.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339735680, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tU2qA3OsEIqLXRZ0", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Harfe", "type": "item", "img": "icons/tools/instruments/harp-gold-glowing.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339779526, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "nPwxqIHFi10yjm9B", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Heiltrunk", "type": "item", "img": "icons/consumables/potions/bottle-corked-green.webp", "system": {"description": "<p>1W6</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "lp", "operation": "add", "value": null}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339806059, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LHgjofEluOhVbWwD", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Hemd", "type": "item", "img": "icons/equipment/chest/shirt-collared-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339967376, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "RQluqa74y7CvPKDx", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Holzbalken", "type": "item", "img": "icons/commodities/wood/lumber-square-beam.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340002857, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "lnTbuIhulXPjYT5F", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Holzkohle", "type": "item", "img": "icons/commodities/gems/powder-raw-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340057496, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "D0IHREXgPafauEeM", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Holzpflock", "type": "item", "img": "icons/sundries/survival/stake-rough-heavy-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340160962, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rostQgltuHrNAJTc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Hose", "type": "item", "img": "icons/equipment/leg/pants-leather-tasset-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340244299, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tQdkwsDZgr6MTyCH", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Hundefutter", "type": "item", "img": "icons/consumables/meat/steak-glowing-fatty-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340332022, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "p23gvctvzlKndysF", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Jagdhund", "type": "item", "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340413210, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "OdTUAeIzfBs4Znuq", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kampfhund", "type": "item", "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340495804, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1OYNWsCEadW6wpDN", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kilt", "type": "item", "img": "icons/equipment/leg/skirt-cloth-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340541758, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "x7Hcn5CrioNhDW2B", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kleid", "type": "item", "img": "icons/equipment/chest/robe-layered-teal.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340636292, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "3SjCq2wEdBhQgWN3", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Krafttrunk 1W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>1W6</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tFa73yJT05w6CFc4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Krafttrunk 2W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>2W6</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rdqrGsNAGQYels8W", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Krafttrunk 3W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>3W6</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XOraVIzffPmQid13", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Kraut der konzentrierten Energie", "type": "item", "img": "icons/commodities/flowers/dandelion-pod-blue.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340819892, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "cP1thMQpKmJnp2Ei", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kreidest\u00fcck", "type": "item", "img": "icons/commodities/stone/ore-chunk-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341013171, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "hGoH4ADtYsKM4MW0", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Kristallspiegel", "type": "item", "img": "icons/commodities/treasure/token-silver-blue.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343296333, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Jf3M0R8VFPk68FFi", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kupferdraht", "type": "item", "img": "icons/tools/hand/lockpicks-steel-grey.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341109013, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "osAv07ozhccIpF8e", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Kutte", "type": "item", "img": "icons/equipment/head/hood-cloth-teal.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341247991, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "G4qmduHsHdEAWHaK", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Lampen\u00f6l", "type": "item", "img": "icons/consumables/potions/potion-jar-corked-orange.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341281337, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "og0ZLGP1YgMR8ElR", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Laterne, abblendbar", "type": "item", "img": "icons/sundries/lights/lantern-iron-yellow.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341362507, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "xFvCBbvhdEJyyukV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Laterne", "type": "item", "img": "icons/sundries/lights/lantern-iron-lit-yellow.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341336215, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "B2Xg6mVdKs4RR8Pm", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Laute", "type": "item", "img": "icons/tools/instruments/lute-gold-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341380164, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "w74foUkMyF3TXwVk", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Lederhandschuhe", "type": "item", "img": "icons/equipment/hand/gauntlet-simple-leather-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339697427, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "zBFahd3ATMoonOhR", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Ledertasche, Bleikugeln", "type": "item", "img": "icons/containers/ammunition/powder-horn-worn.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341416201, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "41Sp9PothZDTDKyj", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Liebestrank", "type": "item", "img": "icons/consumables/potions/flask-decorated-label-pink.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341450514, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NKqfJaXUonAZMQOu", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Maganbrot", "type": "item", "img": "icons/consumables/food/bread-toast-tan.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341501776, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "4RjCcsb7J5xvlj88", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Metallkette", "type": "item", "img": "icons/commodities/metal/chain-steel.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341578395, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "VYFiMG4psKUkfQyf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Metallspiegel", "type": "item", "img": "icons/tools/smithing/plate-steel-grey.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343353376, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "a0lTGD1AfXVSYGs4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Nagel, gro\u00df", "type": "item", "img": "icons/tools/fasteners/nail-steel.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341678257, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "IhRkdFazyU8qvHcm", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "N\u00e4hnadel", "type": "item", "img": "icons/commodities/cloth/thread-and-needle.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341712892, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "vWfxylv3W96r4xoA", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Oberbekleidung, warm", "type": "item", "img": "icons/equipment/chest/vest-leather-tattered-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341752909, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LTXHIjwreWlDjFVe", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Papyrus", "type": "item", "img": "icons/sundries/documents/blueprint-recipe-alchemical.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341784413, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "9X4DHhXWfmR9vtOF", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Pergament", "type": "item", "img": "icons/sundries/documents/document-sealed-white-orange.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341827425, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rF3rI93xpSwXp54m", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Pfeil", "type": "item", "img": "icons/weapons/ammunition/arrows-barbed-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341865983, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "h7CHoQddkmRnXgcI", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Pfeilk\u00f6cher", "type": "item", "img": "icons/containers/ammunition/arrows-quiver-green-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340709193, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "9SfA9qaSUqpABpqK", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Pferdefutter", "type": "item", "img": "icons/consumables/grains/sack-rice-flour-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341900229, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "W3csaJLCiQ4t1o9P", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Reckentrunk", "type": "item", "img": "icons/consumables/potions/bottle-corked-red.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341932276, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "TwzwDjvtddNJ5Ki4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Reiseverpflegung", "type": "item", "img": "icons/containers/bags/sack-open-grain-tan.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342032837, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Xn9VsRATmiDXe0SO", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Reitkamel", "type": "item", "img": "icons/creatures/mammals/livestock-sheep-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342110683, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "slFAJBzsdDYzDJ9X", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Reitpferd", "type": "item", "img": "icons/creatures/mammals/unicorn-horned-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342231300, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7GeCGeSn558MJLdH", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Robe", "type": "item", "img": "icons/equipment/back/cloak-collared-purple-gold.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342405172, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "w7gUXCx0ECYnPW2r", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Rock", "type": "item", "img": "icons/equipment/leg/tasset-cloth-white.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342441749, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "eY96dy93lAsixVYT", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Salbe der Eisenhaut", "type": "item", "img": "icons/tools/laboratory/bowl-liquid-black.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": true, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342463963, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NszEKahcPjXDDv9c", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Salbe der Krakenh\u00e4nde", "type": "item", "img": "icons/consumables/food/soup-broth-bowl-tentacle.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342544615, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "YY6CbftXVqZGKCFs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Sandalen", "type": "item", "img": "icons/equipment/feet/boots-leather-red-gold.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342568875, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "5Xy4Uiqwi0RWioNc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Sanduhr", "type": "item", "img": "icons/sundries/misc/hourglass-wood.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342601837, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "QRwSLdtLQ7NQSeHi", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Sattel", "type": "item", "img": "icons/commodities/leather/leather-buckle-embossed-gold.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342635099, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "RE7L3DhE09jqg8k2", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Schaufel", "type": "item", "img": "icons/tools/hand/shovel-spade-steel-grey.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342672980, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "iXTenD0XzdqBidDu", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Schlachtross", "type": "item", "img": "icons/commodities/biological/head-zebra.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342704144, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ECyfNTtzigeqHcNL", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Schnellkraut", "type": "item", "img": "icons/skills/movement/feet-winged-boots-glowing-yellow.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342836786, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "xdPcoLHDyOz7O7BJ", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schreibpinsel", "type": "item", "img": "icons/skills/trades/academics-scribe-quill-gray.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342873393, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "dbTdECeoItRIhcWG", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Schuhe", "type": "item", "img": "icons/equipment/feet/boots-collared-rounded-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342920794, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "PAiYvmrZS3jbnhus", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schwertscheide, einfach", "type": "item", "img": "icons/weapons/swords/sword-guard-steel-green.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342989380, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "pI0bnmrwuGgs6UKy", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schwertscheide, verziert", "type": "item", "img": "icons/weapons/swords/sword-ringed-engraved.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342989380, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "E65qlBFv3kT7CLLp", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Segeltuch", "type": "item", "img": "icons/commodities/cloth/cloth-bolt-yellow.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343102474, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LlAU5ioMIT2WvAFp", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Seil", "type": "item", "img": "icons/sundries/survival/rope-coiled-wrapped-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343135128, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "zLfkTwbR5GP2lzlt", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Siegelwachs", "type": "item", "img": "icons/sundries/documents/document-sealed-red-yellow.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343164980, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "mNsqRkdEUpXyDGts", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Signalpfeife, Metall", "type": "item", "img": "icons/tools/instruments/megaphone.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343193286, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "c2JWf0yl34dkSYby", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Skier", "type": "item", "img": "icons/commodities/wood/lumber-stack-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343247888, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "TNHV2xDz6SicZSM5", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Stiefel, bis zum Knie", "type": "item", "img": "icons/equipment/feet/boots-folded-leather-brown.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343435686, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "akS0XWbqNUTY6KwQ", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Stiefel, halbhoch", "type": "item", "img": "icons/equipment/feet/boots-armored-steel.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343478602, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "sYsNmAXdTAbh4QnW", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Stoff", "type": "item", "img": "icons/commodities/cloth/cloth-patterned-orange.webp", "system": {"description": "", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343513714, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "jN1nJwk9EKxDD8HN", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}

Some files were not shown because too many files have changed in this diff Show More