Dev | Monster Setting Sheet - JasXSL/GoThongs GitHub Wiki
To store config data on a monster in your level. You set its description to $[[task1,data1],[task2,data2]...]. Here's a reference
| Task | Args | Description |
|---|---|---|
| (int)any | (var)data | Sets monster LocalConf data. Look at a monster LocalConf script INI_DATA (or Monster INI_DATA below). |
| "SC" | script1, script2... | Requests scripts to be fetched from the root prim of the current cell. Works for assets as well. Can end with * as wildcard. |
| "HSC" | script1, script2... | Requests scripts to be fetched from the main GoT HUD script repo. Scripts dropped into the monster's inventory will automatically be loaded, but this can be useful to load other scripts on demand such as got Follower. |
| "ID" | mixed | Sets an ID and data to be used to raise got Level monster events. |
| "PR" | prim1, prim2... | Requests prims to be fetched from the root prim of the current cell. Can end with a * as a wildcard. |
| "IDL" | anim | Requires AniAnim. Plays one or more animations when loaded. These animations stop when the monster enters combat |
Monster INI_DATA
| Nr. | Type | Description |
|---|---|---|
| 0 | int | Bitwise combination of monster runtime flags to init with. See below for monster runtime flags. |
| 1 | float | Speed of monster. |
| 2 | float | Monster melee hit range. |
| 3 | float | Attack speed of melee attacks. |
| 4 | float | Damage of melee hits |
| 5 | float | Monster free roaming range. |
| 6 | int | Max HP |
| 7 | float | Aggro range (default 15) |
| 8 | key | Aggro sound |
| 9 | key | Aggro lost sound UUID |
| 10 | key | Damaged sound UUID |
| 11 | key | Melee attack sound UUID |
| 12 | key | Death sound UUID |
| 13 | key | Icon texture UUID |
| 14 | str | Rape pack name. Usually the monster uses it's own name, but this can be used to override. |
| 15 | arr | Drops. (str)name, (float)chance |
| 16 | int | 0 for NPC, 1 for PC |
| 17 | int | decimeters - Increases the range players can hit this target from. |
| 18 | int | decimeters - Offset the height for where LOS is calculated. Default 0.5 above root prim. |
| 19 | int | Used for RP. Determines what height the monster is hitting with its melee attacks. 0 = groin or butt, 1 = chest or back, -1 = neither |
| 20 | float | Hover height of monster. Useful for animesh monsters since their groin is the centerpoint. |
| 21 | float | Seconds that the monster should be able to "hear" where the player has gone after losing line of sight |
Monster runtime flags
| Name | Dec.Nr | Hex.Nr | Description |
|---|---|---|---|
| Monster$RF_IMMOBILE | 1 | 0x1 | Makes monster unable to move, can still rotate. |
| Monster$RF_PACIFIED | 2 | 0x2 | Monster will not use melee attacks but can aggro. |
| Monster$RF_NOROT | 4 | 0x4 | Monster will not rotate |
| Monster$RF_NOAGGRO | 8 | 0x8 | Monster will not aggro any new players |
| Monster$RF_FREEZE_AGGRO | 16 | 0x10 | Monster will not change aggro target until this is unset. |
| Monster$RF_NO_DEATH | 32 | 0x20 | Monster will raise an event on death instead of removing itself. |
| Monster$RF_INVUL | 64 | 0x40 | Monster is invulnerable. Note that this setting also blocks defeat scenes. |
| Monster$RF_NO_TARGET | 128 | 0x80 | Monster cannot be targeted. |
| Monster$RF_NO_SPELLS | 256 | 0x100 | Monster cannot cast spells. |
| Monster$RF_IS_BOSS | 512 | 0x200 | Shows the monster's health as the boss HP bar on your HUD. Only one monster can do this. |
| Monster$RF_IS_FLYING | 1024 | 0x400 | Allows the monster to move freely on Z axis |
| Monster$RF_360_VIEW | 2048 | 0x800 | Ignores the aggro radius penalty for targets behind the NPC |
| Monster$RF_FOLLOWER | 4096 | 0x1000 | Will not free roam |
| Monster$RF_ANIMESH | 8192 | 0x2000 | Monster is animesh. Animesh is rotated differently and has a different ground offset. |
| Monster$RF_HUMANOID | 16384 | 0x4000 | Monster is a humanoid. This allows some NPC interactions like shambler lick. |
| Monster$RF_MINOR | 32768 | 0x8000 | Monster should not drop loot. Good for monsters spawned programmatically. |
| Monster$RF_ALWAYS_R | 65536 | 0x10000 | This overrides the defeat scene restriction for invulnerable monsters. |
| Monster$RF_FLANKING | 131072 | 0x20000 | Makes the monster try to flank the highest aggro target if they are not targeting the monster. |
| Monster$RF_INF_HP | 262144 | 0x40000 | Monster cannot lose HP. Similar to invul but can still be affected by spells and aggro. |
| Monster$RF_PASS_WALLS | 524288 | 0x80000 | Monsters will phase through walls. Must be combined with Monster$RF_IS_FLYING They cannot aggro through walls but once aggroed they will not drop aggro even if the player hides. |
472 = Dummy monster flags for events
8664 = Same but animesh
NPC spells flags
| Name | Dec.Nr | Description |
|---|---|---|
| NPCS$FLAG_ROOT | 1 | Monster is rooted while casting |
| NPCS$FLAG_PACIFY | 2 | monster cannot attack while casting |
| NPCS$FLAG_NOROT | 4 | Monster doesn't look at the target |
| NPCS$FLAG_NO_INTERRUPT | 16 | Spell cannot be interrupted |
| NPCS$FLAG_DISABLED_ON_START | 32 | Spell is disabled on start. Use NPCSpells$wipeCooldown(id) to reset cooldown |
| NPCS$FLAG_REQUEST_CASTSTART | 64 | Will attempt to get a callback before casting |
| NPCS$FLAG_RESET_CD_ON_INTERRUPT | 128 | Resets cooldown if interrupted |
| NPCS$FLAG_CAST_AT_RANDOM | 256 | Tries to cast at a random visible target |
| NPCS$FLAG_LOOK_OVERRIDE | 512 | Forces the monster to look at the victim even if it's not the target |
| NPCS$ALLOW_MULTIPLE_CHECKS | 1024 | Use with FLAG_CAST_AT_RNADOM - Even if a player matches, it will still query all |