as of patch 9, the throw spell is defined as :
Code
new entry "Throw_Throw"
type "SpellData"
data "SpellType" "Throw"
data "TargetFloor" "-1"
data "TargetRadius" "ThrownObjectRange"
data "AreaRadius" "1"
data "SpellProperties" "GROUND:DealDamage(1,Bludgeoning)"
data "SpellRoll" "Attack(AttackType.RangedUnarmedAttack)"
data "SpellSuccess" "TARGET:IF(IsLightThrownObject(context.HitDescription.ThrownObject)):DealDamage(1,Bludgeoning);TARGET:IF(IsMediumThrownObject(context.HitDescription.ThrownObject)):DealDamage(1d4,Bludgeoning);TARGET:IF(IsHeavyThrownObject(context.HitDescription.ThrownObject)):DealDamage(2d4,Bludgeoning);TARGET:IF(HasWeaponProperty(WeaponProperties.Thrown,context.HitDescription.ThrownObject)):DealDamage(ThrownWeapon, ThrownWeaponDamageType);TARGET:IF(HasWeightGreaterThan(context.Target.Weight/2, context.HitDescription.ThrownObject)):Force(2);TARGET:IF(HasWeightGreaterThan(context.Target.Weight, context.HitDescription.ThrownObject)):ApplyStatus(PRONE,100,1)"
data "TargetConditions" "not Self() and not (not Player(context.Source) and Item())"
data "ThrowableTargetConditions" "CanThrowWeight() and not Grounded() and not IsItemDisabled() and not HasAttribute('InventoryBound') and (IsMovable() or Character() or Dead()) and CanMove(context.Target, context.Source, false) and (not IsEquipped() or IsEquipmentSlot(EquipmentSlot.MeleeMainHand) or IsEquipmentSlot(EquipmentSlot.MeleeOffHand) or IsEquipmentSlot(EquipmentSlot.Boots))"
data "Template" "a82d0147-9ecd-455a-a9ef-c6d2b8119777"
data "Trajectories" "a82d0147-9ecd-455a-a9ef-c6d2b8119777,48362660-28e7-2af1-62fe-49fc4cb6cc70,bfd9fe10-124d-6b01-53e0-824346204638"
data "Icon" "Action_Throw"
data "DisplayName" "Shared_Throw_Throw_DisplayName"
data "Description" "Shared_Throw_Throw_Description"
data "ExtraDescription" "Shared_Throw_Throw_ExtraDescription"
data "PreviewCursor" "Cast"
data "CastTextEvent" "Cast"
data "UseCosts" "ActionPoint:1"
data "SpellAnimation" "b1befe57-ee3e-4126-8c9d-3b6cec7eb3f4,,;f2803838-31cf-471b-85d1-92fa2d0eb7c2,,;4be0751c-9fca-4c35-9337-6bf8a321c516,,;86b52093-596c-4054-bb1d-2dbdfcdc4347,,;5b4905be-03fd-42fb-9652-c2d1c772f4d3,,;9673b7c5-9928-44ce-ae4f-a85be2683981,,;e81ffae4-6be0-47fd-8502-48b9961004e9,,;,,;,,"
data "VerbalIntent" "Utility"
data "SpellFlags" "InventorySelection;RangeIgnoreVerticalThreshold;IsHarmful;HasHighGroundRangeExtension;IgnoreSilence;IgnoreVisionBlock;AddFallDamageOnLand;AbortOnSecondarySpellRollFail"
data "SpellActionType" "Throw"
data "HitAnimationType" "PhysicalDamage"
data "PrepareEffect" "ede0c318-7f5d-43b4-bc73-a50e0a528d55"
data "SpellAnimationType" "Throwing"
data "SpellSoundMagnitude" "Small"
data "Sheathing" "Sheathed"
so... there are a lot of parameters and conditions to take into account but the main thing is that goblins are small creatures and my elf is a medium one. had I tried to throw gale (throwing a spellcaster should be way better than just throwing one spell, don't you think ?)... bad example, there is a test for that...

well, you need to satisfy the "CanThrowWeight()" condition, which I don't have the specifics but a goblin is considered 35kg (a hobgoblin defaults at 50 as a humanoid) when a human is 65kg, which might be a bit outside of throwing range for a standard human.

you can also see that if the thrown object weights more than half the target, the target is pushed back two meters and if they are the same weight, the target is now prone.
interestingly enough, this is consistent with how the shove bonus action behaves right now...
for the damage... I'm not clear on who takes what, I'm just here for the shenanigans, if damage is what you are looking for, look at eldritch blast ^.^' (especially now that cantrips scale with level \o/)

the range is defined by the property "TargetRadius" as "ThrownObjectRange", which seems to indicate that it depends on some form of ratio between the weight of the projectile and the strength of the character. my earlier tests seem to confirm it but I can be wrong.
also note the "HasHighGroundRangeExtension" and "AddFallDamageOnLand" spell flags.

also, bonus fun fact : I haven't tested since they changed how weight works but in early builds, the "force()" effect only took integers so, either 1m or 2m. for the non-standard-compliant people, the usual square of 5ft is 1.5m, which might explain why the push is either too much or too little.

Last edited by auriejir; 10/02/23 07:00 PM.