-
Notifications
You must be signed in to change notification settings - Fork 2
Settings Documentation
These are the settings available through the Synthesis GUI or the JSON file located at:
<Synthesis Installation Directory>/Data/Another-Archery-Patcher/settings.json
If you don't know how JSON files work, or are confused about variable types, see the Variable Type Reference at the bottom of this page.
Major Record: PROJ
Type: array
of type: object
This is a list of stat groups that are applied to similarly-named projectiles, as determined by the MatchList.
Each element of this array represents one projectile category, with their own separate values.
-
Type: string
A name that identifies this category to the user.
This is not used by the patcher, but is included in logs for debugging purposes.
You can use this to figure out which category's values were applied to a given record. -
Type: integer
The priority level for this category.
When processing a projectile record, the patcher will:- Create a list of all of the categories that apply to that record (if any).
If this list of categories is empty (at any point in this list), the patcher will skip that record and it won't appear in the final patch. - Search for the category with the largest priority level value and apply the values from that category to the record.
If multiple categories have the same priority number, the category that appears the latest in the list wins.
- Create a list of all of the categories that apply to that record (if any).
-
Type: float
Subrecord:DATA\Speed
This controls the speed of all projectiles in the section.
-
Type: float
Subrecord:DATA\Gravity
This controls the gravity of all projectiles in the section.
-
Type: float
Subrecord:DATA\Impact Force
This controls the impact force of projectiles in this section.
Impact Force is the amount of force imparted into whatever objects or actors the arrow collides with. -
Type: enum
Subrecord:VNAM - Sound Level
This controls the amount of detectable noise that all projectiles in this section produce while in-flight, which determines whether an NPC will notice a projectile fly past them.
Does not modify the noise created by impacts, or the noise of firing loud weapons such as crossbows.
This is most noticeable with mods that make stealth more difficult by increasing the noise detection threshold.
Possible values for SoundLevel are:- Silent
- Normal
- Loud
- VeryLoud
-
Type: array
of type: object
Subrecord:DATA\Flags
This is the exact same type as the Global Flag Tweaks list, but flags specified here always take priority.
-
Type: enum
This is the projectile flag to add/remove from records in this section.
Possible values for Flag are:- Hitscan
- Explosion
- AltTrigger
- MuzzleFlash
- CanBeDisabled
- CanBePickedUp
- Supersonic
- PinsLimbs
- PassThroughSmallTransparent
- DisableCombatAimCorrection
- Rotation
-
Type: enum
This determines whether the flag should be added or removed from records in this section.
Possible values for State are:- Add
- Remove
-
Type: enum
-
MatchList
Type: array
of type: stringAlso known as common names, this is a list of words that appear in the Editor ID of projectile records.
As long as at least one word in this list appears in a projectiles editor ID, this category is considered applicable,
with one exception; Leaving this empty will make this category applicable to ALL records.The vanilla game generally uses this naming scheme:
[Quest/DLC]<Type><Material>Projectile
, ex.ArrowIronProjectile
,MQ101ArrowSteelProjectile
However, there are outliers to this format, and any projectiles added by mods may or may not follow this naming scheme.
Type: array
of type: object
List of
PROJ
data flags to add or remove from all processed records.
To remove a flag entry in the settings menu, click the background of an entry to select it, then click thex
icon at the top.
Type: object
These are settings that modify archery-related game settings.
-
Type: boolean
Record(s):fAutoAimMaxDegrees
,fAutoAimMaxDistance
,fAutoAimScreenPercentage
,fAutoAimMaxDegrees3rdPerson
When checked / true, sets all auto-aim-related Game Settings to 0.
-
Type: boolean
Record(s):fCombatDodgeChanceMax
When checked / true, sets the fCombatDodgeChance for NPCs to 0.
-
Type: integer
Record(s):iMaxAttachedArrows
This changes the maximum number of arrows/bolts that can be shot into the same actor before the previous projectiles start disappearing.
Does not impact performance unless you're trying to make pin cushions.
Vanilla defaults to 3, the patcher defaults to 8. -
Type: float
Record(s):fArrowSpeedMult
Speed multiplier applied to arrows shot from a fully drawn bow.
Default is1.0
-
Type: integer
Record(s):iArrowInventoryChance
The percentage chance that an arrow/bolt will appear in an actors inventory after shooting them.
Default is33
-
Type: float
Record(s):fVisibleNavmeshMoveDist
The maximum distance from the player before the game engine stops calculating collision for (in-flight) projectiles.
Type: array
of type: FormLink
Allows blacklisting certain projectiles that the patcher should not modify.
These can be added interactively through the GUI by searching for the Editor ID of a projectile.
In thesettings.json
file, entries must follow this format: "Form ID
:Plugin Name
", ex."105EE6:Skyrim.esm"
Note that synthesis does not include the mod index of Form IDs; The first 2 digits that correspond to load order.
This is a list of the JSON variable types present in the
settings.json
file in layman's terms, and is intended for people with no programming experience.
When editingsettings.json
directly, ensure that you include commas where required!
-
integer
A positive or negative number that cannot contain decimal values.
Ex:-2
,-1
,0
,1
,2
-
float
A positive or negative number that can contain decimal values.
Note that floating-point numbers are stored as an approximation of a number, not the number itself; for this reason they sometimes experience rounding errors that cause the number to be slightly different than expected.
Ex:-2.0
,-0.5
,0.0
,0.5
,2.0
-
boolean
A variable that can be one of two values: TRUE or FALSE.
Mutagen will use checkboxes in the generated settings menu to represent boolean values.
Ex:true
,false
-
string
A sequential list of characters internally stored in an array, also known as string of characters, or words.
Strings must be enclosed by quotation marks.
Can contain any valid unicode character.
Ex:"Hello World!"
Note: Due to enums and strings appearing very similar, check the settings reference before changing these values. -
enum
An enum, or enumerator, can only have a pre-defined set of possible values, each represented by a word.
You can think of it like a drop-down menu with preset options. Enum values are case-sensitive and must be surrounded by quotes in the JSON file.
Mutagen will use dropdowns in the generated settings menu to represent enum values.
Ex:"Silent"
,"Normal"
,"Loud"
,"VeryLoud"
Note: Due to enums and strings appearing very similar, check the settings reference before changing these values. -
object
A container for other variables that stores a KEY and VALUE for each entry, which appear in the file like this:{ "KEY": VALUE }
Objects must contain all variables in a section, even if those variables are empty.
Most of the arrays used in the settings file contain objects; to identify an object, look for the curly brackets{
}
surrounding it.
Ex:{}
-
array
An array is a list of values of arbitrary length. An array can only hold one variable type.
In the autogenerated settings menu, you can remove items from an array first by clicking it so it is selected, then clicking theX
icon near the top of the pane.
In the JSON file, you can identify an array by looking for the square brackets[
]
surrounding it.
Ex:[]