Jump to content

Reverse Port of Mod Help?


Kyubitron

Recommended Posts

I have had a request to make my mod "Subte Night Eye" ( https://www.nexusmods.com/skyrimspecialedition/mods/13091/? ) available for Skyrim LE (Oldrim). Unfortunately I don't have an older version of the CK as I played Oldrim on PS3. Is there a way to acquire the older version of Creation kit?

 

If not, is someone willing to help reverse port the mod?

Thank you - Kyubitron

Link to comment
Share on other sites

Original Skyrim Creation Kit will only be available if you have purchased the original Skyrim through Steam. Thus if you have no access to it, you'll need to rely on someone else back porting the mod. Which basically means they will have to redo the mod completely from scratch as SSE plugins are not backwards compatible with the original Skyrim.

Link to comment
Share on other sites

Original Skyrim Creation Kit will only be available if you have purchased the original Skyrim through Steam. Thus if you have no access to it, you'll need to rely on someone else back porting the mod. Which basically means they will have to redo the mod completely from scratch as SSE plugins are not backwards compatible with the original Skyrim.

There's a cheesy hack way that I pulled off back Porting a mod from sse to sle. It went something like this:

  • Make a dummy SLE mod file (empty one)
  • Copy the SSE mod to SLE data folder
  • Set the load order for the SSE mod file to be exactly after the SLE dummy file
  • Use xEdit loaded in tes5edit mode to load both files
  • Add the dummy file as a master to the SSE file
  • Use an xEdit script to change every form id and all references of the SSE mod to one that would go in the SLE file
  • Make override copies backwards to the SLE file
  • exit and save.
  • Load SLE file in CK again and resave to fix form versions.

Not the simplest thing and can have some errors in rare cases.

 

Edit: Here's the xEdit script I used. It's not the same as the Change Load Order one that comes with xEdit. That one only changes the record. Not all the references to the record.

 

{
  Force an override of a previous load order form id for all records.
}
unit UserScript;
 
var
  PrevID: Cardinal;
  NewFormID: Cardinal;
  PrevModCount: integer;
 
function Initialize: integer;
begin
  NewFormID := 0;
  PrevID := 16777216;
  PrevModCount := 1;
end;
  
function Process(e: IInterface): integer;
var
  OldFormID: Cardinal;
  m: IInterface;
  s: string;
begin
  // file header doesn't have formid
  if Signature(e) = 'TES4' then
    Exit;
 
  OldFormID := GetLoadOrderFormID(e);
  NewFormID := OldFormID - (PrevModCount * PrevID);
 
  Result := 0;
 
  if NewFormID = OldFormID then
    Exit;
  
  // the record in question might originate from master file
  m := MasterOrSelf(e);
  
  // skip overridden records
  if not Equals(m, e) then
    Exit;
  
  //AddMessage(Format('Changing FormID from [%s] to [%s] on %s', [IntToHex64(OldFormID, 8), IntToHex64(NewFormID, 8), Name(e)]));
 
  // first change formid of references
  while ReferencedByCount(m) > 0 do
    CompareExchangeFormID(ReferencedByIndex(m, 0), OldFormID, NewFormID);
 
  // change formid of record
  SetLoadOrderFormID(e, NewFormID);
  
 
end;
 
end.
Edited by BigAndFlabby
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...