Use a world created by the official client on a Nukkit server

Deepthink

New Member
Hello

I'm new to hosting MC level but I have installed Nukkit and stated it successfully. Now I want to transfer the level created on the IOS client 1.2.11 on Nukkit. I have transferred all worlds form the iPad to my Mac (using iMazing). I have then copied one of the worlds to the Nukkit worlds folder and edited server.properties to load the new world. I got the following output:

<code>
11:35:09 [INFO] Old level data found for "Alex,Alfred??", converting format
11:35:09 [ERROR] Could not load level "ax2": java.lang.IllegalArgumentException: Unknown persistentId 4
11:35:09 [ALERT] com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unknown persistentId 4
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2217)
at com.google.common.cache.LocalCache.get(LocalCache.java:4154)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147)
at org.iq80.leveldb.impl.TableCache.getTable(TableCache.java:91)
at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:79)
at org.iq80.leveldb.impl.TableCache.newIterator(TableCache.java:74)
at org.iq80.leveldb.util.LevelIterator.openNextFile(LevelIterator.java:137)
at org.iq80.leveldb.util.LevelIterator.getNextElement(LevelIterator.java:113)
at org.iq80.leveldb.util.AbstractSeekingIterator.hasNext(AbstractSeekingIterator.java:48)
at org.iq80.leveldb.util.DbIterator.resetPriorityQueue(DbIterator.java:160)
at org.iq80.leveldb.util.DbIterator.<init>(DbIterator.java:75)
at org.iq80.leveldb.impl.DbImpl.internalIterator(DbImpl.java:781)
at org.iq80.leveldb.impl.DbImpl.iterator(DbImpl.java:747)
at org.iq80.leveldb.impl.DbImpl.iterator(DbImpl.java:738)
at org.iq80.leveldb.impl.DbImpl.iterator(DbImpl.java:84)
at java.base/java.lang.Iterable.forEach(Iterable.java:74)
at cn.nukkit.level.format.leveldb.LevelDB.getTerrainKeys(LevelDB.java:556)
at cn.nukkit.level.LevelProviderConverter.perform(LevelProviderConverter.java:112)
at cn.nukkit.level.Level.<init>(Level.java:286)
at cn.nukkit.Server.loadLevel(Server.java:1678)
at cn.nukkit.Server.<init>(Server.java:472)
at cn.nukkit.Nukkit.main(Nukkit.java:102)
Caused by: java.lang.IllegalArgumentException: Unknown persistentId 4
at org.iq80.leveldb.CompressionType.getCompressionTypeByPersistentId(CompressionType.java:34)
at org.iq80.leveldb.table.BlockTrailer.readBlockTrailer(BlockTrailer.java:96)
at org.iq80.leveldb.table.MMapTable.readBlock(MMapTable.java:95)
at org.iq80.leveldb.table.Table.<init>(Table.java:61)
at org.iq80.leveldb.table.MMapTable.<init>(MMapTable.java:48)
at org.iq80.leveldb.impl.TableCache$TableAndFile.<init>(TableCache.java:127)
at org.iq80.leveldb.impl.TableCache$TableAndFile.<init>(TableCache.java:114)
at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:67)
at org.iq80.leveldb.impl.TableCache$1.load(TableCache.java:62)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211)
... 22 more

11:35:09 [EMERGENCY] No default level has been loaded
</code>

The level data has a different format and the level has a subfolder called db which contains the following files
├── behavior_packs
├── db
│ ├── 000833.log
│ ├── 000835.ldb
│ ├── CURRENT
│ ├── LOCK
│ └── MANIFEST-000826
├── level.dat
├── level.dat_old
├── levelname.txt
├── resource_packs
├── world_behavior_packs.json
├── world_icon.jpeg
└── world_resource_packs.json

The only file of any size db/000835.ldb which is almost 2mb.

What do I need to to to load the world.
 

SupremeMortal

Administrator
Staff member
Nukkit's leveldb world format hasn't been updated for over a year so you'll have to find a standalone tool to convert LevelDB worlds to the Anvil format.
 

Damastah

New Member
Ok. Thanks. I guess my best bet its MCC Toolchest. I'll give it a try.
Many people suggest MCC Toolchest. It does have a few issues. The items in the chests are not moved over, and the starting position for each player is reset, as well. The second option isn't a huge issue, but if you've amassed a lot of possessions, it may cause a problem.
 
Top