node.setValue(new TypeToken<Map<Vector3i, BlockState>>(){}, schematic.getBlocks());
How it looks: http://imgur.com/a/6KMwr
How Im trying to get it back from config:
Well, first of all, it is literally a Map<String, String>. When you supply a different TypeToken, it converts the value. For example, for the string value minecraft:stone, should getValue() return an ItemType, a BlockType, or a BlockState?
Second, you can’t store a string representation of a HOCON object in a key and expect it to be able to parse out. Only objects that can be obtained from a non-complex value (e.g. string) can be used as keys in a Map. Your best bet is to make a class which implements TypeSerializer<Vector3i>, and register it to the settings of your ConfigurationLoader before loading. Make it be able to parse a string like 2,0,-2. Then you’ll be able to use it in keys.