6 months later, I just ended up using a Verse script to do it for me… not sure if it’s perfect but I got it to work in most cases.
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
#Make a custom tag for my prop manipulators
prop_manip_tag := class(tag){}
self_damage_device := class(creative_device):
#Get my array of Spawners belonging to the Hunters.
@editable
HunterSpawners : []player_spawner_device = array{}
#Get my array of Spawners belonging to the Props.
@editable
PropSpawners : []player_spawner_device = array{}
#Get a teleporter device used to switch teams on the first round.
@editable
Round1TeamSwitch : teleporter_device = teleporter_device{}
#Is this Player a Hunter? Should this be in a custom player script?
var IsHunter : logic = false
OnBegin<override>()<suspends>:void=
#For every Hunter Spawner, subscribe to (OnHunterSpawn)
for(HunterSpawner : HunterSpawners):
HunterSpawner.SpawnedEvent.Subscribe(OnHunterSpawn)
#For every Hunter Spawner, subscribe to (OnPropSpawn)
for(PropSpawner : PropSpawners):
PropSpawner.SpawnedEvent.Subscribe(OnPropSpawn)
#If a prop decides to switch teams using the teleporter, make them a Hunter.
Round1TeamSwitch.TeleportedEvent.Subscribe(OnHunterSpawn)
OnHunterSpawn(Agent : agent) : void=
set IsHunter = true
Print("IsHunter = true")
#Get all objects tagged with prop_manip_tag
TaggedList := GetCreativeObjectsWithTag(prop_manip_tag{})
for (TaggedActor : TaggedList):
if(PropManip := prop_manipulator_device[TaggedActor]):
#Prop manipulator can check if a prop has been damaged, so subscribe to that.
PropManip.DamagedEvent.Subscribe(OnPropDamage)
OnPropSpawn(Agent : agent) : void=
Print("IsHunter = false")
set IsHunter = false
OnPropDamage(Agent : agent) : void =
if (Player := Agent.GetFortCharacter[]):
if(IsHunter = true):
#An Agent has a FortCharacter attached, where the Damage method can be called! Adjust as needed.
Player.Damage(0.5)
If anyone has tips or feedback please let me know.