Reads Valheim save data and outputs it to a JSON file

Overview

Valheim Save Tools

This repository contains two projects.

  • A command line interface tool that converts Valheim save files to and from JSON and processes them.
  • A Java library that can be used in your own Java projects.

The following formats are supported:

  • World data files (.db)
  • World metadata files (.fwl)
  • Character files (.fch)

Running the Command Line Interface tool

There are three ways to get the CLI Tool:

  • Download the Latest release,
  • Download a snapshot build (click on a commit and find the artifact in the bottom)
  • Build the project yourself (see further down)

When you've got your flavour of valheim-save-tools.jar, make sure you have Java 11 installed, and use it as follows:

usage: java -jar valheim-save-tools.jar <infile> [outfile] [--addGlobalKey
       <arg>] [--cleanStructures] [--cleanStructuresThreshold <arg>]
       [--failOnUnsupportedVersion] [--listGlobalKeys] [--removeGlobalKey
       <arg>] [--resetWorld] [--skipResolveNames] [-v]
    --addGlobalKey <arg>               Adds a global key (.db only)
    --cleanStructures                  Cleans up player built structures
                                       (.db only)
    --cleanStructuresThreshold <arg>   Minimum amount of structures to
                                       consider as a base (default 25)
    --failOnUnsupportedVersion         Fail when input archive version is
                                       newer than known supported
    --listGlobalKeys                   List global keys (.db only)
    --removeGlobalKey <arg>            Remove a global key, specify 'all'
                                       to remove all (.db only)
    --resetWorld                       Regenerates all zones that don't
                                       have player-built structures in
                                       them (experimental, .db only)
    --skipResolveNames                 Do not resolve names of prefabs and
                                       property keys (faster for
                                       processing, .db only)
 -v,--verbose                          Print debug output
<infile>: Input file of type .fch, .db, .fwl or .json
<outfile>: Output file of type .fch, .db, .fwl or .json (optional)

Processors

A handful of built-in processors are included. They are executed in the order they are documented.

Global Keys

Use --listGlobalKeys to list all the global keys in a .db file. With --removeGlobalKey <arg> global keys can be removed. Specify --removeGlobalKey all to clear all global keys. --addGlobalKey <arg> can be used to add a global key.

CleanStructuresProcessor

Usage: --cleanStructures

This will attempt to remove any bases with structures smaller than the threshold. By default this threshold is 25 buildings, but it can be configured with --cleanStructuresThreshold <arg>.

The processor first flags all chunks where:

  • The chunk itself contains at least 25 building pieces
  • The chunk and all neighbouring chunks contain at least 25 building pieces.

Only buildable pieces count towards this number. Excluded are:

  • Dig / Raise actions
  • Farms
  • Paths and roads

Then it will find and flag any connecting chunks with player built changes in them. This includes farms, paths between bases, etc.

Ships will be left alone.

Any chunks that are not flagged will be cleared of player built structures.

It works great as a preprocessor for ResetWorldProcessor to first remove smaller bases (for example temporary beds / campfires outside a crypt).

ResetWorldProcessor

Usage: --resetWorld

This will attempt to reset the generation state of all chunks and locations, except for:

  • Zones with player-built structures
  • Zones with boss stones

Flags

--failOnSupportedVersion

The program will exit with code 1 when a version is detected that is higher than the last known supported version. When you automated processing of save files, for example on an auto-updated server, this might come in handy in order to not lose any information / corrupt your save files.

--verbose

Some processors listen to this flag to show more information about the process.

--skipResolveNames

Property keys and prefab names are present in a hashed form in the save file. By default, an attempt is made to look them up in a reverse lookup table of known texts. For processing, this can be disabled in order to improve processing performance and decrease memory usage.

Building

Build the project with gradlew build, a jar build/libs/valheim-save-tools.jar with all dependencies included will be created.

This project uses Lombok (https://projectlombok.org/) to prevent boilerplate code. To fix compilation errors in your IDE (Eclipe, IntelliJ), make sure you have a plugin installed for that.

Using the library in your Java project

From version 1.0.4, the library is published as a Maven package to Github packages. See https://github.com/Kakoen?tab=packages&repo_name=valheim-save-tools

Gradle

Include the following in your build.gradle file to use valheim-save-tools-lib as a dependency.

repositories {
    maven {
        url = uri("https://maven.pkg.github.com/kakoen/valheim-save-tools")
        credentials {
            username = System.getenv("GITHUB_ACTOR")
            password = System.getenv("GITHUB_PACKAGES_READ_TOKEN")
        }
    }
}

dependencies {
    implementation group: 'net.kakoen.valheim', name: 'valheim-save-tools-lib', version: '1.0.4-SNAPSHOT'
}

This requires two environment variables:

Maven

See https://docs.github.com/en/packages/guides/configuring-apache-maven-for-use-with-github-packages adding the Github repository and setting up authentication for it.

You'll need to add repository url: https://maven.pkg.github.com/kakoen/valheim-save-tools

And then add the following dependency:

<dependency>
  <groupId>net.kakoen.valheim</groupId>
  <artifactId>valheim-save-tools-lib</artifactId>
  <version>1.0.4-SNAPSHOT</version>
</dependency>
Comments
  • Player Map Data

    Player Map Data

    Is it possible to read the map data for the player? I'd like to be able to pull out the data for what the player has explored. I see a section for mapData in WorldPlayerData.java.

    enhancement 
    opened by robisaks 4
  • Java exception when converting json back to db

    Java exception when converting json back to db

    My map seed didn't have the dragonqueen in it, so I extracted the .db file to json (670MB!), copied and pasted the Vendor_BlackForest entry and modified the coördinates for it. But now when I convert it back it throws this error:

    INFO Reading from /mnt/c/Users/Pieter/worldjson.json
    INFO Archive type: DB
    INFO Saving DB to /mnt/c/Users/Pieter/worldnew.db
    Exception in thread "main" java.lang.NullPointerException
            at net.kakoen.valheim.save.parser.ZPackage.writeString(ZPackage.java:342)
            at net.kakoen.valheim.save.archive.save.PrefabLocation.save(PrefabLocation.java:26)
            at net.kakoen.valheim.save.archive.save.Zones.lambda$save$0(Zones.java:67)
            at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
            at net.kakoen.valheim.save.archive.save.Zones.save(Zones.java:67)
            at net.kakoen.valheim.save.archive.ValheimSaveArchive.writeZdos(ValheimSaveArchive.java:86)
            at net.kakoen.valheim.save.archive.ValheimSaveArchive.save(ValheimSaveArchive.java:66)
            at net.kakoen.valheim.save.SaveToolsCLI.saveArchive(SaveToolsCLI.java:77)
            at net.kakoen.valheim.save.SaveToolsCLI.main(SaveToolsCLI.java:56)
    

    Any ideas on what I'm doing wrong or how I can put the dragonqueen in my world file?

    opened by pieterhouwen 3
  • Skill codes?

    Skill codes?

    I noticed the skill keys are codes rather than "run" or "bows" or "jump" or whatever. Do you know of a way to convert these codes into what they represent?

        "skills" : {
          "102" : {
            "level" : 38.80513,
            "accumulator" : 104.39973
          },
          "100" : {
            "level" : 28.900082,
            "accumulator" : 54.5
          },
          "11" : {
            "level" : 8.606367,
            "accumulator" : 6.5
          },
          "103" : {
            "level" : 13.091787,
            "accumulator" : 14.550003
          },
          "3" : {
            "level" : 4.088865,
            "accumulator" : 0.0
          },
          "6" : {
            "level" : 7.2975364,
            "accumulator" : 8.75
          },
          "8" : {
            "level" : 20.63859,
            "accumulator" : 20.25
          },
          "101" : {
            "level" : 7.737179,
            "accumulator" : 3.825
          },
          "7" : {
            "level" : 11.408714,
            "accumulator" : 17.5
          },
    ...
    

    Thanks!

    opened by genehynson 2
  • How do compass directions relate to x/y/z coordinates?

    How do compass directions relate to x/y/z coordinates?

    I wrote a script that searches the JSON for the string "Vendor_BlackForest" which is apparently the name of Haldor. I found some coordinates associated with it, which I'm assuming is where he's located (for me, he's very far in the negative Z direction, and slightly less far in the positive X direction... The Y direction seems to measure altitude). Do you know, or is there a way to know how X and Z relate to North/South/East/West in game?

    opened by JoshuaWise 2
  • Bump slf4j-simple from 2.0.4 to 2.0.5

    Bump slf4j-simple from 2.0.4 to 2.0.5

    Bumps slf4j-simple from 2.0.4 to 2.0.5.

    Commits
    • 7e62e1e prepare release 2.0.5
    • d250ad7 in jcl-over-slf4j rename LICENSE.TXT as LICENSE, add LICENSE file to log4j-ov...
    • 3bc58f3 add SecurityManager support
    • 207bb29 start work on 2.0.5-SNAPSHOT
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slf4j-api from 2.0.4 to 2.0.5

    Bump slf4j-api from 2.0.4 to 2.0.5

    Bumps slf4j-api from 2.0.4 to 2.0.5.

    Commits
    • 7e62e1e prepare release 2.0.5
    • d250ad7 in jcl-over-slf4j rename LICENSE.TXT as LICENSE, add LICENSE file to log4j-ov...
    • 3bc58f3 add SecurityManager support
    • 207bb29 start work on 2.0.5-SNAPSHOT
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump jackson-databind from 2.13.1 to 2.14.0

    Bump jackson-databind from 2.13.1 to 2.14.0

    Bumps jackson-databind from 2.13.1 to 2.14.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump jackson-databind from 2.13.1 to 2.13.4.2

    Bump jackson-databind from 2.13.1 to 2.13.4.2

    Bumps jackson-databind from 2.13.1 to 2.13.4.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump jackson-databind from 2.13.1 to 2.13.4.1

    Bump jackson-databind from 2.13.1 to 2.13.4.1

    Bumps jackson-databind from 2.13.1 to 2.13.4.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slf4j-simple from 1.7.35 to 2.0.3

    Bump slf4j-simple from 1.7.35 to 2.0.3

    Bumps slf4j-simple from 1.7.35 to 2.0.3.

    Commits
    • b2cb05f prepare release 2.0.3
    • 4b5bb41 fix SLF4J-546, Fluent logging API doesn't populate timestamp with Reload4JLogger
    • b500a6f javadoc explaining using multiple markers instead of nested markers
    • d81affb comment about ThreadLocal key or value types
    • bcbbe40 Reword Marker Javadoc to improve grammar.
    • 7686020 Merge pull request #310 from ascopes/patch-1
    • 3f47f87 Add missing javadoc to SLF4JServiceProvider.java
    • eb1710a start work on 2.0.3-SNAPSHOT, fix SLF4J-564
    • bb49a5a Merge pull request #307 from radio-rogal/slf4j-564-simple-logger-javadoc
    • 768ca7d [SLF4J-564] slf4j-simple: fix javadoc for SimpleLogger
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slf4j-api from 1.7.35 to 2.0.3

    Bump slf4j-api from 1.7.35 to 2.0.3

    Bumps slf4j-api from 1.7.35 to 2.0.3.

    Commits
    • b2cb05f prepare release 2.0.3
    • 4b5bb41 fix SLF4J-546, Fluent logging API doesn't populate timestamp with Reload4JLogger
    • b500a6f javadoc explaining using multiple markers instead of nested markers
    • d81affb comment about ThreadLocal key or value types
    • bcbbe40 Reword Marker Javadoc to improve grammar.
    • 7686020 Merge pull request #310 from ascopes/patch-1
    • 3f47f87 Add missing javadoc to SLF4JServiceProvider.java
    • eb1710a start work on 2.0.3-SNAPSHOT, fix SLF4J-564
    • bb49a5a Merge pull request #307 from radio-rogal/slf4j-564-simple-logger-javadoc
    • 768ca7d [SLF4J-564] slf4j-simple: fix javadoc for SimpleLogger
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Exception in thread

    Exception in thread "main" java.nio.BufferUnderflowException

    Compiled from the latest code with java 17

    When trying to convert a char fch to json I got:

    java -jar valheim-save-tools.jar char.fch char.json -v
    INFO Reading from /home/user/GitHub/valheim-save-tools/build/libs/char.fch
    WARN Character version 37 encountered, last tested version was 33
    WARN Map version 7 encountered, but latest tested map version was 4
    WARN Object at 92 with size 8379 was not fully read, 8371 bytes remain
    WARN At net.kakoen.valheim.save.archive.character.WorldPlayerData.<init>(WorldPlayerData.java:39)
    WARN Object at 4 with size 48184 was not fully read, 39717 bytes remain
    WARN At net.kakoen.valheim.save.archive.ValheimCharacter.<init>(ValheimCharacter.java:41)
    WARN File not fully read, 68 bytes remain
    Exception in thread "main" java.nio.BufferUnderflowException
            at java.base/java.nio.ByteBuffer.get(ByteBuffer.java:798)
            at java.base/java.nio.ByteBuffer.get(ByteBuffer.java:826)
            at net.kakoen.valheim.save.parser.ZPackage.readBytes(ZPackage.java:136)
            at net.kakoen.valheim.save.archive.character.MinimapData.<init>(MinimapData.java:38)
            at net.kakoen.valheim.save.archive.character.WorldPlayerData.lambda$new$0(WorldPlayerData.java:39)
            at net.kakoen.valheim.save.parser.ZPackage.readFixedSizeObject(ZPackage.java:163)
            at net.kakoen.valheim.save.parser.ZPackage.readLengthPrefixedObject(ZPackage.java:187)
            at net.kakoen.valheim.save.archive.character.WorldPlayerData.<init>(WorldPlayerData.java:39)
            at net.kakoen.valheim.save.archive.ValheimCharacter.lambda$new$1(ValheimCharacter.java:58)
            at net.kakoen.valheim.save.parser.ZPackage.readFixedSizeObject(ZPackage.java:163)
            at net.kakoen.valheim.save.parser.ZPackage.readLengthPrefixedObject(ZPackage.java:187)
            at net.kakoen.valheim.save.archive.ValheimCharacter.<init>(ValheimCharacter.java:41)
            at net.kakoen.valheim.cli.SaveToolsCLI.readValheimArchive(SaveToolsCLI.java:123)
            at net.kakoen.valheim.cli.SaveToolsCLI.main(SaveToolsCLI.java:52)
    

    Can you please update the tool? Thanks in advance!

    opened by digoo 0
  • Bump slf4j-simple from 2.0.4 to 2.0.6

    Bump slf4j-simple from 2.0.4 to 2.0.6

    Bumps slf4j-simple from 2.0.4 to 2.0.6.

    Commits
    • 5ff6f2c prepare for release 2.0.6
    • 2f4aa75 fix SLF4J-575
    • 363f0a5 remove unused parts
    • 171679b SLF4J-574: Add full OSGi headers, especially "uses" clauses
    • 921b5b3 fix FUNDING file
    • e02244c fix FUNDING file
    • 441d458 fix FUNDING file
    • f5e741b add FUNDING file
    • 2e71327 remove unused log4j dependency in the version definition section of pom.xml
    • 3ff2a30 start work on 2.0.6-SNAPSHOT
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump slf4j-api from 2.0.4 to 2.0.6

    Bump slf4j-api from 2.0.4 to 2.0.6

    Bumps slf4j-api from 2.0.4 to 2.0.6.

    Commits
    • 5ff6f2c prepare for release 2.0.6
    • 2f4aa75 fix SLF4J-575
    • 363f0a5 remove unused parts
    • 171679b SLF4J-574: Add full OSGi headers, especially "uses" clauses
    • 921b5b3 fix FUNDING file
    • e02244c fix FUNDING file
    • 441d458 fix FUNDING file
    • f5e741b add FUNDING file
    • 2e71327 remove unused log4j dependency in the version definition section of pom.xml
    • 3ff2a30 start work on 2.0.6-SNAPSHOT
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Example payloads within readme

    Example payloads within readme

    It would be fantastic if there were example payloads within the readme. My use case is that I don't have access to the server files right now (on the train) but want to assess whether this projects does what I need.

    opened by surdaft 0
  • Bump junit-jupiter-api from 5.9.0 to 5.9.1

    Bump junit-jupiter-api from 5.9.0 to 5.9.1

    Bumps junit-jupiter-api from 5.9.0 to 5.9.1.

    Release notes

    Sourced from junit-jupiter-api's releases.

    JUnit 5.9.1 = Platform 1.9.1 + Jupiter 5.9.1 + Vintage 5.9.1

    See Release Notes.

    Commits
    • 732a540 Release 5.9.1
    • 88bf48d Prepare release notes for 5.9.1
    • d75e34d Update scope for 5.9.1
    • 9823f73 Link to all 5.9 milestone pages
    • 76719bb Increase timeout for GraalVM test
    • 2a80984 Install GraalVM for main CI build on Linux
    • 79f47f5 Refactor OpenTestReportGeneratingListener to work in native images
    • 7229385 Add failing integration test for execution on GraalVM native image
    • 343170f Fix running tests in documentation from IntelliJ IDEA
    • 352d06b Attempt to stabilize test on Windows
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump com.github.johnrengelman.shadow from 6.1.0 to 7.1.2

    Bump com.github.johnrengelman.shadow from 6.1.0 to 7.1.2

    Bumps com.github.johnrengelman.shadow from 6.1.0 to 7.1.2.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(1.1.0)
  • 1.1.0(Apr 21, 2021)

    • #11 Added rudimentary read/write support for saves that use the new terrain system (World version 27, Valheim v0.150.3)
    • More advanced support for parsing terrain data can be expected in a future version.
    • Added --cleanStructures (.db) processor which aids in removing smaller temporary structures
    Source code(tar.gz)
    Source code(zip)
    valheim-save-tools.jar(2.03 MB)
  • 1.0.3(Mar 6, 2021)

    • Added processors that modify the archive between reading and writing.
    • It is now possible to load and save to the same archive format immediately without having to convert to JSON.
    • Added archive type information to the generated json files. JSON files written by version 1.0.2 or lower are incompatible, since a top level 'type' attribute with a value of either 'DB', 'FCH' or 'FWL' is now expected.
    • Added .db processor --listGlobalKeys: List global keys, which describe the progression of the world.
    • Added .db processor --removeGlobalKey: you can remove global keys from a .db file (world progression), or all by specifying 'all'
    • Added .db processor --resetWorld (experimental): regenerate the world, including resources, POIs and Dungeons. Leaves player-built structures intact.
    • Added .db related hint --skipResolveNames: improves processing performance, but makes JSON less readable, since prefab types and property keys are no longer converted to readable strings were possible.
    usage: java -jar valheim-save-tools.jar <infile> [outfile]
           [--listGlobalKeys] [--removeGlobalKey <arg>] [--resetWorld]
           [--skipResolveNames]
        --listGlobalKeys          List global keys (.db only)
        --removeGlobalKey <arg>   Remove a global key, specify 'all' to remove
                                  all (.db only)
        --resetWorld              Regenerates all zones that don't have
                                  player-built structures in them
                                  (experimental, .db only)
        --skipResolveNames        Do not resolve names of prefabs and property
                                  keys (faster for processing, .db only)
    <infile>: Input file of type .fch, .db, .fwl or .json
    <outfile>: Output file of type .fch, .db, .fwl or .json (optional)
    
    Source code(tar.gz)
    Source code(zip)
    valheim-save-tools.jar(3.82 MB)
  • 1.0.2(Mar 5, 2021)

  • 1.0.1(Mar 2, 2021)

  • 1.0.0(Feb 27, 2021)

Owner
Koen de Kok
Developer at TOPdesk and founder of gaming community DomiNATION Gaming (https://www.domination-gaming.com/)
Koen de Kok
A simple program that is realized by entering data, storing it in memory (in a file) and reading from a file to printing that data.

Pet project A simple program that is realized by entering data, storing it in memory (in a file) and reading from a file to printing that data. It can

Ljubinko Stojanović 3 Apr 28, 2022
A small tools to play with JavaFX Color.derive() function - allows to create custom colors and to save those in color palettes.

DeriveColorsFX This is not a serious application. Its a small tool where I just played with the method Color::deriveColor provided by JavaFX. Also its

Oliver Löffler 11 Oct 9, 2022
A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

FileManager A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas. Enables folder creatio

Zongyu Wu 4 Feb 7, 2022
A scientific charting library focused on performance optimised real-time data visualisation at 25 Hz update rates for data sets with a few 10 thousand up to 5 million data points.

ChartFx ChartFx is a scientific charting library developed at GSI for FAIR with focus on performance optimised real-time data visualisation at 25 Hz u

GSI CS-CO/ACO 385 Dec 30, 2022
null 4 Oct 21, 2022
JFXNodeMapper - a simple library that focuses on mapping data from common data represntation formats to JavaFx Nodes

JFXNodeMapper - a simple library that focuses on mapping data from common data represntation formats to JavaFx Nodes. Our main focus is to build a library that,

Aby Kuruvilla 7 Oct 15, 2021
JavaFX Webview of JSON resume files

ResumeFX renders a JavaFX view of .json file that follows jsonresume.org standard and has the necessary configuration to be embedded in the web browser thanks to JPro.

TangoraBox 7 Dec 15, 2021
Lifecycle-aware shared observable data holder class for android.

Eyejet Lifecycle-aware shared observable data holder class for android. 1. Depend on our library Eyejet Library is available through Maven Repository.

ZeoFlow 16 Jul 27, 2021
A Time Series Data Browser

Contents What is binjr? Features Getting started Trying it out Getting help Contributing How is it licensed? What is binjr? binjr is a time series bro

binjr 206 Dec 17, 2022
Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile Intention Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE and provides the functionalities to use and handle easily Tile

Peter Rogge 13 Apr 13, 2022
Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

AndroidResourceManager Cross-Platform tools to manage your resources as an Android Developer, AndroidResourceManager - ARM provide five main services

Amr Hesham 26 Nov 16, 2022
🌄 Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)

React Native Photo Editor (RNPE) ?? Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and Ph

Baron Ha. 243 Jan 4, 2023
Lobby System Template for a multiplayer java game, with chat and other features, using JavaFX and socket TCP (will be extended to UDP).

JavaFX-MultiplayerLobbySystem JavaFX lobby system for multiplayer games with chat, ready toggle and kick buttons, using socket TCP by default. Demo Cr

Michele Righi 7 May 8, 2022
A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

⚡ A powerful & easy to use chart library for Android ⚡ Charts is the iOS version of this library Table of Contents Quick Start Gradle Maven Documentat

Philipp Jahoda 36k Jan 9, 2023
A desktop application designed to serve the co-curricular uses of students, clubs and forums, and admins of United International University.

ECA Management System Made by "Team Apocalypse": S M Jishanul Islam Sadia Ahmmed Sahid Hossain Mustakim Description A desktop application designed to

S M Jishanul Islam 2 Jan 31, 2022
A Java framework for creating sophisticated calendar views (JavaFX 8, 9, 10, and 11)

CalendarFX A Java framework for creating sophisticated calendar views based on JavaFX. A detailed developer manual can be found online: CalendarFX 8 D

DLSC Software & Consulting GmbH 660 Jan 6, 2023
💠 Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.

Support me joining PI Network app with invitation code AlexKent FX-BorderlessScene ( Library ) ?? Undecorated JavaFX Scene with implemented move, resi

Alexander Kentros 125 Jan 4, 2023
A JavaFX 3D Visualization and Component Library

FXyz3D FXyz3D Core: FXyz3D Client: FXyz3D Importers: A JavaFX 3D Visualization and Component Library How to build The project is managed by gradle. To

null 16 Aug 23, 2020
A collection of JavaFX controls and utilities.

GemsFX At least JDK 11 is required. Dialog Pane The class DialogPane can be used as a layer on top of any application. It offers various methods to di

DLSC Software & Consulting GmbH 269 Jan 5, 2023