Real-time Form Patcher(RTFP) allows modifying game forms(NPC,Leveled lists, Form lists, Projectiles,Ammo, etc..) without of .esm or .esp files.
Features:
-Easy, very user-friendly syntax.
-Supports your .esp\.esm added by Plugins.txt Enabler (sTestFile method probably works as well).
-Specify form either by it’s formID or EditorID(not available for all forms, po3 tweaks fixes that – Please refer to FAQ section below).
-Specify mathematical operations on values if required(Add,Subtract,Divide,Multiply).
-Custom filters which can be easily built and used in your config file.
-Supports modifying GameSettings without disabling achievements for the end user! You can also use mathematical operations on them.
-Very fast file processing using modern C++ features.
For users:
Mod does nothing on it’s own – it’s a framework.
You should put a config file to “Data\SFSE\Plugins\RealTimeFormPatcher” folder (but mod authors usually package it for you so you don’t have to do anything).
For modders:
RTFP allows you to modify either:
-Particular form(Specified by form ID or Editor ID);
-Multiple forms;
-All forms of particular type with optional filters;
-Game Settings
Example 1:
[Global]
SocialSkill_Duration|val(40)
This line will set value of global variable named SocialSkill_Duration to 40.
Example2:
[Projectile]
*|speed(*1.2)
This line will set speed of all projectiles to their values multiplied by 1.2.
This line will set gravity to 1000 to projectiles in Ammo45Caliber and Ammo50Caliber in Starfield.esm and Ammunition in MyPlugin.esp with formID of “801”
Example 4:
[GameSettings]
fFaceFXMouthAdjust,fFaceFXSpeechBlendInTime|3.5
sCannotUseQuantumEssenceWhilePilotingShip|”Test”
sAutoLockPickNoPicks|”No digapicks in your inventory.”
This line will set FaceFXMouthAdjust and fFaceFXSpeechBlendInTime GameSettings to value of 3.5 and sCannotUseQuantumEssenceWhilePilotingShip to “Test”. Also it will replace “No digipicks.” text with “No digapicks in your inventory.”
NOTE:Modifying Game settings does NOT use console commands therefore it will NOT disable achievements.
Extra tutorials:
GameSettings
While not technically a form, you can set GameSetting values using this category.
Example:
[GameSettings]
fFaceFXMouthAdjust,fFaceFXSpeechBlendInTime|*3.5
sCannotUseQuantumEssenceWhilePilotingShip|”Test”
sAutoLockPickNoPicks|”No digapicks in your inventory.”
Keywords
This is not a separate category but you could add\remove\replace keywords for the forms that support them.
Use:
kwd_add – To add keyword
kwd_rmv – To remove keyword
kwd_rpl – To replace keyword; kwd_rpl(x,y), where x is the form that needs to be replaced and y is the form you replace it with.
kwd_clr – To clear keyword array of the form.
AVMData
Values:
type – will set the type of AVMData. 0 for None, 1 for Simple Group, 2 for Complex Group, 3 for Modulation.
add_entr -adds entry to the list.
rmv_entr -removes an entry from the list
rpl_entr – replaces one entry from the list with another.
clr_entr – clears entry list. WARNING – if after all the changes entry list will remain empty, changes to it will not be applied.
Type of the entry must correspond with AVMData type, otherwise entries won’t be added.
Format for the entries:
SimpleGroup AND ComplexGroup – type:Name:TextValue
Modulation – type:Name:RED:GREEN:BLUE:ALPHA
Will add a new entry of “Simple Group” type to SimpleGroup_EyeColor with name “TestEyes” and value “textures/actors/human/faces/chargen/postblenddetails/tattootint/test_tattoo_makeup_dagger_mask.dds”.
When replacing, plugin will compare your entry with existing ones by comparing all the values depending on the type. If this is a Simple or Complex group – just name a value will be compared. If modular – name and color values.
NPC
Non-Player-Character(Actor)
Filters:
-keyword filters(see the tutorial)
Values:
death_item – Death item(Leveled Item)
legn_chance – Legendary Chance(Global)
xp_val_offs – XP value offset
lvl – level
calc_min_lvl – Calc Min Level
calc_max_lvl – Calc Max Level
disp_base – Disposition Base
def_outfit – Default outfit
slp_outfit – Sleep outfit
crm_fact – Crime Faction
add_hdpt – Adds headpart to NPC.
rmv_hdpt – Removed headpart from NPC.
rpl_hdpt – Replaced headpart to another.
clr_hdpt – Clears headpart array
Add\Remove\Replace keywords or clear keywords array.
add_perk – Add perk to NPC – add_perk(Starfield.esm~000612F5:3), where 3 is the perk rank separated by “:”.
rmv_perk – Remove perk from NPC
rpl_perk – Replace one perk with another perk – takes perk rank into account — rpl_perk(Starfield.esm~21B8E4:3,Starfield.esm~383A7:2)
clr_perk – Clears perk array of NPC.
set_flag_ab – will set flag for Actor Base value flags(ACBS)(see below)
uns_flag_ab – will set flag for ACBS flags (see below)
add_effect – Add effect MGEF entry to the list.
rmv_effect – Remove MGEF entry from the list
rpl_effect – Replace MGEF entry in the list
clr_effect – Clear MGEF entries.
You should specify effect in following format:
MGEFFormID:Magnitute:Area:Duration:MagGlobal:AreaGlobal:DurationGlobal
Currently comparison when removing and replacing is only done by MGEF formID. In the future I will add an option to specify which effect entry you want to remove in case you have 2 with the same MGEF. Backwards compatibility will be retained so in old config files effects will be replaced\removed by only MGEF. When all effect entry values will be decoded I will make plugin read them, retaining backwards compatibility.
Armors
Filters:
-keyword filters(see the tutorial)
Values:
val – armor’s value
weight – armor’s weight
Add\Remove\Replace keywords or clear keywords array.
Add\Remove\Replace\Clear Attach parent slots with keywords:
add_APPR – adds a keyword from APPR.
rmv_APPR – removes keyword
rpl_APPR – replaced keyword with another(split by “,”)
clr_APPR – clears keyword APPR array.
Ammo
Filters:
-ammo_in_weap – filter by weapons
-keyword filters(see the tutorial)
Values:
model – sets model path – model(SetDressing\Signage\ExitSign04_C.nif)
proj – ammo’s projectile
Add\Remove\Replace keywords or clear keywords array.
Example:
This will clear filter and add specified form to it.
Please be aware that Modifiers are processed in their order. So first, Form list will be cleared, then a new item will be added.
Projectile
Filters:[/color]
-proj_in_ammo – filter by ammo (Will leave only those projectiles which are in specified Ammo(s) )
-proj_not_in_ammo – filter by ammo (Will leave only those projectiles which are NOT in specified Ammo(s) )
Values:[/color]
model – sets model path – model(SetDressing\Signage\ExitSign04_C.nif)
grav – Gravity
speed – Speed
range – Range
expl_prox – Explosion – Alt. Trigger – Proximity
expl_timer – Explosion – Alt. Trigger -Timer
muzz_fldur – Muzzle Flash – duration
fdout_dur – Fade Duration
imp_force – Impact forde
cone_spr – Cone Spread
coll_rad – Collision Radius
lifetime – Lifetime
rel_int – Relaunch Interval
Misc
Filters:
-keyword filters(see the tutorial)
Values:
model – sets model path – model(SetDressing\Signage\ExitSign04_C.nif)
val – item’s value
weight – item’s weight
Add\Remove\Replace keywords or clear keywords array.
[size=4]Perk
Values:
train_perk – UNAM – training.
icon – Perk icon
restriction – restriction (keyword).
Example
[Perk]
Starfield.esm~28B851|train_perk(~)
LVLLBaseForm(Leveled Base Forms)
LVLLNPC(Leveled NPCs)
LVLLItem(Leveled Base item)
LVLLPackIn(Leveled Pack In)
Values:
add – will add LVL list entry to the end of the leveled lists entries.
rmv – will removed LVL list entry from the LVL list.
ins- will insert LVL list entry to LVL list to the specified position.
rpl_nth – will replace LVL list entry in the LVL list.
sort – will sort LVL list entry by Levels
global – will set global in “LVLG – Use Global” field (Can be an empty value)
set_flag – will set flag for the LVL list(see below)
uns_flag – will unset flag for the LVL list(see below)
Flags are:
calc_from_all_levels – Calculate from all levels <= player's level
calc_for_each_item - Calculate for each item in count
calc_all - Calculate All
Example:
[LVLLBaseForm]
Starfield.esm~7317|add(Starfield.esm~1EA1:40:1:0)|ins(Starfield.esm~1EA6:60:2:0_4)|set_flag(calc_all)|uns_flag(calc_from_all_levels,calc_for_each_item)
Leveled Base entry is specified in this format, each value is splitted by ":"
FormID:Level:Count:Chance
Later this format might be extended but backwards compatibility will be retained.
This will add a new entry to Leveled Base form list with following values:
Generic Base form - Starfield.esm~1EA6
Level - 60
Count - 2
Chance - 0
This will also insert a new entry with following values at position 4(specified after "_"):
In case Leveled form list has only 3 elements, insert will not be processed.
Generic Base form - Starfield.esm~1EA1
Level - 40
Count - 1
Chance - 0
This will also set flag Calculate All and unset flags Calculate from all levels <= player's level and Calculate for each item in count.
Constructible
Values:
wrkbench_kwd – Workbench keyword
created_obj – Created object
build_lmt – Build limit(Global)
cat – category(will only set/replace the first keyword in the list. If there’s no first keyword – it will be added.)
menu_srt_ord – Menu sort order.
add_comp -Adds component to COBJ.
rmv_comp – Removed component from COBJ.
rpl_comp – Replaced component in COBJ.
clr_comp – Clears component in COBJ.