Jump to content
  • 0

[WIP] zEdit


Mator

Question

xzOWb.png
 
zEdit
Current Release: Alpha v0.3.0

 
 
What is zEdit
zEdit is a new GUI/frontend for the xEdit framework built with Electron. The goal is to do everything xEdit does and more through the power and flexibility of JavaScript, HTML, and CSS.
 
I posted a survey to get ideas for zEdit here (and elsewhere) a few weeks ago.  GamerPoets made a video going over the survey results, which you can view here.

 

v0.3.0 Release Notes
This release includes a new application mode for cleaning plugins (zClean), advanced record search/filtering functionality, a referenced by view, tab icons and dynamic labels, and more.

 

v0.2.0 Release Notes
This release brings documentation, record copying functionality, extension management, and more.

 

v0.1.1 Release Notes
This is a hotfix release which fixes several bugs and UX issues that were reported to me shortly after v0.1.0 was released. This release should finally fix all of the issues with FO4/SSE load order handling.

 

v0.1.0 Release Notes

This release includes a bunch of fixes and new features. The release is pretty solid and includes really some exciting new systems.

This release adds support for zEdit Modules. Modules are packages of JavaScript code and HTML templates which are loaded by zEdit on startup. zEdit modules are like mods for zEdit. Developers can create new context menu items, new modal views, respond to application events, and more.

The release also adds support for custom application and syntax themes. I included a dark theme which I put together myself as well as a bunch of syntax themes which were included with CodeMirror.

Finally, this release includes a core module - the zEdit Unified Patching Framework (or UPF for short). UPF is similar SkyProc/SUM, but better. You can find an example UPF patcher here. UPF offers:

  • Generic progress modal display while patchers execute
  • The ability to build multiple patchers into a single patch plugin file
  • A single Manage Patchers modal where a user can adjust the settings of their patchers, disable patchers, and build patch plugins. Patchers can register tabs here with an HTML template and an angular controller.
  • The ability to use all features of ES6 JavaScript in your code, including functional programming, classes, file system access through NodeJS, and more.
  • Full access to xelib, a javascript wrapper around XEditLib which provides a high performance API to the XEdit framework. That means faster execution than xEdit scripts, no jvInterpreter weirdness, a simplified API with no redundant functions, and many totally new functions which make many tasks much easier.
  • A highly structured patcher format which makes creating patchers faster and less repetitive.

Here are a few screenshots of UPF in action:

jdsmith2816 is currently working on porting the ReProccer to use UPF. He has Armors, Alchemy, and Projectile patching done and mostly tested, and is currently working on the last part of the patcher, patching Weapons.


v0.0.1 Release Notes


Today I released an alpha of zEdit to start getting direct feedback and ideas from the community. This release is nowhere near feature complete, and will have its fair share of bugs. You have been warned!
 
I have written some very extensive release notes on the release page on GitHub. I don't expect anyone to actually read all of it, but they're there so you can check to make sure whether or not I know something is broken before letting me know.
 
This alpha release already has a few things xEdit doesn't:

  • You can choose the game mode from the start screen (no need to rename the executable)
  • You can have multiple record view tabs
  • You can reorder your load order from within the application when you start a new session
  • You can search for records by name
  • You can create user scripts using the full functionality of ES6 (functional and object-oriented programming, yay!)
  • Special forms for editing certain fields such as colors, enumerations, and multi-line text.

More functionality is on its way.
 
EDIT: Builds updated to fix a problem with a missing dependency, causing the XEditLib.dll missing error. If you downloaded in the first 30 minutes this was posted redownload the application or download and install the dependency into its folder.




Plans
I started working full time a few weeks ago, so I have less time to work on zEdit. This caused the v0.2.0 release to take considerably longer than initially planned (from 1-2 weeks to 1 month). New releases will likely be monthly/biweekly going forward. zEdit development will continue, but it will be slower. This would be a good time for any developers who are interested in the project to make a commitment to contribute to zEdit more often!


Conclusion
You can report issues here or on the GitHub repository and you can track my progress on zEdit's public Trello board. You can get updates on zEdit and chat with me or other developers on the Modding Tools Discord Server. If you're a developer and interested in contributing, send me a message and we can find something for you to work on.
 
 
Thanks, and enjoy zEdit!
- Mator

Edited by Mator
  • +1 1
Link to comment
Share on other sites

Recommended Posts

  • 0

I'm curious if a feature is planned (or already implemented).

 

For this example, say am I patching for a series of the same record types, such as Ingredients.

I would love to be able to select multiple records, right-click, click "Forward Record Fields", select the mod I'm forwarding from, select the mod I'm forwarding to, select the field name(s) a want to forward

(say "PFIG - Ingredient"), and click "OK". The program then forwards all selected records from pluginA to pluginB, of the chosen field name(s).

 

This would make manual patching a lot faster when patching two mods that alter the same records.

Link to comment
Share on other sites

  • 0

I'm curious if a feature is planned (or already implemented).

 

For this example, say am I patching for a series of the same record types, such as Ingredients.

I would love to be able to select multiple records, right-click, click "Forward Record Fields", select the mod I'm forwarding from, select the mod I'm forwarding to, select the field name(s) a want to forward

(say "PFIG - Ingredient"), and click "OK". The program then forwards all selected records from pluginA to pluginB, of the chosen field name(s).

 

This would make manual patching a lot faster when patching two mods that alter the same records.

I hadn't thought of this yet, but it's definitely something that could be built.

Link to comment
Share on other sites

  • 0

Since you're familiar with the framework, is there any way to replicate the Creation Kit's process for converting mods from Form 43 to Form 44 (classic Skyrim plugins to SSE plugins) using zEdit?

Did you try to load SSE plugins into old CK and save there? I suppose you will lose critical data on weapons because this is the only place where data structure has changed instead of new SSE values being appended.

Link to comment
Share on other sites

  • 0

Did you try to load SSE plugins into old CK and save there? I suppose you will lose critical data on weapons because this is the only place where data structure has changed instead of new SSE values being appended.

Yes, I know of the process for converting plugins with the CK. I was hoping for something with not as much overhead as the CK. Porting over plugins which have several masters can be a time consuming process when you're doing a lot of them. I don't know what all the CK is doing to the plugins so I thought I'd ask if it was something which could be replicated with xEdit/zEdit (less overhead and faster).

Link to comment
Share on other sites

  • 0

I don't know what all the CK is doing to the plugins so I thought I'd ask if it was something which could be replicated with xEdit/zEdit (less overhead and faster).

No, data definition of records in xEdit are tied to the game mode (name of the xEdit executable), not to the actual Form Version field like in CK.

Link to comment
Share on other sites

  • 0

Lets say I what to reslove conflicts for UFO4P and I click an ingredient record. The right window says that five mods conflict on that record, I want to forward the last mod into my patch than forward the appropriate UFo4 records. Can you make is so that I Can click the header of the mod I want to forward (in the right window) so that I don't have to look for it in the left window.. I hope this makes sense, I am sorry this is typed poorly

Link to comment
Share on other sites

  • 0

Lets say I what to reslove conflicts for UFO4P and I click an ingredient record. The right window says that five mods conflict on that record, I want to forward the last mod into my patch than forward the appropriate UFo4 records. Can you make is so that I Can click the header of the mod I want to forward (in the right window) so that I don't have to look for it in the left window.. I hope this makes sense, I am sorry this is typed poorly

Is there a way to hide conflicts that aren't really conflicts

Link to comment
Share on other sites

  • Recently Browsing   0 members

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

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.