GithubHelp home page GithubHelp logo

nexomon-extinction-save-editor's Introduction

Nexomon: Extinction Save Editor

Fairly bare-bones. I may add more features in the future, maybe not.

You can edit:

  • Inventory, add/delete items, change quantities, etc.
  • Player stuff incl. location, options, costume, sex, pet, map location.
  • Party monsters.
  • Storage monsters.
  • Can change change monster skills & cores.
  • Wallet (Coins, Diamonds, Tokens).

Instructions

It'll ask you which file to open on startup.
Ctrl+S opens the save dialog.
That's basically it for the interface.

The default save location is C:\Program Files (x86)\Steam\userdata\<user id>\1196630\remote\data-<slot>.dat
Do NOT bother editing the one in AppData/LocalLow. The one there seems to just be a backup and gets overwritten so ignore it.

Made for & tested on Steam saves. Other platforms are supported but rely on the community to test, submit saves, etc, as I only own the Steam version.
Supported platforms:

  • Steam
  • Switch
  • PS4

If you have a save that breaks things, open an issue.
Should support saves up to version 23.

Use at your own risk, keep save backups, etc. I shouldn't need to tell you this part.

I have the rest of the save file mapped out, but didn't bother adding stuff for achievement tracking, plot flags, etc.
List of things not yet included that I may get around to that at some point:

BeatenTamers                    beatenTamers;
Mining                          mining;
Rematcher                       rematcher;
Achievements                    achievements;
PermanentlyDestroyedEntities    permanentlyKilledEntities;
Dictionary<int, bool>           switches;
Dictionary<int, List<string>>   permanentlyKilledFlags;
Dictionary<string, int>         variables;
HashSet<DatabaseMonsters.Entry> seenMonsters;
HashSet<DatabaseMonsters.Entry> ownedMonsters;
List<int>                       cadiumMapsWithZieglerMiasma;

If you want it, there's an 010 template for the start of the save file. (Goes till wallet, same as the save editor.)
Save-Template.bt

Crashes

If there's a crash, it'll get recorded in the Windows even viewer. eventvwr.msc
Open an issue with the crash log.

If the exe doesn't appear to do anything when run, check for crash logs there.
The other common cause of this is people not extracting the files from the zip before running it. The dlls MUST be in the same directory for the program to work. Running the exe from the zip will not do this and it'll fail to run.

Prerequisites

.Net Core/Desktop 3.1 Runtime is required to run this:

(Direct links may be out-of-date. Look for the "Desktop Runtime" section in the right column.)

nexomon-extinction-save-editor's People

Contributors

synthlight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nexomon-extinction-save-editor's Issues

Some new potential changes

Is there willing to be an update for this save editor that gives us the option to edit the level of all of our nexomon in our party or storage simultaneously.

Also Friendship points should be edited too

no issue just wanted to say thanks

hi i just wanted to message to say thank you so much for creating this editor. My little boy is playing is on the switch atm, I tried using cheats with atmosphere and it had been an absolute nightmare. never really expected to find an editor for the switch . It is so appreciated. Sorry for opening up an issue. never really delved into github other than downloading a few things for the switch and didnt know how else i could express my thanks
all the best

Power Shard

is there power shard on item list in save editor?

Open savefile and nothing happens

Faulting application name: Save-Editor.exe, version: 1.6.0.0, time stamp: 0x6243f19c
Faulting module name: KERNELBASE.dll, version: 10.0.22543.1000, time stamp: 0x79a69917
Exception code: 0xe0434352
Fault offset: 0x000000000001228c
Faulting process id: 0x0x3EA4
Faulting application start time: 0x0x1D884DE7C18C9FC
Faulting application path: C:\Users\tomkr\Downloads\Nexomon-Extinction-Save-Editor-1.6\Nexomon-Extinction-Save-Editor-1.6\Save-Editor.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: f181e878-ab41-4be2-824c-ad680ea1ace1
Faulting package full name:
Faulting package-relative application ID:

Application: Save-Editor.exe
CoreCLR Version: 4.700.22.26002
.NET Core Version: 3.1.26
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'Save_Editor.MainWindow' that matches the specified binding constraints threw an exception.
 ---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
   at System.IO.BinaryReader.InternalRead(Int32 numBytes)
   at System.IO.BinaryReader.ReadInt16()
   at Save_Editor.Models.Extensions.ReadMonster(BinaryReader reader, Int32 saveVersion) in R:\Games\Nexomon Extinction\Save-Editor\Models\Monster.cs:line 34
   at Save_Editor.Models.SaveData..ctor(BinaryReader reader, Boolean readPs4PrefixBytes, Nullable`1 saveSize) in R:\Games\Nexomon Extinction\Save-Editor\Models\SaveData.cs:line 86
   at Save_Editor.Models.Ps4.Ps4Header..ctor(BinaryReader reader) in R:\Games\Nexomon Extinction\Save-Editor\Models\Ps4\Ps4Header.cs:line 28
   at Save_Editor.MainWindow.LoadFile() in R:\Games\Nexomon Extinction\Save-Editor\MainWindow.xaml.cs:line 63
   at Save_Editor.MainWindow..ctor() in R:\Games\Nexomon Extinction\Save-Editor\MainWindow.xaml.cs:line 28
   --- End of inner exception stack trace ---
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
   at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
   at System.Windows.Application.DoStartup()
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at Save_Editor.App.Main()

Issue loading PS4 save.

I've been trying to get the program to run for my PS5. I've extracted the files and once I click on the program it ask what file. I select my file and noting happens. I found an EU save online that was dated 9/16/2020 and the program worked flawlessly. I'm not sure what it could be at this point. I even converted the EU save that worked before to USA through save wizard. I transferred the converted save to my console and all the alterations I made with the SE worked. I transferred back to my PC and the program won't open again. What could I be dong wrong.

i cant make it work

i cant make it work, first it doesnt ask em witch file to open on startup, i have to go to open, second the save files are .data witch seems the editor doesnt recognice, and your template is .bt, so it doesnt work at the place of the saves, maybe they changed the file type after you created the editor, if not i dont see how to make it work

Post game not triggering?

I used the save editor to edit 2 nexomon in my storage which are now part of my main party but when i beat the game and reload my save i'm sent back to the spot before the airship fight where the previous nexomon protag gives me the option to leave. But then i watch some youtube on a post game only to see the youtuber "HeroVolsty" beat the game and was sent back to the guild hall like theres a post game.
did the save editor do this? or is it a different issue. i hope we can sort this out, your editor saved me uncountable amounts of hours looking for extinct nexomon.

Exe doesn't appear

Application: Save-Editor.exe
CoreCLR Version: 4.700.20.36602
.NET Core Version: 3.1.7
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'Save_Editor.MainWindow' that matches the specified binding constraints threw an exception.
---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.BinaryReader.InternalRead(Int32 numBytes)
at System.IO.BinaryReader.ReadInt32()
at Save_Editor.Models.SaveData..ctor(BinaryReader reader, Boolean readPs4PrefixBytes, Nullable`1 saveSize) in R:\Games\Nexomon Extinction\Save-Editor\Models\SaveData.cs:line 62
at Save_Editor.MainWindow.LoadFile() in R:\Games\Nexomon Extinction\Save-Editor\MainWindow.xaml.cs:line 72
at Save_Editor.MainWindow..ctor() in R:\Games\Nexomon Extinction\Save-Editor\MainWindow.xaml.cs:line 28
--- End of inner exception stack trace ---
at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
at System.Windows.Application.DoStartup()
at System.Windows.Application.<.ctor>b__1_0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at Save_Editor.App.Main()

Save editor support for abyssals

Since the latest Nexomon version containing the abyssals update is out i was wondering if this editor could be updated for the support of it

Instructions on how to use the program please...

I really appreciate your work in trying to make a save editor, but I have a few "issues" in regards to how to use the program.
First off... What do I have to open after I download the zip project.
Please be more explicit in the readme file...

Suggestion that might be needed

You know I think the save editor should have the benefit of allowing the user to add a new Nexomon in a blank space in either the party or storage in addition to replacing a blank move spot with a certain move of their choice

Adding PS4 Support?

Hello,

Is it possible to add PS4 support? It's named memory.dat as default when exported using Save Wizard.

I notice by removing the first 0x30 bytes of the file in HxD, it reads fine in the "windows" .dat format.
See added file.

Removing the string:
46 41 4C 4C 45 4E 00 00 18 00 00 00 02 00 00 00 01 00 00 00 00 00 00 02 B4 5D 3C F7 03 00 00 00 00 04 00 00 30 00 00 00 46 41 4C 4C 45 4E 00 01 - Basically block 00-2F
Makes the save readable in the editor just fine. I can see inventory, name, nexomons etc.

Note I only have 1 slot saved. If theres 2 saves, itll be 0x40 length, 3 0x50 length to remove.

I uploaded a save with 3 slots made in the beginning of the game aswell.
This information also from a user on SW Discord (Skiller):

B45D3CF7 = Always Slot 1
565DCA65 =Always Slot 2
D318F5A9 = Always Slot 3

+0x08 = Size
+0x0C = Starting point


If only 1 Slot is used, you see B45xxxx value used (Top slot)

memory.zip

3Slots.zip

PS4 EU.zip - All save orders

save editor not move

I tried using the nexomon extinction save editor

Edited data will be returned before editing data plz fix it

when i fianlly got to make it "work" it gives me this error

System.Windows.Markup.XamlParseException
HResult=0x80131501
Mensaje = Se produjo una excepción al proporcionar un valor en 'System.Windows.Markup.StaticExtension'.
Origen = PresentationFramework
Seguimiento de la pila:
en System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
en System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
en System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
en System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
en System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
en System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
en System.Windows.Application.DoStartup()
en System.Windows.Application.<.ctor>b__1_0(Object unused)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
en System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
en System.Windows.Threading.DispatcherOperation.InvokeImpl()
en System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
en MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- Fin del seguimiento de la pila de la ubicación anterior ---
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
en MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
en System.Windows.Threading.DispatcherOperation.Invoke()
en System.Windows.Threading.Dispatcher.ProcessQueue()
en System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
en System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
en System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
en MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
en MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
en System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
en System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
en System.Windows.Threading.Dispatcher.Run()
en System.Windows.Application.RunDispatcher(Object ignore)
en System.Windows.Application.RunInternal(Window window)
en System.Windows.Application.Run()
en Save_Editor.App.Main()

Esta excepción se generó originalmente en esta pila de llamadas:
[Código externo]

Excepción interna 1:
TargetInvocationException: Exception has been thrown by the target of an invocation.

Excepción interna 2:
TypeInitializationException: The type initializer for 'Save_Editor.Data' threw an exception.

Excepción interna 3:
IndexOutOfRangeException: Index was outside the bounds of the array.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.