





🌟 Special thanks to our amazing supporters:
✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]
Hello everyone! This development patch brings in a features that lay the groundwork for a followup patch to the stable branch. We are releasing this to the dev branch now so that you can help us test it and provide feedback on the direction things are taking. Thus, this patch contains a lot of experimental features with moderate chance for breakage. Please report any issues you might face on our bug tracker - https://support.baldursgate.com/projects/nwn-ee-public-bugs. We're aware it's been a long wait since our last patch. Thank you for your patience! We assure you, we are still hard at work on Neverwinter Nights: Enhanced Edition. Please note that this patch does not represent the full set of features we are working on. Instead, we have split away partial changes so that the community could test and evaluate them while were working on other features including the new graphics rendering engine, improved NWSync capabilities, and softening up more parts of the ruleset. This patch introduces backwards-breaking changes to save games and character files (specifically, the Red Dragon Disciple). Please read the patch notes carefully and make backups of your saves and characters.
// Execute a script chunk.
// The script chunk runs immediately, same as ExecuteScript().
// The script is jitted in place and currently not cached: Each invocation will recompile the script chunk.
// Note that the script chunk will run as if a separate script. This is not eval().
// By default, the script chunk is wrapped into void main() {}. Pass in bWrapIntoMain = FALSE to override.
// Returns "" on success, or the compilation error.
string ExecuteScriptChunk(string sScriptChunk, object oObject = OBJECT_SELF, int bWrapIntoMain = TRUE);
// Returns a UUID. This UUID will not be associated with any object.
// The generated UUID is currently a v4.
string GetRandomUUID();
// Returns the given objects' UUID. This UUID is persisted across save boundaries,
// like Save/RestoreCampaignObject and save games.
//
// Thus, reidentification is only guaranteed in scenarios where players cannot introduce
// new objects (i.e. servervault servers).
//
// UUIDs are guaranteed to be unique in any single running game.
//
// If a loaded object would collide with a UUID already present in the game, the
// object receives no UUID and a warning is emitted to the log. Requesting a UUID
// for the new object will generate a random one.
//
// This UUID is useful to, for example:
// - Safely identify servervault characters
// - Track serialisable objects (like items or creatures) as they are saved to the
// campaign DB - i.e. persistent storage chests or dropped items.
// - Track objects across multiple game instances (in trusted scenarios).
//
// Currently, the following objects can carry UUIDs:
// Items, Creatures, Placeables, Triggers, Doors, Waypoints, Stores,
// Encounters, Areas.
//
// Will return "" (empty string) when the given object cannot carry a UUID.
string GetObjectUUID(object oObject);
// Forces the given object to receive a new UUID, discarding the current value.
void ForceRefreshObjectUUID(object oObject);
// Looks up a object on the server by it's UUID.
// Returns OBJECT_INVALID if the UUID is not on the server.
object GetObjectByUUID(string sUUID);
[ 6078 ]
[ 2063 ]
[ 4243 ]