Circle of Eight Forum

Go Back   Circle of Eight Forum > ToEE Modding > ToEE Toolset Project Documentation
User Name
Password
Register FAQ Members List Calendar JavaChat Mark Forums Read

Reply
 
Thread Tools
Old February 25th, 2006   #1
Agetian
Attorney General
 
Agetian's Avatar
 
Join Date: Aug 2004
Posts: 1,794
Meaning of various object flags

The following list includes descriptions for all known object flags. Note that a lot of the flags come directly from Arcanum and may be no longer used in the Temple of Elemental Evil. Others may have become obsolete during the earlier state of the game development, and be useless. If you have any updates to the information below, as in whether something works or doesn't work, as well as what certain flags mean, feel free to post in this thread. I'll try to keep this list up to date.

The list below doesn't account for the fact whether the flag really works or not (at least most of the time), since I haven't tested them too deeply to really be able to tell. A good part of these flags may actually turn out to be Arcanum leftovers. If you have info that a certain flag works or doesn't work for sure, please respond in this thread.

Object Flags (OF_*)

OF_DESTROYED - This object is completely ignored by the object system, considered to be destroyed.
OF_OFF - This object still exists and can still be manipulated, but it's simply not displayed.
OF_FLAT - ?
OF_TEXT - This object has a text bubble associated with it. Arcanum leftover, most surely doesn't work in ToEE.
OF_SEE_THROUGH - This object doesn't obstruct visibility.
OF_SHOOT_THROUGH - It's possible to shoot through this object (doesn't obstruct shooting).
OF_TRANSLUCENT - ?
OF_SHRUNK - ?
OF_DONTDRAW - This object is not drawn. Overlays and other elements for this object may still be shown.
OF_INVISIBLE - Same as OF_DONTDRAW, but means that this object is simply invisible, so this flag will get overridden if someone detects invisibility.
OF_NO_BLOCK - Doesn't obstruct movement.
OF_CLICK_THROUGH - Doesn't respond to mouse clicking? (not sure)
OF_INVENTORY - This object is an inventory item.
OF_DYNAMIC - This object is dynamic and needs to be
OF_PROVIDES_COVER - This object provides cover per D&D rules.
OF_RANDOM_SIZE - obj_create will make this object of random scale. Possibly doesn't work (untested).
OF_NOHEIGHT - ?
OF_WADING - ?
OF_LOOTED - This object (NPC or container) has been looted already and followers took their share.
OF_STONED - The stone to flesh spell is on.
OF_DONTLIGHT - This object will always be drawn at full brightness, ignoring all light effects.
OF_TEXT_FLOATER - ?
OF_INVULNERABLE - This object cannot take damage or be destroyed.
OF_EXTINCT - ?
OF_DISALLOW_WADING - ?
OF_HEIGHT_SET - Either the game or the proto system has already calculated the height for this object (usually this means that the "height" property is already set and has a value).
OF_ANIMATED_DEAD - ?
OF_TELEPORTED - ?
OF_RADIUS_SET - Either the game or the proto system has already calculated the radius for this object (usually this means that the "radius" property is already set and has a value).

Item Flags (OIF_*)

OIF_IDENTIFIED - The player has identified this object already
OIF_WONT_SELL - The owning NPC won't sell this item
OIF_IS_MAGICAL - Used internally to mark objects with charges (part of a tracking system that tracks item that run out of charges)
OIF_NO_PICKPOCKET - This item can't be pickpocketed.
OIF_NO_DISPLAY - This item is not displayed in the inventory screen.
OIF_NO_DROP - This item cannot be dropped.
OIF_NEEDS_SPELL - This item needs you to have its spell on your spell list in order to activate.
OIF_CAN_USE_BOX - This item can be dropped in the use box in the inventory UI. Internal?..
OIF_NEEDS_TARGET - This item needs a target when used
OIF_LIGHT_SMALL - This item gives off a little light when wielded. Arcanum leftover?..
OIF_LIGHT_MEDIUM - This item gives off medium light when wielded. Arcanum leftover?..
OIF_LIGHT_LARGE - This item gives off lots of light when wielded. Arcanum leftover?..
OIF_LIGHT_XLARGE - This item gives off TONS of bright light when wielded. Arcanum leftover?..
OIF_PERSISTENT - This item is not destroyed during inventory respawning.
OIF_MT_TRIGGERED - ? Probably somehow magic/tech related, a definite Arcanum leftover.
OIF_STOLEN - This item is stolen and will not be bought by a shopkeeper unless he is a fence.
OIF_USE_IS_THROW - This item is thrown when used.
OIF_NO_DECAY - This item will never decay (disappear) if left somewhere.
OIF_UBER - This item can damage critters marked as OCF2_NIGH_INVULNERABLE. Was used in Arcanum. Possibly a leftover.
OIF_NO_NPC_PICKUP - NPCs will not pick up this item off the ground. Was used in Arcanum.
OIF_NO_RANGED_USE - This item must be used directly on the target, not from a range.
OIF_VALID_AI_ACTION - ?
OIF_DRAW_WHEN_PARENTED - ?
OIF_EXPIRES_AFTER_USE - This item expends charges, and when empty destroys itself.
OIF_NO_LOOT - This item cannot be looted (different from NO_DROP!)
OIF_USES_WAND_ANIM - This item, when casting a spell, uses the wand animations.
OIF_NO_TRANSFER - This item cannot be moved between party members (follower's items)
OIF_FAMILIAR - This item cannot be moved between party members (familiars)

Critter Flags (OCF_*)

OCF_IS_CONCEALED - The critter is initially concealed (e.g. used for spider in the Tower)
OCF_MOVING_SILENTLY - Is using the move silently skill
OCF_EXPERIENCE_AWARDED - Experience has already awarded for this monster
OCF_FLEEING - The critter is fleeing. Arcanum leftover?..
OCF_STUNNED - The critter is stunned.
OCF_PARALYZED - Paralyzed.
OCF_BLINDED - Temporarily blinded.
OCF_HAS_ARCANE_ABILITY - Used for Feeblemind to check if the critter has arcane like abilities.
OCF_SLEEPING - Is sleeping in a bed.
OCF_MUTE - Unable to talk (won't float messages or engage in dialog).
OCF_SURRENDERED - Critter has surrendered after fleeing (Arcanum leftover?..)
OCF_MONSTER - Critter is a "monster" (doesn't correspond to a defined race or a non-monster animal)
OCF_SPELL_FLEE - Critter has used a spell to flee.
OCF_ENCOUNTER - Critter is an "encounter" critter, which disappear when they stop getting heartbeats
OCF_COMBAT_MODE_ACTIVE - Critter is in combat mode.
OCF_LIGHT_SMALL - Critter is wielding a small light. Arcanum leftover?..
OCF_LIGHT_MEDIUM - Critter is wielding a medium light. Arcanum leftover?..
OCF_LIGHT_LARGE - Critter is wielding a large light. Arcanum leftover?..
OCF_LIGHT_XLARGE - Critter is wielding an extra large light. Arcanum leftover?..
OCF_UNREVIVIFIABLE - This critter cannot be brought back to life or reanimated.
OCF_UNRESSURRECTABLE - This critter cannot be brought back to life.
OCF_NO_FLEE - This critter will never flee.
OCF_NON_LETHAL_COMBAT - This critter will stop fighting a critter when it goes unconscious.
OCF_MECHANICAL - A critter that is of mechanical (technological) type - was used in Arcanum, most sure not used anymore.
OCF_HAS_MET - Critter has met the party before.

Critter Flags 2 (OCF2_*)

OCF2_ITEM_STOLEN - This critter has been pickpocketed.
OCF2_AUTO_ANIMATES - This critter always animates when standing.
OCF2_USING_BOOMERANG - This critter is currently using a boomerang weapon. Arcanum?..
OCF2_FATIGUE_DRAINING - ?
OCF2_SLOW_PARTY - ?
OCF2_NO_DECAY - This critter will never decay to nothing.
OCF2_NO_PICKPOCKET - This critter cannot be pickpocketed.
OCF2_NO_BLOOD_SPLOTCHES - This critter doesn't display default blood splotches when hit.
OCF2_NIGH_INVULNERABLE - The critter can only be hurt by items marked as OIF_UBER.
OCF2_ELEMENTAL - This critter is a natural elemental.
OCF2_DARK_SIGHT - This critter has dark vision.
OCF2_NO_SLIP - This critter doesn't slip on slippery (ice) tiles. Most certainly an Arcanum leftover.
OCF2_NO_DISINTEGRATE - This critter always saves vs. disintegration
OCF2_TARGET_LOCK - This critter is locked onto his combat target until instructed otherwise.
OCF2_ACTION*_PAUSED - ?

NPC Flags (ONF_*)

ONF_EX_FOLLOWER - NPC was a follower and has now left the party. Internal?
ONF_WAYPOINTS_DAY - NPC will walk its waypoints during the day.
ONF_WAYPOINTS_NIGHT - NPC will walk its waypoints during the night.
ONF_AI_WAIT_HERE - Internal, don't use directly. NPC is being told to wait at a location.
ONF_AI_SPREAD_OUT - Internal, don't use directly. NPC is being told to increase his follow radius.
ONF_JILTED - NPC waited too long and went home or left the party on his own accord based on PC actions. Internal.
ONF_LOGBOOK_IGNORES - NPC will be ignored by logbook functions when building ego pages.
ONF_KOS - NPC will kill on sight.
ONF_USE_ALERTPOINTS - NPC will only go to night standpoint on 'alert' (when global flag 144 is set).
ONF_FORCED_FOLLOWER - NPC was forced to follow his current leader.
ONF_KOS_OVERRIDE - NPC will *NOT* kill on sight.
ONF_WANDERS - NPC wanders. Doesn't work. Arcanum leftover.
ONF_WANDERS_IN_DARK - NPC wanders in dark. Doesn't work. Arcanum leftover.
ONF_FENCE - This NPC is a fence shopkeeper and will buy stolen goods marked as OIF_STOLEN.
ONF_FAMILIAR - This NPC is a familiar.
ONF_CHECK_LEADER - NPC needs to check his leader for faults, possibly internal.
ONF_NO_EQUIP - This NPC will not equip items.
ONF_CAST_HIGHEST - This NPC will only cast highest known spells in each Arcanum spell college. Probably won't work for ToEE.
ONF_GENERATOR - NPC is a generator of NPCs (usually monsters)
ONF_GENERATED - NPC was generated from a generator.
ONF_GENERATOR_RATE1 - Internal rate flag for generator NPCs.
ONF_GENERATOR_RATE2 - Internal rate flag for generator NPCs.
ONF_GENERATOR_RATE3 - Internal rate flag for generator NPCs.
ONF_DEMAINTAIN_SPELLS - NPC will turn off maintained spells when leader dies or exits combat mode.
ONF_BACKING_OFF - NPC wants to back away from his combat. Internal?
ONF_NO_ATTACK - NPC is not allowed to fight.
ONF_BOSS_MONSTER - NPC is a boss monster. Arcanum leftover?
ONF_EXTRAPLANAR - NPC is extraplanar.
Agetian is offline   Reply With Quote
Old February 25th, 2006   #2
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

If I may... (this can be deleted as necessary: I have already deleted a few of these)

BOSS_MONSTER is used in protos.tab for Hedrack and the Node Guardians (at least). The Boss_Monster reaction voice does not work that I know of. So it IS used but whether it does anything is unknown to me. (Still untested by me).

Can I suggest that these be marked as 'verified' (or something) as they are proven to work?

DRAW_WHEN_PARENTED is a curious one: it appears on shields, and if it is not ticked, the shields simply stay where they are when they appear on the map. That is, if a PC appears on a new map with a shield laking this flag equipped, then he runs off, but the shield stays where it is first drawn; it rotates to match the PCs model and still gives the shield bonus, but it doesn't move with the PCs model. Weird to watch.

Now, combat flags: these are not attached to any specific function and can only really be read from a script off the trap.attack( PyObjHandle target, BAB, critical range, ranged attack) command, but are generated by every attack.

D20CAF_HIT - the attack hit
D20CAF_CRITICAL - the attack was a critical
D20CAF_RANGED - the attack was ranged
D20CAF_ACTIONFRAME_PROCESSED - already applied the damage etc.
D20CAF_NEED_PROJECTILE_HIT - waiting for the projectile to hit before the action is done
D20CAF_NEED_ANIM_COMPLETED - waiting for an animation to be completed.
D20CAF_ATTACK_OF_OPPORTUNITY - this attack is an AOO
D20CAF_CONCEALMENT_MISS - this attack missed because of concealment
D20CAF_TOUCH_ATTACK - touch attack (don't apply target armor)
D20CAF_FREE_ACTION - don't pay the usual action cost; for example, a touch attack when part of a spell
D20CAF_CHARGE - part of charge action
D20CAF_REROLL - second roll due to Good Fortune luck domain ability
D20CAF_REROLL_CRITICAL - second roll to confirm critical
D20CAF_TRAP - if attack is from a trap
D20CAF_INVALID - attack is not valid (bad path?)
D20CAF_NO_PRECISION_DAMAGE - attack is not eligable for precision based damage (sneak attack)
D20CAF_FLANKED - target flanked
D20CAF_DEFLECT_ARROWS - target used deflect arrows
D20CAF_FULL_ATTACK - attack is part of a full attack
D20CAF_AOO_MOVEMENT - this is an aoo due to movement
D20CAF_BONUS_ATTACK - this is a bonus attack
D20CAF_THROWN - this is a thrown weapon
D20CAF_SAVE_SUCCESSFUL - damage is being done in spite of a successful save
D20CAF_SECONDARY_WEAPON - use ITEM_WIELDED_SECONDARY instead of item_wielded_primary
D20CAF_MANYSHOT - this attack benefits from the MANYSHOT feat
D20CAF_ALWAYS_HIT - this attack can't miss (Fragarach)
D20CAF_COVER - this attack is subject to cover
D20CAF_COUNTERSPELLED - this action has been counterspelled
D20CAF_THROWN_GRENADE - this is a thrown "grenade" weapon
D20CAF_FINAL_ATTACK_ROLL - this flag is set on attack_data when the actual attack roll is being made (not any pre-calculations)
D20CAF_TRUNCATED - this move action was truncated
D20CAF_UNNECESSARY - this action can fail if a path cannot be generated in a reasonable amount of time
D20CAF_MAX - last flag

Now... OCF2 flags (Critter 2 Flags):

These flags have been described above by Agetian. However a careful check of the .dll and accompanying docs (particularly string dumps and such) indicates there appears to be no actual Python syntax to manipulate them! Moreover, my attempts to set the flags in the protos.tab broke it and stopped the game from starting at the infamous 'clearing protos.tab' point.

Another Arcanum leftover? Perhaps, but the flag bank is still there on mobs, the flags can still be set using World Builder, and some of them work! Certainly NO_DECAY does.

So, how do we read and change them in-game? Manually! Here is an example from the new Gentle Repose spell:
Code:
x = target.obj.obj_get_int(obj_f_critter_flags2)
x = x | 64
target.obj.obj_set_int(obj_f_critter_flags2, x)
The critter 2 flags bank is read directly off the object, the relevant flag (7th on the list in ToEEWB) is ORed (2^7 = 64) on the bank, and its put back. Existing flags can be read with AND.

Last edited by Shiningted; September 17th, 2009 at 05:09 AM.
Shiningted is offline   Reply With Quote
Old February 25th, 2006   #3
Agetian
Attorney General
 
Agetian's Avatar
 
Join Date: Aug 2004
Posts: 1,794
Re: Meaning of various object flags

Quote:
Originally Posted by Shiningted
If I may... (this can be deleted as necessary)

BOSS_MONSTER is used in protos.tab for Hedrack and the Node Guardians (at least). The Boss_Monster reaction voice does not work that I know of. So it IS used but whether it does anything is unknown to me.
Yup, but a lot of old stuff can be seen in protos.tab - like OCF_WATER, which was a real flag in Arcanum but became outdated and was changed to unused in ToEE. So, we need a definite proof whether it does/doesn't do anything.

Quote:
Originally Posted by Shiningted
Can I suggest that these be marked as 'verified' (or something) as they are proven to work? For instance, I will now go and test the STOLEN and FENCE flags in KotB, and we can add 'verified' (or not) appropriately.
Sure, that was my plan too. And you can modify my post and add the 'verified' qualifier as well (at least I think you can - you're a moderator here, so you're supposed to be able to do that )

Last edited by Agetian; February 25th, 2006 at 05:19 AM.
Agetian is offline   Reply With Quote
Old February 25th, 2006   #4
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

Perhaps a few words here or somewhere on how to change flags (set and unset) and how to read their status in a script?
Shiningted is offline   Reply With Quote
Old February 25th, 2006   #5
Agetian
Attorney General
 
Agetian's Avatar
 
Join Date: Aug 2004
Posts: 1,794
Re: Meaning of various object flags

Quote:
Originally Posted by Shiningted
Perhaps a few words here or somewhere on how to change flags (set and unset) and how to read their status in a script?
Yup, would do good too. Maybe you can add that info to Whatddya know?

P.S. All these discussion-like thread elements are to be removed later once the details of this thread are clarified.

- Agetian
Agetian is offline   Reply With Quote
Old April 6th, 2006   #6
Cerulean the Blue
Blue Meanie
 
Cerulean the Blue's Avatar
 
Join Date: Apr 2005
Location: Portland, Oregon
Posts: 1,960
Re: Meaning of various object flags

When the OF_OFF flag is set the object in question will still run scripts, and be manipulated by it's own scripts, but cannot be manipulated by other scripts unless you already have a handle for it. It cannot be "found" by other scripts.
__________________
"No. The only thing that lasts forever is apathy. But who cares."
Cerulean the Blue is offline   Reply With Quote
Old April 7th, 2006   #7
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

Quote:
OF_CLICK_THROUGH - Doesn't respond to mouse clicking? (not sure)
Lemme just verify this is accurate, I stupidly set it on something the other day and wondered why I couldn't click on it. Quick flag change and it was fixed.
Shiningted is offline   Reply With Quote
Old August 28th, 2006   #8
Jesse Heinig
Troll Berserker
 
Join Date: Jun 2005
Posts: 126
Re: Meaning of various object flags

Does anyone have a list of the object spell flags (OSF_)?

EDIT: My bad, they're part of Darmagon's inclusions to the Co8 script import package.

Last edited by Jesse Heinig; August 28th, 2006 at 10:13 PM.
Jesse Heinig is offline   Reply With Quote
Old August 28th, 2006   #9
Cerulean the Blue
Blue Meanie
 
Cerulean the Blue's Avatar
 
Join Date: Apr 2005
Location: Portland, Oregon
Posts: 1,960
Re: Meaning of various object flags

Those were created by Darmagon and are stored in the obj_f_secret_door_dc field. They are not part of the original game, and only Darmagon's spells use them.
__________________
"No. The only thing that lasts forever is apathy. But who cares."
Cerulean the Blue is offline   Reply With Quote
Old August 28th, 2006   #10
Jesse Heinig
Troll Berserker
 
Join Date: Jun 2005
Posts: 126
Re: Meaning of various object flags

I'm going to use 'em for part of the Warp Wood improved functionality. I figure I can use OSF_IS_SUMMONED on items (instead of critters) as the flag to tell if an item has been warped by the Warp Wood spell. That way I can switch an item back, because the spell explicitly allows you to unwarp objects. In this fashion, you could warp wood on an enemy's weapon, then unwarp it after you kill him and take it (in case it's, say, a masterwork longspear that you want, or something).

Quote:
Originally Posted by Cerulean the Blue
Those were created by Darmagon and are stored in the obj_f_secret_door_dc field. They are not part of the original game, and only Darmagon's spells use them.
Jesse Heinig is offline   Reply With Quote
Old August 2nd, 2008   #11
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

Updated to include combat flags (post 2). Also, I had a bit of a look through the first post - 2 1/2 years later and having used a lot of this info in KotB - and I can't see any glaring errors or bits that need to be verified. Can other modders just have a quick look through? I also think people will get some ideas when they see some of the descriptions
Shiningted is offline   Reply With Quote
Old January 2nd, 2009   #12
Stohrm Knightforger
Dwarven Cleric
 
Stohrm Knightforger's Avatar
 
Join Date: Dec 2008
Location: The Midwest
Posts: 44
Globals

ST,

Can you point me in the right direction for finding the breakdown of what all the numbers equate to for each of the game.quests and the game.global_flags. I have yet to run accross such a listing (and trust me I have been looking, just probably not in the right place).

SK
Stohrm Knightforger is offline   Reply With Quote
Old August 28th, 2009   #13
Sitra Achara
Demon Lord
 
Join Date: Sep 2003
Location: Israel
Posts: 481
Re: Meaning of various object flags

Has anyone had any luck with making scenery objects obstruct line of sight/spellcasting by altering object flags? I haven't.

Closest I've got is using OF_CLICK_THROUGH to make the object obstruct movement (i.e. to take up space). It doesn't prevent players from shooting or seeing through it, however. No luck with OF_PROVIDES_COVER, OF_NO_BLOCK, OF_SEE_THROUGH and OF_SHOOT_THROUGH yet. It should be stated that I'm trying to alter spawned via script objects - haven't tested for MOB files yet. Is that the issue?

Also, doors seem to block visibility regardless of those flags, too (spawned or not).

Last edited by Sitra Achara; August 28th, 2009 at 09:15 AM.
Sitra Achara is offline   Reply With Quote
Old August 29th, 2009   #14
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

I had bad experiences putting OF_s on scenery objects (ended up with trees that you clicked on when you tried to run behind them), so I never do.

EDIT: Won't messy up the other thread, but loved the flags in the console thing
Shiningted is offline   Reply With Quote
Old August 29th, 2009   #15
Sitra Achara
Demon Lord
 
Join Date: Sep 2003
Location: Israel
Posts: 481
Re: Meaning of various object flags

Ok, so if I'm getting this right, the seemingly LOS-related OF_ flags don't affect LOS at all (OF_NO_BLOCK, OF_SHOOT_THROUGH, OF_SEE_THROUGH...) and are probably Arcanum leftovers.

Thus, the only way to affect LOS is through sector visibility (SVB), which can't be modified ingame (at least in realtime, i.e. without complicated file manipulation via script).

The doors (portal objects) do seem to affect visibility - perhaps I'll be able to make use of them. I'm trying to make toggleable barricades, so wish me luck...
Sitra Achara is offline   Reply With Quote
Old September 17th, 2009   #16
Shiningted
Lay off the junk son
 
Shiningted's Avatar
 
Join Date: Oct 2004
Location: Sydney
Posts: 9,149
Re: Meaning of various object flags

Updated post 2 to explain how to change Critter 2 Flags in scripts.
Shiningted is offline   Reply With Quote
Reply



Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 07:34 AM.
Our Host!


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Circle of Eight Design by Ian Miles "Sol Invictus" Cheong