Mods / Eternal Seraph: Molfaris

Draft

Set to published to be listed. A draft mod is still visible to everyone via direct link
Tags:
Utility
Author:
Lumvik
Side:
Both
Created:
Aug 1st at 1:44 PM
Last modified:
Sep 3rd at 8:38 AM
Downloads:
129
Recommended download (for Vintage Story 1.22.7):
EternalS-Molfaris-0.6.1.zip  1-click install

EternalS Doctor is a server-side diagnostics and world-repair tool for Vintage Story 1.22.6 and compatible Stratum servers. Clients do not need to install the mod.

Diagnostics are read-only. Cleanup and replacement commands modify world data, so always create a complete backup first.

Server Diagnostics

Check server performance, TPS drops, freezes, memory growth, world-generation spikes, and recurring errors:

/eternaldoctor diagnose 15
/eternaldoctor status
/eternaldoctor report
/eternaldoctor stop

Diagnostic commands do not modify the world or disable any mods.

Missing Block Cleanup

Scan for and remove missing blocks left behind after a mod has been removed.

Back up the entire world before using cleanup or replacement commands.

/eternaldoctor missing scan
/eternaldoctor missing clean
/eternaldoctor missing scanloaded
/eternaldoctor missing cleanloaded
/eternaldoctor missing status
/eternaldoctor missing stop

After the scan finishes, all detected missing block codes are displayed in chat. Click a code to prepare a replacement command. A single completed scan can be reused for multiple cleanup and replacement operations.

Run a new scan after restarting the server. Only chunks that already exist in the world save are processed.

Cleanup affects every matching block in the selected chunks, including blocks placed by players. Vintage Story does not store information about whether a block was generated naturally or placed manually.

Missing Block Replacement

Replace missing blocks with registered blocks from Vintage Story or another installed mod.

/eternaldoctor missing replace oldmod:missing-ore game:rock-granite
/eternaldoctor missing replaceloaded oldmod:missing-ore game:rock-granite

Run missing scan first. Both the missing block code and the replacement block code must be exact. Multiple replacements can be performed using a single completed scan.

Loaded chunks are fully refreshed and relit after cleanup or replacement.

Replacement does not modify items, inventories, recipes, entities, or mod configuration.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
0.6.1 molfaris 3 Sep 3rd at 8:38 AM Empty EternalS-Molfaris-0.6.1.zip 1-click install
0.5.3 molfaris 2 Sep 2nd at 10:48 PM Empty EternalS-Molfaris-0.5.3.zip 1-click install
0.4.8 molfaris 3 Sep 2nd at 11:51 AM Empty EternalS-Molfaris-0.4.8.zip 1-click install
0.4.5 molfaris 2 Sep 2nd at 9:02 AM Empty Molfaris.zip 1-click install
0.3.1 eternaldoctor 18 Aug 18th at 4:35 PM EternalS-Doctor-0.3.1.zip 1-click install
  • Fixed diagnostics being incorrectly disabled on Stratum servers.
0.3.0 eternaldoctor 9 Aug 18th at 5:46 AM EternalS-Doctor-0.3.0.zip 1-click install
  • Added detection of missing blocks stored in the save's block ID map, including decorative blocks and solid/fluid block layers.

  • Scan results now display all detected missing block types with their counts.

  • Added clickable missing-block codes in scan results. Clicking a code prepares a replacement command in chat.

  • Added exact block replacement for all saved chunks and currently loaded chunks.

  • Replacement validation rejects unregistered, missing, or incompatible replacement blocks.

  • Cleanup and replacement reuse the last completed compatible scan and process only chunks where matching block types were found.

  • Added full chunk relighting and client chunk refresh after cleanup or replacement in loaded chunks.

  • Added block-entity removal at cleaned positions.

  • Added support for filtering scans and cleanup operations by mod domain.

  • Supports Vintage Story 1.22.6 and compatible Stratum 1.22.6 servers.

0.2.5 eternaldoctor 19 Aug 13th at 7:34 PM EternalS-Doctor-0.2.5.zip 1-click install
  • Prevented allocation evidence from being counted twice.
  • Global memory growth is no longer attributed to individual mods.

  • Improved ownership detection for entity behaviors and engine profiler markers.

  • Separated general world generation from heavy structure placement.

  • Prevented minor mod activity from being amplified by global chunk pressure.

  • Reduced false memory-leak suspicions.

  • Improved ranking accuracy for performance-heavy mods.

0.2.3 eternaldoctor 18 Aug 13th at 12:29 AM EternalS-Doctor-0.2.3.zip 1-click install
  • Fixed an issue that caused most metrics to not work.

  • Improved the accuracy and reliability of issue detection.

  • Improved log explanations, making diagnostic results clearer.

0.2.1 eternaldoctor
1.22.5 - 1.22.6
19 Aug 12th at 1:21 PM EternalS-Doctor-0.2.1.zip 1-click install
  • Fixed a crash caused by unsafe extended health probing during diagnostics.
0.2.0 eternaldoctor
1.22.5 - 1.22.6
12 Aug 12th at 12:38 PM EternalS-Doctor-0.2.0.zip 1-click install
  • Added a new server cleanup module that detects and removes missing/unknown blocks left behind after mods are removed.

  • Improved the diagnostics module for more reliable and accurate issue detection.

  • Reworked diagnostic logs to make them cleaner, clearer, and easier to understand.

0.1.1 esadministrator
1.22.5 - 1.22.6
24 Aug 1st at 2:31 PM Empty EternalS-Administrator-0.1.1.zip 1-click install

12 Comments (oldest first | newest first) (threaded | flat)

Hiran, Sep 3rd at 8:20 PM

I see the mod in loaded mods, but when I try to use its commands I get "No such command exists". I use CachyOs if that makes any difference (for some mods it does).

Lumvik , Sep 3rd at 11:34 PM
@Hiran: I see the mod in loaded mods, but when I try to use its commands I get "No such command exists". I use CachyOs if that makes any difference (for some mods it does).

This mod is currently being reworked and is marked as a draft. An update will be released a bit later.

Lumvik , Aug 18th at 4:35 PM
  • Fixed diagnostics being incorrectly disabled on Stratum servers.
Lumvik , Aug 18th at 5:57 AM
  • Added detection of missing blocks stored in the save's block ID map, including decorative blocks and solid/fluid block layers.

  • Scan results now display all detected missing block types with their counts.

  • Added clickable missing-block codes in scan results. Clicking a code prepares a replacement command in chat.

  • Added exact block replacement for all saved chunks and currently loaded chunks.

  • Replacement validation rejects unregistered, missing, or incompatible replacement blocks.

  • Cleanup and replacement reuse the last completed compatible scan and process only chunks where matching block types were found.

  • Added full chunk relighting and client chunk refresh after cleanup or replacement in loaded chunks.

  • Added block-entity removal at cleaned positions.

  • Added support for filtering scans and cleanup operations by mod domain.

  • Supports Vintage Story 1.22.6 and compatible Stratum 1.22.6 servers.

MadSeraph, Aug 15th at 2:58 AM

It would be really nice if the missing block feature could be instructed to substitute another block. For example, if a mod adds an ore I would like to replace it with its host stone block, or if I replace a mod that provides a crop with a different mod providing an alternative to the same crop.

MadSeraph, Aug 15th at 1:29 PM
@MadSeraph: It would be really nice if the missing block feature could be instructed to substitute another block. For example, if a mod adds an ore I would like to replace it with its host stone block, or if I replace a mod that provides a crop with a different mod p

I did a little testing with a mod I very badly want to remove from my server, Boric Alchemy, but have been unwilling to do so because of its extensive world gen additions. The missing block module here does detect some of it, but it misses much. It has several deposits that act like saltpeter it misses, and it also has a dandelion flower that grows everywhere that is missed.

Lumvik , Aug 15th at 3:37 PM (modified Aug 15th at 3:37 PM)
@MadSeraph: I did a little testing with a mod I very badly want to remove from my server, Boric Alchemy, but have been unwilling to do so because of its extensive world gen additions. The missing block module here does detect some of it, but it misses much. It has se

I'll take a look at what I can do to make the mod detect more missing blocks/items.
So far, I've only tested the cleanup with Wild Grass, and everything worked perfectly there.

I think I'll also add the ability to substitute missing blocks with other blocks later on.
If you have any other ideas, suggestions, or cases where it misses something, feel free to post them here.

MadSeraph, Aug 16th at 4:33 AM
@Lumvik: I'll take a look at what I can do to make the mod detect more missing blocks/items.So far, I've only tested the cleanup with Wild Grass, and everything worked perfectly there.I think I'll also add the ability to substitute missing blocks with other blocks

There are a couple of other things I noticed. I just didn't want to overwhelm or complain too much because this mod looks really good. I haven't even gotten into the performance analytics which, from what I can see in ilspy, look extensive and well thought out! If you decide to open source this at any point, I would be happy to contribute.

The two other issues I noted are:

1) Chunk relighting is not performed. In the Boric Alchemy example, you see a lot of ore deposits on cliff sides similar to how quartz often appears. When deleted, the block light at those locations remains at 0. This would be less of an issue in the case of a hypothetical block replacement feature, but for deletions it can be a problem.

2) The client doesn't appear to fully rebuild chunk geometry when an actively loaded chunk is processed. Using the same example, the newly exposed faces are not rendered causing rendering holes until the client reloads the area.

I'm really excited about the future possibilities of this mod. The technical approach promises to fill some very large gaps in server and world administration that exist in Vintage Story! Thank you for your efforts.

Lumvik , Aug 18th at 5:56 AM (modified Aug 18th at 5:56 AM)
@MadSeraph: There are a couple of other things I noticed. I just didn't want to overwhelm or complain too much because this mod looks really good. I haven't even gotten into the performance analytics which, from what I can see in ilspy, look extensive and well though

Hi! I really appreciate it, but I prefer to work on the mod independently. But I'm always happy to receive feedback, bug reports, and suggestions.
I've now added chunk relighting and geometry refreshes after block removal or replacement operations, so the issues you described should hopefully be resolved.
I hope the mod helps you clean up your world successfully and that everything goes smoothly. Thanks a lot for the detailed report!

Lumvik , Aug 18th at 5:51 AM (modified Aug 18th at 5:56 AM)
@MadSeraph: I did a little testing with a mod I very badly want to remove from my server, Boric Alchemy, but have been unwilling to do so because of its extensive world gen additions. The missing block module here does detect some of it, but it misses much. It has se

I added support for the blocks you mentioned. I tested it by successfully replacing the blue stuff from the mod with vanilla saltpeter, and the flower worked without any issues as well.
The replacement block is placed in exactly the same position as the original block.

MadSeraph, Aug 20th at 12:14 AM
@Lumvik: I added the ability to replace missing blocks. You can give it a try, but don’t forget to make a backup first.

Holy smokes... this is big news! I won't have time for big server maintenance jobs until the weekend, but I'll definitely be trying it and let you know! I'll be telling all 3 people I know about it too. ;)