Manta Climbing Walls (Bug/Feature) UT2004

Anything about UT2004 mapping, Uscripting & more
User avatar
Miauz55555
Posts: 2025
Joined: Sun 7. Jun 2015, 22:12
Description: https://discord.gg/X4V8THM
Location: Germany

Manta Climbing Walls (Bug/Feature) UT2004

Post by Miauz55555 »

Little conclusion about this behavior from a Manta able to climbing a wall like a Hellbender with active vehicle stunt mutator. I guess the most of you haven't evan noticed it.. anyway if you have some input about that please share it. I wrote with Gloups a few PMs and he was so kind to allow me to share our conversation.

What does it do:
When you are in a Manta you can hover to a BSP-wall and it will start hovering upwarts with the same speed as when you would hover straight.
Here is a video from that feature on ONS-M5sMantaMadness-C-Beta6:


It is somehow as the bug when two Mantas are stuck together than jump and hovering upwarts.. that bug is a simple calculation bug.. the Manta is able to hover over vehicles.. you can also hover over a Cicada with a Manta.. so the game says the Manta 1 will hover over the other Manta 2 and will go upwarts.. the other Manta 2 is stuck to the one which is going upwards 1.. so it will also go upwarts 2.. now the game calculates the position from the stucking Manta 2.. well it will go upwarts 2, too.. it trys to hover over Manta 1.. and so on. So that bug is cleared.
Here is a video from that Manta-Manta bug:


History:
I saw that bug feature a while ago on some maps. Also on the version from MantaMadnes (Beta6) which is curently on the server. I fixed removed it in Beta8.. but not 100% how.
After searching the www I found two post which where interesting:
A post on the old Epic forum from NightMan:
NightMan: Hello.

iv been working on a custom game type for awhile now, iv been working on how to get Vehicle's into the game type.. i never found a way to add them via the game info, i did however managed to find a way to add them via an actor added to the map by the frag house people (VSOverRide).. which as im making custom maps is fine having it as a map actor, but the problem i have is that in VCtf and ONS, the Manta can Climb walls, in this way they donot..

i learnt from the VSOverRide that in order to use ONS Vehicle Factory you needed the game type to be an ONS Game via map settings and it needed Node's etc, so according to that i should use the AS Vehicle Factory, which does work, but the manta doesn't climb.. they are both set to the same Vehicle Class type so the code that makes them climb i don't think is in the manta code.. (im guessing ) so its else where.. i looked thought the gameinfo and mutator code looking for hints of what it could be but found nothing useful.. would anyone happen to know where this might be?

with the VSOverRide i tryed it anyway with the ONSFactorys, and as i was told they didn't spawn anything, so i set up a mini link system , and it worked for the spawning Vehicles but the manta still wouldnt climb, im guessing thats cus the ONSFactory needs a link system set up to spawn them and the code that makes mantas climb is else where

(as a side note.. i learnt from a VCtf tutorial that the game type needs to be set as xGame.xVehicleCTFGame in the map levelinfo.. I Found no code to do with vehicles in the small code inside VCTF gameinfo and no mutator for that game type so i duno where to look for more info on how vehicles appear in VCTF, it appears they use ONSVehicleFactorys.. )

i was thinking that maybe due to things been limited in assault (like shield self force push so players cannot shield jump across big gaps like in other game mode's) that they might of made it so manta's cannot climb in assault to stop people possible sneaking in the.. inappropriate way :P i had a look in the AS game type code but couldn't see anything useful, i have also checked in the ONS/AS Vehicle Factory's and found nothing that could help me.. i thought maybe creating a new custom factory might do the trick.. thought id post here n ask first cus take me awhile to do that to find out it wont work..

sooo any help? im not much of a coder, im trying to learn, and only recently have i managed to start to get somewhere with it but im kinda stuck with where to look atm not done anything with the vehicle side of ut yet, just a pointer in the right direction would help me atm if anyway could

thanks in advance

ps.. soz for the essay
NightMan: no help?

iv been trying to work it out.. i think iv got it down to that it's not part of code that's my problem. been messing with several ONS maps and vCTF maps.. it appears some maps let manta's climb walls and others do not.. but i cannot work out if it is that as there's nothing in the maps i can see that will let them... has no one any idea at all what this could be? if its not code maybe i should post in mapping section too.. didnt want to post same thing in 2 places on same forum
And a post about the VCTF map VCTF-Magisfunmap where the feature was implemented from the author:
nialzinth: It needs blocking so you can't fly away with the flag to the top. :/ The only thing I don't like about this map. Otherwise it's a quite ok map beside the possible spawnkilling. :<
magis: Hi there

I see someone likes my map
If you still haven't fixed so called "wall bug", here is how to fix that. Remove thous BSPs under all Movers. Combining an Orange BSP with low UUs, e.g. 1 or 2 UUs, makes Manta to climb walls.
In magisFunmap it's not counted as "bug". The map was made for cyber VCTF team for practices. Cyber has few Manta addicted guys, so they were practicing Manta kills and so on. Rest, the same as me were practicing Shield Jumps and many other Combos If learned Backward Shield Jump, then you become a real master on the map Berserk also is really useful on this map
magis: As I mentioned, I implemented this "bug" especially, to make the map more fun, so the Manta addicted players could enjoy it. I'm glad you like this feature too
What does it cause and how to fix it when unwanted:
Well we are not 100% sure but it seems to be dirty mapping.
Gloups tryed it to implement the bug on ons-Baracks.. to say the current version on the server don't has that bug, but the one before and on other servers has it. He has sucess with siply copie and past the BSPs mentioned from magis.. anyway I and than Gloups tryed to implement the bug on ONS-Masterbath-C which don't has the bug and we both had no succes.

I could fix the bug on ONS-M5sMantaMadness-C-Beta6 bye adding 4 more ZonePortals and put the order from all ZonePortals to last. Gloups could fix the bug bye exchanging to upper BSP with a SM and changing the blue BSP to green ones.

So it seems to be a bit random and strange.

Gloups and my PMs:
If you want the maps please write here and I will PM you the files.
Miauz:
Any clue about that or how to avoid it?
So when you drive a Manta against a BSP wall it will hover up.
For example on the Masterbath version it's not, and on the Barracks version it is.

What I found is this where NM came to the same I was:
[...]

And this.. but I don't get what they want to say.. is it a simple "bug"?
Like the "Two Manta stuck together and hover up."[...]

Gloups:
Hey Miauzz, first time i really notice that, ONS-Barracks-{KL}-BigAl-C32-C-V3 don't have this "bug/feature" but ONS-Barracks-{KL}-BigAl-C32-2-C have it, but somes changes have been made on the BSP, after somes tests: "Remove thous BSPs under all Movers. Combining an Orange BSP with low UUs, e.g. 1 or 2 UUs, makes Manta to climb walls" means exaclty what it means :wtf: .
I try to copy and past the two small Bsps (one add and one substract), change the textures to in-use ones (beware of hiding faces, there's must 12 face to re-texture) and put this in ONS-Barracks-{KL}-BigAl-C32-C-V3 and the mantas are.... Flying!
Here's the pic of what i test: interesting thing to know, thx Miauzz.
Image

Miauz:
Still don't get it 100%.. So when there is somewhere on the map two overlapping BSP the Mantas will climb the walls?

It's in the MantaMap I made.. somewhere down the line I noticed it.

Gloups:
apparently, only very small BSP may be and may be one sub and one add.

Miauz:
I tried to make the Mantas fly on Masterbath bye simply copie and past the cupes from magisFunmap to the ground and rebuilding all, but couldn't get them to fly.

But I had this "bug" at mantamadnes.. after I added some zoneportals and than put all of them (had made a group for them before) "to last" under order it was away. I think some of the portals where fucked up a little. So that bug could also appear when the mapping is not 100% clean.

PS: Would it be ok when I share or conversation about this in the creative corner? It's may helpfull or at least interesting for someone.

Gloups:
ONS-Barracks-BigAl-C32-C-V3test

It's the link with the map which haven't the bug and now have it, may be a stroke of luck, i put the 3 brushs at the central area, i tried myself ont masterbath without success, i will have a look to manta-madness but bsp's are something complex and sometimes behaving strangely.
Of course you can write on the forum, if i find something weird on manta madness may be could be interresting.

Miauz:
Ok thank you.

Here are the two versions.. Beta6 is on the server with the bug.. beta8 is without the bug.
I made 4 new ZonePortals on the 2 main exits from core to the terrain than order to last for all zoneportals and rebuilding all. Than it was away.
The other things which are different had no influence on the bug.

ONS-M5sMantaMadness-C-Beta8.7z

Gloups:
Yes, as i said sometimes it's behaving strangely, on my side i fixed the problem by delete the brushs on the top of the map and replace with a staticmesh on beta6, here's the link, btw i transform the blue sheets by green ones (non solid), if you have blue sheets it's better for perfomance to transform to green as well if you have blue brushs isolated (e.g. not combined with a substract) it's better for performances to set it's type to semi-solid (as long as it's not an issue after rebuilding the map, but it can fix somes holes as well).

ONS-M5sMantaMadness-C-Beta6_Fix

Miauz:
Such a funny bug..

Thanks for the SM idea and the info about the brushes. I will adeped it to the updated version than as well.
Image
User avatar
Pegasus
Posts: 1312
Joined: Wed 4. Nov 2009, 23:37
Description: ONSWordFactory
Location: Greece

Manta Climbing Walls (Bug/Feature) UT2004

Post by Pegasus »

Didn't expect it'd take this long to get to the write-up of the progress I managed to make on this about a week ago, but here we are on Christmas Eve. Oh well, on with it...

[Skip the first two sections to get straight to the technical findings, if so inclined.]

After extracting MantaMadness from cache and wrangling its dozen-plus errant dependencies to test and observe this odd bug for myself before putting everything aside again for other reasons, I decided I'd try to help tackle this from the ONS-Barracks angle mentioned above, since those edits are much more manageable in terms of preparatory work (they require no extra assets to load). If any useful knowledge arose from such an investigation, the reasoning goes, it should logically help track what's gone wrong with MantaMadness too. So, let's talk Barracks and manta wall climbing then.

While Miauz' post mentions ONS-Barracks-{KL}-BigAl-C32-C-V3 (released on Jul. 31st, 2017 apparently) as an offending example, diving into my cache revealed the problem goes as far back as ONS-Barracks-{KL}-BigAl-C32-1 (late-Apr. 2011 or mid-Sept. 2011, depending on source), something which the preceding version, ONS-Barracks-{KL}-BigAl-V1, did not, thus making the two a suitable base for comparison. Sadly, no changelog exists for ONS-Barracks-{KL}-BigAl-C32-1, leaving a complete text comparison of both maps' placed actors as the only remaining and quite arduous option - this entails selecting practically everything in each map from within UEd, pasting n' saving that in plaintext editor files and comparing the two for meaningful differences.
Realizing that the placed actors within the text dump don't even get automatically sorted alphabetically or even bunched up together by groups, further complicating things even if I did manage to find a competent text analyzing/diffing piece of software to feed these multi-megabyte txt files to, I put the project aside and only returned to it about a month later, prepared to settle in for the long haul of manually rebuilding these lists by hand and examining them one group at a time. Fortunately, very close to the top of the list, I ran into 4 BlockingVolume actors in the C32-1 edit that didn't exist in BigAl-V1, so before continuing with the list building, I decided to take a minute look into those. This is where things start getting technical and interesting.

Before anything else, here's what ONS-Barracks-{KL}-BigAl-C32-1's four BlockingVolumes look like:

Code: Select all

[ONS-Barracks-{KL}-BigAl-C32-1.ut2]

Begin Map
Begin Actor Class=BlockingVolume Name=BlockingVolume0
    MainScale=(SheerAxis=SHEER_ZX)
    PostScale=(SheerAxis=SHEER_ZX)
    bLightChanged=True
    Level=LevelInfo'myLevel.LevelInfo0'
    Region=(Zone=ZoneInfo'myLevel.ZoneInfo2',iLeaf=272,ZoneNumber=1)
    Tag="BlockingVolume"
    PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume83'
    Location=(X=-21166.000000,Y=134.000000,Z=14328.000000)
    Begin Brush Name=Model20
       Begin PolyList
          Begin Polygon Link=0
             Origin   -00128.000000,-20000.000000,-03000.000000
             Normal   -00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,+00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=1
             Origin   -00128.000000,+20000.000000,-03000.000000
             Normal   +00000.000000,+00001.000000,+00000.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=2
             Origin   +00128.000000,+20000.000000,-03000.000000
             Normal   +00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,-00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=3
             Origin   +00128.000000,-20000.000000,-03000.000000
             Normal   +00000.000000,-00001.000000,+00000.000000
             TextureU -00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=4
             Origin   -00128.000000,+20000.000000,+03000.000000
             Normal   +00000.000000,+00000.000000,+00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00001.000000,+00000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
          End Polygon
          Begin Polygon Link=5
             Origin   -00128.000000,-20000.000000,-03000.000000
             Normal   +00000.000000,+00000.000000,-00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,-00001.000000,+00000.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
          End Polygon
       End PolyList
    End Brush
    Brush=Model'myLevel.Model20'
    bBlockZeroExtentTraces=True
    ColLocation=(X=-21166.000000,Y=134.000000,Z=14328.000000)
End Actor
Begin Actor Class=BlockingVolume Name=BlockingVolume1
    MainScale=(SheerAxis=SHEER_ZX)
    PostScale=(SheerAxis=SHEER_ZX)
    Level=LevelInfo'myLevel.LevelInfo0'
    Region=(Zone=ZoneInfo'myLevel.ZoneInfo2',iLeaf=445,ZoneNumber=1)
    Tag="BlockingVolume"
    PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume83'
    Location=(X=20668.000000,Y=-1057.000000,Z=14328.000000)
    Begin Brush Name=Model27
       Begin PolyList
          Begin Polygon Link=0
             Origin   -00128.000000,-20000.000000,-03000.000000
             Normal   -00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,+00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=1
             Origin   -00128.000000,+20000.000000,-03000.000000
             Normal   +00000.000000,+00001.000000,+00000.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=2
             Origin   +00128.000000,+20000.000000,-03000.000000
             Normal   +00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,-00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=3
             Origin   +00128.000000,-20000.000000,-03000.000000
             Normal   +00000.000000,-00001.000000,+00000.000000
             TextureU -00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
          End Polygon
          Begin Polygon Link=4
             Origin   -00128.000000,+20000.000000,+03000.000000
             Normal   +00000.000000,+00000.000000,+00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00001.000000,+00000.000000
             Vertex   -00128.000000,+20000.000000,+03000.000000
             Vertex   -00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,-20000.000000,+03000.000000
             Vertex   +00128.000000,+20000.000000,+03000.000000
          End Polygon
          Begin Polygon Link=5
             Origin   -00128.000000,-20000.000000,-03000.000000
             Normal   +00000.000000,+00000.000000,-00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,-00001.000000,+00000.000000
             Vertex   -00128.000000,-20000.000000,-03000.000000
             Vertex   -00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,+20000.000000,-03000.000000
             Vertex   +00128.000000,-20000.000000,-03000.000000
          End Polygon
       End PolyList
    End Brush
    Brush=Model'myLevel.Model27'
    bBlockZeroExtentTraces=True
    ColLocation=(X=20668.000000,Y=-1057.000000,Z=14328.000000)
End Actor
Begin Actor Class=BlockingVolume Name=BlockingVolume2
    MainScale=(SheerAxis=SHEER_ZX)
    PostScale=(SheerAxis=SHEER_ZX)
    Level=LevelInfo'myLevel.LevelInfo0'
    Region=(Zone=ZoneInfo'myLevel.ZoneInfo2',iLeaf=281,ZoneNumber=1)
    Tag="BlockingVolume"
    PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume83'
    Location=(X=-237.000000,Y=-19406.000000,Z=14328.000000)
    Begin Brush Name=Model28
       Begin PolyList
          Begin Polygon Link=0
             Origin   -21000.000000,-00128.000000,-03000.000000
             Normal   -00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,+00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=1
             Origin   -21000.000000,+00128.000000,-03000.000000
             Normal   +00000.000000,+00001.000000,+00000.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=2
             Origin   +21000.000000,+00128.000000,-03000.000000
             Normal   +00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,-00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=3
             Origin   +21000.000000,-00128.000000,-03000.000000
             Normal   +00000.000000,-00001.000000,+00000.000000
             TextureU -00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=4
             Origin   -21000.000000,+00128.000000,+03000.000000
             Normal   +00000.000000,+00000.000000,+00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00001.000000,+00000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
          End Polygon
          Begin Polygon Link=5
             Origin   -21000.000000,-00128.000000,-03000.000000
             Normal   +00000.000000,+00000.000000,-00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,-00001.000000,+00000.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
          End Polygon
       End PolyList
    End Brush
    Brush=Model'myLevel.Model28'
    bBlockZeroExtentTraces=True
    ColLocation=(X=-237.000000,Y=-19406.000000,Z=14328.000000)
End Actor
Begin Actor Class=BlockingVolume Name=BlockingVolume3
    MainScale=(SheerAxis=SHEER_ZX)
    PostScale=(SheerAxis=SHEER_ZX)
    Level=LevelInfo'myLevel.LevelInfo0'
    Region=(Zone=ZoneInfo'myLevel.ZoneInfo2',iLeaf=370,ZoneNumber=1)
    Tag="BlockingVolume"
    PhysicsVolume=DefaultPhysicsVolume'myLevel.DefaultPhysicsVolume83'
    Location=(X=-221.000000,Y=17953.000000,Z=14328.000000)
    Begin Brush Name=Model32
       Begin PolyList
          Begin Polygon Link=0
             Origin   -21000.000000,-00128.000000,-03000.000000
             Normal   -00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,+00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=1
             Origin   -21000.000000,+00128.000000,-03000.000000
             Normal   +00000.000000,+00001.000000,+00000.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=2
             Origin   +21000.000000,+00128.000000,-03000.000000
             Normal   +00001.000000,+00000.000000,+00000.000000
             TextureU +00000.000000,-00001.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=3
             Origin   +21000.000000,-00128.000000,-03000.000000
             Normal   +00000.000000,-00001.000000,+00000.000000
             TextureU -00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00000.000000,-00001.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
          End Polygon
          Begin Polygon Link=4
             Origin   -21000.000000,+00128.000000,+03000.000000
             Normal   +00000.000000,+00000.000000,+00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,+00001.000000,+00000.000000
             Vertex   -21000.000000,+00128.000000,+03000.000000
             Vertex   -21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,-00128.000000,+03000.000000
             Vertex   +21000.000000,+00128.000000,+03000.000000
          End Polygon
          Begin Polygon Link=5
             Origin   -21000.000000,-00128.000000,-03000.000000
             Normal   +00000.000000,+00000.000000,-00001.000000
             TextureU +00001.000000,+00000.000000,+00000.000000
             TextureV +00000.000000,-00001.000000,+00000.000000
             Vertex   -21000.000000,-00128.000000,-03000.000000
             Vertex   -21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,+00128.000000,-03000.000000
             Vertex   +21000.000000,-00128.000000,-03000.000000
          End Polygon
       End PolyList
    End Brush
    Brush=Model'myLevel.Model32'
    bBlockZeroExtentTraces=True
    ColLocation=(X=-221.000000,Y=17953.000000,Z=14328.000000)
End Actor
Begin Surface
End Surface
End Map
On a hunch, I tried removing them from the map and rebuilding geometry to see what that might do. The answer: no more instant take-off the moment a manta would touch a vertical BSP face. Getting mercifully spared the hell of going through a small city-sized list of possible suspects with this positive result, sussing out what exactly was wrong with these BVs was the next order of business. Around that point I was reminded of the similarities between this case and the BSP problems I'd encountered while putting the ONS-Tanks-a-Lot-)o(-V5 edit together - BSP holes, some faces not showing or not being lit properly, different locations being assigned to the same zone - so going through the same examination steps seemed reasonable. In the ONS-Barracks-{KL}-BigAl-C32-1 BlockingVolumes' case, the pivot points of all volumes were properly placed within them, so that wasn't the bug's culprit, but there was some visible wonkiness going on within those BVs' brush values - namely, all those unnecessary +/-00001.000000 components.
Cutting the BVs out of the map and rebuilding geometry in UEd, then zeroing all these values (while keeping their positive sign) in Notepad before reintroducing them to UEd, properly repositioning (remember the health vial trick), then rebuilding geometry and playtesting solved the bug and graciously provided another hint. Lastly, with these being blocking volumes rather than additive/subtractive brushes that have faces and use textures, the remaining question was which specific 00001.000000 values were the problem. One additional experiment later, where only the Normal values got zeroed, the result was the same as before, meaning the TextureU/V values didn't do anything here (and why should they, come to think of it? textures have no bearing to BVs).

The conclusion here is that somehow the Normal values in the ONS-Barracks-{KL}-BigAl-C32-1 BVs' brushes got messed up - possibly through some manual vertex editing manipulation - leading to the bizarre behaviour of mantas getting pushed upwards when touching any brush's vertical face, even if it wasn't a BlockingVolume. While I'll probably won't get 'round to testing this myself during the holidays, I think it's a fair assumption that checking and adjusting MantaMadness' BVs in a similar manner should resolve that same glitch there, so that's the small Christmas gift I can offer my fellow ONS map editors right now :).

All told, this was a pretty strange bug to hear about for the first time and investigate, even with 8 years' worth of accumulated experience in looking into this game's inner workings. Kinda makes you wonder what other, even more rare weirdness might exist out there in terms of bugs we've yet to come across *cue spooky music*. Plus, it's always fun getting back to the "shed" for a bit of UT sleuthing to clear one's head, even with the holidays this close.

Anywho, that's all I had to contribute here - hope some of it helps with your next edits.


PS: I don't think this particular bug has much in common with the long-known manta pair flying exploit, a (hopefully accurate) explanation for which can be found near the end of this post. For one thing, manta pair flying requires pressing against your pair and the two jumping at the same time, whereas the wall climbing glitch is much more involuntary and only requires touching a vertical face of a BSP/brush. For another, even when switching to wireframe mode, I've never managed to observe a manta's karma collision volume actually being able to intrude into that of such a brush in the slightest, unlike how it is with manta pairs. What seems to be going on here, instead, is that the brush miscommunicates its face's orientation for collision purposes, but why that has universal impact and effect across all the map's vertical BSP surfaces remains an even bigger mystery, setting it further apart from the flying pair's parameters.

PS2: Perhaps it's time to revisit the idea of making a comprehensive "BSP sanitization" guide...
Eyes in the skies.
Image
User avatar
Miauz55555
Posts: 2025
Joined: Sun 7. Jun 2015, 22:12
Description: https://discord.gg/X4V8THM
Location: Germany

Manta Climbing Walls (Bug/Feature) UT2004

Post by Miauz55555 »

Ok I don't get this Bug. Or at least it's not only the BV. I made something and the Bug appeared. Don't know why. No BV and no vertex editing at all. So I made a minimum working example:
ONS-MantaBug.zip
From a new file.
  • I have one big Substract Brush (7168x32768x24576).
  • Two PowerCore, Two playerstart, Two Manta, one ZoneInfo, One LinkSetup.
  • Than one other Substract Brush (256x256x265). I just moved the brush. It was created when the BuilderBrush was on the side.
  • When the small is above the big the Bug is there also when not connected.
  • When on the side it's away.
  • When under it's there.
I don't get why. Yes there are the 00001.000000 values in it, but after looking at other maps, they are on all where I had a look.
There are maps which are build exactly the same (Big Brush and on top other Brushes for Sky) like LegoFort. I tryed to create the Bug there, but without success.
Bug.JPG
NoBug.JPG
BugUp.JPG
Just posted this at epic forum as well.
You do not have the required permissions to view the files attached to this post.
Image