Ok…
I thought …maybe…ChatGPT could replicate the summon Familiar spell and I could create a Wizard Eye spell where I could possess it…thereby allowing me to go scout ahead. As the Wizard Eye Spell should.
This is the script ChatGPT gave me. It compiled. It summoned the creature (I used the flying eyeball). I created a conversation. That worked when I speak to it. Here are the scripts:
Name of the summon script: “wizardeye”
// Summon and Possess Wizard Eye Script
#include "nw_i0_generic"
void main()
{
// Declare variables
object oCaster = OBJECT_SELF;
object oEye;
int nDuration = GetCasterLevel(oCaster) * 6; // Duration in rounds (1 round per level)
location locCaster = GetLocation(oCaster);
// Create the Wizard Eye
oEye = CreateObject(OBJECT_TYPE_CREATURE, "wizard_eye", locCaster);
if (!GetIsObjectValid(oEye))
{
SendMessageToPC(oCaster, "Failed to create Wizard Eye. Please contact a DM.");
return;
}
// Set properties of the Wizard Eye
SetLocalObject(oEye, "WIZEYE_OWNER", oCaster); // Set owner of the eye
SetLocalInt(oEye, "WIZEYE_DURATION", nDuration); // Set duration
SetLocalInt(oEye, "WIZEYE_MOVE_SPEED", 10); // Move speed if examining ceiling and walls
SetLocalInt(oEye, "WIZEYE_INFRASIGHT", 10); // Infravision range
SetLocalInt(oEye, "WIZEYE_NORMALSIGHT", 60); // Normal vision range
// Apply visual and detection properties
SetIsTemporaryEnemy(oEye, oCaster); // Hide the eye from enemies
// Set possession properties
SetLocalObject(oEye, "WIZEYE_CASTER", oCaster); // Set caster as the controller
// Assign control of the eye to the caster
AssignCommand(oEye, ActionStartConversation(oCaster, "wizard_eye_conversation")); // Start the conversation with the Wizard Eye
// Play visual effect
effect eVFX = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVFX, locCaster);
// Debug message
SendMessageToPC(oCaster, "You have conjured a Wizard Eye. Speak with it to assume control.");
// Debug message for testing
SendMessageToPC(oCaster, "Debug message: Summoning script executed successfully.");
}
I then created the creature with the resref: wizard_eye. Which worked.
Name of the conversaton: “wizardeyeconv”
Where I put the following script Chat GPT told me to put on the ACTIONS Tab of the conversation where the NPC says: “As you wish you now have control of me”
// wiz_eye_pos.nss
void main()
{
object oEye = OBJECT_SELF;
object oCaster = GetLocalObject(oEye, "WIZEYE_OWNER");
if (!GetIsObjectValid(oCaster) || !GetIsObjectValid(oEye))
return;
// Transfer control to the player
AssignCommand(oEye, ActionJumpToObject(oCaster));
}
But I when I speak to it…nothing happens. I don’t even get the radial option to “possess” as you do with the familiar. What am I doing wrong?