2026-03-31T05:32:12 Why the heck does getHeightAt want a reference to a cell anyway? 2026-03-31T05:34:12 The position should always explain to you the target cell. Even if we need to account for some kind of ESM4 thing I don't see any reason to take a reference to a cell, we'd want a worldspace id, yes? 2026-03-31T05:37:28 The case for which these functions were developed was Fall's footsteps mod, so, the usage he had at the time makes flawless sense: core.land.getHeightAt(self.position, self.cell) But when you need a landscape height for a cell to whom you do not already have a reference, it's bad. But also I don't see why this needed the cellOrId to begin with. 2026-03-31T05:38:35 I'd think we could... Uhmmm... Maybe not. 2026-03-31T05:38:39 Well. 2026-03-31T05:39:17 I think we should actually have differentGetHeightAt(position, worldspace?) 2026-03-31T05:40:02 getLandHeightAt, whatever. This ain't right, Dutch, I'm tellin' ya 2026-03-31T17:09:14 requesting a screenshot api 2026-03-31T17:09:39 doesn't need to be particularly advance, the bare minimum of "take the current or next frame or whatever as a screenshot to a file over here" would be fine 2026-03-31T17:10:24 context: i have a cubemap/panorama maker but it needs me to manually edit the screenshot filenames to tell it which faces are which. i also need to manually take the screenshots 2026-03-31T17:11:55 Consider resurrecting the cubemap screenshot feature we killed in .49 because it was broken and nobody used it? 2026-03-31T17:12:40 <.hemaris> 🙋 i would have used it if it had worked! i tried and everything 2026-03-31T17:13:05 I do not remove features 2026-03-31T17:13:28 didn't we not just kill it but remove the code? 2026-03-31T17:13:53 also i think this is one of those things that makes more sense as "expose the individual necessary functions so an addon can do it" than an engine feature 2026-03-31T17:14:08 well, we need cubemap rendering in general 2026-03-31T17:14:13 but that's slightly different from cubemap screenshots 2026-03-31T17:14:15 e.g. no postprocessing 2026-03-31T17:14:22 I added it to the RTT MR so you can use it for viewing your screenshots in game:todd: 2026-03-31T17:14:35 It will be a long time before Lua scripts are making cubemaps screenshots unless someone fixes the underlying cubemap screenshot feature 2026-03-31T17:15:13 is "a long time" "right now" 2026-03-31T17:15:14 https://cdn.discordapp.com/attachments/1230951723443552256/1488587485532524686/image.png?ex=69cd52a1&is=69cc0121&hm=02c1b186d019154265508788cbb342d7fffccd893e372237b28eb6d9bca15b1e& 2026-03-31T17:15:17 You would need IO access you don't have and it stitch them together yourself 2026-03-31T17:15:29 So no it is not right now or soon 2026-03-31T17:15:29 oh yes i'm doing the stitching with a vibecoded panorama converter 2026-03-31T17:15:32 Yes 2026-03-31T17:15:33 but that's fine 2026-03-31T17:15:39 no issues 2026-03-31T17:15:43 Okay good luck 2026-03-31T17:15:48 just want the screenshots to be named so i don't have to rename them myself 2026-03-31T17:16:07 https://cdn.discordapp.com/attachments/1230951723443552256/1488587708551921889/mwpano.png?ex=69cd52d6&is=69cc0156&hm=993468f0eba0df7e7528cab648c7f9048115b5928d48a77ffa1a75b32f8ff632& 2026-03-31T17:18:18 <.hemaris> that still has a seam where the solar glare cuts out 2026-03-31T17:18:33 you should see the one i just made where the seam is even worse 2026-03-31T17:19:14 https://cdn.discordapp.com/attachments/1230951723443552256/1488588495155892254/image.png?ex=69cd5391&is=69cc0211&hm=20d122a8148b88bd9f467c16e2c0afe9f583d0fe0acd0818c3ae529a7852a3fc& 2026-03-31T17:19:52 <.hemaris> this happens in panoramic photography too 😔 2026-03-31T17:38:26 Hey @DaisyHasaCat you totally 100% resolved my issues with the MR but friendly reminder thread author does resolution 💜 2026-03-31T18:15:56 RTT for 0.52? :ur: 💭 ⌨️ 2026-03-31T18:38:33 Please, boss? :sadcat: 2026-03-31T18:38:52 Everyone except OpenMW has dehardcoded inventories now :sadcat: 2026-03-31T19:59:41 no more Lua features for .51 :sadcat: 2026-03-31T20:00:32 especially not rushed Lua features 2026-03-31T20:02:12 let's wait 6 more months before doing a feature freeze 2026-03-31T20:03:39 And then we can wait another 6 months after that :todd: 2026-03-31T20:04:53 that's why I said 0.52 :ur: 2026-03-31T20:05:14 yes that's good that's holy 2026-03-31T20:05:33 That's why he's the good one 2026-03-31T20:05:39 Yolo the physics mr as well so when we're waiting we can spend 12 months not stuck in Balmoras rock while testing. 🫠 2026-03-31T20:06:06 The trick is to not use whatever mod adds that rock 2026-03-31T20:06:16 if capo got his way we'd remove lua 2026-03-31T20:06:57 that would fix all lua crashes, EE would love it 2026-03-31T20:07:05 I see advantages 2026-03-31T20:07:57 We'll replace it with a DSL expressed in JSON, but we'll use yaml-cpp to parse it so people don't think it's fast to compile 2026-03-31T20:08:18 Just use papyrus 2026-03-31T20:08:52 Too sensible 2026-03-31T20:09:08 None of the features on the table right now are being rushed 2026-03-31T20:09:18 They are just being pushed back 2026-03-31T20:10:39 Collision state could use a review from someone who's familiar with physics but I took several pains to ensure it made sense and was reasonable in the context of magic dehardcoding. It's very useful and large projects have requested it for quite some time 2026-03-31T20:11:00 But anyway I know better than to ask for any of that to be .51 material to begin with 2026-03-31T20:11:21 But collision state needs looked at and the land bindings are sus 2026-03-31T20:11:36 land bindings work fine 2026-03-31T20:11:55 i have foreseen this 2026-03-31T20:11:56 https://cdn.discordapp.com/attachments/1230951723443552256/1488631953425956864/0d09f524f8a81b50.png?ex=69cd7c0b&is=69cc2a8b&hm=e52031879a559a4b7ec6f438a4f57c1e9ff608da3efd87bee8d8ee303f0c1cbd& 2026-03-31T20:12:31 No, they do not 2026-03-31T20:12:36 They do 2026-03-31T20:12:52 Please explain to me why a position and cell are necessary. 2026-03-31T20:13:04 You need either the worldspace or a cell 2026-03-31T20:13:21 Right, so pass a position or a worldspace id optionally like I said. 2026-03-31T20:13:25 and some form of position is needed, would work for it to accept V3 or V2 though 2026-03-31T20:13:32 But it still works fine in the current form 2026-03-31T20:13:35 They go together and a reference to a cell is pointless. 2026-03-31T20:13:39 I did not say it was broken 2026-03-31T20:13:43 I said it was wrong. 2026-03-31T20:14:02 eh, they're serviceable, not a blocker 2026-03-31T20:14:09 Didn't say that either 2026-03-31T20:14:15 But needs corrected 2026-03-31T20:14:17 I'd understand if they had a bug or something 2026-03-31T20:14:22 I disagree with workspace id being optional 2026-03-31T20:14:31 openmw.content needs to be finished 2026-03-31T20:14:44 I mean, that's definitely not happening this release 😛 2026-03-31T20:15:06 I mean why not assume sys::default if the second param is nil? 2026-03-31T20:15:23 Can we even get the current world space id? 2026-03-31T20:15:26 Too TES3 centric 2026-03-31T20:15:37 This isn't mwscript 2026-03-31T20:15:50 Presumably you know the current cell so you can get the worldspace id from it 2026-03-31T20:15:51 Fascinating aside 2026-03-31T20:16:06 So do we have a binding on CellT that gives the world space ID? 2026-03-31T20:16:14 Maybe? 2026-03-31T20:16:30 https://openmw.readthedocs.io/en/latest/reference/lua-scripting/openmw_core.html##(Cell).worldSpaceId 2026-03-31T20:16:52 We do. 2026-03-31T20:16:57 Yeah, alright. 2026-03-31T20:17:05 Although, wait, no 2026-03-31T20:17:11 the collision mask thing looks extremely scary 2026-03-31T20:17:24 This doesn't address the problem of not having a reference to the cell in the first place 2026-03-31T20:17:40 So it still has the same problem 2026-03-31T20:17:45 it changes the saved game format, even 2026-03-31T20:17:57 Getting cells is easy though 2026-03-31T20:18:10 Or just a cell id 2026-03-31T20:18:14 Mostly, but not if you're in a local script 2026-03-31T20:18:19 And want an unloaded cell 2026-03-31T20:18:31 Local -> global -> local, just to get a height 2026-03-31T20:18:40 You can just use a cell id 2026-03-31T20:18:46 there's no need for that hop 2026-03-31T20:18:50 Sure, where from? 2026-03-31T20:18:58 Usually I use world.cells 2026-03-31T20:19:09 self.cell exists no? 2026-03-31T20:19:25 Not if you want a cell other than that 2026-03-31T20:19:32 If you're assuming the default worldspace then you can use a string like "Esm3ExteriorCell:-3:-2" 2026-03-31T20:19:44 it doesn't matter if that cell has your position or not 2026-03-31T20:19:55 I am not telling modders to construct worldspace IDs themselves but you're welcome to 2026-03-31T20:20:10 It's no different from using hardcoded cell coordinates 2026-03-31T20:20:33 If you know what cell you want but it's apparently not dynamic, then that's what you're going to have to do. I don't really see the problem 2026-03-31T20:21:04 And if you derived it from something then... you've got everything already? 2026-03-31T20:21:18 Mostly just that second param doesn't really do any good, it's not so much about capability 2026-03-31T20:21:29 16K, 16K is 2, 2 every time 2026-03-31T20:21:45 It can take that and just grab a cell 2026-03-31T20:21:54 You still need the worldspace 2026-03-31T20:21:58 Yes 2026-03-31T20:22:32 You could pass 0,0 for everything if you know you're dealing with TES3 cells 2026-03-31T20:23:29 Like, by hardcoding the id somewhere? 2026-03-31T20:23:47 Ugly, but I guess if the string format is not expected to change it can be acceptable. 2026-03-31T20:24:39 It's the same level of hardcoding as going x.recordId == 'rat' 2026-03-31T20:24:51 Yea. 2026-03-31T20:25:08 Whether that's acceptable is really contextual 🤷 2026-03-31T20:25:39 It's weird and I don't like it but it's not weird enough to complain about more 2026-03-31T20:25:59 nil second param should fall back to sys::default worldspace 2026-03-31T20:26:30 It's not actually a breaking change and covers pretty much every current usage and isn't actually all that tes3 centric since ESM4 plugins define worldspaces 2026-03-31T20:27:04 I'm not convinced sys::default should exist. Having TES3's exterior worldspace id be nil seems more elegant 2026-03-31T20:29:33 That's fine too, sys::default is an archaic zini construct 2026-03-31T20:29:50 I'm not even aware it still exists at the engine level 2026-03-31T20:30:42 I just mean that if the user passes nil as the second param, we assume sys::default, which to me means the TES3 worldspace that can't alternatively identify itself. Not that we actually ask people to pass sys::defualt 2026-03-31T20:33:40 Well, it needs format changes because of persistence. If they don't persist you'll load the game and someone's falling out of the sky. Potential regressions I spotted included breaking adjacent magic effects which is accounted for. There will be an intermediary period where it's kind of weird as the scripted state will override game defined states, similar to animation, but once effects are dehardcoded that's gone. It also 2026-03-31T20:33:40 facilitates dehardcoding the effects it """breaks""" in the first place. 2026-03-31T20:41:10 It does end up in saves so probably. But yeah, I'm just kinda reiterating my position on namespaces here 2026-03-31T21:46:46 Absolutely fair. The namespace and exact implementation isn't important so much as the second parameter being worldspaceId?