FAQ
Where are the complete examples?
Why are many empty records exported?
Edited Excel cells can retain invisible styles after their contents are deleted, producing empty rows. Delete the actual rows in Excel.
Why does an Excel time become a negative number?
Distinguish absolute Timestamp values, Duration intervals and ordinary numbers. Streaming reads do not detect date formats; explicitly enable formula evaluation when relying on date-formatted cells and check the values. Excel serial dates, saved caches and textual times are different inputs. See Dates and durations.
Windows reports UnsupportedCharsetException: cp65001
Historical errors include:
ERROR StatusLogger Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.ConsoleAppender, element Console.
java.nio.charset.UnsupportedCharsetException: cp65001
at java.nio.charset.Charset.forName(Unknown Source)
at org.apache.logging.log4j.util.PropertiesUtil.getCharsetProperty(PropertiesUtil.java:146)
at org.apache.logging.log4j.util.PropertiesUtil.getCharsetProperty(PropertiesUtil.java:134)
...
and:
ERROR StatusLogger Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.ConsoleAppender for element Console.
java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.ConsoleAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:952)
...
These came from old Java/log4j environments. Current tools use UTF-8. Check java -version, the JAR version and the actual launch environment. JVM encoding arguments precede -jar:
java -Dfile.encoding=UTF-8 -jar xresloader.jar --version
Current GUI/XML loading does not require globally switching to GBK. If the error persists, retain raw logs and check log4j2 configuration and the actual JRE version.
C++ reports multiple definitions of xresloader symbols
Compile only one of pb_header.pb.cc and pb_header_v3.pb.cc. Use the file for the wrapper your project actually uses: pb_header_v3 for the v3 schema, pb_header for the historical v2 schema.
C++ generated-code version checks fail
Errors such as This file was generated by an older version of protoc ... or This file was generated by a newer version of protoc ... mean the generated code and runtime do not match. Regenerate the application schema and pb_header_v3.proto or pb_header.proto using protoc matching the installed protobuf runtime.
A proto2 API fails to parse repeated numeric fields (Wire Type)
Packable repeated numbers default to packed=false in proto2 and packed=true in proto3. Actual encoding depends on descriptor syntax and explicit options. Compliant parsers accept both forms; using a proto2 API alone does not establish incompatibility.
For old third-party libraries supporting one form, check library versions and generated code, then explicitly set packed and run decoding checks. See proto2/proto3 packed encoding.
Why do unsigned protobuf fields become signed UE fields?
Some languages do not expose unsigned types. Conversion uses signed representations consistent with the Java protobuf SDK. If uint32 input exceeds int32's positive range, use int64 where needed.
Why do UE-Csv and UE-Json generate a Name field?
Name is special in UE JSON and is used as a row lookup key. Both formats generate it for a consistent import structure. A user-defined Name field takes precedence over an automatically generated one.
How can Excel values refer to UE types or assets?
Use org.xresloader.ue.ue_type_name and org.xresloader.ue.ue_type_is_class. See UE export.
Why is a oneof case represented by an FString field name?
The historical UE 4.x integration used FString because UEnum support was based on uint8 while protobuf field numbers are int32. Field-name strings make the case accessible through UE reflection in C++ and Blueprints. This is an explanation of that integration's design, rather than a claim about every current UE version.
Can not reserve enough space for XXX objecct heap
Large workbooks can require at least 1 GB. The sample XML sets <java_option>-Xmx2048m</java_option>. A 32-bit JRE may be unable to reserve that address space. Remove or reduce the setting if necessary; a 64-bit JRE is preferred.
From v2.10.0, --disable-excel-formular selects the indexed reader and reduces memory/CPU use. Disabling evaluation still supports formulas through the result cache saved by Excel. Current defaults and options are in Core parameters.
CLI preview succeeds but produces no files
--test does not run Java. Remove it, then check exit status, working directory and actual files. A successful plan can still fail during workbook or descriptor processing.
Why does the GUI convert items hidden by search?
Search preserves selection. Deselect unwanted items before running and check Preview. Hiding an item does not deselect it.
GUI 3.0 scripts cannot find Electron, jQuery or console
Scripts run in independent Node workers. Use log_* and compatibility tree APIs. Events require explicit resolve/reject; see Script migration.
Custom buttons are missing at startup
Check JSON paths, encoding, names and rules first. In 3.0.0, simultaneous --input and --custom-selector can race even with correct arguments. Restart using only:
xresconv-gui --custom-selector selectors.json
Wait for buttons, then open XML in the UI. Reload configuration alone does not restore lost startup selector wiring. See Extensions.
Why does website language differ from GUI or logs?
The site defaults to English. The homepage reads browser language preferences; the language menu saves manual choices and can return to system preferences. Direct documentation links retain their language. Set English separately in the app's Display settings and use the English starter ZIP for matching project names and scripts. Raw converter and backend logs retain their original language. CLI 2.0.2, engine 2.23.7 and dump-bin 2.6.0 provide English diagnostics without a locale switch; the site does not rewrite their output.