you should still be able to link creative devices. I would try making a creative device that has as many events/playspace functions as you need and then linking it and calling functions to update variables in your npc script
You could have something like this in your creative device
Return_All_Players():[]player=
AllPlayers := GetPlayspace().GetPlayers()
return AllPlayers
and then in your NPC Behavior just have a player array variable and set it by calling this fuction any time you need to reference it
if you don’t need the player array from getplayspace you could also set up you’re own events to signal when regular events happen and pass params into them.
(Still in your creative device)
Player_Ref := struct:
_Player:player
Custom_P_Added_Event : event(Player_Ref) = event(Player_Ref){}
Signal_Custom_Event()<suspends>:void=
loop:
Player_Added := GetPlayspace().PlayerAddedEvent.Await()
Custom_P_Added_Event.Signal(Player_Ref{_Player := Player_Added})
#listen for this event in your NPC Behavior