Cruxis/update wiki content

This commit is contained in:
Norman Briggs
2026-02-25 02:05:12 -06:00
committed by Vlyan
parent b1e73f0761
commit 05b7a1181c
15 changed files with 217 additions and 124 deletions

View File

@@ -1,7 +1,9 @@
# DicePicker (DP)
The DicePicker is the entry point to any L5R roll (but chat command).
## Usage example
```js
new game.l5r5e.DicePickerDialog({
skillId: 'aesthetics',
@@ -11,26 +13,27 @@ new game.l5r5e.DicePickerDialog({
```
## Constructor Options
| Property | Type | Notes / Examples |
|------------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------|
| actor | Actor | Any `Actor` object instance.<br>ex : `game.user.character`, `canvas.tokens.controlled[0].actor` |
| actorId | string | This is the `id` not the `uuid` of an actor.<br>ex : "AbYgKrNwWeAxa9jT" |
| actorName | string | Careful this is case-sensitive.<br>ex : "Isawa Aki" |
| difficulty | number | `1` to `9` |
| difficultyHidden | boolean | If `true`, hide the difficulty and lock the view for the player. |
| isInitiativeRoll | boolean | `true` if this is an initiative roll. |
| item | Item | The object of technique or weapon used for this roll.<br>_Added in v1.9.0_ |
| itemUuid | string | The `uuid` of technique or weapon used for this roll. Can be anything retrieved by `fromUuid()` or `fromUuidSync()`<br>_Added in v1.9.0_ |
| ringId | string | If not provided, take the current stance of the actor if any.<br>ex : "fire", "water" |
| skillId | string | Skill `id`<br>ex : "design", "aesthetics", "courtesy" |
| skillCatId | string | Skill category `id`<br>ex : "artisan", "scholar" |
| skillsList | string[] | `skillId`/`skillCatId` list coma separated.<br>Allow the player to select the skill used in a select<br>ex : "artisan,design" |
| target | TokenDocument | The targeted Token<br>_Added in v1.9.0_ |
| Property | Type | Notes / Examples |
|:---------|:-----|:-----------------|
| actor | Actor | Any `Actor` object instance.<br>ex : `game.user.character`, `canvas.tokens.controlled[0].actor` |
| actorId | string | This is the `id` not the `uuid` of an actor.<br>ex : "AbYgKrNwWeAxa9jT" |
| actorName | string | Careful this is case-sensitive.<br>ex : "Isawa Aki" |
| difficulty | number | `1` to `9` |
| difficultyHidden | boolean | If `true`, hide the difficulty and lock the view for the player. |
| isInitiativeRoll | boolean | `true` if this is an initiative roll. |
| item | Item | The object of technique or weapon used for this roll.<br>_Added in v1.9.0_ |
| itemUuid | string | The `uuid` of technique or weapon used for this roll. Can be anything retrieved by `fromUuid()` or `fromUuidSync()`<br>_Added in v1.9.0_ |
| ringId | string | If not provided, take the current stance of the actor if any.<br>ex : "fire", "water" |
| skillId| string | Skill `id`<br>ex : "design", "aesthetics", "courtesy" |
| skillCatId | string | Skill category `id`<br>ex : "artisan", "scholar" |
| skillsList | string[] | `skillId`/`skillCatId` list coma separated.<br>Allow the player to select the skill used in a select<br>ex : "artisan,design" |
| target | TokenDocument | The targeted Token<br>_Added in v1.9.0_ |
All these properties are optional.
For `actor*` properties, the resolution is in this order :
1. `option.actor`
2. `option.actorId`
3. `option.actorName`

View File

@@ -4,6 +4,7 @@ The RnK use `ChatMessage` to retrieve the roll, alter it, add the new message an
> If you have any idea how to modify directly the ChatMessage and update it, let me know.
Usage :
```js
new RollnKeepDialog(messageId).render(true);
```

View File

@@ -1,7 +1,9 @@
# Roll
The roll use the `RollL5r5e` class, who store a lot of additional variables.
Here is a view of `<roll>.l5r5e` properties :
Here is a view of `<roll>.l5r5e` properties:
```js
actor: null, // actor instance
dicesTypes: {

View File

@@ -1,10 +1,13 @@
# Snippets
This page contains some useful code snippet for macro or so.
This page contains some useful code snippet for macros, etc.
## Foundry (core)
### Actor related
Some useful methods to get an actor document :
### Foundry (core)
## Actor related
Some useful methods to get a actor document :
```js
// By uuid
actor = fromUuid("Actor.lQYEzLeDS5ndopJV"); // or `fromUuidSync()
@@ -28,27 +31,30 @@ actors = Array.from(game.user.targets).map(t => t.actor);
actor = game.user.character;
```
### Document open sheet
## Document open sheet
```js
<document>.sheet?.render(true);
```
### FrameViewer
Open an url in an embedded windows in FoundryVTT.
## FrameViewer
Open an url in an embedded windows in FoundryVTT
```js
// url, options
new FrameViewer("https://foundryvtt.wiki/", { title: "SIDEBAR.Wiki" }).render(true);
```
## L5R5e specific
### autocomplete
A basic autocomplete for text inputs
Parameters :
```
```md
@param {jQuery} html HTML content of the sheet.
@param {string} name Html name of the input
@param {string[]} list Array of string to display
@@ -56,6 +62,7 @@ Parameters :
```
Usage examples :
```js
game.l5r5e.HelpersL5r5e.autocomplete(
html,
@@ -70,17 +77,19 @@ game.l5r5e.HelpersL5r5e.autocomplete(
```
It produces two values that can be useful in some cases :
```js
formData["autoCompleteListName"]; // "system.difficulty"
formData["autoCompleteListSelectedIndex"]; // 0 <- 1st élément selected
formData["autoCompleteListSelectedIndex"]; // 0 <- 1st element selected
```
### Debounce
### debounce
Isolated Debounce by Id
Parameters :
```
```md
@param {String} id Named id (namespace)
@param {Function} callback Callback function
@param {Number} timeout Wait time (default 500ms)
@@ -89,6 +98,7 @@ Parameters :
```
Usage examples :
```js
// Basic usage, non leading
game.l5r5e.HelpersL5r5e.debounce('appId', (text) => { console.log(text) })('my text');
@@ -102,12 +112,13 @@ game.l5r5e.HelpersL5r5e.debounce(
)();
```
### drawManyFromPack
Shortcut method to draw names to chat (private) from a table in compendium without importing it
Parameters :
```
```md
@param {String} pack Compendium name
@param {String} tableName Table name/id in this compendium
@param {String} retrieve How many draw we do (default "5")
@@ -115,24 +126,28 @@ Parameters :
@return {Promise<{RollTableDraw}>} The drawn results
```
Usage examples :
Usage examples:
```js
game.l5r5e.HelpersL5r5e.drawManyFromPack("l5r5e.core-name-tables", "Japanese names (Village)", 5);
```
### migrateWorld
You can force to trigger the system migration by using :
```js
game.l5r5e.migrations.migrateWorld({force: true});
```
This will try to normalize the actor/items in the current loaded world.
### sendToChat
Send the description of this `Document` (`BaseSheetL5r5e`, `JournalL5r5e`, `ItemL5r5e`) to chat.
Usage examples :
```js
game.l5r5e.HelpersL5r5e.sendToChat(game.actors.getName("Soshi Yui"));
```

View File

@@ -1,52 +1,56 @@
# Sockets API
Here is the list of Socket's methods, most of them is design to be use internally by the system, but you can find some useful for your projects.
Here is the list of Socket's methods, most of them are designed to be use internally by the system, but you can find some useful ones for your projects.
## deleteChatMessage
Delete ChatMessage by his `id`, the GM permission is required, so a GM need to be connected for this to work. Used in RnK.
Delete ChatMessage by his `id`, the GM permission is required, so a GM needs to be connected for this to work. Used in RnK.
Usage :
```js
game.l5r5e.sockets.deleteChatMessage(messageId);
```
## refreshAppId
Refresh an application windows by his `id` (not `appId`). Used in RnK.
<br>Ex : `l5r5e-twenty-questions-dialog-kZHczAFghMNYFRWe`, not `65`.
Usage :
```js
game.l5r5e.sockets.refreshAppId(applicationId);
```
## updateMessageIdAndRefresh
Change the message in the selected application windows, and re-render the application to force the refresh. Used in RnK.
Usage :
```js
game.l5r5e.sockets.refreshAppId(applicationId, messageId);
```
## openDicePicker
_Added in v1.9.0_
Remotely open the DicePicker (DP) on targeted Users/Actors if they are active users. Used in initiative roll.
Arguments :
| Property | Type | Notes / Examples |
|-----------|---------|----------------------------------------------------------------------------|
| users | User[] | Users list to trigger the DP (will be reduce to `id` for network perf.) |
| Property | Type | Notes / Examples |
|:----------|:--------|:-----------------|
| users | User[] | Users list to trigger the DP (will be reduce to `id` for network perf.) |
| actors | Actor[] | Actors list to trigger the DP (will be reduce to `uuid` for network perf.) |
| dpOptions | Object | Any [DicePickerDialog.options](dicepicker.md#constructor-options) |
| dpOptions | Object | Any [DicePickerDialog.options](dicepicker.md#constructor-options) |
### Examples
#### Fitness skill roll for the all combat targets
```js
game.l5r5e.sockets.openDicePicker({
actors: Array.from(game.user.targets).map(t => t.document.actor),
@@ -58,6 +62,7 @@ game.l5r5e.sockets.openDicePicker({
```
#### Initiative roll (skirmish) for all player's character who are in combat tracker
```js
game.l5r5e.sockets.openDicePicker({
actors: game.combat.combatants.filter(c => c.hasPlayerOwner && !c.isDefeated && !c.initiative).map(c => c.actor),
@@ -70,6 +75,7 @@ game.l5r5e.sockets.openDicePicker({
```
#### Melee skill roll with "fire" ring, pre-selected for all the selected tokens
```js
game.l5r5e.sockets.openDicePicker({
actors: canvas.tokens.controlled.map(t => t.actor),
@@ -82,6 +88,7 @@ game.l5r5e.sockets.openDicePicker({
```
#### Skill roll with skill list for all active players (but GM)
```js
game.l5r5e.sockets.openDicePicker({
users: game.users.players.filter(u => u.active && u.hasPlayerOwner),

View File

@@ -1,4 +1,5 @@
# Storage API
Client side volatile storage - Store things like collapsible state (a refresh will clean it).
This is accessible anytime on `game.l5r5e.storage`.
@@ -6,14 +7,17 @@ Used in sheets to store some collapsible element state.
## getAppKeys
Get list of active keys for this app
Parameters :
```
```js
@param {string} app application name
```
Usage examples :
```js
storeInfos = game.l5r5e.storage.getAppKeys("my-appid-namespace");
@@ -25,19 +29,23 @@ storeInfos = game.l5r5e.storage.getAppKeys("CharacterSheetL5r5e-Actor-Zca44Nv7yd
// 'inventory-item-list-weapon'
// ]
```
A defined key is "active", else they won't appear.
## toggleKey
Toggle a key for this app.
Parameters :
```
```js
@param {string} app application name
@param {string} key Key name
```
Usage examples :
```js
game.l5r5e.storage.toggleKey("my-appid-namespace", "var-key-to-toggle");

View File

@@ -1,21 +1,24 @@
# System helping (Contribute)
## Rules
You are free to contribute and propose corrections, modifications after fork. Try to respect theses rules:
- Make sure you are up-to-date with the referent branch (most of the time the `dev` branch).
- Clear and precise commit messages allow a quick review of the code.
- If possible, limit yourself to one Feature per Merge request so as not to block the process.
You are free to contribute and propose corrections and modifications after forking the repository. Try to respect these rules:
- Make sure you are up-to-date with the reference branch (generally this is the `dev` branch).
- Clear and precise commit messages allow a quick review of the code. For fixes, recommend the testing steps for a reviewer to properly test the fix.
- If possible, limit yourself to one Feature per Merge request to avoid slowing down the review process with multiple feature commits.
## Dev install
1. Clone the repository.
2. Use `npm ci` to install the dependence.
3. Create a link from `<repo>/system` to your foundry system data (by default `%localappdata%/FoundryVTT/data/systems/l5r5e`).
## Dev Install
1. Clone the repository to your local machine.
2. Ensure that [Node.js](https://nodejs.org/en/download/) is installed.
3. Use `npm ci` to install the relevant dependencies.
4. Create a link from `<repo>/system` to your foundry system data (by default `%localappdata%/FoundryVTT/data/systems/l5r5e`).
Windows example (modify the target and source directories, and run this in administrator):
Windows example (modify the target and source directories, and run this in administrator) :
```bash
mklink /D /J "%localappdata%/FoundryVTT/data/systems/l5r5e" "D:/Projects/FVTT/l5r5e/system"
```
## Compiling SCSS
1. Run `npm run watch` to watch and compile the `scss` files.
1. Run `npm run watch` to watch and compile the `*.scss` files.

View File

@@ -1,16 +1,18 @@
# L5R5e System Wiki
## For users
- [Installation and modules](users/install.md)
- [Updating - Bests practices](users/updating.md)
- [Basic usage and filling sheets](users/basic-usage.md)
- [Dice Rolling](users/dice.md)
- [Symbols replacement list](users/symbols.md)
- [Advanced : Techniques skill and difficulty syntaxe](users/techniques-syntaxe.md)
- [Advanced : Techniques skill and difficulty syntaxe](users/techniques-syntax.md)
- [Advanced : Custom Compendiums](users/custom-compendiums.md)
- [Advanced : Using CUB for modifiers](users/cub-modifiers.md)
## For developers
- [System helping (Contribute)](dev/system-helping.md)
- [Snippets](dev/snippets.md)
- [Sockets API](dev/sockets.md)

View File

@@ -1,7 +1,35 @@
# Basic usage and filling sheets
Mostly all the interactions are done with drag-n-drop.
Most interactions are done via drag and drop. You will need to activate the appropriate `Techniques` to allow you to place them in the sheet slots.
## Creating a Character (PC)
Go in actor tab, and create a new `character`.
> TODO
In the `Actor` tab, you can create a new `Character` by clicking the add actor button and using the `Player Character` sheet format. Generally, the Game Master (GM) will have to complete this step for you and assign you ownership before you can modify the character sheet.
1. You can build the character manually following the game system 20 questions sheet *or* you can use the `20Q` link at the top of the sheet and configure it with the 20 question output. Most of the steps below should ben completed automatically if you used the `20Q` feature.
2. Fill in your `Honor`, `Glory` and `Status` stats. Increase your rings to the appropriate level for your character build. Your `Endurance`, `Composure`, `Focus` and `Vigilance` stats should all auto-calculate based on your ring bonus.
3. Add any additional skill points in each of the `Artisan`, `Martial`, `Scholar`, `Social` or `Trade` skill groups.
4. Select your allowed technique categories. You can select new techniques by dragging and dropping them from the L5R5e system compendiums under `L5R5e` > `Techniques` > selection of the appropriate technique category.
5. Apply your school ability from the `School Abilities` compendium and a `Signature Scroll`, if appropriate.
6. Ensure your `Ninjo` and `Giri` have been defined. Select `Distinctions`, `Passions` and `Bonds` from the `L5R5e` > `Character Related` section of the compendium.
7. Define the `Paramount` and `Less Significant` Bushido aspects of your clan and any additional notes or character description in the respective fields.
8. In the `Inventory` screen, you can drag elements from the `L5R5e` > `Objects related` section for `Items`, `Armors` and `Weapons` to add them to your character sheet.
> **Note**: Several of the default weapons and armors that are on your characters may not be available in the compendium. Simply drag the closest description item you can find and rename and change the stats appropriately once it's been placed in your character sheet.
9. Add `Item Patterns` from the `Item Patterns` compendium, if appropriate.
## Creating an NPC
Non-player Characters (NPCs) come in two flavors: minions and adversaries. While they differ in L5R in terms of power and influence on the narrative, they are basically built the same way in the Non-Player Character sheet.
1. Define the `Combat` and `Intrigue` difficulty, as appropriate, at the top of the sheet.
2. Similar to the PCs, you will define `Honor`, `Glory`, `Status`, and Ring values for each character. Unlike players, you will need to manually define `Endurance`, `Composure`, `Focus` and `Vigilance`.
3. Determine the demeanor for the character, and fill that in the `Demeanor` section. Modify the ring values based on the demeanor below the box. Acceptable values are an integer (i.e., 1, 2, 3, etc.) or an integer with a negative number (i.e., -1, -2, -3, etc.). Do not use `+` symbols in these fields.
4. Define the general skill values in the `Artisan`, `Martial`, `Scholar`, `Social`, and `Trade` boxes. Unlike player characters, the skills are generalized for NPCs.
5. The `Narrative` tab is filled out similarly to players. Note that most of the Distinctions and Passions of NPCs do not have a compendium equivalent. You can either build a custom compendium of these or manually define them by click the `+` button above each section to add and modify them.
6. The inventory tab is filled out in much the same way as players.
## Creating an Army
> Todo

View File

@@ -1,18 +1,20 @@
# Using CUB for Modifiers
> ⚠ ***Warning***: This module is outdated and the project has been abandoned. If you are using more current versions of Foundry (v11+), it is **not** recommended that you continue to use *Combat Utility Belt*.
# Using Combat Utility Belt (CUB) for Modifiers
> ⚠ The module [Combat Utility Belt](https://foundryvtt.com/packages/combat-utility-belt) is required.
## Attributes modifiers
Replace `<attribute>` with actual attribute (i.e. `endurance`, `vigilance`, `focus`, `composure`) and `<number>` with actual number to be added.
Replace `<attribute>` with the actual system attribute (i.e. `endurance`, `vigilance`, `focus`, `composure`) and `<number>` with actual number to be added.
When setup in CUB this would modify PC derived attributes to increase or reduce them by the number given.
Allows automating certain invocations and item effects (such as the cursed Kama from Sins of Regret supplement).
When setup in CUB this would modify PC-derived attributes to increase or reduce them by the number given.
This allows automating certain invocations and item effects (such as the cursed Kama from Sins of Regret supplement).
### For `character` type
Syntaxe:
Syntax:
> system.modifiers.character.`<attribute>` += `<number>`
Examples:
@@ -21,29 +23,29 @@ Examples:
### For `adversary` or `minion` types
Syntaxe:
Syntax:
> system.`<attribute>` += `<number>`
Exemples:
Examples:
> system.vigilance += 1 // add 1
> <br>system.composure += -2 // remove 2
## Rings/Skills modifiers
Both PCs and NPCs can have their skills and rings increased as well by conditions (should you wish to ignore some of the RAW).
Syntaxe:
Syntax:
> system.rings.`<ring>` += `<number>`
> <br>system.skills.`<skillGroup>`.`<skill>` += `<number>` // for PCs
> <br>system.skills.`<skillGroup>` += `<number>` // for NPCs
Exemples:
Examples:
> system.rings.earth += 1
> <br>system.skills.artisan.aesthetics += 1 // for PCs
> <br>system.skills.martial += -1 // for NPCs
The above need to be setup as conditions using CUB at the moment so that they can be added/removed as required.
The above has to be set up as conditions using CUB at the moment so that they can be added/removed as required.
Regarding skills and rings modifiers, I believe you would need to remove them temporarily for advancements as it might cause extra XP to be spent, but yet to test it fully.
Regarding skills and rings modifiers, you may need to remove them temporarily for advancements as it might cause extra XP to be spent. This has not been fully tested.

View File

@@ -1,12 +1,11 @@
# Compendiums
**Never directly edit the system compendiums**.
They will be erased anytime you update the system.
The best option to keep the links between items and properties for example, is to fill a custom compendium using Babele.
This way, the system compendiums will be overridden by this module.
**Never directly edit the system compendiums**. They will be erased anytime you update the system.
The best option to keep the links between items and properties, for example, is to fill out a custom compendium using Babele. This will prevent changes you make to system compendiums from being overridden by game system updates.
## Using the Custom Compendiums Maker (recommended)
Here is a quick guide to fill the compendiums with Custom Compendium Maker.
1. Go to the [Custom Compendiums Maker Website](https://vly.yn.lu/l5r5e-custom-compendium-maker/)
@@ -14,7 +13,7 @@ Here is a quick guide to fill the compendiums with Custom Compendium Maker.
![Download](img/ccm_usage_dl.png)
3. Open the template file with any software who can open and write an Excel sheet (.xlsx).
3. Open the template file with any software that can modify an Excel sheet (.xlsx).
4. Check instruction on `Infos` sheet.
5. Go into the `Configuration` sheet, and changes the values in the `Values` column.<br>If your language is `English` you'll probably only need to change the `Author` value.
@@ -24,8 +23,8 @@ Here is a quick guide to fill the compendiums with Custom Compendium Maker.
![Template Techniques](img/ccm_excel_tech.png)
7. Regularly save the file !
8. When it's done, visit the website again and follow the instructions.
7. Make sure you save the file often!
8. When it's done, visit the website again and follow the instructions:
![Options](img/ccm_usage_options.png)
@@ -39,21 +38,21 @@ Here is a quick guide to fill the compendiums with Custom Compendium Maker.
![FVTT CCM](img/ccm_archive_extracted.png)
11. Open FoundryVTT and load an L5R5e World.
12. Make sure to have all these modules enabled :
12. Make sure to have all these modules enabled:
- Babele
- L5R5e Custom Compendiums
- LibWrapper
![FVTT Loaded](img/ccm_foundry_module_manager.png)
13. Open an item you know you had added a description to see the result :
13. Open an item you know you had added a description to see the result:
![FVTT Tech](img/ccm_foundry_tech_filled.png)
14. Done, have a good time playing L5R !
14. Done, have a good time playing L5R!
## Using the Custom Compendiums Module
You will need to manually download the following module, and edit json files.
You will need to manually download the following module and edit json files.
Please follow the instructions on :
> https://gitlab.com/teaml5r/l5r5e-custom-compendiums

View File

@@ -1,49 +1,60 @@
# Installation
## System Installation
### With Search (recommended)
### Installation directly on Foundry with search (Recommended)
1. Open FoundryVTT.
2. In the `Game Systems` tab, clic `Install system`.
3. Search `L5R`, on the line `Legend of the Five Rings (5th Edition)`, clic `Install`.
2. In the `Game Systems` tab, click `Install system`.
3. Search for `L5R`, on the line `Legend of the Five Rings (5th Edition)`, click `Install`.
### Installation on Forge
1. Navigate to the `Systems` section in the Bazaar.
2. Search for `L5R` on the filter line. **Note**: Install `Legend of the Five Rings (5th Edition)` **not** `Legend of the Five Rings (5E)` due to it being deprecated
3. Once installed, you can now start a Forge instance with it installed.
### With the manifest
1. Open FoundryVTT.
2. In the `Game Systems` tab, clic `Install system`.
3. Copy this link and use it in the `Manifest URL`, then clic `Install`.
> https://gitlab.com/teaml5r/l5r5e/-/raw/master/system/system.json
1. Open FoundryVTT.
2. In the `Game Systems` tab, click `Install system`.
3. Copy this link and use it in the `Manifest URL`, then click `Install`: [https://gitlab.com/teaml5r/l5r5e/-/raw/master/system/system.json](https://gitlab.com/teaml5r/l5r5e/-/raw/master/system/system.json)
## Modules
L5R do not required a lot of module, i highly encourage you to start with a small number of it.
Some modules require others library/module, you need to install them to allow the primary module work.
Nothing fancy, just accept when FoundryVTT prompt you to download or activate the dependencies.
L5R does not require a lot of modules and it is highly encourage you to start with a small number of them.
Some modules require others libraries/modules and you need to install the dependency modules for them to work. Nothing fancy, just accept when FoundryVTT prompts you to download or activate the dependencies.
### Some recommended modules
| Module name | Notes |
|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Babele](https://foundryvtt.com/packages/babele) | Required for non english compendium translation |
| [Ownership Viewer](https://foundryvtt.com/packages/permission_viewer) | Lets you see instantly who has permissions to see what item |
| [Dice So Nice!](https://foundryvtt.com/packages/dice-so-nice) | Add 3D dices that bounce on the screen when you roll dice |
| [Small Legend of the 5 Rings Tools](https://foundryvtt.com/packages/l5r-dragruler) | Series of tools for L5R |
| [Search Anywhere](https://foundryvtt.com/packages/searchanywhere) | Don't spent too much time searching the right technique |
| [FXMaster](https://foundryvtt.com/packages/fxmaster) | More effects |
| [Scene Clicker](https://foundryvtt.com/packages/scene-clicker) | Clicking on a Scene or a Scene Link will now "view" the Scene instead of rendering the Scene Config Sheet |
| [Universal Battlemap Importer](https://foundryvtt.com/packages/dd-import) | Allows Importing [DungeonDraft](https://dungeondraft.net/), [DungeonFog](https://www.dungeonfog.com/) or [Arkenforge](https://arkenforge.com/) export files into FoundryVTT |
| [Compendium Folders](https://foundryvtt.com/packages/compendium-folders) | Add folders to compendiums |
| [Chat Images](https://foundryvtt.com/packages/chat-images) | Lets you drag images into the chat, one of the quicker ways to do 'he looks like this' |
| [Combat Utility Belt](https://foundryvtt.com/packages/combat-utility-belt) | A totally over-engineered but helpful app that will, among other things, let you set up custom statuses |
| [Timer](https://foundryvtt.com/packages/timer) | A simple timer, useful to stress a little your players |
The following is a list of recommended modules. Note that a module that is outdated isn't *necessarily* unusable; however, you may find integration/interaction errors with the more current versions of Foundry and generally Forge will not allow installations of modules that aren't verified for the installed version of Foundry if **Game Management** is enabled.
### Recommended Modules
| Module name | Notes | Module Status |
| :------------ | :------ | :-------------- |
| [Babele](https://foundryvtt.com/packages/babele) | Required for non-English compendium translations | Verified for v13+ |
| [Ownership Viewer](https://foundryvtt.com/packages/permission_viewer) | Lets you see instantly who has permissions to see what item | Verified for v13+ |
| [Dice So Nice!](https://foundryvtt.com/packages/dice-so-nice) | Add 3D dices that bounce on the screen when you roll | Verified for v13+ |
| [Small Legend of the 5 Rings Tools](https://foundryvtt.com/packages/l5r-dragruler) | Series of tools for L5R | This module is no longer available |
| [Search Anywhere](https://foundryvtt.com/packages/searchanywhere) | Don't spent too much time searching the right technique | This module is outdated (Verified v9). Alternative: [Spotlight Omnisearch](https://foundryvtt.com/packages/spotlight-omnisearch) |
| [FXMaster](https://foundryvtt.com/packages/fxmaster) | More effects | Verified for v13+ |
| [Scene Clicker](https://foundryvtt.com/packages/scene-clicker) | Clicking on a Scene or a Scene Link will now "view" the Scene instead of rendering the Scene Config Sheet | This module is outdated (verified v9). Alternative: [Monk's Scene Navigation](https://foundryvtt.com/packages/monks-scene-navigation) |
| [Universal Battlemap Importer](https://foundryvtt.com/packages/dd-import) | Allows Importing [DungeonDraft](https://dungeondraft.net/), [DungeonFog](https://www.dungeonfog.com/) or [Arkenforge](https://arkenforge.com/) export files into FoundryVTT | Verified for v13+ |
| [Compendium Folders](https://foundryvtt.com/packages/compendium-folders) | Add folders to compendiums | This module is outdated (Verified v11). Generally not needed since folder support is now enabled.
| [Chat Images](https://foundryvtt.com/packages/chat-images) | Lets you drag images into the chat, one of the quicker ways to do 'he looks like this' | Verified for v13+ |
| [Combat Utility Belt](https://foundryvtt.com/packages/combat-utility-belt) | A totally over-engineered but helpful app that will, among other things, let you set up custom statuses | This project is abandoned and has multiple integration errors with v13. Use at your own risk. |
| [Timer](https://foundryvtt.com/packages/timer) | A simple timer, useful to stress your players a bit. | Verified for v13+ |
### Map Module
The official 5e Rokugan map is publish under the module section in FoundryVTT. It is also available for download on Forge.
### Map module
The official 5e Rokugan map is publish under the module section in FoundryVTT.
- [L5R5e - Rokugan map for Legend of the Five Rings (5th edition)](https://foundryvtt.com/packages/l5r5e-map)
## Worlds
We have published the official free content in form of worlds ready to play :
- [L5R5E - Cresting Waves](https://foundryvtt.com/packages/l5r5e-world-waves)
- [L5R5E - In the Palace of the Emerald Champion](https://foundryvtt.com/packages/l5r5e-world-palace)
- [L5R5E - The Highwayman](https://foundryvtt.com/packages/l5r5e-world-highwayman)

View File

@@ -1,6 +1,8 @@
# Symbols replacement list
In sheets or journals, you can use these tags to use symbols :
```
In sheets or journals, you can use these tags to embed a symbol in the text:
```md
Dice symbols : (op) (su) (ex) (st) (skill) (ring)
Rings : (earth) (water) (fire) (air) (void)
Tech: (kiho) (maho) (ninjutsu) (ritual) (shuji) (invocation) (kata) (prereq) (inversion) (mantra)
@@ -10,4 +12,4 @@ Others : (courtier) (bushi) (shugenja)
Result :
![](img/symbols.png)
![Inline Dice](img/symbols.png)

View File

@@ -1,10 +1,13 @@
# Techniques skill and difficulty syntaxe
# Techniques skill and difficulty syntax
On the Technique sheets, you will find two fields `Difficulty` and `Skill`.
These fields have special constraints, you will find theirs rules below.
These fields have special constraints, with the following rules listed below:
## Difficulty
Can be :
Valid values for this field are:
- A integer number : `1` to `9`.
- Or specific syntax "@`S`:`prop1`" or "@`T`:`prop1`|`max`" or "@`T`:`prop1`|`max`(`prop2`)" :
- `@` fixed, trigger the parser
@@ -18,9 +21,10 @@ Can be :
- `@T:vigilance|min` : Difficulty will be the `vigilance` from the target with the minimum vigilance (implicit) value. it's the same to wrote `@T:vigilance|min(vigilance)`.
- `@T:vigilance|max(statusRank)` : Difficulty will be the `vigilance` from the target with the maximum `statusRank` value.
## Skill
Can be :
Valid values for this field are:
- Any `Skill` id : `melee`, `fitness`...
- Any `SkillCategory` id : `scholar`, `martial`...
- Or both in list, coma separated.

View File

@@ -1,4 +1,10 @@
# Updating - Bests practices
- Anytime you update to a major version make a backup of foundry's data directory (default : `%localappdata%/FoundryVTT/data/`).
- Take time to upgrading to a major version (ex FoundryVTT v9->v10).<br>A lot of bugs can be on firsts patchs, and a lots of systems/modules won't upgrade fast and will be incompatible or not tested (a lot of us do it only on our free time).<br>If you need some timing windows: let at least 2 weeks to 1 month.
- Anytime you update to a major version:
- **Foundry**: make a backup of foundry's data directory (default : `%localappdata%/FoundryVTT/data/`).
- **Forge**: you will be prompted on Foundry upgrades (both major and minor) to download a local copy of the world for backup. It is recommended you complete this step to avoid data loss.
- It is recommended that you wait for some time before a major upgrade (ex FoundryVTT v9 -> v10) when a new version is released. This are a number of reasons to avoid immediate upgrades:
- Several modules your world uses will have a lot of bugs introduced that aren't fully corrected in the first few patches.
- Several systems/modules won't update quickly, will be incompatible with the current Foundry version, or left untested (the developers for a many of modules and systems only make updates in their free time).
- A solid recommendation for update delay should be somewhere in the range of 2 weeks to 1 month, if not longer. Generally, this is less of a concern with minor upgrades which don't change core systems in Foundry.
- Make sure you check the compatibility of your world's modules with the new versions and potentially disable certain modules if there is little chance of a near-term update. A good tool to use for managing modules profiles is [Module Profiles](https://foundryvtt.com/packages/module-profiles) to ensure that game-breaking modules can be deactivated by having a master profile.