Setting the Island Settings to cause self-damage to the player does not seem to work. Using the Team Settings & Inventory Device does not work either.
Steps to Reproduce
Use Island Settings to edit the parameters:
Self-Damage on Hit Amount to 2.0
Self-Damage Only on Non-Zero Damage to False
Self-Damage Target filter to Non-Players
Self-Damage Weapon Filter to Ranged
Use the Epic âPistolâ weapon to test damage on objects to see if damage is caused.
No damage occurs.
Repeat settings on corresponding team for a Team Settings Device and note that this also does not change the outcome.
Expected Result
The expected result is for damage to be caused to the player when shooting objects- this works on an old Creative 1.0 map.
Observed Result
No damage is inflicted upon the player as expected, even with devices copy-pasted from a working 1.0 map. Either UEFN has broken this function or the Device conversion has.
Platform(s)
PC
Additional Notes
I did try to delete the converted device and set it up again, but this led to no change in the result. This is unfortunate for the Prop Hunt map I am trying to make.
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.