November 23, 2014, 03:45:18 AM

Author Topic: Gnomoria Save Game Editor II  (Read 50094 times)

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Gnomoria Save Game Editor II
« on: June 15, 2013, 09:26:29 AM »
Dear fellow gnomes,


as Fluff, the original creator of GSGE, has not updated his great tool i took over this task months ago and added some new functions.
It is now time to continue this project in a thread of it's own...and here it is! I will update this first post (it's mine, yeah!) whenever a new version is available.


What you can do with GSGE:
  • Reveal map: reveales complete map
  • Hide map: hides complete map (not remommended, highly experimental)
  • Sow grass: coveres dirt floor from level +25 down to level -99 with grass
  • Limb Surgery: reattaches lost limbs (gnomes only!) <- original from Faark (Faark's Limb Surgery)
  • IDKFA: everything you need for a quick start (so you can build each workshop once right from the start)
  • Change game mode: peaceful, easy, normal, hard or sudden death
  • Modify difficulty: attack rate/size, enemy strength (each from 0.1 to 5)
  • Enable/disable enemies: separate switch for each enemy type (from bear to zombie)
  • Reveal ore: reveals selected ore
  • Expand ore: expands selected ore (in case you forgot to set metal amount to abundant...)
  • Remove water: to save some drowning gnomes
  • Add water: to replenish dry lakes (fills cells with air or dirt floor from level -1 to -2 with 100% water, be careful not to drown gnomes)
  • Fill caverns: fills caverns below level -2 (inserts floor and wall, also removes ramps and inserts a wall)
  • RND stone: randomizes material of natural stone floor and wall (works best with "reveal map". look at all those colors... )
  • Convert stone: don't like lapis? change it into granite or marble or...
  • Convert trees: no use for pine wood? change pines to birches...
  • Add items: select amount, material and item and *poof* you get it (items spawn at center of map at first available floor)

Before messing around with your savegame: Make a backup!!!


How to install:

Just put GnomoriaSaveGameEditor into your Gnomoria directory. That's it!
(GSGE needs Gnomoria.exe, gnomorialib.dll and the .Net framework 4 Profile Client)


Where to get:

Remember:
  • When loading a savegame you can copy and paste a savegame within the open file dialog to make a backup (Ctrl+C, Ctrl+V).
  • "Fill Caverns" should only be used at start of game, when you have not dug down to level -3: everything below gets trapped and may cause bugs!
  • Just in case you do not wish to drown your gnomes: Do not add water multiple times!
  • Adding armor and weapons increases Kingdom Value! (Prepare for incoming enemies!)
  • After modifying a savegame and hitting "Save" wait a moment to make sure the file has been saved before exiting.

In case I haven't mentioned it:

Before messing around with your savegame: Make a backup!!!


Actual version:  1.0.2.89 (for Gnomoria 0.9.16.1)


Outdated:
1.0.2.88 (for Gnomoria 0.9.15)
1.0.2.87 (for Gnomoria 0.9.13.1)
1.0.2.85 (for Gnomoria 0.9.12.1)
1.0.2.83 (for Gnomoria 0.9.11.2)
1.0.2.82 (for Gnomoria 0.9.10)
1.0.2.81 (for Gnomoria 0.9.8 )
1.0.2.80 (for Gnomoria 0.9.6)
1.0.3.0 (for Gnomoria 0.9 - experimental)
1.0.2.74 (for Gnomoria 0.9)
1.0.2.73 (for Gnomoria 0.8.55)
1.0.2.72 (for Gnomoria 0.8.54)
1.0.2.70 (for Gnomoria 0.8.52.1)
1.0.2.69 (for Gnomoria 0.8.49)
1.0.2.63 (for Gnomoria 0.8.46)
1.0.2.56 (for Gnomoria 0.8.43.1)
1.0.2.31 (for Gnomoria 0.8.42)
« Last Edit: November 13, 2014, 08:43:22 AM by kinsi »
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

ImmaYeti

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #1 on: June 15, 2013, 10:31:53 AM »
You sir are a saint.

Is it just me or is reveal ore still not working?

-Just tested other features on a new savegame, none seem to be working.

-Reveal map worked, Now everything is revealed though.
« Last Edit: June 15, 2013, 11:24:13 AM by ImmaYeti »

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #2 on: June 15, 2013, 12:11:52 PM »
You sir are a saint.

Is it just me or is reveal ore still not working?

-Just tested other features on a new savegame, none seem to be working.

-Reveal map worked, Now everything is revealed though.

Reveal ore should be working again.
What other features did not work?
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

Jackardson

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #3 on: June 15, 2013, 12:19:43 PM »
Was there any new adition in the newest Version?
maybe adding a changelog would be good or posting the changelog as a normal post whenever you update the first post like you did in the other thread ?

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #4 on: June 15, 2013, 12:38:22 PM »
Was there any new adition in the newest Version?
maybe adding a changelog would be good or posting the changelog as a normal post whenever you update the first post like you did in the other thread ?

New: You can now add coal!
So no big changes, more or less just a recompile for 0.8.42, last version was for 0.8.40.1.
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

SomeEnglishGuy

  • Newbie
  • *
  • Posts: 16
  • When life gives you lemons, create golems.
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #5 on: June 18, 2013, 02:23:47 AM »
Hide World works pretty well. I mean, it looks like you lose stuff, however it's all still there.

A word of caution though; make sure EVERYTHING is lit with torches beforehand. Say for example, if you have a workbench, with no work on it at the time, and no torches - you've lost it. Other than that, this experimental feature works well (At least on Version 8.30 running on Win8 64bit)

sirguylittle

  • Full Member
  • ***
  • Posts: 110
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #6 on: June 18, 2013, 08:25:39 AM »
This program doesn't want to work for me :(

When Fluff managed it, there was some talk about it not working on Windows XP systems, but I don't see why that should matter.

Your program runs, and appears to have loaded Gnomoria.exe successfully as the music starts to play.

But when I try to load a world, the progress bar starts to move and part way through it CTDs.

This is what has been posted to Gnomoria.log:

Code: [Select]
////////////////////////////////////////////////////////////////
    Date: 18/06/2013 15:49:20
Assembly: Gnomoria.exe
 Version: 0.8.42.0
   World: world02
 Message: Object reference not set to an instance of an object.
////////////////////////////////////////////////////////////////
   at GnomoriaSaveGameEditor.MainWindow._worker_LoadGameCompleted(Object sender, RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext 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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(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(Window window)
   at GnomoriaSaveGameEditor.App.Main()
////////////////////////////////////////////////////////////////


PS. If it's any help, I also use Faark's mod which loads and runs worlds without any problem.
« Last Edit: June 18, 2013, 08:32:11 AM by sirguylittle »

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #7 on: June 18, 2013, 08:30:05 AM »
This program doesn't want to work for me :(

When Fluff managed it, there was some talk about it not working on Windows XP systems, but I don't see why that should matter.

Your program runs, and appears to have loaded Gnomoria.exe successfully as the music starts to play.

But when I try to load a world, the progress bar starts to move and part way through it CTDs.

This is what has been posted to Gnomoria.log:

Code: [Select]
////////////////////////////////////////////////////////////////
    Date: 18/06/2013 15:49:20
Assembly: Gnomoria.exe
 Version: 0.8.42.0
   World: world02
 Message: Object reference not set to an instance of an object.
////////////////////////////////////////////////////////////////
   at GnomoriaSaveGameEditor.MainWindow._worker_LoadGameCompleted(Object sender, RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext 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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(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(Window window)
   at GnomoriaSaveGameEditor.App.Main()
////////////////////////////////////////////////////////////////


Can you load this save with Gnomoria?
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

ExVault

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #8 on: June 18, 2013, 08:54:20 AM »
Tried to add some Apple clippings, but program spawns "apple wood clippings". They grow to some weird fruit called "apple wood" that looks like strawberry, lol  :D

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #9 on: June 18, 2013, 09:06:21 AM »
Ohoh....havte to check that when i'm home.
I hope there will not grow strawberry anvils... :-P
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

sirguylittle

  • Full Member
  • ***
  • Posts: 110
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #10 on: June 18, 2013, 09:07:49 AM »
snip

Can you load this save with Gnomoria?

Yes, with either the standard Gnomoria.exe or Faark's Modded version.

I originally got the crash with my current world, so I created a brand new one to test your program on, just in case it was something about my world that was the problem, but it crashed on the brand new world too, which is the error log that I posted above.

PS, I just came across your Smart Hide Map mod (brilliant by the way  :) ), so I tried that out on the very same map that your Save Game Editor is crashing on!
« Last Edit: June 18, 2013, 09:12:59 AM by sirguylittle »

Kuuchuu

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #11 on: June 19, 2013, 05:59:41 PM »
It also would not load up a world for me. I'm running XP Pro. I was thinking if I were to compile it on XP, problem would be solved, I was however, mistaken. I'm a VB coder, not C, so you can probably make more sense out of this Unhandled Exception that was thrown straight out of the compiler when debugging more than I can:
Code: [Select]
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Game.AIDirector.get_PlayerFaction()
   at GnomoriaSaveGameEditor.MainWindow._worker_LoadGameCompleted(Object sender, RunWorkerCompletedEventArgs e) in c:\Documents and Settings\Administrator\My Documents\Downloads\GSGE(1)\GSGE\MainWindow.xaml.cs:line 149
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext 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 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(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(Window window)
   at System.Windows.Application.Run()
   at GnomoriaSaveGameEditor.App.Main() in c:\Documents and Settings\Administrator\My Documents\Downloads\GSGE(1)\GSGE\obj\x86\Debug\App.g.cs:line 0
It obviously points out line 149:
Code: [Select]
lblSaveGameTitle.Content = "Kingdom: " + _empire.World.AIDirector.PlayerFaction.Name + " (" + gameState + ")";

Ondaderthad

  • Sr. Member
  • ****
  • Posts: 328
  • Bronze Cuirass after Mant attack ^^
    • View Profile
    • Build your own Bitcoin Cloud Miner one Ghash at a time
Re: Gnomoria Save Game Editor II
« Reply #12 on: June 21, 2013, 08:22:02 PM »
SUGGESTION
Add a new feature to edit the prices of items.

if it's possible to do it of course.
-=-=-=-=-=-=-=-=-=-=-=-
(they didnt die outright, they shamble around for a while, bleeding like it was a 70ies samurai flick)
Merry76
-=-=-=-=-=-=-=-=-=-=-=-

kinsi

  • Hero Member
  • *****
  • Posts: 519
  • Don't touch the shiny!
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #13 on: June 30, 2013, 12:49:12 PM »
GSGE version 1.0.2.56 for Gnomoria 0.8.43.1 available!

New options:
  • Fill Cavern - No more holes in your map! Should only be used at the start of your kingdom: everything below level -2 gets burried...
  • RND Stone - Randomizes type of stone for all natural stone walls and floor.
  • Convert Stone - Converts all natural stone walls and floor of one type to another.

Changes:
  • Add (Item) - Materials and items added. List should be complete now.
  • Convert Trees - Orange tree added.
« Last Edit: June 30, 2013, 01:32:12 PM by kinsi »
You have questions or suggestions? Before posting use the search function! Click >here< !!!

CL4P-TP aka Claptrap: "Well done! Your ability to walk short distances without dying will be Handsome Jack's Downfall!"

KyoNeko

  • Full Member
  • ***
  • Posts: 102
    • View Profile
Re: Gnomoria Save Game Editor II
« Reply #14 on: July 01, 2013, 12:24:42 AM »
This sounds quite nice, i do wonder, does the fill cavern option also fills the caves with stone and ore like there should be? Even if not it does sound amazingly usefull.

I do woner about the RND stone, does it make things.. Really random? Like every type of stone on the same level and just about every other block being a other kind? But are the ores still inside of the stones after doing this? Because this sounds soo much fun to do but im afraid of losing out on the ores. (then again, it would work for a no ore from the ground challange.. Makes me wonder if merchants sell platinum now)