Skip to content
ryobg edited this page Feb 15, 2018 · 36 revisions

What is JContainers?

JContainers (JSON Containers or just JC) is a library for enhanced data structures for Skyrim Special Edition (SE), and more specifically - a SKSE64 plugin.

It features:

  • Array container - collection of a values (value is any number, text, form or another container). Unlike stock Papyrus array, JC's array (JArray) can store any number of values of any combination of types, can be resized, searched and etc.
  • Associative containers (a.k.a. maps or dictionaries) - store elements formed by a combination of a key value and a mapped value. JMap keys are strings, JFormMap keys are forms.
  • Trees, graphs of data structures - supports combinations of connections between containers.
  • Path resolving - simplifies an access to nested objects via hierarhical strings (paths).
  • Serialization - Export or import a whole graph or tree into or from a JSON file.
  • Lua (in progress) - embedded Lua. You can use it as additional powerful language to script expressions.
  • Threadsafe - its safe to modify or read from a container simultaneously from a multiple scripts (threads) and the container will still be in a consistent state.

Further reading

If you are newcomer then better start with Getting Started page. Note, that the purpose of this wiki is not to list the functionality (see the JC script files for this kind of information), but to cover, explain how to use the main parts of the functionality.