Activity animations
Activity animations
Available from 0.1.9 (upcoming; not yet publicly released). Not included in public 0.1.8. Both the server and observing clients need the matching update.
The 0.1.9 expansion adds 844 animation aliases, bringing the catalog to 962 with the existing 118 retained. Many additions select different loops, introductions or gestures within an existing animation; this is not a claim of 844 separate full animation assets. See Activity animation catalog for every new alias and its recommended mode, and Player animation catalog for the earlier entries.
The existing server-side functions are reused: startAnim, stopAnim, startNpcAnim, stopNpcAnim, getPlayerAnimationNames and getPlayerAnimationInfo. No separate fishing or harvesting function is required. The function signatures and the default looped = false are unchanged.
What is included
- Picking at different heights, crouched gathering, searching and ground mining.
- Additional rice picking/cleaning/sowing, herb processing, woodcutting, cleaning, building, repair, smithing, sharpening and training variations.
- Alchemy and workshop gestures; cooking, cauldron, forge and workbench variations.
- Fishing idle/reeling with a cosmetic rod, plus four held direction poses.
- More sitting, lying, sleeping, eating, drinking, reading, playing music, carrying brushwood, poses and gestures.
The gesture group also contains short variations from work and rest activities. Search by alias as well as group: rice variants, for example, are not all classified as gather.
Player example
Run in trusted server-side resource code. playerId must identify the connected player your gamemode has permitted to perform the activity.
local info = getPlayerAnimationInfo("fishing")
if info then
if not startAnim(playerId, info.name, info.looped, 0.15) then
outputDebugString("Activity request rejected")
end
end
-- Later, when the activity should end:
-- stopAnim(playerId)
To play a single low gathering motion instead:
startAnim(playerId, "pickcrouch", false, 0.15)
This is a generic gathering gesture, not a dedicated swampweed-harvesting animation. herbshop poses are not harvesting actions.
NPC example
-- npcId is a living human NPC owned by this resource, with weapons holstered.
startNpcAnim(npcId, "pickrice_loop02", true, 0.15)
-- Later:
-- stopNpcAnim(npcId)
NPC ownership and existing animation eligibility rules still apply. A scripted NPC animation suspends its route/goal progress rather than replacing the route. Use stopNpcAnim to end a loop and allow normal behavior to resume.
Fishing and the rod
| Alias | Recommended looped | Presentation |
|---|---|---|
fishing |
true | Fishing idle/holding animation with the rod. |
fishingreel |
false | Finite reeling/retrieval animation; not a cast. |
fishingfront |
true | Held front-direction pose. |
fishingback |
true | Held back-direction pose. |
fishingleft |
true | Held left-direction pose. |
fishingright |
true | Held right-direction pose. |
Choose one alias per call; starting another replaces the current scripted animation:
startAnim(playerId, "fishingfront", true, 0.15)
-- On a later gameplay action, replace it with retrieval:
-- startAnim(playerId, "fishingreel", false, 0.15)
-- Or stop explicitly:
-- stopAnim(playerId)
The four direction entries are short held poses, not four casting actions. Pass true to hold them. No verified line-casting animation or complete native fishing minigame is provided by this expansion.
Rod size, left-hand attachment and forward alignment are corrected; the reeling motion uses a separately fitted grip. The same cosmetic-prop handling covers the local player, relevant remote players and human NPCs. The rod does not need to be granted as an inventory item, and starting fishing does not equip a weapon. Stopping/replacing the animation cleans up its owned prop without deleting inventory or unrelated objects. The stock rod does not have an independently animated reel crank.
Modes, timing and discovery
- Pass
info.loopedexplicitly when using the recommended mode. Omitting the argument still requestsfalse. - A hold entry follows its selected introduction, then repeats its selected loop/pose until stopped or superseded. With
false, it follows the selected route once. Usefalsefor one-shot entries. blendSecondsremains a finite number from 0 to 2 seconds, default 0.15. It is not an animation-speed or duration parameter. Remote handoff is not a guarantee of interpolated transitions between all poses.- Use aliases, not numeric catalog positions. Raw asset paths are not accepted.
- getPlayerAnimationInfo gains
catalogIndex,assetKind,sinceandverifiedInGamefrom 0.1.9. Existing fields remain available.
List just the new aliases on a compatible server:
for _, alias in ipairs(getPlayerAnimationNames()) do
local info = getPlayerAnimationInfo(alias)
if info and info.since == "0.1.9" then
outputDebugString(info.name .. " / " .. info.group)
end
end
Synchronization and gameplay boundaries
- Animation state and the associated cosmetic props use the existing player/NPC synchronization. Relevant observers use the current animation phase, including on relevance entry/late join, rather than being instructed to replay a harvest reward.
truefrom a setter means server acceptance, not proof that every client finished loading or rendered the animation.- These are visual activities. They do not award fish, rice or herbs; consume bait/materials; craft items; alter quests; apply spells; or deal damage. A gesture named after an item/effect does not activate that item's gameplay effect.
- Validate distance, dimension, permissions, cooldowns, inventory and rewards separately in trusted server code. Client requests must not be treated as proof of a completed activity.
- Furniture, workstations and fishing locations are not spawned or aligned automatically. Use suitable scenery/placement; playing a sitting animation alone does not create an interactive seat.
- Normal combat, death and environmental-movement presentation retain priority. Do not assume a visual loop locks the player or overrides those states.
- Animation/model loading can occur on first use. This is not a promise of zero loading cost or unlimited simultaneous animated characters.
Verification status
The earlier 118 entries retain their previous in-game confirmation. The 844 additions have been checked against the available animation data and implementation; they are not all individually visually confirmed in game. The catalog currently reports verifiedInGame = false for these new entries. This is a catalog qualification flag, not a live playback result, and it does not change when a player uses an animation.
The corrected fishing-rod appearance has been reported working in a local-player test. A complete six-animation, two-human-client/late-join visual check is still pending; remote support in code is not that test. Check the aliases, identities and armor combinations used by your gamemode, including stop/restart and observer views.
Unsupported or unsafe activity routes are not advertised as working aliases. This expansion does not add a complete fishing minigame, every possible carry route, coordinated fire-spitting effects or a separate female-only animation catalog. Existing female identity handling remains separate; see Female identities.