Request: PossessCreature NWScript function
Squidget
Member Posts: 15
// Causes oPC to possess oCreature. oPC must be a player character.
// If bForce is is false, the player can use the radial menu to unpossess.
PossessCreature(object oPC, object oCreature, int bForce = FALSE);
// Returns TRUE if a player is possessing oCreature.
GetIsPCPossessed(object oCreature);
// Causes a player possessing oCreature to be returned to their body.
UnpossessCreature(object oCreature);
I didn't see this anywhere on the Trello, and I'm not sure if the Input trello is still looked at, so I'm bringing this up here in the hopes it is seen.
I know Beamdog has been adding new script functions in past updates, and I think this would be a very valuable feature for builders. Dynamically letting players possess creatures would open up a lot of module possibilities. Vehicles, true alternate forms, pre-made characters, better cutscene and event scripting. As with object visual transforms, I think we wouldn't even find all of the possibilities until we had this in our hands - it's a high bang-for-buck feature for module design because of how much could be done with it.
This functionality already exists in the game through the Possess Familiar feature and the DM client Take Control radial. So this would (hopefully) just be a matter of enabling the same functionality through scripting. There are some design issues you'd need to resolve, like how to handle players logging out or dying while possessing. Ideally you'd have some way to hook into these (maybe a built-in script that is called on possessed creature death) but I think you can take the simplest paths through these problems.
I don't know enough about the underlying code to know how big this feature actually is. But someone who builds in this game all the time, it's a request I've thought about a lot and I would love to see brought to life.
// If bForce is is false, the player can use the radial menu to unpossess.
PossessCreature(object oPC, object oCreature, int bForce = FALSE);
// Returns TRUE if a player is possessing oCreature.
GetIsPCPossessed(object oCreature);
// Causes a player possessing oCreature to be returned to their body.
UnpossessCreature(object oCreature);
I didn't see this anywhere on the Trello, and I'm not sure if the Input trello is still looked at, so I'm bringing this up here in the hopes it is seen.
I know Beamdog has been adding new script functions in past updates, and I think this would be a very valuable feature for builders. Dynamically letting players possess creatures would open up a lot of module possibilities. Vehicles, true alternate forms, pre-made characters, better cutscene and event scripting. As with object visual transforms, I think we wouldn't even find all of the possibilities until we had this in our hands - it's a high bang-for-buck feature for module design because of how much could be done with it.
This functionality already exists in the game through the Possess Familiar feature and the DM client Take Control radial. So this would (hopefully) just be a matter of enabling the same functionality through scripting. There are some design issues you'd need to resolve, like how to handle players logging out or dying while possessing. Ideally you'd have some way to hook into these (maybe a built-in script that is called on possessed creature death) but I think you can take the simplest paths through these problems.
I don't know enough about the underlying code to know how big this feature actually is. But someone who builds in this game all the time, it's a request I've thought about a lot and I would love to see brought to life.
2
Comments
I'll see about getting a screen cap of the DM lazy possess feature that already exists and upload it here for reference (will do this later)
I'm pretty sure it has been requested before, like many things that languish in the feature request threads. This section is for discussing features already promoted to the Trello however, such as the GUI overhaul/modding request.