#Burglary Overhaul
1 messages · Page 1 of 1 (latest)
Stuff to do:
- Trespassing
- Resolve pending thefts just before a guard talks to you
- Item stack handling
- Put abandoned stolen items back and restore ownership (shopkeepers could tidy up)
- Don't count followers as witnesses (exclude guards)
- Don't count bandits as witnesses?
I will repost this here for convenience. Just some possible ideas regarding implementation of trespassing:
-> trespass warning after entering the cell
-> small trespassing bounty if spotted (same as opening locks illegally)
-> ignore check if the spotter has more than 70 Disposition with the player
-> maybe the bounty could be cleared if you get the disposition with the spotter up to 70? It could be a fun system (you can use magic or persuasion to avoid the bounty) and it will probably prevent some weird edge cases
-> trespassing bounty could also be cleared if there are no witnesses alive
-> ignore check if the spotter is a non-guard NPC that belongs to the same faction as the player and the player has equal or higher rank (that will prevent weird edge cases as well)
-> ignore check if the player has a key (stolen or not, you don't have to pick the lock so it's not suspicious and AFAIK you said that checking the stolen flag is impossible)
-> ignore check if the area is wilderness (I think that you can detect that by checking whether resting is legal in a place - if it is, then it means that it's wilderness of some sorts, e.g. a cave, tomb, ruin)
Other random idea: routine guard searches for stolen loot after high value stuff was stolen. Let's say you steal high value Glass stuff from the Ghostgate. You wouldn't be able to just walk with this openly in Ald'run or Balmora with 0 risk. Words would get out very quickly (esp with teleportation magic available) and local authorities or crime syndicates or maybe even some factions would be on the lookout. Guard searches could be randomly initiated by dialogue after high value thefts and would sort of represent real investigations. The player could resolve this with persuasion, bribery or simply by keeping stolen stuff away, i.e. behaving like you would expect a real thief to behave.
That's a super cool idea! I'll have to add some more stuff to the interface, since that scope is so large it could be a separate mod with a dependency on this one. Maybe allow other mods to register a callback on a theft
Oh geeze you could even spawn in imperial inspectors / detectives that hang around places that have been burgled for a few weeks. There guys could follow you around in the cell 
It's a total hack but I could watch for any bounty increases and resolve pending thefts right then as well as when you leave the cell. That should fix the guard issue
It all depends on how complex this feature can get while still functoning in the context of the whole game. It's easiest to use the guards because they are used everywhere for the same purpose. They can easily search the player for stolen goods. However, other options would be available as well. Faction mercenaries, thugs, bounty hunters, other thieves employed to steal things back. Maybe you could even pay the TG to make the searches go away like with the bounty. Many things can be considered :). I just started with sth universal to get the idea going and in order to nudge the player to behave like a thief would. Note that even the mere existsance of such a feature puts the player on guard (hehe) and promotes doing immersive things like using stashes in some hideouts, avoiding bringing stolen goods to cities after high value robberies or avoiding cities altogether for some time, preparing some cash for bribes etc.
Being able to read the stolen flag would make this sooo much easier. Maybe I should just persist it permanently for all stolen items, then I can also keep ownership info. Yet another method on the interface
Still get into an issue with stacking items. Those might need exceptions. That's a bummer for diamonds and books and stuff
Other smaller ideas, but relevant for thieves: 1. Night time could boost the player sneaking skill in exteriors. 2. Torches/lanters could lower player sneaking skill in a radius. 3. Bad weather could increase sneaking skill, while sunny weather could decrease it (all just in exteriors ofc).
https://www.nexusmods.com/morrowind/mods/56985?tab=description there is a new interesting mod. Any compatibility issues? 🙂
The delayed application of the bounty will be a problem.
I'm starting to think I should apply the penalty immediately instead of when you leave. This would make Burglary compatible with most things and would simplify my spaghetti code. Kinda breaks what I was going for though.
I'm working on some fixes now to make detection and nwnb-ness more reliable. I also implemented the thing where if your bounty goes up, I immediately resolve any stolen items. It's just not reliably triggered
Is there any inherent advantage of the delayed bounty system? It's not a huge delay ATM (cell exit).
The only advantage I think is that it fits the narrative I was going for: they notice something was missing and then put 2 and 2 together
Maybe people are more interested in just making burglary harder though
I see the immersion appeal, but it doesn't change that much, I think. Only guards react to player bounty, anyway. The delay also isn't long and you would still keep the witness system, I guess. The advantage of the instantenous system seems to be better compatibility and less jank (like guard arresting you in the same cell and the bounty still applies outside so it's another arrest). It's probably at least worth considering. Food for thought 🧠
Yeah it would certainly make things less janky. It basically requires me to make nwnb-ness mandatory though. Maybe that's fine
Released 0.8.0!
- I fixed a bunch of weird behaviors. Things should be more reliable now.
- If a crime you do gets reported, it's counted as having been spotted. Additionally, if you get reported, all pending thefts will be processed immediately rather than waiting until cell exit. This makes getting caught by guards behave like you'd expect, with an accurate bounty.
- Added new interface methods so you can hook into onSpotted and onTheft events in your own mods. This should be able to power trespassing and detective mods.
stuff remaining to get out of alpha:
- don't count followers as witnesses.
- come up with a way to handle stacks
Doesn't the second point basically solve the delayed/instantenous dilemma? Seems like quite a nice solution 👌🏻
Figured out how to handle stacks correctly most of the time
Stacks and bandit handling all done, just got to publish it on nexus now. will do that later today
this officially gets the mod out of alpha, and is technically feature complete
1.0.0 is out!
I was crazy about this mod but the incompatibility with no witness no bounty was a nono. Thanks for implementing it😭 ❤️
Congratulations on 1.0 release 😀 . Trespassing system sounds like a natural next step. This mod and Go Home! mod will be fire 🔥
Omg that's such a great pairing
First pass at trespassing has been released in 1.1.0. Also introduced a keyring (don't use it yet, I just found a bug)
Removed the keyring. Realized it wouldn't work on slave bracers
The trespassing implementation is super basic.
If you use a door that has a key associated with it, I check if you have the key. If you do (or if you used to have it) then you're allowed in the area. Otherwise you aren't. Only works for doors that go to new cells
There's still one stack bug left that bothers me a lot. If you have an item and then pick up a duplicate of it, it won't be counted as theft. Maybe I can get around it with more code in the onActivate method
This is a nice trick but I don't think keys are common enough to serve as the core of the system with no other factors. There are many locked doors in cities and towns with no keys attached to them. Also, do you exclude caves, tombs, ruins and such?
I don't exclude caves/tombs/ruins. Those aren't usually locked from outside, right?
This might be one of those cases where I need to integrate with Go Home! to see if the door is to a house
I think I can get around the last stack bug by tracking the owner of the last activated object and override the owner on the next item detection check
I will also note that there are various storerooms and other cells inside shops etc. which are locked. If you enter them, you get transferred to a different cell. Definitely private 😉
Go Home may additionally lock some homes and shops at night and move NPCs around, but it doesn't add new keys.
you should check whether the key that the player has is, itself, marked as stolen
Yeah I think I can manage that with the existing code without too much extra work
Yeah, by integration I mean hook into which doors it actually locked and consider those as off limits, too
1.1.2 just has some more stack handling corner case bug fixes and also a trespassing alert
Item ownership stuff is now as solid as I can possibly get it
With 100% resistance to magic, you constantly receive the "You resisted magic" message
This would be a nice touch, there will only be a few niche cases where you steal the key off a bandit and enter a new area which is locked. Also, if you ignore the bandits and lockpick your way into a new section you will be reported (it's very rare but it happened to me in (modded) Minabi, where the slaves reported me for trespassing 🙂 - but like I said, a very niche thing). All in all, great mod, 10/10 would trespass the ungrateful slaves again.
slaves (NPCs with Slave class) probably should be ignored as spotters, anyway.
Not necessarily, I can imagine cases where a slave would report a crime - for fear of reprisal if nothing else
Although it would simplify some things, true
Good point. Maybe the initial idea from this post - #1385285370249482240 message - is better because it's more universal with a system based on Disposition (spotting ignored if the NPC likes you)
I will repost this here for convenience. Just some possible ideas regarding implementation of trespassing:
-> trespass warning after entering the cell
-> small trespassing bounty if spotted (same as opening locks illegally)
-> ignore check if the spotter has more than 70 Disposition with the player
-> maybe the bounty could be cleared if you get the disposition with the spotter up to 70? It could be a fun system (you can use magic or persuasion to avoid the bounty) and it will probably prevent some weird edge cases
-> trespassing bounty could also be cleared if there are no witnesses alive
-> ignore check if the spotter is a non-guard NPC that belongs to the same faction as the player and the player has equal or higher rank (that will prevent weird edge cases as well)
-> ignore check if the player has a key (stolen or not, you don't have to pick the lock so it's not suspicious and AFAIK you said that checking the stolen flag is impossible)
-> ignore check if the area is wilderness (I think that you can detect that by checking whether resting is legal in a place - if it is, then it means that it's wilderness of some sorts, e.g. a cave, tomb, ruin)
Just successfully tested a fix. Will upload it in a few hours 😎
Might work on an icon next that pops up while sneaking if you are spotted
I can also make Spotted trigger if you just hang around the NPC while not sneaking, and also when you activate them for a conversation
More robust spotting, trespassing bug fix, and trespassing on owned doors coming in about an hour
The owned doors change might work with doors locked by Go Home!
Uploaded 1.1.4
Thanks for the update, my friend!
This might just be the mod of the year, at least for gameplay purposes
Sophisticated!
Oh I think I could do a sneak meter. Just take the lowest elusiveness - awareness score of all nearby NPCs
I'll need to actually take facing into account before I do that though
I occasionally get the "no witnesses" message prompt when I don't think I should. I don't know what's triggering it yet, just that it happens sometimes when I'm just moving through town
Some thoughts on trespassing - overall it's a great improvement. However, the trespassing message sometimes appears without any reason - I use BCOM and it happens I exit the Black Shalk Cornerclub (after having rented a room), or when I enter the house of the Dunmer trader in the working district of Balmora. Lastly, it messes up some quests, like Tsyia's Skooma Pipe, also in Balmora, where you need to go through a locked door to reach the quest target. I'm not sure if a temporary blacklist could be applied to certain quest targets.
I'm working on cleaning up some event processing, which should fix the messages popping up when you don't expect. It's a tough one.
A blocklist is a great idea. It'd have to be defined by destination and target cell. If you can get me the records for those cells you'd like to block it'd help me out when I get to working on it. I don't have bcom
Sure, I'll try. The first (vanilla) cell is: Balmora, Tsiya's House. Whenever I enter the cell I immediately get the trespass message and a reported crime every few seconds, although the NPC has no line of sight to me - she's on the floor above.
Ty, I'll tackle this next
Released 1.1.5, which should have less aggressive alerts and some nasty race condition bugs fixed. It's getting really complicated in there so it's hard to test 😭
I think I'll just have to introduce a raycast in the check for this
Trespassing triggers when I enter "Mournhold, Royal Palace: Courtyard" after teleporting to the dlc
I grabbed this mod right away when I read it's description. It's fascinating that some 20 years later, Bethesda games don't come close to this mods level of complexity and gameplay engagement in regards to the thievery system.
I had a thought about the implementation of a more nuanced approach to NPCs noticing theft, based on a few variables that I thought I'd share.
As the system is currently, as long as your noticed, and something goes missing, a bounty is registered into the system. This works fine on paper, and is a step up from the normal systems in honestly ALL of todds games. But what if it's something inconsequential?
Where does that line get drawn? How?
Let's say you steal a quill from a library. Would someone notice that?
If you stole the fishing rod from a peasant who's only job was to fish, would he notice? (Yes)
What if you stole a single common shirt from a clothier with thousands of gold worth of stock?
I think ultimately, the best way to approach designing this level of complexity might involve checks when entering a cell that calculate the total wealth within the cell (not worn on bodies), and then scaling against that with a %.
-
For example, entering a peasants dirt hut, and stealing his only prized possession, a fishing rod, might only be worth 5 gold. BUT, if the things in his hut are, totaled, only worth 35 gold? You just stole 15% of his entire net worth! He's going to notice.
-
Another example might could be a Tavern, where you steal a single fork on a table on your way out. Let's say it's value in the total tavern only constituted 1% of the total value of the cell. Would the vendor notice? Or care?
I think ultimately, an addition like this would be the next step in such an amazing mod like this, but I don't have the know how on how to integrated it as both lightweight, and intelligently.
Either way, I can't way to try this mod out, and bugtest the hell out of it. Thank you for such an interesting mod!
I've been thinking about this and there's one small gotcha when it comes to implementing it:
I don't want to inspect the contents of containers until the player opens them to check. Doing so will resolve the contents if they are leveled.
Maybe this could be approximated just by summing the value of stuff in their personal inventory rather than every container they own. Maybe with a level modifier or something.
Also I'm really glad you're excited to try it out! Interest in the mod keeps me working on it
Each container that isn't unique and contains generated loot has a levelled list applied to it though, right? You could always have the system auto generate a median value for those crates.
"Misc Swamp Outlaw Cave Loot Boxes" - 250g
"Locked Large Chest Ancestral Tombs" - 200g
etc
It wouldn't be wholly accurate, but it would keep things from calling and getting overly complicated
I'll have to look into the API. I don't remember seeing a way to read the levelled list info
You can inspect unleveled items without resolving the container. I think those items matter more regarding real belongings
Also triggers for "Balmora, Nine Toes' House"
1.1.7 is released! This has these fixes:
- Line of Sight checks are now made when determining if you are spotted. This should fix some cases where you were getting spotted through the ceiling.
- The passive (non-voice) radius has been increased a little.
- Facing direction multiplier is now implemented, so we're basically fully matched to the vanilla game mechanics now when it comes to sneaking.
- Quasi exteriors are excluded from trespassing checks (hopefully this fixes Mournhold).
Maybe I could do a console command to add cells to an override list. Then it would be easier to get a good list with the correct record IDs, which I can then use as a default list
Just seems like there are going to be a lot of overrides for trespassing
Maybe a heuristic that checks if there are a bunch of owned items in the target cell. If there aren't many, don't count it as trespassing
Released 1.1.8 which messes with the trespassing rules
Hopefully no more false positives
Also stolen keys don't matter if the door is owned
Released 1.2.0 which adds a configurable HUD icon for Spotted status. Also swapped out the title art
Next set of changes will wait until Go Home! integration happens
I found a replicateable bug that I don't think is intentional.
If you place a stolen object in a container, and then take it back out, NPCs will recognize that the item was stolen, and flag you for theft, even if it's your own container, even if it's unowned, etc.
That's not the issue, that's just the inherent system.
The issue is the mechanic of "Companion Share", a system where you can give items to NPCs to use.
It's in the vanilla game, and is called on for many modded in companions.
Placing a stolen object into an NPCs inventory using the system does nothing. Taking it back out, on the other hand, causes the NPC to report you on the spot.
On top of the "reported theft", the NPCs disposition with you also plummets, acting as if you've stolen directly from them.
I'm not sure how you would reconcile this, but perhaps there's a unique reference to containers that are utilized with "companion share" that you could effectively blacklist?
EDIT: This only occurs when "Spotted".
EDIT 2: Getting random bounties when interacting with ANYTHING in a "companion share" container.
Thanks for the bug report!
I'm not sure how companion share works. Which mod is the companion from?
There's really two issues here-
Companions will Spot you
Something about that inventory share window is not being picked up by the dialogue/barter check
Ah I could probably test this vs the pack rat in Mournhold.
It might be a mwscript 'Companion' variable set to 1
I also need to add borders for the spotted icon so it better matches the sneak icon. Note to self: https://openmw.readthedocs.io/en/latest/reference/lua-scripting/interface_mwui.html
Copying this bug report here so I don't forget it:
Hi, ive been getting this message in my log when i start the game:
[20:45:19.439 E] Global[scripts/ernburglary/global.lua] eventHandler[ErnBurglaryonNewItem] failed. Lua error: [string "scripts/ernburglary/global.lua"]:54: thieveryKey() bad cellID
[20:45:19.439 E] stack traceback:
[20:45:19.439 E] [C]: in function 'error'
[20:45:19.439 E] [string "scripts/ernburglary/global.lua"]:54: in function 'thieveryKey'
[20:45:19.439 E] [string "scripts/ernburglary/global.lua"]:87: in function 'getCellState'
[20:45:19.439 E] [string "scripts/ernburglary/global.lua"]:708: in function <[string "scripts/ernburglary/global.lua"]:705>
This one really shouldn't be happening. Very weird.
Need the openmw version and also if this goes away when the cell changes
I'll post an update tonight with these fixes:
- border around the spotted icon
- companion inventory won't trigger theft
- use backup cell ID for race condition
Posted!
I've been working on a companion mod to this one that adds radiant heist quests to the thieves guild. I was planning on releasing it as a different mod, but now I'm wondering if I should just include it as a separate, sibling data file in this one
Anyone have preferences on this?
Probably separate. It's different enough. Not everyone likes things like that, so you won't scare off these players.
I think so long as it's a separate file to enable, it can go stand-alone or with this. Either gives folks the option to use it or not.
If you make it a separate mod, then you can boast about multiple mods, not just this! Bonus win! 😄
Thanks for the feedback! I think I'll release it separately so I don't spam people with updates they don't care about
Not sure and sorry if this was already discussed- but current saving and reloading resets your “spotted” status
Effectively rendering this mod exploitable
That's a new bug, thanks for reporting 👍
Hey hey! Coming over here from the other mod channel. Does burglary overhaul include that one shrine feature?
It’s not a big deal, I was just curious because I was thinking about making a mod for it if there isn’t already one out there. It’s a very silly thing though 🤣
Ah no, this mod doesn't do shrine stuff. I was just talking about how to apply an effect without absorption
Oh word! Rather than shrines, what do you use it for?
It's to apply the drain sneak penalty while you're Spotted in an area
Interesting, and without lua that would be absorbed by spell absorption?
Yeah that's right. If your intention is to do a shrine replacer you'll find it to be a ton of work. You'll probably need to re-implement (de-hardcode) the shrine UI first
Yeah I figured. I actually had no idea that atronach absorbed shrine blessings until very recently and even though it’s not a huge problem and you can just spam shrines, I wondered how this could even be solved 🤣
Mods like fair care are also absorbed by atronach too. It’s a funny birth sign
Another bug report so I don't forget about it:
[12:53:19.958 I] Global[scripts/ernburglary/global.lua]: DEBUG: multiplying value of Kwama Meat (10) by count 5.
[12:53:19.958 I] Global[scripts/ernburglary/global.lua]: DEBUG: using backup owner for Kwama Meat
[12:53:19.958 I] Global[scripts/ernburglary/global.lua]: DEBUG: assessing 5 new item: Kwama Meat(@0x3767): not owned by anyone
[12:53:19.958 E] Global[scripts/ernburglary/global.lua] eventHandler[ErnBurglaryonCellChange] failed. Lua error: Object is not available: @0x3764
[12:53:19.958 E] stack traceback:
[12:53:19.958 E] [C]: in function '__index'
[12:53:19.958 E] [string "scripts/ernburglary/global.lua"]:480: in function 'resolvePendingTheft'
[12:53:19.958 E] [string "scripts/ernburglary/global.lua"]:673: in function 'onCellExit'
[12:53:19.958 E] [string "scripts/ernburglary/global.lua"]:685: in function <[string "scripts/ernburglary/global.lua"]:680>
[12:53:19.958 E] [C]: in ?
[12:53:19.967 I] L@0x1[scripts/ernburglary/player.lua]: DEBUG: sending spotted by event for r_bc_n_reeds
[12:53:19.968 I] Global[scripts/ernburglary/interface_test.lua]: DEBUG: onSpottedChangeCallback(table: 0x022871d1b870 {
[12:53:19.968 I] spotted = false,
[12:53:19.968 I] cellID = Esm3ExteriorCell:-2:-9,
[12:53:19.968 I] player = object@0x1 (NPC, "player"),
just as i leave Arrille's
I committed a bugfix for this, but I'm holding off on the release for now
Any more info about rewards and such? How are they determined? Also, how is not detected check handled? Cell-based? Owner-based? Crime-based? Can you fail the quests?
If you get caught stealing the item (vanilla detection or burglary overhaul detection), you'll get 250g. If you don't get caught, you'll get 600g. Returning the goods will also increase your faction reputation. You can quit a heist if you don't like it or can't complete it
Maybe perceived quest difficulty and rewards should be scaled based on player rank.
That's a good idea. I could scale rewards pretty easy. Judging difficulty is way harder
Well, I don't know how you choose quest targets. If they are in containers, then container lock lvl and trap check as well as nearby NPC and/or owner lvls are some possibilities. Items outside containers could also be perceived as easier to take. If the owner belongs to a faction, then that also may be perceived as more difficult as it may be trickier for some players.
Distance check may be another factor, if that's possible. Far away target = harder.
Those are all great 😃
For the faction check, maybe it could be perceived as harder if the player is in the same faction as the owner.
The conditions to show the spotted icon don't work well for me.
With the "sneaking" setting, the icon is hidden at first, but then it appears when I press Shift, which is my key to force walking, then it never disappears, even when toggling the sneak mode (Ctrl for me)
It actually disappears when I change cell
It also appears when I first crouch, but then is never removed when I quit the sneak mode
Detecting sneak mode is based on animations. Force walking must be messing with it somehow
It only triggers when you start walking or stop walking for me (I don't use auto walk)
I tried multiplying the reward gold by your TG rank and it just isn't working 😭
Mwscript is not something I like
Do you have "always run" on?
Yes I do
I can't reproduce this on my end. It's normal that the icon only sets/resets while you are moving. I can't get the icon to stick on though
I test in with OpenMW test mode. I'll try to create a video
If you can, turn on debug mode and send me a log 🙏
Oh and I play in first person view
Yeah me too, that shouldn't be a problem
Oh I repo'd it:
- Get spotted.
- Enter stealth.
- Hit auto run.
- Unstealth.
- Walk around
False alarm on repo. Can't do it
When you look at the log I'm mostly interested in lines containing "Spotted Icon"
When you toggle sneak off you need to take a step afterward
If it's easier you can stream on discord so I can watch
hmm I only have 5 minutes, so I'll just send you a log where I press shift and the icon appears
Here I just move forward, then backward, and the icon appears during the backward move
I don't sneak, I don't press shift to walk, I'm just with autorun
Now I just move forward, wait a sec and the icon appears
Maybe it's not related to shift or control. If I stay still, no icon, but when I move the icon appears shortly after
it's normal that the icon doesn't hide/unhide while you are not moving
I don't think it's related to your controls either
do you have any animation mods installed? are you using animation blending?
I have these set in my settings.cfg:
[Game]
use additional anim sources = true
smooth animation transitions = true
asking if there's a better way to detect sneak mode here: #lua-scripting message
Is there a more reliable way to determine if the player is in sneak mode other than registering handlers on interfaces.AnimationController.addTextKeyHandler ?
try this version please: https://github.com/erinpentecost/ErnBurglary/archive/refs/heads/main.zip
Thx, I'll test it later in my evening
Just tested, same behavior.
Here is the log where I just move forward for half a second:
If I stay still, no icon, if I move forward for half a second and then stop, the icon appears after approx one second
That delay is really long but that's kinda how it works. The icon doesn't get stuck even if you are moving, though, right?
wow that's annoying:
[01:09:21.585 I] Global[scripts/ernburglary/interface_test.lua]: DEBUG: onSpottedChangeCallback(table: 0x7f8ee48cf1d0 {
[01:09:21.585 I] spotted = true,
[01:09:21.585 I] npc = object0x1050ed4 (NPC, "tolvise othralen"),
[01:09:21.585 I] cellID = seyda neen, arrille's tradehouse,
[01:09:21.585 I] player = object@0x1 (NPC, "player"),
[01:09:21.585 I] })
[01:09:21.618 I] L@0x1[scripts/ernburglary/alerts/player.lua]: DEBUG: Spotted Icon: hiding
[01:09:21.619 I] Global[scripts/ernburglary/trespass/global.lua]: DEBUG: Player was spotted.
something doesn't seem right there. I put up a new version at that link with some more logging
Ah it stuck on me once after being spotted and then taking a stilt strider 😩
Here is the log with the last version
Not sure I understand your question. Once the icon appears, it stays until I use a teleport door.
Thanks!
[10:30:40.424 I] L@0x1[scripts/ernburglary/alerts/player.lua]: DEBUG: Spotted Icon: hiding. spotted: true, sneaking: false
[10:30:40.425 I] Global[scripts/ernburglary/trespass/global.lua]: DEBUG: Player was spotted.
This log shows that the icon should have been hidden because you weren't sneaking (but you were still spotted). Since the icon was stuck on though, something strange must be going on with the icon hiding code.
@red thorn here lol
nice one!
i was way off
iv had a pretty confusing time in general, trying to figure out whats going on in my game was interesting. i was getting an error when i leave Arrille's about some kwama meat he had. it seems like its stuck trying to resolve a bounty for the meat even if it doesnt exist anymore. every time i walk out the door it tries again, it pretty odd. i still need to find out how the ownership is set by the mod Hunterwind
the thing is it wont stop trying to resolve even if i eat all the meat and reloadlua, is there a way to purge the script or something?
The mod tries to save state per cell in a big nested table. I should be able to add a check if the item doesn't exist anymore. I'll need to add a lua command that can be called in the console so you can purge state
I put up yet another build on that same link. I wasn't able to reproduce the problem but I changed a lot of the UI code so hopefully it's more robust now
Released a new version that fixes dubiousnpc's problem but probably won't fix yours, mym
I'm so sorry, I mixed up the spotted icon with the active spell red icon...
my original request was to prevent having a permanent red icon on my active effects icon bar
it constantly catches my attention
I think you could achieve that by altering the active effects instead of active spells
Whew! Ok I can check it out later
Question, I haven’t downloaded this mod yet (mostly because I like being op since my character mostly wears medium armor), but how does camouflage work with detection? If I enter a building with camouflage active and I’m not spotted, will I still get flagged as a burglar?
You mean chameleon? It's factored into the detection check. Just be in sneak mode and nearby NPCs might not flag you as spotted
Note to self: in radiant theft, does the placement of a macguffin into a container with a levelled list resolve that container forever? Might need to restrict to non-levelled containers
This is something I e been wondering about. Is there a way to set a point to spawn an item? I was thinking about ways to randomly restock a shops shelves
It would be cool to be able to set spawn points to hide randomized items around in the world
I thought about casting rays from the actor until it hits a wall and then cast down from there to get a point in space. Then I could place the item out there
More tweaks would be needed to ensure the item isn't overlapping other items
Ultimately I think doing it procedurally would be a looooot of effort for something that is still janky
Most things would only fit on the floor
Also finding the macguffin will be such a pain in the ass if it's small like a moon sugar or an amulet
Might be neat to have a detection spell equivalent
Yeah chances of frustration are pretty high with that, I bet ownlyme would add it to Hudmarkers if you asked 🤔
New build at the same link. Lets you turn off the effect completely
Working on some fixes and narsis support for Radiant Theft too
Oh, you mean no icon, no effect?
Yeah, no drain effect at all
Alright, thx for the option
Fixed a bunch of bugs in Radiant Theft. Narsis wasn't showing up in the target list 😬
Released as 0.1.1
I still think that rewards should have some scaling. Surely we can base it on something. Even distance alone as it makes sense that a heist in a nearby city pays worse than a quest half a world away.
I agree! I just haven't figured it out yet 🙂
Please try out the build here: https://github.com/erinpentecost/ErnRadiantTheft/archive/refs/heads/main.zip
I'm calculating rewards like this:
if you're caught: 100 + (150 + (75 * math.log(currentJob.distance)) + (5 * playerRank * playerRank))
if you're not: 100 + (200 + (100 * math.log(currentJob.distance)) + (6 * playerRank * playerRank))
Critical bugfix released in 0.1.2, please update so you won't get super frustrated
New releases:
- Burglary Overhaul: Patch for OpenMW 0.50 compatibility. The Sneak Drain penalty is now optional.
- Radiant Theft: Better selection of target cells. Repeats are deprioritized and the max distance is a soft max distance.
0.50? I had to miss sth 😄
There are already dev builds for the next version, with major and breaking changes
Radiant Theft thoughts:
I think I'll work on prioritizing non-sacks next for containers. Then if we get a chest or desk, I can proactively lock it if it isn't locked.
One issue I'm running into is that in huge TR cities, it's very very hard to track down where the target container is. This is even more difficult because the NPC might not be in the same cell as the container they own. Not sure how to handle this diegetically
Added some localizations in the latest release and also changed the Spotted icon (and made it so you can override the icon with something else). I can't mark the mod as compatible with more than one language in Nexus 🙁
Radiant Theft: Added prioritization to container selection so sacks, urns, and baskets, and unlocked containers will be chosen less often. Haven't made a release on nexus for it yet
Maybe you should lock them automatically? The higher the reward, the higher the lock.
I was looking into that but it's hard to reliably tell the difference between sacks, crates, etc and desks/chests. I accepted that ambiguity when doing prioritization because the failure mode doesn't matter that much, but if it gets messed up on locking I'll end up with locked sacks. Maybe I just accept that though
Can't you exclude everything with "sack" in the name?
That's what I'm doing with prioritization, yeah
It should be reliable. Sacks tend to be... sacks 😆
Ok! 😜
Have you seen a sack named differently?
I just want the failure mode of running the mod in a different localization of MW to be graceful. That's what I was thinking
I can make that work if I instead look for chest or desk though
Pushed up locked containers in 0.1.4 😎
The lock difficulty scales based on Thieves Guild rank, which also is a component of the reward
Burglary Overhaul is now on modding-openmw.com 😁
Welcome 🙂
Congrats!
Nice!
New feature to consider: level up Sneak based on unspotted item value theft
Ooh yeah that's good, what do you think of tracking location too? Like stealing from a palace or dangerous enemies, iirc FreshLoot has some clever way of calculating threat level of an area. Such interesting times
Area danger is an interesting idea, but I don't know about it. Usually palaces will have more value of stuff to steal and more guards, so we already get more XP per danger for free
Sneak XP gain is now released in 1.3.0!
Is it compatible with NCGD? NCGD is part of the modlists so it's commonly used.
It should be, as long as it adds XP outside of normal XP triggers (skill used handlers), otherwise mods have to use NCGDMW's interop features.
But NCGDMW applies an exponential skill reduction to slow down the skill progression at high level, and mods that add XP for new actions may not do that. Not a big deal, but such external gains may become the easiest way to increase skills at high levels.
I could add an interface function that takes a skill id and gain, and returns the new gain value according to NCGDMW's skill reduction setting.
I divide the incoming XP by a power of the base skill value (think I settled on 1.7)
Thank you for the update
I'm curious, is there incompatibility with Pause Control and Shop Around? I'll have to do more testing. Thank you.
People say they work together. If you confirm that I'll update the description 🙏
I'll do some thorough testing today and report back. Thank you for all the hardwork.
That would be great 😃
Does it handle gain past 1? I had trouble scaling correctly if it would cause a level up while advancing progress
Yes, it works for any gain value and any skill level. The formula to get the gain factor is:
getLogRangeFactor = function(value, min, max)
return (min / 100) / ((min / max - 1) * (value / 100) ^ 2 + 1)
end,
Where value is the skill level, min is the ratio at level 1 (e.g. 1.5 means 150%), and max is the ratio at level 100 (e.g. 0.1 means 10%)
Thank you! I'll update the code I'm using to match that
No problem. Min and max are settings defined by the player.
So you'll get different factors based on what you set for min and max, and what the player set

Or maybe a better approach would be for you to trigger the skill used handler, and for NCGDMW to apply its handlers as it already does
But I have to find a way to detect when a skill used handler is manually called from another mod
Currently it will work if you use the scale field of the options parameter, and you add another field for NCGDMW
I need to read up on the skill used handler. I guess I could just trigger it multiple times if an item was super expensive
There is a scale field for that
Like 1 means normal gain, 2 means double...
That's perfect, will go that route then 
Could you please add a "manual = true" param? This way NCGDMW knows the trigger comes from another mod and then it won't override the gain, won't try to scale the gain...
Example:
I.SkillProgression.skillUsed(core.stats.Skill.records.unarmored.id, { scale = 1 / 8, useType = I.SkillProgression.SKILL_USE_TYPES.Armor_HitByOpponent, manual = true })
Ah I was going to set the gain just based on item value and then let the game work it out when using the skill progression interface. Like take the log of the item price and set that as the base?
So I wouldn't copy this with the interface
I'm away from the computer right now, can't check anything
I would rather convert the item value to a scale value. Like scale 1.0 for an item of average price
But as Morrowind has very expensive items (Daedric...), I would first apply some sort of log function on it
For example, price^0.5 / 20, and possibly cap the result at 2, 3, 5, or 10
With this formula, the scale would be 100% for a price at 400
And it would be 1100% for an item valued 50K
You can also cap the min scale value to 10%, 25%, or 50%...
Indeed. If you trigger the skill used handler, you then rely on other mods for scaling and other features, making your mod more compatible
ok, I'm planning on doing this:
interfaces.SkillProgression.skillUsed(core.stats.Skill.records.sneak.id,
{ scale = math.min(5, math.log(itemvalueingp * burglaryoverhaul_scale_factor_setting)), useType = interfaces.SkillProgression.SKILL_USE_TYPES.Sneak_PickPocket })
I think I'd prefer NCGDMW still doing scaling
Published in 1.3.1
If you didn't add the "manual" param, NCGDMW will override your gain because of its "skill uses feature".
But I think I'll have to change how NCGDMW overrides the default gains: Prevent override if the user didn't change the default value
I won't be able to code anything before August 18th though
That's not a long time to wait for a 20 years old game, so no worries 
As for skill gain, I would keep it low. It should be just a nice bonus, not an optimal way of levelling IMO
It depends on the frequency. Is it a gain applied to every theft one can do?
I found a potential bug, should I describe it here, or in nexus?
Yeah it's every item theft. I could change the default scalar to be even lower
Here is great, thank you 😀
Btw is it customisable?
Yeah you can change the scalar
I think your mod collides with Graphical Herbalism somehow.
When picking plants, there is a slim chance (maybe 1/20?) that the plant is not visually "picked", and no item is being added. When saving, then reloading after picking, the plant is now visually picked.
I did some testing, and the issue only seems to happen with your mod active. There is no error in the log.
That's bizarre! Are you running with a Graphical Herbalism mod or just the built-in stuff to openmw? Which version of openmw?
I'm running 0.49 with built-in graphical herbalism and have never seen this behavior
Actually... will it? In this particular case NCGD does nothing. Security is scaled. Sneak is Vanilla. Right?
And Vanilla already has some Sneak scaling btw
NCGDMW currently overrides every base gain because it allows changes for every type of use.
Tried overriding the crime interface and I'm having no luck-
https://github.com/erinpentecost/ErnBurglary/pull/30/files
I'm on 0.50 nightly. I just use the OpenMW graphical herbalism. I think one still needs these assets, right?
https://www.nexusmods.com/morrowind/mods/46599
Only mod modifying the herbalism would be the fixes from Optimization Patch.
Did some tests again, I can still reproduce it! 😮
Weiiird!
Here's my load order:
<snip>
data="../mods/Gameplay/GraphicHerbalismMWSEandOpenMWEdition/00 Core + Vanilla Meshes"
data="../mods/Gameplay/GraphicHerbalismMWSEandOpenMWEdition/01 Optional - Smoothed Meshes"
data="../mods/Performance/MorrowindOptimizationPatch/05 Graphic Herbalism Patch"
data="../mods/Gameplay/GraphicHerbalismMWSEandOpenMWEdition/00 Correct UV Ore + README"
data="../mods/Performance/ProjectAtlas/00 Core"
data="../mods/Performance/ProjectAtlas/01 Textures - MET"
data="../mods/Performance/ProjectAtlas/02 Urns - Smoothed"
data="../mods/Performance/ProjectAtlas/03 Redware - Smoothed"
data="../mods/Performance/ProjectAtlas/04 Emperor Parasols - Smoothed"
data="../mods/Performance/ProjectAtlas/07 Graphic Herbalism Patch"
<snip>
burglary
Can you enable debug logging inside BO settings and check the log?
would there be some way to do it post-detection? I have no idea what all can be tracked, but player is in non-hostile cell and steals something, is detected, every NPC goes into combat. There must be something in those events you can hook into and intercept, then pacify all the NPCs, identify the owner of the stolen item (???), and make that npc do a forcegreet etc.? Maybe even not care about the owner, just the nearest previously hostile npc (might be a bit odd here and there)
BO already detects theft and item owner, but I rely on the bounty increasing in order to check if a player was caught "red-handed". so I reduced the penalty for theft in the GMST to 1 gp (it can't go lower)
ha, clever
it could be possible to pacify after the fact but it will be a hacky mess
immediatly after encountering the issue, the log only says:
[14:00:41.002 I] Global[scripts/ernburglary/global.lua]: DEBUG: resolved container
everything I do is a hacky mess so I don't see the problem there, sorry 😛
relevant cfg:
data="...mods/Graphic Herbalism/00 Core + Vanilla Meshes"
data="...mods/Morrowind Optimization Patch/05 Graphic Herbalism Patch"
Thank you!!
I'm force-resolving the inventory on activate if it isn't already. this might be clashing. give me a moment and I can get you an alternate build
@ivory jay please try https://github.com/erinpentecost/ErnBurglary/archive/refs/heads/herbalism50fix.zip
I wonder if graphic herbalism is checking if the inventory is resolved in order to decide to change the mesh or not
wow - I did some tests and it seems to be fixed!!!! 🙂
ty! lemme know if you see any other issues with that build particularly around levelled lists (if you wouldn't mind)
what is the issue with levelled lists?
I turned off force-resolving of inventories. So if an item appears from a levelled list, I might not be able to determine the owner based on the container it is in. so you might be able to steal things from containers containing levelled lists without any issues (BO after-the-fact theft, not normal theft)
yes I just confirmed on my end that this breaks BO for levelled lists
sorry @ivory jay , the fix is bad 😔
posted in #development-main message
If you resolve a container's inventory during onActivate in 0.50 (not seen in 0.49, but I could be blind) then Graphic Herbalism fails to update the mesh. #1385285370249482240 message
I think the Graphic Herbalism feature is relying on the inventory not being resolved
@tepid grotto I think you can get the behavior you want by setting iCrimeThresholdMultiplier to 0. then you'd get manual control over NPC fight thresholds (I think)
@ivory jay I merged a fix in https://github.com/erinpentecost/ErnBurglary/archive/refs/heads/main.zip , it will appear on nexus next time I do a release. this prevent BO from resolving plants (so you can pick flowers and not get in trouble), so at least graphic herbalism won't be broken
I think I'm sending negative scale values if you steal an item worth less than 10 gp 🤣
For whatever reason I'm getting a 10 gold bounty each time entering Drulene Falen hut, it wasnt even locked. Why could that be?
There's probably a key assigned to the door
And I'm guessing you have a follower that is reporting you
I didn't have a follower, but Drulene was inside. I was sent there for the first Redoran quest, afterwards she can be found outside.
Yeah that would do it
There's a bunch of heuristics to guess if you're trespassing or not and they sometimes fail
Hey my friend, I made a post on nexus. I'm not sure if this helpfuk but I have the current dev and latest burg, and also use better bars
[13:33:54.532 E] Error in callback: Lua error: [string "scripts/ernburglary/alerts/player.lua"]:61: attempt to perform arithmetic on field 'iconOffsetX' (a nil value)
[13:33:54.532 E] stack traceback:
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:61: in function 'makeIcon'
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:84: in function 'drawSpottedIcon'
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:99: in function 'fn'
[13:33:54.532 E] [string "scripts/ernburglary/settings.lua"]:108: in function <[string "scripts/ernburglary/settings.lua"]:106>
[13:33:54.532 E] [C]: in function 'set'
[13:33:54.532 E] [string "scripts/omw/settings/common.lua"]:127: in function <[string "scripts/omw/settings/common.lua"]:122>
[13:33:54.532 E] [C]: in ?
[13:33:54.532 E] Error in callback: Lua error: [string "scripts/ernburglary/alerts/player.lua"]:61: attempt to perform arithmetic on field 'iconOffsetX' (a nil value)
[13:33:54.532 E] stack traceback:
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:61: in function 'makeIcon'
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:84: in function 'drawSpottedIcon'
[13:33:54.532 E] [string "scripts/ernburglary/alerts/player.lua"]:99: in function 'fn'
[13:33:54.532 E] [string "scripts/ernburglary/settings.lua"]:108: in function <[string "scripts/ernburglary/settings.lua"]:106>
[13:33:54.532 E] [C]: in function 'set'
[13:33:54.532 E] [string "scripts/omw/settings/common.lua"]:127: in function <[string "scripts/omw/settings/common.lua"]:122>
[13:33:54.532 E] [C]: in ?
[13:33:54.533 E] Error in callback: Lua error: [string "scripts/ernburglary/alerts/player.lua"]:61: attempt to perform arithmetic on field 'iconOffsetX' (a nil value)
[13:33:54.533 E] stack traceback:
Oh interesting! Thank you for the logs 🙂
In the meantime, try changing your icon offset horizontal value and then saving the settings
Okay ty my friend
Hmm it seems to resolve it temporarily but does dim out again if I reload hmm
You may need to change the setting and then save your game
Ty my friend
heya ive been getting this in my log, i havent encountered any issues with it, just if its useful.. [12:02:16.445 E] Global[scripts/ernburglary/global.lua] eventHandler[ErnBurglaryonCellChange] failed. Lua error: Object is not available: @0x925
[12:02:16.445 E] stack traceback:
[12:02:16.445 E] [C]: in function '__index'
[12:02:16.445 E] [string "scripts/ernburglary/global.lua"]:476: in function 'resolvePendingTheft'
[12:02:16.445 E] [string "scripts/ernburglary/global.lua"]:674: in function 'onCellExit'
[12:02:16.445 E] [string "scripts/ernburglary/global.lua"]:686: in function <[string "scripts/ernburglary/global.lua"]:681>
[12:02:16.445 E] [C]: in ?
Looks like an error caused by a change in your load order. Or when a summon disappeared and load saved/loaded your game.
ok thanks good to know, i was testing some stuff so that makes sense
changing the load order can change the game object ids which is not good for mods, unless they explicitly handle such cases
This also happens in older versions when you destroy an item after stealing it, but before you leave the cell
ah yes im pretty sure you made a fix for me specifically for that 😅 apologies, ironing out the bugs in my load order is kind of my meditaion
i really appreciate everyone here being so helpful
Started a new playthrough with this mod. I'm never going back to Vanilla. It's such a fun addition that really makes you think more like a thief, actively avoiding detection. It just works
.
Btw default bonus Sneak for unnoticed theft is way to high IMO. I changed it to 0.001 and it's still good. Default was 0.1 IIRC. Playing with NCGD btw.
Spotted system works well. Trespassing is quite cool.
Thanks for the feedback! I'll add it to the list of stuff to change
After about 8hrs I disabled this feature as it makes Sneak levelling too fast if you play a stealthy character. I'm also not sure what's the minimum possible value above 0 there. With 0 there is no additional XP, but differences between 0.0001, 0.001 and 0.01 aren't always obvious.
Yeah it's a little weird. I divide the value by 10, then take the logarithm, then cap it to 3, then apply your configured value (last I checked)
A value of 1 is equivalent to a pickpocket
Maybe I can just subtract your current sneak level first
Maybe the higher the skill, the higher the wealth requirements for additional skill progress. It shouldn't be a very generous feature by default IMO.
Is the base value (before you reduce it) the same as one of Sneak base gains?
I would take a fraction of a base gain, and if NCGDMW is detected, I would use it's interface to add a skill used handler so NCGDMW apply its multiple reductions
I'm digging into right now actually. This is what I currently have:
"data" is the value of a stolen item
local sneakTerm = 5 * types.NPC.stats.skills.sneak(pself).base
local scaled = math.min(2, settings.sneakXPScale() * (math.log(data / sneakTerm)))
if scaled > 0 then
interfaces.SkillProgression.skillUsed(core.stats.Skill.records.sneak.id,
{
scale = scaled,
useType = interfaces.SkillProgression.SKILL_USE_TYPES
.Sneak_PickPocket,
manual = true
})
end
Ah yes, nice.
You can remove the manual parameter as I found a way to make manual triggers work fine with NCGDMW.
The base x5 seems high to me.
It's a problem with all the wacky super high item costs
If NCGDMW is detected I wouldn't use a scaled value as NCGDMW already does that
I meant I wouldn't scale on the skill level
There is an example in the doc
Hmm
Actually you do it the right way by triggering the skill use
I just realized I should not use the incoming scale param, it works with regular skill uses, but the gain value will be broken for manual triggers as you do
I think you should just detect whether NCGDMW is loaded and in such a case don't scale on the skill level
if I.NCGDMW ...
ok, one sec
local sneakTerm = 3 * types.NPC.stats.skills.sneak(pself).base
if interfaces.NCGDMW then
sneakTerm = 10
end
local scaled = math.min(2, settings.sneakXPScale() * (math.log(data / sneakTerm)))
Perfect. Now you just have to find a balanced base value
I'll also set the max scale to 1 when NCGDMW is there
What is data?
it's the value of the stolen item
Ok, 1.3.5 is out!
- Reduced XP gain.
- "lua notrespass" command to mark a door as ignored.
- Seyda Neen Census Office is ignored
Thank you for this fantastic mod
Some caps or modifiers definitely need to be in place. It's not just about uber expensive items. If you steal a few decent ones it will quickly add up. I think that the most expensive individual item I managed to steal so far had about 700-800 value. Steal ten 250-300 ones and it's 2500-3000 (and this is a more common occurence). IMO the formula could include player sneak skill so the higher the skill, the more gold needed for the same gain (it gets harder and harder and it would be nonlinear). Also, burglaries with no owner or guards in the same cell/within certain distance should probably have much less of an impact as there is no risk of being spotted so it feels like a freebie.
any other fixes? i might stay with my hardcore census version if theres nothing too pressing in the update
Nope, that's it 😆
You can remove the census office change by editing player.lua. it's near the top
Yeah your point about no one in the cell is a really good one. There are caps and you do get less XP if your skill is higher in this version
Do you think this mod is compatible with BO? https://www.nexusmods.com/morrowind/mods/54638
Seems like it would be fine at first glance. I regret this acronym 😆
Random idea. Increased chance of getting spotted based on the number/weight and value of stolen goods. The idea is that if you have to carry a lot of stolen stuff or steal sth really valuable then it will be easier for NPCs to notice. IIRC currently you replicate Vanilla's sneak formula. This new feature could act as a modifier with caps so it doesn't get ridiculous. 0-50% would probably be fair (I think that % is better than some static penalty as it works at all stages of the game). It would be best to make the penalty configurable, though 😉
Penalty to getting spotted or penalty to Sneak? Could do both or either. Kida want to wait until magic dehardcode to I can get rid of the .esp and the 5pt drain effect
Well, Sneak affects the spotting chance. However, as you replicate the formula, I think that instead of changing the skill you can "simply" add that penalty to the formula (final result x modifier). Spotted 5 pt drain is after the fact. Actually gaining that status is more important as it gives the bounty penalty when leaving the cell.
You could even subtly show the penalty with a faded Spotted icon.
Yeah that's a good point
Not sure about the icon edit. The spotted status is so complicated and the icon makes people think it's just on/off rather than on/off for every NPC
Wait, it isn't on and off?
Maybe I could do a floating eye above each NPC that has seen you while you are in sneak mode
It's on/off for each npc
Ok but unless you kill them, all it takes is just 1
maybe you could have a second icon with a loot bag 
It would fill up
They all need to be dead if you want no witness no bounty to take effect
But each NPC only cares about their own items, except guards who care about everything
Btw I play with no witness no bounty option off but IIRC it's for general crime while burglary system always uses the witness system... right?
I remember that old version didn't even have no witness no bounty integration
But witness system was there for burglaries
NWNB mode entirely replicates NWNB except it doesn't check for followers
Yeah but what if I turn it off?
Then BO won't reset bounties once you leave a cell
I'm thinking about burglaries. Will the bounty be applied if you exit the cell?
All witnesses dead
If you use NWNB and BO then the BO bounty might get overridden by NWNB
I don't use NWNB
Ok then I'm not following
OK
- There is NWNB option in BO menu
- I turned it off
- Does it affect burglaries? All witnesses dead and I leave the cell. Will I get the bounty for being spotted?
It does affect burglaries. If you steal stuff while spotted, then kill all witnesses before leaving the cell, you will not get a bounty. Additionally, any bounties you accrued while in the cell will also be deleted
😅
Oh man it's early
I want to know the behaviour with the option off 😀
Ok, with it off, you will get a bounty once you leave the cell if you were spotted while inside the cell
Even if everyone inside is dead?
Doesn't matter if they die
4:46 PM here 
Before 8 here, haven't had coffee yet
We got through it though lol
Have a good coffee
Ty
This is me before morning coffee
Question, I'm doing this quest in TR where a guy attacks me through dialogue, so no foul murder, I kill him, I loot him, and as soon as I walk to a different cell I get a 750 bounty. This happens in an exterior cell, is it because I'm looting him?
Sounds like that is what is going on. It would be weird if the guy's equipment was owned by someone else or a faction though (which must be true if BO is doing this)
Oh it's a Camonna tong guy that killed a thief guild member, maybe he took his sword? But I'd be kicked of the TG right? Which is not happening
Getting kicked out is not a default setting value (you would need to opt into that)
If I remember correctly, it reduces your reputation. And if it would go below 0, it kicks you out
The guy is Menas rivul in hlan oek
Should make a console command that dumps ownership info or something
Oh! You can turn on debug mode and then look at the log
That would tell you everything
I'll check that
I have no idea whether it's possible with current LUA capabilities, but a new feature adding the ability to pay money to remove stolen flags from items would be quite cool. It could be offered by shady characters and could be limited to non-unique items (the ones that appear in the leveled lists) as it makes sense that unique stuff would be always recognised as stolen goods. Price would be based on item value ofc. It could be a potential money sink for thieves as well as a measure against NPCs always recognising common items as their own when you try to sell them the same item type (it would still need to be done each time after stealing if you want to make sure that it's safe so no easy way out).
Ooooh, that's a cool idea
and it's totally possible with current Lua functions
the roadblock for that is that it would require some custom UI to do it
I saw there's an update, no problem if I update mid-save right?
Should be totally fine 👍
BTW noticed that if you rent a room, put sth in the container then not marked with the red cursor when you hover over it (as it belongs to you), leave and then go back and take your stuff, it may be registered as a crime/bounty. Can be quite annoying and it took me a while to realise what's going on
.
Only way I can think of dealing with that would result in an ever-growing save file
Blurpanda I really want to thank you because for the first time ever I'm enjoying a stealth character in Morrowind, really I'm having a blast with this mod. For the first time I feel immersed because you have fixed the biggest issue for me which was "why the hell can I loot your whole house if you saw me entering, and then leave through the door while you're watching me without any consequences". That makes stuff much harder, but then it balances out because you made leveling sneak much easier, and in a way that totally makes sense, leaving a place undetected with your bag full of loot and getting the sneak level up notification is sooo satisfying.
I'm getting trespassing bounty in Oran Plantation, Oran Manor: Atrium (TR) and I don't know why. It's not closed from the outside at all (doesn't require a key from what I can see) and I'm Hlaalu, yet I get crime reported message for no known reason.
Interesting. I wonder who owns the door or if there is a key defined on it.
I'm not sure if I check explicitly for faction membership
I know that it's not locked, though. It just shows as a door with no lock.
The trespassing check actually doesn't care if the door is locked. I probably should include some sort of memory for doors so it tracks if it's ever been locked on activate, but this will generate issues with Go Home w/ Locking Doors 🤔
Literally the same happened to me at Oran's plantation a few hours ago, and it happens everytime, I was about to ask and saw this
Not locked, didnt even picked up anything in that cell, just walked there and entered the manor through the front door and got a 20 septim bounty, i thought nothing of it but next time I entered the same thing happened
Alright, I'll have another go at the trespassing rules later
Yep. That's the situation. @candid night it might be worth looking at this exact place to determine when the rules "fail"
Don't know if this info is useful, but it happens even if no one detected me before entering through the door
Yep
I probably get it when an NPC detects me inside, I think. It would be ok if the area was restricted but it's not. I mean, not in any visible way.
Trespassing happens if you get detected while in the new area, not when you enter it
I see. Question not related to the bug: if the owner of the house is outside of their house and see me breaking in, in that case it does count as trespassing?
Nope. Not unless you are talking about vanilla trespassing, which is just getting spotted unlocking a door
It sounds like sth that makes sense to be added
Also entering to the watch towers at Oran plantation causes a bounty, is like the whole area is illegal to be at haha, again, no lockpicinkg or anything, I'm even a member of house hlaalu which is the faction that owns the plantation, so weird.
how does the debug option work? do I just turn it on check openmw.log after getting the bounty?
is it too dangerous to turn off tresspasing for the time being?
Turning off trespassing is not a dangerous thing to do. Just set the fine to 0
Oh ok, i asked because it says: only recommended for new games
It's for turning it on
I see, thanks!
1.3.6 released!
Fewer false positives when determining if you are trespassing. Cached sneak checks so the frequency is more in-line with Vanilla.
Now trespassing can only happen if the door was ever locked when you enter its cell, plus the normal other factors
Thx for continued updates 
Potential ideas for future updates collected in one place for convenience:
- NPCs get bonuses to spotting the player depending on the value and weight of stolen items the player is carrying. Penalty would be configurable, max default would be 50% (which means that formula you use for spotting checks would be 50% harder at max penalty). The penalty would be displayed with a loot bag icon slowly filling up.
- New NPC service - removing stolen item flags. Only available for generic items (the ones that appear in the levelled lists) below a configurable value. Service cost based on item value. Service offered by TG (members only) and pawnbrokers (available to everyone but 70+ disposition required).
- Guards searching for stolen good after big burglaries. This would be represented by a random chance of initiating dialogue with the player if the player is close to the guard and detected. The duration of the search checks would be based on the value of stolen goods and it would be real-time based to avoid cheese. The available options would be: 1) allow the search check: guards conifiscate stolen goods and contraband if found as they are part of an investigation, leave the player alone if not found; 2) bribe the guard (chance based on Mercantile), 3) convince the guard to leave you alone (chance based on Speechcraft and Disposition), 4) resist (treated as a crime). There would be a cooldown if the player passes a search check to avoid annoyance (too frequent dialogue prompts).
Report: I got trespassing bounty for entering General Casik's cell in Ebon Tower's Dungeon by using a key (which was given to me). Using the latest version.
I'm almost certain this is because the door is Owned.
I could make it so having the key gets you in without trespassing, even if the door is Owned. Maybe only if the key is NOT owned, because it means you didn't steal it
Sounds like an improvement 🙂
not going to work. the ownership info evaporated
I feel like I'm not getting XP from stealing undetected, for example my sneak is level 62, and I have 87% exp, I entered a place undetected and stole items with a combined value of 500 septims and I didn't get a single point of exp, is it normal for the sneak level? The higher my sneak goes the higher the value of items to lvl up?
I mean I know I can just increase the multiplier but I rather leave stuff as they come by default
Nvm I guess is just very difficult to get xp that way at higher sneak levels, I stole like 1.5k and finally saw the xp increase 1% haha, but that's fine
I'm doing something like taking the logarithm of each individual item. So if your skill level is high, you need to steal expensive items (not just a crap ton of cheap stuff)
That actually makes sense 👍🏻
This sounds good! What's the formula you are using?
It's in the current release and is kind of complicated 😅
That bad, huh? 
"Data" in there is the value of one stolen item
Released 1.3.7 which should stop breaking Better Bars
hey I was just thinking, could the detection be based partially on your sneak skill? so if the detection runs when they speak then compare it against skill to make it a bit more like the MW rng style. just a thought
It already is 😁
oh cool 
Idea: port this Skyrim mod to BO. Obviously doesn't have to be 1:1 as it can made even better, hehe. Still, I think it's cool. https://www.nexusmods.com/skyrim/mods/117693
I think there’s a better one but I’ll check
I’ve def found some Skyrim mods that are easy enough to backport (?) to Morrowind, just have to figure out which ones are worthy enough
Guess that's SHOP territory though
This is a separate thing. You could even use both. Unrelated 🙂
But yeah, sounds like SHOP
Hi!
So, if I understood everything correctly, if you are spotted inside a place, and you steal something, you'll always be "the guilty one" right? Would it be possible to have something more "dynamical"?
Say something depending on "the number of npc" in the place? e.g. if I am stealing something in the mage guild, why should I be the guilty one and not someone else? Is it possible also to "store" the information, and only get the bounty a few hours later? It is weird to be immediatly reported for something as soon as you left.
Very interesting mod however! Looking forward for some stealing left and right 😁
Saving bounties to be applied later would result in a bunch of bug reports because people have bad memories. It's in line with vanilla immediate bounties
Scaling based on NPC number is an interesting idea
I hope you have fun with it 😁
Thanks for the quick answer! And I am sure I will 😁 . Last time I played the thief guild was like 20 years ago probably 😂 .
By the by, what is the problem with trepass bounty for a current save?
I just track whenever you use an owned key on a door. So if you enable it mid playthrough it won't know that you used to have possession of the key
so if I have yet to actually use any key to open a door, I am good to go 🙂 ?
Yeah you'll be fine
Wow that accidental comment out of context looked really horrible
I mean, they get very suspicious in interiors already I guess?😄
To be fair, both SHOP and Burglary Overhaul are very close to the annoying problem of no proper sleep schedule for most NPC, which can be moving sneaking to hard but funny to close to impossible 😅 . Without proper sleeping, I do have a slight preference with the way it is done here however. I really hope we'll be able to have NPC sleeping at some point 😁
I mean, there is a hacky way to do that to force NPC on the bed with knocked out animation and applying blind 100%. Although, making the schedules is the harder task
Although it would only work on the opened, flat beds and bedrolls. Other like hammocks or boxed beds would be impossible that way
Interesting. Does this approach also work with a proba of "waking" them?
You can code that for sure
I have an idea to bring stealthing more to oblivion system but this is far away still in SHOP tasks queue
Like you could make a chance upon activating doors to open so that it makes a slight chance of waking npc up when not cautious and sneaking
Does blind actually effect sneak? I can't remember. I thought it was just hit chance
The blind is to ensure the NPC won't see nothing even if the engine does something weird regarding detection
Blind affects sneak afaik, I mean if the npc has blind it raises the chance to stay hidden on sneak vs that npc
I was really hoping to see 'the dark project' be released for sneaking revamp
Which leads to my plans for real stealth overhaul which would apply dynamic blind value to npcs depending on being in the radius of light sources. I cannot wait to actually testing that after I unburden myself from the backlog of SHOP and QuickSelect, as well as pending release of lua proj physics
With PBR this plan has a right to be, interiors are extremely dark, this might be a way to make it happen
Ah yeah blind is definitely in there
In light sources and areas it would not apply any blind but if you move to shadows and depending on distance from light sources (and its magnitudes) then it would blind the nearby npcs accordingly
If sneak was dehardcoded it'd be a lot easier
Oh for sure, but that's my idea for that overhaul whatsoever
The only one that could actually work since I thought of different solutions
And then coding the dousing light script from MWSE would actually make sense
To connect it into AIO experience
Blind 100 isn't guaranteed no detection. I wonder if you can go over 100
Is it though? I am gonna test it rn
The Sneak discipline is the art of moving unseen and unheard. Skilled sneaks are also adept pickpockets. Note that the skill does not improve simply from use and having the "sneak icon" on the screen. Despite the icon display, the skill only improves when within a certain distance of a creature or NPC. Sneak is a very useful skill, as it allows ...
Makes sense, though. The player can be heard or smelled as well.
The main point I'm looking to fix is the instant detection that takes out the sneak game pretty much, so when varied visibility with light sources is paired with NPC blind, it might work nicely along with another strengthening tactic that would be to apply additionally to the player either more sneak, agility, luck or chameleon to the player during the sneaking without being detected)
(Sneak + Agility/5 + Luck/10 - Shoe weight) * (0.5 + Distance to Target/500) * (0.75 + 0.5 * Current Fatigue/Maximum Fatigue) + Chameleon Magnitude
Or applying chameleon that is, nothing impossible at this point tbh.
It just needs to have a time component. The longer you are close, the higher the proximity detection bonus
Instead of instant
Indeed, but before it's exposed in API then we have to resort to such workarounds
I've particularly liked the Oblivions system with the eye getting fulfilled and then you're detected - so you have a visual cue on your current situation
This one might make the only sense paired with PBR lighting
But, it might be easier because of the Spot Chance which incorporates the NPC stats, not the player stats:
Spot Chance
The target's chance to spot the player while they are Sneaking is equal to
(Sneak + Agility/5 + Luck/10 - Blind Magnitude) * (0.75 + 0.5 * Current Fatigue/Maximum Fatigue) * Direction Multiplier
So just making it 0 Sneak, Agility and Luck of the NPC will essentially make it 0 chance to detect the player since the whole first bracket will be 0
Or just making sneak 0 and applying blind equal to the agility/5 and luck/10 which will make it 0 again
hey @candid night I post this here because there is no dedicated thread for Slow Magicka Regen.
I sometimes have Lua errors with your mod when Skill Evolution increase the game time (with mwscript) for specific skill uses (armorer, alchemy, enchant):
[10:28:48.875 E] L@0x1[scripts/ernslowmagickaregen/actor.lua] eventHandler[regenMagicka] failed. Lua error: [string "scripts/ernslowmagickaregen/actor.lua"]:105: deltaTime for actor @0x1 is -2245.9419250488
[10:28:48.875 E] stack traceback:
[10:28:48.875 E] [C]: in function 'error'
[10:28:48.875 E] [string "scripts/ernslowmagickaregen/actor.lua"]:105: in function <[string "scripts/ernslowmagickaregen/actor.lua"]:84>
[10:28:48.875 E] [C]: in ?
This error breaks my sent events, which are never processed if they happen at the same time
You can test with the last version of Skill Evolution by creating batches of potions, then resuming the game (if your alchemy window is paused). It happens for around 25% of my tests.
Oh weird! I wonder why it breaks unrelated events. 🤔
Maybe it would be fixed if I didn't return an error and just did a normal print?
I suppose it would work
but I don't know why you get a negative value when I forward the time
Yeah that's also very strange
also, I see you do the full check twice per second, I think for a regen mod it would be enough once per sec or more.
Checking all active actors has a cost.
deltaTime = deltaTime + dt
if deltaTime < 0.5 then
return
end
If I'm going to optimize I think I'll shove all the actors from nearby into a list and then process one per frame
you mean that one per frame is better than all every second? I really don't know
@weak frigate I released 1.2.4 which I hope will fix the issue you saw
The issue seems fixed, thx!
@candid night I just noticed that waiting properly restors my magicka, while resting seems to only restore as much as vanilla does
Yeah someone else also reported that.
I'll need to think about how to tackle it
actually, event wait sometimes does no regen
or it's delayed
I tried having a look, but I am not really sure I understand how the formula actually work 😅 . Is there a minimum amount that we cannot go lower 🤔 ? I feel the XP gain is very very high at low sneak level.
Sneak at 12, 72/100; and stealing for 61 gold lead to level 13, 8/100
It does not change if the multiplier is 0.01 or 0.0001 🤔
Quick question regarding this mod's compatibility with No Witness No Bounty: does it also emulate that for other crimes such as murder? Or only theft?
It covers other crimes too
It's a funky formula. If you want you can edit it directly. I think it's in the xp folder
Awesome, thank you
I'll just toss nwnb then
Cool mod, btw
Ty 😊
It's definitely my most popular
I'll have a look! I think I'd like to have a maximum amount of xp gain depending on the level (e.g. stilling a 2 5000 gold piece of equiment gave me enough xp to gain 3 levels 😲 (I was level 5; so maybe it makes sense, but still)
I think 3 is the maximum already 😁
I could never get Sneak EXP feature to work in a satisfactory manner. Mod settings are much less responsive than one would expect. Therefore, I use value which works perfectly. 0 
Dang maybe I'll revisit it then
@candid night can you please explain whats the purpose of that isTalking check
why is detection contingent on that?
This was an easy way to reduce the number of raycasts and piggyback on some of the engine code re: detection. NPCs only talk when they do idles or say hello, and they don't say hello unless they can see you
ha, smart
trying to udnerstand how to expand this to all actors, not just npcs, it seems like this line in awareness is the only one that requires NPC-ness
local sneakTerm = types.NPC.stats.skills.sneak(actor).modified
for non-NPC do you have any idea what should happen?
source code does
which doesnt help at all, maybe it returns some default val if observer is not an NPC hmm
Creatures don't have skills, but they do have some equivalent that is based on level or something
ok, apparently they do have base skill values for different skil specialisations, and those are available in lua
#development-main message
https://openmw.readthedocs.io/en/latest/reference/lua-scripting/openmw_types.html#%23(CreatureRecord) see combatSkill, magicSkill and stealthSkill fields in there
They have Combat/Magic/Stealth
To be fair, I love the idea, and I think it could be awesome to have, but maybe I'll only put it on to try for a stealthy character. I manage to reach level 18 in the skill wayyyy to fast in my opinion, just by stealing a few valuable items ^^'. I think something like 10% of a level max would be a good spot for me.
@candid night nothiced something
i believe that at the side it will be 1 in current impl, not 1.5, mentioning only in case this is important for your logic somehow somewhere
Hm, I keep getting the Spotted thinv even while outside and not sneaking
When an NPC talks to me
Is this intended behaviour? 😅
Oh ok it is
This. Yes.
Hey, made a little something, used a lot of your detection code: https://discord.com/channels/260439894298460160/1467894735434944675
Cool, glad you got some use out of it. 🙂
Please make sure you retain the agpl notices in the files that contain BO code
oh yea, sure, I'll add them
what about compatibility with burglary overhaul, my stuff only runs when character is sneaking. Since burglary runs its own detection checks - they might conflict I assume. Any easy was to make it all play nice together?
All you gotta do is invoke the "spotted" function in the BO api whenever a player is spotted, and pass in override=true to disable BO checks 😁
that sounds great, thanks!
yet, will that override both sneak and non-sneak detection though? Or it doesnt matter?
my mod only affect detection while sneaking
Oooh interesting. I'll need to put a workaround in I guess 🤔
Since I'd still need proximity to trigger Spotted
Unless you bake that in too
I was trying to optimise it as much as I can, so honestly would like to avoid checking distance on every actor every frame unless sneaking, if you can add a separate override for sneak and non-sneak that be nice, sounds like it will be easier if its on your side
Yeah I can do that 🤘
I got a key to Tel Gilan Eggmine. I opened the door with a key. Got the bounty inside 
I wonder if it's some weird special door
I'm taking a short break from modding because I'm actually playing the game right now 😅
Have been seeing this error in my logs lately. Likely nothing game breaking, but still
[00:46:27.208 E] Global[scripts/ernburglary/global.lua] eventHandler[ErnBurglaryonCellChange] failed. Lua error: Object is not available: @0x100c5
[00:46:27.208 E] stack traceback:
[00:46:27.208 E] [C]: in function '__index'
[00:46:27.208 E] [string "scripts/ernburglary/global.lua"]:476: in function 'resolvePendingTheft'
[00:46:27.208 E] [string "scripts/ernburglary/global.lua"]:674: in function 'onCellExit'
[00:46:27.208 E] [string "scripts/ernburglary/global.lua"]:686: in function <[string "scripts/ernburglary/global.lua"]:681>
[00:46:27.208 E] [C]: in ?
Are you deleting items often?
I wonder if there is some mod doing that automatically
Maybe, but I can't say for sure. Does crafting count as deleting ingredients?
I'm definitely not deleting anything intentionally, though
Yup
Although alchemy does the same thing 0.o though I guess alchemy isn’t lua
Next version RC available: https://github.com/ernmw/ErnBurglary/releases/tag/1.4.0-rc1
I updated how settings and the icon are handled.
Also has potentially better support for #1467894735434944675
Thank you I will test it tonight. Should it load after or before Sneak! Thank you again
I think before Sneak ty
This partly relies on pending changes to Sneak!
Sounds great. Thank you my friend as always
As I understand this will fix the widget warning logs yup? ❤️
ugh I didn't check
It has to do with the detected icon as I've looked through it
but no worry it happens to every pre 0.51 lua ui mods lol
now that there's an official rc1 tarball I'll check
https://github.com/ernmw/ErnBurglary/releases/tag/1.4.0-rc2
thanks @gloomy ingot , fixed
Thank you!
@candid night to stop BO from spamming warnings in logs, you need to comment 74th line in alerts/player.lua
Example:
content = ui.content { {
type = ui.TYPE.Image,
props = {
resource = ui.texture {
path = path
},
size = util.vector2(size, size)
},
-- size = util.vector2(size, size)
} }
figured it would be easier to message you here instead of making a whole PR
This is in rc2 ty
So... any chance of implementing remove-stolen-flag-at-a-price thing or other similar cool stuff? 😄
Remind me in a week 
