Jump to content

Automation Tools for TES5Edit - Suggestions Thread


matortheeternal

Recommended Posts

Hello, I was wondering if it was possible to create a script that could add PerkSkillBoosts "Skill Boosts" [PERK:000CF788] to all NPCs so they could benefits from all item enchantments. I know ASIS can do it, but it's not available for Skyrim Special Edition.

Thanks

 

Use MXPF to make a dynamic patcher similar to ASIS.

Link to comment
Share on other sites

  • 1 month later...
  • Replies 446
  • Created
  • Last Reply

Top Posters In This Topic

  • 4 weeks later...

I'm using your scripts for Fallout 4 to make standalone PowerArmor and thank you & zilav for your Scripts that 290 Records are easily editable.

 

Replace FormIDs

- Toggle Fallout4.esm to not load or even provide a List to not Load the next time the Script.pas is runned

 

- Instead of choosing which esp/esm to Find and another to replace could you offer an alternative to just checkmark/toggle which esm/esp to Find & Replace in (From there the 1st suggestion isn't needed)

 

- Allow 1-3 more Find & Replace Slots so users can change multiple FormID at the same time (Its cause FO4Edit window is disabled and when I'm replacing 2 or more FormIDs in the same Records or simply Highlighted a large amount and know that changing the records will only effect certain records)

Example - of 2 FormIDs that need to change in 1 Record
A = Same Record 00188171 > 01000800, but different FormID in the same record 0018DFC5 > 01000801

B = Different Record 00188172 > 01000808, but this FormID is with this Record 0018DFC8 > 01000809

C = 0018816A > 01000810, 0018DFC9 > 01000811

D = 00188173 > 01000818, 0018DFCA > 01000819
with only 1 Find/Replace Slots I would have to do this 8 times, excluding the unique ones that need offsetting and require FormID renumbering.
Edited by Lukong1515
Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Hi mator, any chance for an update for the armor mod builder to include the ability to create temper recipes as well? The script is pretty much perfect with the exception of that feature.

I also remembered you have an updated version of that script that fixed the priority in the ArmorAddon meshes so they're all not created with 0 priorities, which can cause bugs when trying to mix and match with vanilla or other armor mods, but I can't find it anymore, or maybe my memory is fuzzy and you once said you're looking into it but never release the new version officially.

Link to comment
Share on other sites

  • 1 month later...

So I wanted an xEdit script where you could highlight a group of records, and add those scripts to a formlist. Found this, eventually realized it could work, and (after much frustration) was able to batch add items to an FLST record with QuickChange. But that is not as streamlined as I wanted it. I wanted it to work the way the Powerlist script works (no importing/exporting records). I found a reference in this thread to a "FormList Manager.pas", but it was apparently deleted.

 

After bashing my face into my keyboard for a while, I eventually got it to work. It's much faster than using QuickChange, but is no good for merging FLST records (unless nested FLSTs work for what you are doing).

 

 

unit UserScript;

uses mteFunctions;

const
  vs = 'v0.5';
  signature = 'FLST';
  path = 'FormIDs';
  subpath = '';
  hl = '-----------------------------------------------------------------------------';

var
  dstFile, dstRec: IInterface;
  slForms: TStringList;
  cbForm: TComboBox;
  skip: boolean;

procedure LoadForms(Sender: TObject);
var
  forms, form: IInterface;
  i: integer;
begin
  cbForm.Items.Clear;
  cbForm.Items.AddObject('NEW', TObject(nil));
  dstFile := FileByIndex(TComboBox(Sender).ItemIndex);
  forms := GroupBySignature(dstFile, signature);
  if Assigned(forms) then begin
    for i := 0 to ElementCount(forms) - 1 do begin
      form := ElementByIndex(forms, i);
      cbForm.Items.AddObject(Name(form), TObject(form));
    end;
  end;
end;
  
procedure OptionsForm;
var
  frm: TForm;
  cbFile: TComboBox;
  lblFile, lblForm: TLabel;
  btnOk, btnCancel: TButton;
  i: integer;
begin
  skip := true;
  frm := TForm.Create(nil);
  try
    frm.Width := 300;
    frm.Height := 160;
    frm.Position := poScreenCenter;
    frm.Caption := 'Add forms to FormID list';
    
    lblFile := TLabel.Create(frm);
    lblFile.Parent := frm;
    lblFile.Left := 16;
    lblFile.Top := 16;
    lblFile.Caption := 'File: ';
    
    cbFile := TComboBox.Create(frm);
    cbFile.Parent := frm;
    cbFile.Left := 100;
    cbFile.Top := lblFile.Top;
    cbFile.Width := 150;
    for i := 0 to FileCount - 1 do
      cbFile.Items.Add(GetFileName(FileByIndex(i)));
    cbFile.OnSelect := LoadForms;
    
    lblForm := TLabel.Create(frm);
    lblForm.Parent := frm;
    lblForm.Left := lblFile.Left;
    lblForm.Top := lblFile.Top + lblFile.Height + 16;
    lblForm.Caption := 'FormID list: ';
    
    cbForm := TComboBox.Create(frm);
    cbForm.Parent := frm;
    cbForm.Left := cbFile.Left;
    cbForm.Top := lblForm.Top;
    cbForm.Width := 150;
    
    btnOk := TButton.Create(frm);
    btnOk.Parent := frm;
    btnOk.Caption := 'OK';
    btnOk.ModalResult := mrOk;
    btnOk.Left := frm.Width div 2 - btnOk.Width - 8;
    btnOk.Top := lblForm.Top + lblForm.Height + 24;
    
    btnCancel := TButton.Create(frm);
    btnCancel.Parent := frm;
    btnCancel.Caption := 'Cancel';
    btnCancel.ModalResult := mrCancel;
    btnCancel.Left := btnOk.Left + btnOk.Width + 16;
    btnCancel.Top := btnOk.Top;
    
    if frm.ShowModal() = mrOk then begin
      dstRec := ObjectToElement(cbForm.Items.Objects[cbForm.ItemIndex]);
      skip := false
    end;
  finally
    frm.Free;
  end;
end;
  
function Initialize: integer;
begin
  AddMessage(#13#10#13#10+hl);
  AddMessage('FormIDList Script '+vs+': Used for adding FormID references to lists.');
  AddMessage(hl+#13#10);
  slForms := TStringList.Create;
end;

function Process(e: IInterface): integer;
begin
  // AddMessage(Name(e));
  slForms.Add(Name(e));
end;

function Finalize: integer;
var
  a, e, group: IInterface;
  i: integer;
  b: boolean;
begin
  OptionsForm;
  if skip then begin
    AddMessage('Terminating script.');
    exit;
  end;
  b := false;
  if (Name(dstRec) = '') then begin
    // create new record
    AddMessage('Create new record!');
    group := GroupBySignature(dstFile, signature);
    if not Assigned(group) then
      group := Add(dstFile, signature, true);
    dstRec := Add(group, signature, true);
  end;
  
  AddMessage('Adding forms to: '+Name(dstRec)+'\'+path+' at '+subpath);
  a := ElementByPath(dstRec, path);
  if not Assigned(a) then begin
    a := Add(dstRec, path, true);
    b := true;
  end;
  for i := 0 to slForms.Count - 1 do begin
    AddMessage('    adding '+slForms[i]);
    e := ElementAssign(a, HighInteger, nil, false);
    seev(e, subpath, slForms[i]);
  end;
  if b then
    RemoveByIndex(a, 0, true);
  
  AddMessage(#13#10+hl);
  AddMessage('All done.');
  AddMessage(#13#10);
end;

end.

 

 

It probably still has some unnecessary stuff that isn't needed for FormID lists, but it seems to work fine so I'm not gonna bother trying to figure anything else out.

 

Is there a guide anywhere on how to get started with xEdit scripting? If I had a guide (or if this wasn't my first attempt at scripting in Pascal) I probably could have done this in 30 seconds, instead of over an hour.

 

Edit: I was gonna just leave it here do to how much of the code was directly copied from your PowerList code (I just deleted some lines and changed a few values/paths), but would you mind if I posted it as a Fallout 4 modder's utility? It would still require them to download your mod here, since it relies on functions in mteFunctions.pas.

I just wanted to thank you for this script, it did exactly what I needed to, saving me a TON of time. THANK YOU! <3

Link to comment
Share on other sites

  • 3 weeks later...

I was looking for a script to add weapons and armour to levelled lists - wrye bash is a bless to create a patch but it's not able to add stuff without levelled list keywords. So far I found something ;

leveled list script

 

I'm not sure if this script is save to use as we are spoiled by mator's scripts. Anyway...

 

Your 'Item distributor' is still in the make or abandoned because too difficult to code?

Edited by Altamosnar
Link to comment
Share on other sites

  • 4 months later...
  • 7 months later...
  • 2 months later...

Hi, thx for the work on the mod. I was thinking is there a way to delete armor crafting recipe all in one go? I install lots of outfit mod & how annoying it is to navigate things that I'll just use additem mod for (because they were lore unfriendly lol). I prefer them to be hidden but I like to pick them up & used for screenshot, but to populate the blacksmiths menu I do not like.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...