Animal Tasks

Tasks are added to entity_properties inside the base module of your JSON file. There are two lists:

  • main_controller - behaviour tasks (moving, eating, hunting, resting...)
  • targeting_controller - tasks that decide what the animal targets

A task can be added as a plain string (the full class name) if it has no extra properties, or as an object with a task field if it does.

"jp.jurassicsaga.server.entity.animal.entity.obj.tasks.JSFloatTask"

Hunting

Hunting is split into a director that picks the hunt phase, and phase tasks that carry each phase out. A hunting animal needs at least JSHuntDirectorTask and JSPursueTask. Add the optional phase tasks for extra behaviour.

"main_controller": [
{
"task": "jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSHuntDirectorTask",
"callout": true,
"calloutTicks": 40
},
"jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSPursueTask",
"jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSCalloutTask",
"jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSPackHuntTask"
]

JSHuntDirectorTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSHuntDirectorTask

Decides which hunt phase the animal is in (calling, observing, ambushing, stalking, pursuing).

PropertyTypeDefaultDescription
calloutbooleanfalseWhether the animal emits a callout to alert the pack
calloutTicksint-How long the callout lasts in ticks (only with callout)
observebooleanfalseWhether the animal observes its target before engaging
ambushbooleanfalseWhether the animal ambushes its target
stalkbooleanfalseWhether the animal stalks its target before attacking

JSAdultHuntDirectorTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSAdultHuntDirectorTask

Same as JSHuntDirectorTask, but only adults hunt.

JSAquaticHuntDirectorTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSAquaticHuntDirectorTask

Adult-only hunt director for aquatic animals. Only engages targets that are in water.

JSPursueTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSPursueTask

Chases and attacks the current target. Required for any hunting animal.

JSCalloutTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSCalloutTask

Calls out to the pack before the hunt.

JSObserveTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSObserveTask

Watches the target before engaging.

JSAmbushTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSAmbushTask

Waits for the target to come close, then strikes.

JSStalkTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSStalkTask

Sneaks up on the target before attacking.

JSPackHuntTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.hunt.JSPackHuntTask

Coordinates the hunt with the rest of the pack.


Combat

JSTargetTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.JSTargetTask

Decides what to attack based on the hunt targets set in the social module of the JSON. Goes in targeting_controller.

PropertyTypeDefaultDescription
mustSeebooleanfalseWhether the animal must have line of sight to target something

JSChaseStragglerTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.target.JSChaseStragglerTask

Targets prey that falls behind its herd. Goes in targeting_controller.

JSTargetNearby

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.JSTargetNearby

Attacks anything that comes close, as long as it isn't the same entity type.

JSRevengeOrRunTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.JSRevengeOrRunTask

When the animal is attacked, decides whether to retaliate or retreat.

JSAttackFenceTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.combat.JSAttackFenceTask

Attacks a nearby Jurassic Saga fence when the animal is frustrated.


Metabolism

JSFindFoodTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.metabolism.JSFindFoodTask

Finds and moves towards nearby food when the animal is hungry.

JSFindWaterTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.metabolism.JSFindWaterTask

Finds and moves towards nearby water when the animal is thirsty.

PropertyTypeDefaultDescription
rangeint-The range in blocks to search for water
requiresShoreboolean-Whether the animal must drink from a shoreline

JSGrazeTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.metabolism.JSGrazeTask

Finds and eats nearby edible blocks. Intended for herbivores.

JSMateTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.metabolism.JSMateTask

Finds a partner and breeds when the animal is ready.


Misc

JSLookAroundTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.misc.JSLookAroundTask

Looks around while idle.

JSRestTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.misc.JSRestTask

Sits down when idle.

JSCrawlTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.misc.JSCrawlTask

Plays the crawl state while the animal's path goes through low (crawl) spaces.


JSFleeTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.navigation.JSFleeTask

Flees from a flee target if one is found or already set.

PropertyTypeDefaultDescription
rangeint-How far the animal flees, blocks

JSFlopTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.navigation.JSFlopTask

For aquatic animals on land. Makes the animal flop up and down.

JSSchoolingTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.navigation.JSSchoolingTask

For aquatic animals. Swims together as a school.

JSRandomStrollTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.navigation.JSRandomStrollTask

Finds a random nearby position and moves towards it.

PropertyTypeDefaultDescription
xRangeint-The horizontal range to search for a position
yRangeint-The vertical range to search for a position

Core

JSFloatTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.JSFloatTask

Makes the animal float at its eye height in water.

JSOpenDoorTask

jp.jurassicsaga.server.entity.animal.entity.obj.tasks.JSOpenDoorTask

Allows the animal to open nearby doors.


Legacy combat tasks

The old combat tasks have been replaced by the hunting system above. For older addons, these names are still accepted with the old package name and are converted automatically into JSHuntDirectorTask + JSPursueTask, plus a phase task for every flag that is set to true.

Legacy nameAccepted properties
jp.jurassicsaga.server.animal.entity.obj.tasks.combat.JSCombatFollowTaskstalk, observe, ambush, pack, callout, calloutTicks
jp.jurassicsaga.server.animal.entity.obj.tasks.combat.JSHerdCombatFollowTaskstalk, observe, ambush, pack, callout, calloutTicks
jp.jurassicsaga.server.animal.entity.obj.tasks.combat.AquaticCombatFollowstalk, observe, ambush, pack, callout, calloutTicks
jp.jurassicsaga.server.animal.entity.obj.tasks.combat.JSAvianGroundAttackstalk, observe, ambush, pack, callout, calloutTicks