Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.0.0 The Syllabore Update #36

Merged
merged 23 commits into from
Nov 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2ad47ce
add Syllabore Package
EzioTheDeadPoet Apr 6, 2024
9eeab37
dependency update
EzioTheDeadPoet Oct 11, 2024
efe4048
settings refactor
EzioTheDeadPoet Oct 11, 2024
7746dd4
initial drafts for syllabore features
EzioTheDeadPoet Oct 11, 2024
d0960f6
refactoring
EzioTheDeadPoet Oct 12, 2024
86a4f3c
naming settings test
EzioTheDeadPoet Oct 12, 2024
9151066
refactor Setting name.
EzioTheDeadPoet Oct 12, 2024
e873ec7
Update .NET SDK and dependencies
EzioTheDeadPoet Oct 12, 2024
71cd1f4
more changes to the settings block for name generation
EzioTheDeadPoet Oct 12, 2024
d934ad9
add ConfiguredNameGenerator class
EzioTheDeadPoet Oct 13, 2024
6186287
finish the Name Generator
EzioTheDeadPoet Oct 13, 2024
0f09ac0
Added NameGenerator to the Armor and Weapon Analyzers
EzioTheDeadPoet Oct 13, 2024
c2bf994
rename project to SynthesisRPGLoot
EzioTheDeadPoet Oct 13, 2024
3df841e
adjust naming scheme enum
EzioTheDeadPoet Oct 13, 2024
02441c9
deleted unused enum
EzioTheDeadPoet Oct 13, 2024
2e04170
Add NameGeneration To the ItemGeneration
EzioTheDeadPoet Oct 13, 2024
dd2df73
fix missing space in the name.
EzioTheDeadPoet Oct 13, 2024
1a52834
Merge remote-tracking branch 'origin/master' into 4.0.0_Syllabore_Dev
EzioTheDeadPoet Nov 23, 2024
93adeee
update dependencies
EzioTheDeadPoet Nov 23, 2024
52dc0d6
Add Settings documentation to README.md
EzioTheDeadPoet Nov 23, 2024
9c80beb
update ESP name
EzioTheDeadPoet Nov 23, 2024
8e9db11
update CHANGELOG.md
EzioTheDeadPoet Nov 23, 2024
92bfd9c
cleaned logging and added setting to log even less
EzioTheDeadPoet Nov 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
# Changelog

## Version 4.0.0 - 23.11.2024
* Added [Syllabore](https://github.com/kesac/Syllabore) support for Name Generation
* Made the Names more variable and not fully stuck to what their EditorID would be.
* Renamed more parts of the Patcher to Synthesis RPG Loot from Halgaris RPG Loot.
* Reduced the amount of logging and added a toggle to disable logging for individual items for better performance.
* Using the default settings and all the Anniversary Edition DLC Content Installed (On an AMD Ryzen 5 7600X CPU)
* Runtime with logging for individual items disabled 1.8 min.
* Runtime with logging for individual items enabled 2 min.

## Version 3.2.0 - 06.04.2024
* Fixed unplayable armor and weapon records being used in the patcher

## Version 3.1.1 - 04.04.2024
* Updated Synthesis dependency

## Version 3.1.0 - 03.04.2024
* Removed only process constructable items cause it isn't creating the limit that's intended for.
* Removed only process constructable items because it isn't creating the limit that it is intended for.
* Fixes for SkyrimVR and the Plugin Header Version 1.71

## Version 3.0.0 - 01.04.2024
Expand Down
8 changes: 0 additions & 8 deletions HalgarisRPGLoot/DataModels/GenerationMode.cs

This file was deleted.

179 changes: 0 additions & 179 deletions HalgarisRPGLoot/Settings.cs

This file was deleted.

75 changes: 56 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,10 @@ Any mention of weight is equivalent to the `count` property of leveled lists.
### Settings:

- **General Settings:**
- **Enchantment Separator:**
- **Default:** `, `
- Separator used for listing all enchantments on labels
- **Last Enchantment Separator:**
- **Default:** ` and `
- Separator used for the last two enchantments listed on labels
- **RandomSeed:**
- **Default:** `42`
- Basically a Key to make the randomness repeatable, as long as your leveled lists,
enchantments and weapons in the list don't change.
- **LeveledList Flags List:**
- Information about those flags can be found on [en.uesp.net](https://en.uesp.net/wiki/Skyrim:Leveled_Lists)
(they are named slightly different) and [ck.uesp.net](https://ck.uesp.net/wiki/LeveledItem)
Expand All @@ -42,7 +40,7 @@ Any mention of weight is equivalent to the `count` property of leveled lists.
- Default because it is present in Vanilla enchanted Leveled Lists
- `SpecialLoot`
- **Default:** `Off`
- Effects are unknown but I wanted to give people the option to try it.
- Effects are unknown, but I wanted to give people the option to try it.
- **Untouchable Equipment Keywords:**
- Keywords that are on unique and/or incompatible items
- Defaults:
Expand All @@ -66,6 +64,7 @@ Any mention of weight is equivalent to the `count` property of leveled lists.
- `Skyrim.ObjectEffect.BoundBattleaxeEnchantment`
- `Skyrim.ObjectEffect.BoundBowEnchantment`
- `Skyrim.ObjectEffect.BoundSwordEnchantment`
- `Dragonborn.ObjectEffect.BoundDaggerEnchantment`
- The defaults here filter the visual effect enchantments as they have no gameplay impact.
- **Plugin List Mode:**
- Decides if the following list gets used as a blacklist or whitelist
Expand All @@ -75,11 +74,8 @@ Any mention of weight is equivalent to the `count` property of leveled lists.
- **Plugin List:**
- **Default:** `Empty` Because you Ideally manage to get universal filters done in the Keyword
and Enchantment List Settings.
- This list only impacts enchantments and not weapons or armor.
- **Rarity And Variation Distribution Settings:**
- **RandomSeed:**
- **Default:** `42`
- Basically a Key to make the randomness repeatable, as long as your leveled lists,
enchantments and weapons in the list don't change.
- **Leveled List Base**
- Changes where the RPGLoot leveled lists are inserted.
- `AllValidEnchantedItem` The chance of encountering enchanted gear is similar to vanilla,
Expand Down Expand Up @@ -112,23 +108,64 @@ Any mention of weight is equivalent to the `count` property of leveled lists.
- When using `AllValidUnenchantedItems` it will be the unenchanted base item.
- **Rarities:**
- Label: Added prefix to each generated item's name.
- Generate Name Scheme:
- The way generated names are used for the item.
- Options:
- `DontUse`
- `AsPrefixedPreviousOwnerName`
- `AsPrefixedPreviousOwnerNameReplacingEnchantments`
- `AsAppendedPreviousOwnerName`
- `AsAppendedPreviousOwnerNameReplacingEnchantments`
- `AsItemName`
- `AsItemNameReplacingEnchantments`
- Hide Rarity Label in Name: Hide the label in-game.
- Num Enchantments: The number of enchantments used to define the rarity.
- RarityWeight: Amount of times the rarity is put into leveled lists.
- AllowDisenchanting: If not enabled new Items get the Keyword: `Skyrim.Keyword.MagicDisallowEnchanting`
- **Default Rarities:**
*The Base Item Rarity is included for visualizing the percentages.*

| Rarity Label | Number of Enchantments | Rarity Weight | Allow Disenchanting | *Percentage* |
|--------------|-----------------------------------|---------------|---------------------|--------------|
| *Base* | *`AllValidUnenchantedItems` => 0* | 20 | *Item Default* | ~40,8% |
| - | 1 | 17 | true | ~34,7% |
| Rare | 2 | 8 | false | ~16,3% |
| Epic | 3 | 3 | false | ~6,1% |
| Legendary | 4 | 1 | false | ~2,1% |
| Rarity Label | Generated Name Scheme | Hide Rarity Label in Name | Number of Enchantments | Rarity Weight | Allow Disenchanting | *Percentage* |
|--------------|----------------------------------------------------|---------------------------|-----------------------------------|---------------|---------------------|--------------|
| *Base* | --- | --- | *`AllValidUnenchantedItems` => 0* | 20 | *Item Default* | ~40,8% |
| Basic | `DontUse` | `ON` | 1 | 17 | true | ~34,7% |
| Rare | `DontUse` | `OFF` | 2 | 8 | false | ~16,3% |
| Epic | `DontUse` | `OFF` | 3 | 3 | false | ~6,1% |
| Legendary | `AsPrefixedPreviousOwnerNameReplacingEnchantments` | `OFF` | 4 | 1 | false | ~2,1% |

- The formula for translating this into percentages is:
`Weight_of_Rarity/Sum_of_Base_And_Rarity_Weights` (The base item weight is considered a rarity in this context)
- *Disclaimer: The percentages won't be 100% reflected like this in gameplay since they only account for the
chances introduced by this patcher and need to be considered on top of the vanilla/base chances of your setup
to get either normal or enchanted gear depending on the `Leveled List Base` that was chosen in the previous
settings. Additionally the various filters for what are valid items will effect those percentages as well.*
settings. However, the various filters for what are valid items will affect those percentages as well.*
- **Name Generator Settings**
- **Enchantment Separator:**
- **Default:** `, `
- Separator used for listing all enchantments on labels
- **Last Enchantment Separator:**
- **Default:** ` and `
- Separator used for the last two enchantments listed on labels
- **Random Name Generator (powered by [Syllabore](https://github.com/kesac/Syllabore)) Settings:**
- Syllable Character Settings:
- Configurations for the types of characters that should be used for generating the syllables that will be used to form names.
- Probabilities:
- Percentage chances for how the characters get used with `1` being 100% and `0` being 0%. (so `0.95` = 95%)
- Filters:
- Rules used to filter unwanted character combinations.
- **If a filter is created that filters too broadly or maybe every possible name the generator can make with the previous settings then you can end up in an endless loop of the patcher being stuck trying to generate a new name that passes the filters!**
- **Do Not Allow:**
- List of rules that aren't allowed to be part of an outputted name.
- Can be normal text but is best used for RegEx rules of patterns that are unwanted in your names.
- **Do Not Allow Start:**
- List of character combinations that aren't allowed to be at the start of an outputted name.
- Can only be text.
- **Do Not Allow Substring:**
- List of character combinations that aren't allowed to be in an outputted name.
- Can only be text.
- **Do Not Allow End:**
- List of character combinations that aren't allowed to at the end of an outputted name.
- Can only be text.

If you want to get a more technical understanding of how those settings work please use the documentation for [Syllabore](https://github.com/kesac/Syllabore).
I tried my best to keep the setting names as close as possible to what Syllabore uses internally so they should still make sense even if you don't understand the code examples fully.
2 changes: 1 addition & 1 deletion HalgarisRPGLoot.sln → SynthesisRPGLoot.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HalgarisRPGLoot", "HalgarisRPGLoot\HalgarisRPGLoot.csproj", "{E3C85A2B-4E6D-4B5D-9E8D-810116F644AB}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SynthesisRPGLoot", "SynthesisRPGLoot\SynthesisRPGLoot.csproj", "{E3C85A2B-4E6D-4B5D-9E8D-810116F644AB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
Loading