SKYRIM
JContainers by silvericed
Skyrim » Modders resources and tutorials
Added: 10/01/2014 - 10:23PM
Updated: 20/02/2015 - 07:03PM

7,917 Endorsements

3.2.2 Latest version

127,283 Unique D/Ls

155,331 Total D/Ls

310,324 Total Views

Uploaded by silvericed

Description

Last updated at 19:03, 20 Feb 2015 Uploaded at 22:23, 10 Jan 2014

15t Feb - v4.0 draft available on Github. Your feedback will help me evaluate further development directions (if any)
3th Feb - version 3.2.1 released. See change log for more info



JContainers

Data structures framework for Skyrim


Description

JContainers is a modding framework that extends Papyrus by implemented basic data structures. It features:

- Data structures (arrays, dictionaries)
- Import and export data to and from JSON files (for ex. read configs, backup data and etc)
- Path resolving - simplifies access to nested data structures
- Lua - the main purpose is to minimize the amount of cumbersome Papyrus code needed to handle data by moving it into Lua scripts
- C++ API - interaction with JC via C++ interface. This mean you can invoke C++ analogue of any Papyrus function JC provides. See developer resources archive for usage example.

Links

Latest documentation
Watch project news and updates on GitHub

Installation

Use NMM/MO/anything.
For manual installation open you Skyrim Data folder, place the scripts, SKSE etc in that folder. When ask to merge folders hit yes.

Mods using this plugin

Swift Potion Reborn - configurable auto-potion system
AH Hotkeys - Skyrim Hotkey Manager
HooKmmerse - auto resolves cross-mod jump-height, skeleton scale value conflicts. Explanation
KeyInput - text input framework
Proper Potion Names - a potion name reveals effects of the potion
Familiar Faces - meet your characters from past play-throughs in-game
Druids Den - Collectors Edition - nature-themed player home for magpies & treasure hunters

Versioning note

JContainers uses semantic versioning scheme - API.FEATURE.PATCH. Essence:

- API version increases when API changes in backward-incompatible way. Note that it's possible to run different plugins with different API versions in parallel. E.g. JC 3.x can be installed alongside with 4.x
- FEATURE version increases when functionality added in a backwards-compatible manner. Mod requiring JC 3.1 will perform well with JC 3.2 and above
- PATCH version increases when tiny bug fixes added.

Special thanks

thanks to Saerileth and Gooser, without your interest that project would be abandoned
thanks to Skwerlman and Alexdunn for documentation improvements
thanks to Verteiron for feedback, bugreports
thanks to RealAntithesis for ideas he contributed, feedback

Third party libraries used

skse library - it would be impossible to imagine Skyrim modding without it
boost framework - real treasure for any C++ programmer
jansson - nice JSON parsing library

Permissions

- You (as mod author) are free to bundle this plugin. This also makes you free to create downgrade issue, when a mod bundling older version overrides new version (bundled by another mod or installed manually), which leads to JC data loss
- It's up to you to report to a user of incompatibility of installed JC API version and the version mod has been compiled for the best user's experience. Valid condition is `JC.APIVersion == hardcodedAPIVersion && JC.featureVersion >= hardcodedFeatureVersion`.
- The files in this plugin are not to be modified under any circumstance as that could cause problems when a load order includes multiple mods that use the plugin and one or more mods have modified the files in this plugin.