For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

New commands and functions in 227

Report bugs, read about fixes, new features and ask questions about the Unreal 227 patch here. Place comments and commit suggestions.
Post Reply
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

[split] [link=https://www.oldunreal.com/cgi-bin/yabb2 ... 883275/0#0][splithere][/link][splithere_end]
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Engine:
- Added commands "STAT THREAD" to display number of running threads and "THREADS" to display a list and description of running threads in memory (for Unreal).
- Added Sound compression/decompression support for all audio drivers. You can compress sounds in sound browser or in UnrealScript by defining "OGG=X" (X is the quality in range of 0-11, 0 = worst, 11 = best) in #exec audio import line or then you can directly import ogg files as sounds.
- Added support for defining HD HUD textures, by either setting Texture.HDTexture or in UnrealScript add "HD=XXX" to #exec texture/font import lines. HD texture will be used if texture is being stretched out by at least +25% of its original size.
Render:
- Made actors that pass through zones with different zone ambient light, fade between the zone light colors rather then instantly swap them.
- Made mesh actors that have their origin inside level geometry to not turn unlit and still accept lighting from nearby light sources.
- Added option to upscale HUD (HUD.HudScaler) to make canvas draw HUD as it were in low res but still keep high in-game resolution.
UnrealScript:
- Added functions to Canvas:
SetZTest( ERenderZTest ZTest ) = Change hardware render Z-testing.
PushCanvasScale( float Scale, optional bool bAbsolute ) = Push canvas scaling value.
PopCanvasScale() = Pop canvas scaling.
- Added Canvas.FontScale to change scale of upcoming DrawText/TextSize calls.
- Fixed Canvas.StrLen to support unlimited text size.
- Fixed Canvas.TextSize to ignore color codes.
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Gah been a long time since last update but heres the new list.
Render:
- Fixed coronas and sprites to fade out from distance fog.
- Optimized render by disabling surface sorting when not needed.
- Fixed a bug where skybox would turn into a HOM when viewed through a mirror reflection.
- Made windows mouse pointer usable in-game on fullscreen mode (mainly for UMenu).
- Added support for DynamicCorona to have directional light ray texture (which is only visible from the sides of the corona).
Engine:
- Added IK solvers for SkeletalMeshes for easy animation blending (such as head turning, limb rotation or foot placement).
- Added support for SkeletalMesh hitboxes for individual bones (and group them to bodypart type for modders to use).
- Made it possible to enter spaces in names in properties and defaultproperties blocks.
- Added ZoneInfo.MinWalkableZ to tell physics engine how steep slopes Pawns can walk on.
- Fixed preferences window to correctly save config to ini if you add/remove dynamic array entries.
- Improved Physics PHYS_Spider to work better at finding walkable surfaces and attempt to yaw actor towards desired rotation.
- Fixed a rare AActor::BeginTouch/EndTouch crash.
- Implemented Alt+F4 hotkey to exit the game instantly.
- Improved Log window to support command history browsing (up/down arrows) also properly support selecting/replacing parts of text or insert text in middle of command.
UnrealScript:
- Added actor function: function bool HasMeshHitBoxes() to quickly check if actor uses SkeletalMesh with HitBoxes (to make Trace check against HitBoxes instead of collision cylinder, set Actor.bTraceHitBoxes=true, to check which HitBox bodypart type was hit by the trace, check Actor.LastHitBox.
- Added a new parameter for DrawDebugLine function for making them permanent in level (or until you call ClearDebugLines): static function ClearDebugLines()
- Fixed #exec directives to support unlimited characters length for the command.
- Added Pawn.bNoPhysicsRotation to free Pawn from physics based rotations.
- Optimized some of UnrealScript code by moving some of base Actor code to C++ codes (TriggerEvent/HurtRadius).
- Added function to Pawn: iterator function AllInventory to allow for fast and safe iteration of Pawn inventory chain.
- Fixed Y/N questions in UCC.exe to not skip second Y/N question if multiple ones comes after each other.
- Added an event to Object: event OnPropertyChange( name Property, name ParentProperty ) to notify of a property change in the object (called from properties window, SetPropertyText or SET consolecommand), also called in editor.
- Added to LevelInfo: array CleanupDestroyedNotify to make custom objects receive cleanup destroyed notifications (to change destroyed actors to None in order to avoid crashes, player console is added by default to this array upon map load).
- Made defaultproperties importer throw a warning if you reference to an object that wasn't found.


Editor:
- Fixed DebugLines to draw in editor too.
- Added to MeshBrowser a menu option to export mesh import lines to clipboard (incase you tweak them in editor).
- Made properties window automatically pop-up tooltip of the property when you hover the mouse over the line for a second.
- Fixed properties window to show correctly struct member values if multiple actors are selected.
- Fixed properties window color selection preview color if Alpha value was non-zero.
- Made edit constant variables red colored in properties window and made the textlines selectable so that you can copy the value to clipboard (such as Name or Class name).
- Moved all hidden (uncategorized) properties to a "Hidden properties" category in properties window, also color coded to red.
- Added an option (enabled by default) to make rotation angles show in radii angles (0-360 range) rather then UU angles (0-2^16 range). Setting is at: [Core.System]
UseRegularAngles=False
- Added an option (disabled by default) to allow Actor properties window close itself if no actors are selected: [Core.System] CloseEmptyProperties=True
- Optimized Editor group browser (also added a second checkbox to lock actors, in order to keep them visible but have them unselectable).
- Added a warning if you try to open a map outside of working directory.
- Fixed so that maps that have missing packages to be allowed to be partially loaded (it will still give a map load warning at first and asks Y/N if you want to load anyway).
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

More rather huge updates:
Engine:
- Added support for Sub-Levels architecture (where you can link multiple maps together into one with seamless level transition). See LevelInfo.SubLevels array.
- Added GrassDeco actor for a Source Engine style grass sprites in levels (also GrassDecoSchool for an automatic grass patch).
- Moved PawnList updating to be fully in C++ codes only.
- Added a hidden ReplicationInfo linked list which gets setup by C++ codes (for more optimial ScoreBoard code).
- Heavily optimized Navigation AI code.
- Optimized server network codes.
- Added support for custom mouse cursors in-game (directly use regular Textures), see Engine.UnrealCursor class.
- Reworked Inventory travel code to be more optimal, and added functions GameInfo.OnPrepareTravel (event notification when it should save inventory) and GameInfo.SaveTravelInventory (to save inventory) and GameInfo.DeleteTravelInventory (to manually delete inventory).
UnrealEd:
- Updated toolbar icons.
- Fixed LE_SpotLight/LE_StaticSpot to work correctly with light rebuild with static meshes.
- Added variable TargetLevelID for Teleporter/WarpZone/Trigger/Counter to link it up with a sub-level.
- Added Editor.EdGUI_XXX classes for creating custom editor windows in UnrealScript.
- Added a portal directional arrow for WarpZoneInfo to help identify what direction the portal is currently facing at.
Render:
- Optimized RenderIterator code (for Emitters etc).
- Added custom LensFlares option for DynamicCoronas.
- Implemented DT_VerticalSprite and DT_RopeSprite DrawTypes.
- Fixed TrailEmitter to work with ColorTimeScale.
UnrealScript:
- Added new dynamic array operators: Add/AddUnique/Find/RemoveValue
- Made Object.FindObject function same way as ObjectProperty text importer (accept format like Nali'NyLeve.Nali1').
- Added new parm for Object.StringToName to set it to only find name entry, which makes it return None if that name entry is not registered yet.
- Added function LevelInfo.GetSelectedObject to get selected object by type in UnrealEd.
- Optimized AllActors to use PawnList or ReplicationInfo list codes whenever possible.
- Added variable Actor.bCrossLevelNetwork, for which when combined with bAlwaysRelevant, allows engine to network actors from one sub-level to another.
- Added function Actor.SendToLevel to send an actor to another sub-level.
- Added new parm to Actor.TriggerEvent/UnTriggerEvent to allow you to send it to a specific sub-level.
- Added new parm to AllActors iterator to search for actors in all sub-levels too.
- Added LevelInfo.bShouldStasisLevel/bShouldChangeMusicTrack where bShouldStasisLevel controls if a sub-level should go to a paused state if no players are active in it and bShouldChangeMusicTrack controls if player entering the level should start hearing that levels Song.
- Added variable Actor.NetUpdateTime which is next RealTimeSeconds server should update that actor to client.
- Added new property type 'Button' for showing a simple button in object properties window.
- Added new operator Vector~=Vector for approx vector comparison (allows for a ~0.0001 floating point error, now used by WarpZoneInfo for better approx comparison of coordinates).
On a sidenote I created a wiki page with a complete list of new 227j compiler directives: https://www.oldunreal.com/wiki/index.ph ... directives
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

UnrealScript:
- Expanded Inventory travel code to also support travel other actors such as GameInfo and Mutators.
- Added Actor.bOnlyOwnerRelevant to force actors to only network to Owner player.
- Improved AnimationNotify object to be more useful and functional.
- Added Array.Sort operator which is an easier access version of SortArray function call.
- Added OwnerChanged event callback which is called on both client and serverside when actor owner was changed or lost.
- Made Owner change to none when it was destroyed.
- Added new 'Any' property type which can be used to store an arbitary property value.
- Added Actor.UserData (map) to store custom mod data with an actor.
- Added 'nowarn' variable type to tell compiler to not print name conflict warnings during compilation.
- Added 'protected' variable type which functions as const modifier but allows you to modify value within same class itself.
- Added 'noexport' support for UnrealScript constants to prevent it from being exported to c++ header file.
- Added function Engine.GetEngine to grab current engine reference in UnrealScript.
- Added new parm to SetTimer to pass in data to timer callback function ('any' data).
- Added Actor.bForceNetUpdate to instantly force server to replicate that actor next tick.
- Added new parm to RadiusActors iterator to only check from Collision Hash.
- Added new parm TraceFlags to Trace functions to allow you to define what actors to trace after.
Engine:
- Changed download error messages to be also printed to the HUD/console.
- Made AttachMover also attach actors on clientside (mainly to fix elevator corona on Terralift).
- Added an option to player console to enable script error printing to in-game console.
- Added Monocrome bitmap compression (mainly for single colored masked textures like fonts).
- Fixed various bugs with demorecording (added support for older 224-225 demos, added HUD features, fixed demo scoreboard etc).
- Made it also possible to pause demo playback (also made it skip pauses during demo playback).
- Fixed a rare crash with trying to call SetOwner onto an invalid actor or causing an infinite owner chain (Actor A owns B which owns A etc).
- Compressed int replication a bit more when replicating low values.
- Disable initial garbage collection when booting up the game (waste of time).
- Made it impossible to try to load package 'nul' to prevent malicious loading crashes.
- Made commands 'Start' and 'Open' always delay mapchange until end of tick to prevent 'Admin' command from crashing the server when using it (i.e: Admin Open). Also made said commands pass in as Level.ServerTravel event when called on server to allow clients properly to reconnect to new map.
- Added Volumes support from UnrealEngine 2+ (which can be used to create brush shape collision shapes or triggers to levels).
- Made LadderTrigger a Volume instead, also various fixes to ladder:
- Player properly hops off the ladder now at top.
- Added a flag to allow player to strafe on ladder (you must have bDirectional enabled).
- Added a flag to enable/disable directional ladder which makes you drop off the ladder if you look away from it (must also have bDirectional enabled).
- Pressing jump key while holding backwards now makes you now jump off ladder backwards.
- Added a value to control climbing speed on the ladder.
- Added INI file option 'LangPath' which can be used to specify director of language files (like .int).
- Added a variable to SkyZoneInfo which allows you to make sky move in relative to player camera position.
- Added support for static light static mesh movers.
UI:
- Made log window (through SHOWLOG or dedicated server window) use a separate editbox for inputting commands.
Gameplay:
- Fixed ParentBlob to be able to obtain new enemy once old enemy is dead or has disappeared out of sight.
Editor:
- Fixed snap to grid buttons at bottom bar of editor to save changes to ini.
- Also made the icon buttons have more clear graphic when grid is disabled.
- Made Texture properties window update its own resolution when source texture res was changed in real time.
- Fixed a visual bug with Actor class browser when you try to create class under a native class and it fails.
- Made BrushBuilder also accept a Texture as icon rather then BMP only.
- Added Actor.bBlockAISight which makes AI not be able to see through the actor (must have bCollideActors enabled but can be non-blocking).
- Added support for custom actors to be placed now with a Brush collision shape attached to it (Actor must have bSpecialBrushActor enabled).
- Added an in-editor event callback (EdBrushDeployed) which is called when actor was added to level with a brush.
- updated PackageFlagCommandlet to change package flag bits only instead of loading and resaving the packages.
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Oof haven't updated this thread for a while now, but here's another list:
Gameplay:
- Improved TexModifiers (TexRotator/Scaler/Oscallitor) to modify U/V map instead of stretching out pixels with itself (rotation/scaling is not for BSP textures).
- Made some decos, inventory and fragments orient to floor direction when landing.
- Made package loader keep loading packages even if a single package was missing to throw full list of missing packages when finished trying.
- Added SkeletalMesh/LodMesh load-time error checking in case of broken mesh.
- Fixed Movers with StopOnEncroach to network stopped movement to 227j clients.
- Fixed Movers with ContantLoop state to properly handle Stop/ReturnOnEncroach types.
- Fixed orientation errors when passing through WarpZones with different orientations (gimbal lock error).
- Futher optimized SkeletalMesh render code.
- Fixed an inaccurancy error with footstep sound tracing.
Engine:
- Made package loader remove references to deleted actors.
- Added last camera coordinates to crash history message whenever game crashes.
- Fixed a client-side download manager crash when connection was caneled or aborted during downloading.
- Added ClientMover actor for a client-side background looping movers (which doesn't interact with gameplay in any way).
- Added TransporterVolume which can be used to transport all actors touching that volume to a relative offset in another place in level. Similar to Transporter but with better control.
- Disabled Password logging by default game modes.
- Fixed INI file writer failing if trying to write really long ini lines.
- Added support for object archetype references (in order to save delta modified EditInLine objects).
- Added movement interpolation between actors network updates.
- Added PhysX physics support (with Physics=PHYS_RigidBody and PhysicsData reference in actor).
- Added a Pawn PhysicsAnimation object which can be used to give pawns automatic physics based animations.
- Fixed SecurityData to properly sanitize player names with special characters.
- Made 'GETPING' consolecommand also functional client-side.
- Fixed Quat Rotator conversion errors.
- Heavily optimized Garbage collector.
- Fixed GameInfo server travel to not send out game options to clients in server that is traveling.
Render:
- Fixed ZoneInfo.Min/MaxLightcount to be functional again.
- Added ZoneInfo.LightSharpnessFactor/LightNormalMinAng variables to modify lighting method of meshes inside that zone.
- Added support for animloop blending between 2 looping animations.
- Made LightMap render code to use C++ style memory management and also reduce LightMap framerate in case of high BSP lightmap count on screen.
- Fixed static lightmap movers to properly grab lighting at the BrushTraceKey location.
- Added VisibilityRadius culling support for Decals and Projectors (also made object shadows fade-out as its about to get culled).
Editor:
- Updated script editor to show multiple error lines whenever it makes multiple compiler errors.
- Added editor skeletal mesh socket preview (to test mesh attachments offsets).
- Fixed an editor crash when trying to rebuild lighting of a static mesh that hasn't been rendered yet on camera.
- Fixed mouse cursor clicking inaccurancy in ortho viewports with D3D9 and OpenGL drivers.
- Added a 'Play from here' right-click menu option to editor 3D viewport.
- Added right-click menu for properties window in order to allow user to copy variables information to clipboard.
- Made UnrealEd track modified packages and ask if each one of them should be saved on exit.
- Made non-compiled script classes non-placeable in editor.
- Fixed a crash with Projectors when exporting/importing maps where projector is attached to an actor.
- Added new ShowFlags for: Static Meshes/Event lines/Projectors.
- Added new actor view mode to show actors visibility as in-game.
- Optimized Ortho viewport render.
- Fixed drag selection box snapping to nearby actor if you click on an actor when beginning to drag box.
- Updated Copy/Paste object properties in Class browser to keep proper property formatting.
- Added Tooltip for object classes to show header comments of the class you're hovering over.
- Added a minimum window size when opening properties windows.
- Fixed 2D shape editor to properly init box with grey colored lines (and not with random leftover junk from memory).
UnrealScript:
- Added CodePath variable to Unreal.ini to specify custom source code path for when compiling UnrealScript packages.
- Reworked UnrealScript compiler to properly continue compiling whenever possible if it encounters errors.
- Added RotAng constant which takes real angles as rotator values (i.e: rotang(360,180,0) is same as rot(65536,32768,0)).
- Added support for string/name constant literals (i.e: "Some\nThings\xFF" or 'Hello\tWorld!').
- Fixed another error with terniary operators (WARNING: this breaks binary compatibility with codes built on previous 227 builds that used terniary operators).
- Added IntProperty variants 'DWORD' and 'UINT' to make it export to cpp as different property type.
- CacoFF: Added Outer object parm for AllObjects iterator, also if you use a Struct as Outer you can iterate struct properties.
- Added event RanInto for when an encroacher pushed an actor away.
- Added NoDuplicate variable modifier to make it not create a clone of EditInLine object when new object is in different package.
- Added NoEdSave variable modifier to tell editor to never save this variable.
Audio:
- Anth: Fixed Galaxy audio accessing outside of memory bounds when playing some sound effects.
Last edited by .:..: on Sun Dec 20, 2020 8:29 am, edited 1 time in total.
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
Neon_Knight
OldUnreal Member
Posts: 378
Joined: Tue Aug 25, 2009 9:02 pm

Re: New commands and functions in 227

Post by Neon_Knight »

Just for the record, I'm maintaining this in the Wiki:

https://www.oldunreal.com/wiki/index.ph ... 227j_Notes
Eminor
Posts: 2
Joined: Sat Jan 23, 2021 12:43 pm

Re: New commands and functions in 227

Post by Eminor »

Hi guys,
I'm popping in to ckeck the status tor the unreal patches and .pdf links which all seem to return a 404

e.g.
https://www.oldunreal.com/patch/UnrealGoldPatch227i.7z
User avatar
Smirftsch
Administrator
Posts: 8999
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali
Contact:

Re: New commands and functions in 227

Post by Smirftsch »

still working on the mainpage. Just fixed the download links, the navigation is still a bit messy, but its a lot stuff to do, so needs some time.
Eminor
Posts: 2
Joined: Sat Jan 23, 2021 12:43 pm

Re: New commands and functions in 227

Post by Eminor »

Smirftsch wrote: Sat Jan 23, 2021 2:48 pm still working on the mainpage. Just fixed the download links, the navigation is still a bit messy, but its a lot stuff to do, so needs some time.
I totally get it, thanks for the update. U guys need any work done? I'm on my own projects but have some time free cos of covid. 3D Environment & technical artist, game dev/realtime/prerendered pipelines, and bilingual translator English<->talian.
User avatar
Smirftsch
Administrator
Posts: 8999
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali
Contact:

Re: New commands and functions in 227

Post by Smirftsch »

there is always more work than enough in every regard...but no idea what specifically- what are you interested in? Development? That's a bit limited though since we are not allowed to share the sources, but even then there are parts like the renderers (audio and video) which are developed independently and not underlying any restriction.
User avatar
Kajgue
Global Moderator
Posts: 752
Joined: Mon Oct 17, 2005 2:36 pm

Re: New commands and functions in 227

Post by Kajgue »

Eminor wrote: Sat Jan 23, 2021 8:28 pm
Smirftsch wrote: Sat Jan 23, 2021 2:48 pm still working on the mainpage. Just fixed the download links, the navigation is still a bit messy, but its a lot stuff to do, so needs some time.
I totally get it, thanks for the update. U guys need any work done? I'm on my own projects but have some time free cos of covid. 3D Environment & technical artist, game dev/realtime/prerendered pipelines, and bilingual translator English<->talian.
Hey Eminor, nice! :)

New content in the community is always welcome. thumbsup

Check out the modelling subforum, it may have one or two useful things if you wish to get models into Unreal :)
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

More updates.
Audio:
- Anth: Fixed choppy Galaxy/ALAudio playback.
Server:
- Fixed WarlordRockets spawning smoke and SeekingRockets spawning decals on servers.
- Made clients verify cache files GUID version before using them.
- Added server command: UVerifyClient <ID> to manually verify a single or all clients packages with HASH values to verify they are in network sync.
- Fixed GameInfo to not send game options to clients when switching levels.
Engine:
- Fixed an emitter crash with particle combiners.
- Fixed emitter crash with SetMaxParticles function.
- Replaced various emitter static arrays with dynamic arrays (NOTE: Mods making direct references to these will need to be recompiled).
- Added log supression for DevPhysics in default ini.
- Anth: Reduced game deltaseconds clamping to allow game run in higher FPS without speeding up the game.
- Made package loader load meshes as any mesh type (regular Mesh can now load as LodMesh/SkeletalMesh/StaticMesh etc...).
- Fixed map travelled inventory to have their bHeldItem flag set to true.
- Added a new BSP surface flag 'invisible occluder' which works like an anti-portal surface to simply occlude view.
Physics:
- Added PhysX physics support (simple rigidbodies and joints).
- Added new actor Physics mode PHYS_RigidBody.
- Added Engine.PhysicsEngine ini setting to chose which physics engine to use (defaults to PhysX).
Render:
- XOpenGL/Smirf: Removed SyncToDraw option and implemented various other bugfixes and optimizations.
- Fixed a bug where meshes or sprites could not be drawn if their render bounding box were parallel to nearby BSP splitting plane.
- Krull: Fixed Armor mesh missing bottom polygons and adjusted several LOD meshes to have less agressive LOD.
- Krull: Added various HD icons for when you use hi-res HUD mode.
- Made Canvas.DrawText support alpha blended font textures.
- Added a time-based light flicker for LightType Strobe and Flicker so they can be slowed down by TimeDilation too.
Editor:
- Made font importer try to remap missing font characters with similar characters (i.e: Engine LargeFont remaps lowercase characters now to uppercase ones).
- Fixed StaticMeshes resetting their static lightmap when selecting the mesh after map load.
- Anth: Fixed surface properties tabs now switching properly the first time around.
- Anth: Fixed couple of properties windows problems and crashes.
- Added a minimum properties window size to avoid 1 pixel size properties window bug.
- Added functionality to rename asset groups too (texture/sound/mesh etc).
- Added right-click menu for sound browser.
- Added to texture/sound right-click menu an option to copy their full name to clipboard.
- Added a 'Default' animation for skeletal meshes to preview their T-pose.
- Added an option for paste actor properties in class browser to retain or replace previous properties.
- Made Sunlight only lit up same zone only (unless placed in skybox where it will lit up entire level).
- Fixed so Sunlight can't lit up a skyzone, incase you have a skybox inside a skybox.
UnrealScript:
- Added support to call super function in a class pointer (i.e: PlayerOwner.Super(Pawn).TakeDamage(...)).
- Added 'NoEdSave' variable modifier to tell editor to never save that variable value.
- Added 'NoDuplicate' variable modifier to tell editor to never clone that editinline object to newly instanced object.
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Ehm after a long while heres more updates:
Engine:
- Added to DynamicCorona CoronaFadeTimeScale to control how fast the corona should fade in or out when pops in and out of view.
- Added TriggerCorona which is a DynamicCorona that can be triggered on or off.
- Removed duplicate TriggerLight actor from UnrealShare package.
- Fixed players unable to walk inside warpzones.
- Added simple collision model support for any meshes.
- After making various emitter static arrays into dynamic arrays, made old mods functional with them.
- Fixed an error with Actor.TraceSurfInfo which ended up crashing during APawn::ProcessLanded.
- Added more safety checks and optimized ActorChannel management.
- Allowed Actors and Pawns to perform physics outside world geometry if event FellOutOfWorld doesn't kill them.
- Fixed a specific crash that could happen during client disconnection from server if exiting code would attempt to call a RPC function.
- Added more validity checks to GarbageCollector.
- Fixed a crash when attempting to load corrupted meshes.
- Added option to MusicEvent to disable cross-level song changes (when using sub-levels).
- Ported over from network fixes from UTv469: if packet loss prevented channel from closing it will be resent, made channels open in a sequential order to prevent client->server RPC call from switching actor refs on parms incase actor happens to get destroyed inbetween.
- Made ScriptWarnings dump UnrealScript call stack to log (you can suppress this with Suppress=ScriptStack).
- Made default objects use name 'Default' to more easily detect errors on error stack dump during crashes.
- Added Texture.SuperGlow to make texture glow with some fog overlay with bright lights (for meshes).
- Added support for floating point UV texture mapping for SkeletalMeshes.
- Added PhysX option for Emitter particles to make them rigid.
- Added particle fade style option (to make particles change style only while fading).
- Added LevelInfo.MaxPortalDepth to control how many layers warpzones/mirrors/skyboxes can draw.
Gameplay:
- Made weapons force stop firing while entering feign death mode.
- Made player select/weapon menu draw meshes with lighting enabled.
Render:
- Fixed zoneportals from hiding skybox in additive maps.
- Fixed so render supports unlimited screen res Y size (was limited to 2880).
- Fixed two sided meshes to receive lighting from both sides again.
Editor:
- Disabled in-game keybindings from firing inside editor.
- Fixed editor from losing focus when closing a sub-window after using alt-tab (win 10).
- Made sounds not reset nor music stop when you paste actors in editor.
- Added a song section slider to Music Browser so you can listen to specific sections of the song.
- Added support for custom editor keybindings (see Unreal.ini, EditorEngine.KeyBindings).
- Made editor mesh browser draw meshes with lighting enabled.
- Added right-click BSP surface options to Merge faces (on a tesselated surface) and Flip faces (incase they are facing the wrong direction).
UCC:
- Added so that if you run UCC.made <packagename> it will force compile that as mod.
UnrealScript:
- Added 'invariant' function modifier, which basically is a global function that does (mostly) only work with parameter variables. You are only allowed to call other invariant functions/variables or static functions/default variables within it, or then Object functions/variables. You can call these functions without having to reference to the class containing it.
- Made Actor color operators invariant so they can be used anywhere. Also made GameInfo MakeColorCode/StripColorCodes and LevelInfo GetLocalPlayerPawn invariant for easier access.
- Fixed crash with switcing states during execution of subexpression, also fixed crash with 'Can't find function XXX in YYY' (incase you switch states before the call).
- Added more script functions carrying decorations.
- Added 'noexport' modifier support for enums to prevent it from getting exported to C++ header.
- Added function to Object: static native final function GetCallStack( out array<USScriptCallPair> Stack ) - To grab current UnrealScript call stack.
- Added function Engine.ConsoleCommand to call engine commands anywhere.
- Added functions to Canvas: SetCustomLighting/AddCustomLightSource/ClearCustomLightSources - To control custom lighting mode for upcoming DrawActor calls on meshes.
User avatar
Leo T_C_K
OldUnreal Member
Posts: 3655
Joined: Sat Aug 27, 2005 6:24 pm

Re: New commands and functions in 227

Post by Leo T_C_K »

I hope those network fixes from UT469 won't mean that clients might get spammed by query requests or something. It happened to me on U2XMP actually via a routing setup a while ago. Because not every port was allowed I was basically being DoSed by the server as a result....it wasn't too pretty so I hope something like that can't happen and the server will drop sending requests to the client if something fails.
User avatar
Neon_Knight
OldUnreal Member
Posts: 378
Joined: Tue Aug 25, 2009 9:02 pm

Re: New commands and functions in 227

Post by Neon_Knight »

May I ask for help with this page?

https://www.oldunreal.com/wiki/index.ph ... Commandlet

There are commandlets without bits of important info.
Localization project coordinator/spanish maintainer

Only the people that do nothing but criticize don't make mistakes. Do things. Make mistakes. Learn from them. And screw those who do nothing but throw poison and criticize.
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Gameplay:
- Made Teleporters interrupt player interpolation.
- Improved Movers ability to push back actors without just encroaching on them.
- Made Pawns walking along ledges a little less janky.
Engine:
- Disallowing actors from moving into invalid location (division by zero, infinite location).
- Fixed Pawn Z height fighting when walking on collision cylinder thats exactly the same height as BSP.
- Made save game code wait until end of tick before saving the game, so it doesn't save state mid-tick, thus could break state code for a single actor.
- Made UnknownXX keybindings not configurable, and therefore wont show up in User.ini.
- Added consolecommand "DUMPSTATES <classname>" to dump state execution information of all matching actors currently in level.
- Fixed already deleted actors from reciving one extra tick (which would happen if they have an owner and gets a delayed tick, but it destroyed by another actor before they recieve it).
- Made Pawns stop their movement latent actions if their physics is PHYS_None.
- Fixed inventory travel code to allow for unlimited variable data size.
- Fixed Advanced Options window to correctly handle sub-section naming conflicts (such as <Advanced Options - Advance> vs <Advanced Options - Editor - Advance>).
- Made editor not save actors with their state frame information (as game does reset that on map load anyway).
- Added a LevelInfo flag bUTZoneVelocity to make ZoneVelocity behave like in UT games (defaults to True on levels saved in UT editor).
- Added GameInfo.GameMaxChannels which controls the max number of channels 227j+ clients can have on the server (valid range is 256-65536).
Editor:
- Fixed when exporting LODMesh as OBJ to keep correct offset.
- Made editor warn user if they save a package with same name as another package, but at different extension.
- Added progress bar for "PATHS BUILD" command.
- Changed all path building log lines type to DevPath.
- Modified TexRotator tool when holding alt key, it rotates it snapped.
- Added editor option to disable saving of LevelSummary object (if you want save map as pre-226 compatibility, found in Advanced Options).
- Added LevelInfo.bRequireHighChannels which if enabled, makes 227j clients use 4X max channels on the level.
Render:
- Made Actor.VisibilityHeight as obsolete and Actor.VisibilityRadius work as spherical visibility radius.
UnrealScript:
- Fixed Canvas.ScreenToWorld to transform output to correct screen rotation so you don't need to do that manually.
User avatar
Neon_Knight
OldUnreal Member
Posts: 378
Joined: Tue Aug 25, 2009 9:02 pm

Re: New commands and functions in 227

Post by Neon_Knight »

.:..: wrote: Mon Aug 02, 2021 7:28 am Gameplay:
- Made Teleporters interrupt player interpolation.
- Improved Movers ability to push back actors without just encroaching on them.
- Made Pawns walking along ledges a little less janky.
Engine:
- Disallowing actors from moving into invalid location (division by zero, infinite location).
- Fixed Pawn Z height fighting when walking on collision cylinder thats exactly the same height as BSP.
- Made save game code wait until end of tick before saving the game, so it doesn't save state mid-tick, thus could break state code for a single actor.
- Made UnknownXX keybindings not configurable, and therefore wont show up in User.ini.
- Added consolecommand "DUMPSTATES <classname>" to dump state execution information of all matching actors currently in level.
- Fixed already deleted actors from reciving one extra tick (which would happen if they have an owner and gets a delayed tick, but it destroyed by another actor before they recieve it).
- Made Pawns stop their movement latent actions if their physics is PHYS_None.
- Fixed inventory travel code to allow for unlimited variable data size.
- Fixed Advanced Options window to correctly handle sub-section naming conflicts (such as <Advanced Options - Advance> vs <Advanced Options - Editor - Advance>).
- Made editor not save actors with their state frame information (as game does reset that on map load anyway).
- Added a LevelInfo flag bUTZoneVelocity to make ZoneVelocity behave like in UT games (defaults to True on levels saved in UT editor).
- Added GameInfo.GameMaxChannels which controls the max number of channels 227j+ clients can have on the server (valid range is 256-65536).
Editor:
- Fixed when exporting LODMesh as OBJ to keep correct offset.
- Made editor warn user if they save a package with same name as another package, but at different extension.
- Added progress bar for "PATHS BUILD" command.
- Changed all path building log lines type to DevPath.
- Modified TexRotator tool when holding alt key, it rotates it snapped.
- Added editor option to disable saving of LevelSummary object (if you want save map as pre-226 compatibility, found in Advanced Options).
- Added LevelInfo.bRequireHighChannels which if enabled, makes 227j clients use 4X max channels on the level.
Render:
- Made Actor.VisibilityHeight as obsolete and Actor.VisibilityRadius work as spherical visibility radius.
UnrealScript:
- Fixed Canvas.ScreenToWorld to transform output to correct screen rotation so you don't need to do that manually.
Excellent. I've updated the page on the Wiki too.
Localization project coordinator/spanish maintainer

Only the people that do nothing but criticize don't make mistakes. Do things. Make mistakes. Learn from them. And screw those who do nothing but throw poison and criticize.
User avatar
Leo T_C_K
OldUnreal Member
Posts: 3655
Joined: Sat Aug 27, 2005 6:24 pm

Re: New commands and functions in 227

Post by Leo T_C_K »

I hope the improved pushing back of movers doesn't break the pushmovers made by codex though now that I think about it. I didn't have time to test this last time around (when I could run unreal like month and half ago) but apart from separate test maps they have been used in unreal psx rework in the map UPB-E1L7D. They were a hack to allow for true pushing back of players etc like moving brushes in quake also used to do. Its in the second part of Episode 1 obviously.

Just something that I think should be tested either way.

Since what version was this implemented exactly though? That mover behavior.
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Render:
- Made volumetric fogs draw on zoneportals and sky (sky fog one is optional and can be changed from video settings between high quality/low quality/disabled options).
- Made game draw volumetric fogs in fogzones even if player is standing outside of any fogzones.
- Made volumetric fogging to be rendered on unlit actors.
- Made map projectors properly project on any actors it touches (if bOnlyAttachStaticActors is False).
- Made projectors project on first person weapon mesh too if it projects on player model itself.
- Made shadow bitmaps ignore translucent mesh surfaces so they don't cast shadows (so pawn muzzle flashes dont draw ridiculous shadows).
- Made shadoe bitmaps render as STY_Modulated for Software render device (or any other render devices that don't support alpha blending).
- Fixed a render glitch with regular decals and made them functional on Software render device.
- Changed Projectors/Decals with Style STY_None to use their textures render style.
- Made translucent actor attachments get drawn in later pass if drawn on solid meshes.
- Changed RenderIterator to obtain render list as linked list instead of iterating a list (and added an UnrealScript basecode for RenderIterator).
- Pulled some render buffer overflow handling code for UTv469 to fix some specific render crashes.
- Fixed meshes and decals turning invisible when they're past FogDistanceEnd if FogMode is on non-linear mode.
UnrealScript:
- Made Spawn function not check collision with world for Pawns if their bCollideWorld is false or if bNoFail is enabled.
- Added to ScriptCompiler a new option to compile code in optimization mode (UCC Make -optimize), which currently will only strip any Super function calls to empty function declarations (disable Suppress=DevCompile to see what it optimizes).
- Made ScriptCompiler merge any string constants and solve any 'Chr(XX)' constant functions (as example Chr(13)$Chr(10) will compile into "\r\n").
- Also made ScriptCompiler solve any constant math equations it finds (as example float(Asc("A")/2.f) -> 32.5).
- Made LoadPackageContents only load objects of specified type user desired so it doesn't actually load entire package if you for example load only sound FX.
- Added a special hack to LoadPackageContents so it's only allowed to load music objects from zxFire (Zora's map-pack music) package (as apperently it includes entire Fire.u contents from 224v).
- Added legacy mod support for mods that used SpawnAct function.
- Added support for C++ style for loops (for(;;) or for(i=0,j=0; i<5; i++,j+=5) etc).
- Renamed PlayerPawn.GetClientVersion to GetNegotiatedVersion to match what it actually returns).
- Added Mesh sockets which can be used to give skeletal mesh bones aliases for attachments with specific orientation, also to define attachment positions to vertex meshes.
Sockets can be setup in editor on mesh browser, mesh properties, under MeshSockets/PreviewSockets, then export mesh properties to clipboard to put them in code.
- Added LeftHand and Head sockets for all default player models (i.e: #exec MESH SOCKET MESH=Male1 SOCKETNAME="L_Hand" VERT0=248 VERT1=72 VERT2=10 X=1 Y=0 Z=2 PITCH=-34 YAW=-20 ROLL=57).
- Added PostRender2D for projectiles.
- Added function Actor.GetBoundingBox to obtain actor render (or collision) bounding box.
- Made #exec MESH IMPORT allow you to set any mesh properties.
- Added new vector math functions: VSizeSq, VSize2D, VSize2DSq, Normal2D (VSize squared and vector 2D which ignores Z axis).
- Made UnrealScript out parameters (function ABC( out int D )) function as pointer reference, so it doesn't duplicate the variable in memory.
- Added 'IsValid' function syntax to check if optional out parameter has been specified, otherwise it'll cause an Accessed none ScriptWarning when accessing it.
- Added "const reference" support for UnrealScript as const out parameter, which works like a pointer but will create a temporary copy of the variable if you pass in a r-value.
- Made various string functions in Object read their parameter as pointer reference if you pass in an l-value.
Gameplay:
- Made user consolecommand history get saved in User.ini to be reusable on next session again.
- Made UWindow combo boxes auto-scroll to currently selected item when opened.
- Added to MusicMenu a suffle playlist checkbox.
- Added a button to MusicMenu to add every music found in music folder.
- Fixed NaliRabbits/BiterFish pick destination to not pick world origin.
- Made UMenu PlayerSetup/Weapon menu downscale view model by window height to properly fit model on screen in widescreen modes.
- Added mesh rotation controls to Weapon menu (by clicking and dragging the mesh).
- Made UMenu warn user if you try to play singleplayer with bonus 227 difficulty levels.
- Made bonus difficulty levels show in red on classic menu.
- Changed mechanics of bonus difficulty levels to not increase health of monsters, but to alter their AI behaviour.
- Made Emitters with missing particle texture draw nothing instead of particles with default texture.
- Made Ternary conditions use precendence 50, which is highest of all operators, and first bool condition work as coerce parameter.
Engine:
- Added more failsafe checks to garbage collector to reduce chance of gc crashes.
- Fixed movers to not stuck pawns/players as easily if crushes pawn into ceiling.
- Added a failsafe mechanism to Movers where if a pawn gets stuck inside mover it will try a couple of ticks before it completely ignores collision with the pawn and tries to push pawn off.
- Fixed non-zero extent traces vs BSP to not to be allowed to pull-back trace result for more than 4 UU (where it used to be 10 % of full trace distance).
- Reworked networking code to not use UObjects for channels but instead own internal struct classes for better server performance.
- Backported UTv469's fixed Pawn walk along ledges code.
- Fixed some rare NaN vector (division by zero) errors in physics code.
Mapping:
- Added a new texture type 'ZoneCurtain' which works as a distance world occluder which will fade out as camera approaches it (such as building windows in Half-Life 2).
- Added AutosaveTrigger (under Triggers) which will create an 'autosave' of singleplayer progress when triggered.
- Added Actor.bForcedCorona flag to force actor to draw a corona even if client has disabled coronas.
- Added support for cross-level skyboxes (ZoneInfo.SkyZoneInfoLevelID which can be set to a matching SubLevel name).
Editor:
- Made it possible to type in any math operations on properties window (for example Nali.Health*2 -> 80).
- Added Mesh editor (under Tools menubar) which can be used to edit _d.3d and .psk mesh files to edit their polyflags or textures.
- Made editor save all modified packages to System/Backup folder if editor crashes.
User avatar
Masterkent
OldUnreal Member
Posts: 1469
Joined: Fri Apr 05, 2013 12:41 pm

Re: New commands and functions in 227

Post by Masterkent »

.:..: wrote: Tue Oct 19, 2021 6:08 pm- Added 'IsValid' function syntax to check if optional out parameter has been specified, otherwise it'll cause an Accessed none ScriptWarning when accessing it.
Such a solution doesn't look good if it applies to non-object parameters, such as int, vector, or string. It will break existing code like this

Code: Select all

static function bool B227_AdjustTraceResult(
	LevelInfo Level,
	out vector StartTrace,
	out vector EndTrace,
	out Actor HitActor,
	out vector HitLocation,
	out vector HitNormal,
	out int MaxWarps,
	optional out vector Dir)
{
	local WarpZoneInfo HitWarpZone;
	local float MaxTraceDist;
	local rotator R;

	if (MaxWarps <= 0)
		return false;

	Dir = Normal(EndTrace - StartTrace);

	if (HitActor != none)
		HitWarpZone = WarpZoneInfo(Level.GetLocZone(HitLocation + HitNormal).Zone);
	else
	{
		HitWarpZone = WarpZoneInfo(Level.GetLocZone(EndTrace).Zone);
		HitLocation = EndTrace;
		HitNormal = -Dir;
	}

	if (HitWarpZone == none)
		return false;
	HitWarpZone.Generate();
	if (HitWarpZone.OtherSideActor == none)
		return false;

	MaxTraceDist = VSize(EndTrace - StartTrace);
	MaxTraceDist = FMax(0, MaxTraceDist - VSize(HitLocation - StartTrace));

	--MaxWarps;
	HitLocation = B227_WarpZoneHitLocation(HitWarpZone, HitLocation, Dir);
	StartTrace = HitLocation;
	HitWarpZone.UnWarp(StartTrace, Dir, R);
	HitWarpZone.OtherSideActor.Warp(StartTrace, Dir, R);
	EndTrace = StartTrace + Dir * MaxTraceDist;
	HitActor = none;

	return true;
}
and there will be no portable way to fix it other than by removing the 'optional' keyword and forcing the caller side to provide something for such parameter.

A non-portable way, that is adding an extra local variable and copying its computed value to the out parameter after checking if the parameter has an actual argument provided on the caller side, doesn't seem to be handy too.

Also it's likely that some modders implemented functions with name IsValid (which, I think, is very common in programming) and they will be pleasured to see that this is now a reserved operator keyword.

In order to minimize troubles in case of omitted actual arguments, it would be better to provide an automatically created local variable initialized with the corresponding default value. Then the majority of existing functions with optional out parameters would work as before, except that some code could start working incorrectly if it somehow relies on the external value of the passed argument inside the affected function (I think, such cases should be quite rare).
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Another update after a long wait:
Engine:
- Added an INI/INT formatting for color codes, works with following formatting: (#HTML color tag), as example: (#FFFF00) = yellow color.
- Made Package loading log lines log load-times from start of current load operation instead of from app start time.
- Implemented some UTF-8 format fixes from UTv469.
- Made string properties with some special characters gets written with a special text tag into INI (tags are \%HEX or \%n or \%").
- Fixed a memory error when a Mesh or LodMesh has a surface with a vertex index that goes out of range.
- Added a new system to prevent even more version mismatch errors when connecting to server online (if a package is already loaded and is mismatching with a package on a server, it will create a clone of it inside the game memory).
- Made game remember window position when playing on windowed mode so it always keep it whenever you boot the game.
- Optimized how Emitter handles RainRestrictionVolumes with weather emitters.
- Added a server option to specify how many clients are needed in server before it starts to saturate network updates (TcpNetDriver.LanModeClientsCount).
- Added some UE3-4 networking fixes and optimizations.
- Tweaked some actor networking values.
- Disabled client netstat commands to prevent server from flooding with network messages to client.
- Made server not replicate small vector/rotation changes that are too unsignificant to be any different from previous value when compressed.
- Fixed a crash if a textures dimensions were 1x1.
- Fixed an error where properties in child classes would eat up saved values from parent classes with same name (i.e: GameReplicationInfo.Region would eat value of Actor.Region).
- Changed actors to check for current zone only on end of current physics step (related to player dying when walking into a wall while standing in pain zone).
- Made PHYS_Trailer actors follow Owner to different sub-levels.
- Changed PHYS_Trailer on emitters to behave same way as they were DT_Mesh instead of DT_Sprite (so they don't trail behind scaled by actor Mass distance).
- Corrected so when loading UT maps teleporters default their bChangesYaw to True.
- Also added a Teleporter.bUTRotationMode flag which is set to true also when loading UT maps. To make teleporters behave exactly like in UT.
- Made dropped inventory visible to AI on navigation network.
- Changed ScriptedPawn default resting physics to PHYS_Walking instead of PHYS_None so that they will correctly fall if they are pushed off a ledge by a mover.
- Added more Reset functionality for ExplodingWall, ArrowSpawner and some decals.
- Fixed objects in EndGame to be more optimized for network play.
- Made ExtremeDGen and EndGame usable in network servers.
- Made sure that pre-227 clients don't crash when they see a default bStatic/bNoDelete actor in level that isn't static or non-delete.
- Fixed game from crashing if you delete a navigationpoint that is referenced by a reachspec.
- Made game de-reference deleted lights and zoneinfos on map load.
- Fixed object network replication where when you try to replicate an object reference that isn't in current sandbox to replicate as 'None' instead of some random object from the network table.
- Fixed actor replication with large arrays to not to send malformed packets during channel initial replication.
- Fixed loading of some UT maps that have incorrect LightEffect=LE_Sunlight reference, making level oddly bright (CTF-November).
- Added an option for maximum ScriptWarnings per function (System.MaxWarnPerFunc).
- Implemented a hack fix for RedeemYourSpace map pack, to force player to touch any teleporters under their MaxStepHeight while standing on a mover moving downwards.
- Added features for JumpPads: a flag to disable it for monsters or players, made it trigger an event when used and triggering it will toggle if its enabled or disabled.
- Fixed a Linux server crash when map contained a PathNode route reference to itself.
- Made player water-jump only check with blocking actors, so you don't try to jump out of water by random triggers or projectiles in water.
Physics Engine:
- Fixed some PhysX memory errors.
- Fixed so PhysX objects respects Actor.CollisionGroup/CollisionFlags values.
- Fixed PhysX objects material friction and resitution to work.
- Changed PhysX emitter particles to not to collide with each other or other PhysX objects (prevents a contact overflow crash).
- Fixed PhysX objects not touching triggers.
- Corrected PlayersOnly to also pause PhysX simulation.
- Suppressed some useless PhysX geometry building warnings.
Editor:
- Added Actor.bBlockTextureTrace which can be used to tell if the actor should block footstep traces to detect footstep sounds.
- Corrected default FireTexture palette from having no alpha blending value set.
- Fixed editor to not crash if a BSP polygon had invalid polylink.
- Optimized StaticMesh OBJ importer to work a little faster.
- Optimized Brush -> StaticMesh converter to delete any polygons that get merged by vertex merging.
- Added support for importing 2-bit or 4-bit PCX textures.
- Fixed a BSP rebuilder error when BSP surface texture U/V mapping was too far away off from surface origin, which ended up causing BSP holes.
- Made BSP rebuilder auto-tesselate BSP surfaces that aren't fully flat (instead of making BSP errors).
- Fixed BSP builder giving incorrect bounding box size for dynamic BSP in some cases (ending up making movers or blocking volumes being non-solid at some edges if too far off from actor origin).
- Added a right-click option to rebuild dynamic BSP model for an actor (if you for example vertex edit an mover) (Transform -> Rebuild dynamic BSP model).
- Improved Tools > Scale lights editor option.
- Improved Edit -> Search for actors menu.
- Added LiftExit variant LiftJumpDest which tells AI to lift-jump to an area.
- Fixed editor to load texture mipmaps before trying to export then (so that BatchExport textures don't crash editor).
- Made editor "Show paths" show exact path size values of routes with selected path nodes.
- Fixed Mover WorldTraceKey to cast shadow of the mover at correct position.
- Importing SkeletalMesh animation sequences can be set without defining StartFrame value for every animation, editor will remember offset of previous animation and continue from there.
- Fixed broken support for bPlayerOnly paths.
Gameplay:
- Corrected so that respawning inventory doesn't adjust away from wall sometimes.
- Fixed an ScriptWarning when Weapon InstantFire ends up killing player owner.
- Fixed some mismatching font characters on LargeFont and BigFont (? and + characters being inverted).
- Made Translucent and Modulated decorations not cast shadows.
- Added an option to run game with "classic balance" so gameplay behaves exactly like in pre-227 (pupaes can't attack upwards, projectiles spread works like before and new 227 difficulty levels work like in 227i version).
- Fixed Ultra shadow detail mode option not working on UMenu.
- Fixed BigBiogel not playing impact sound online.
- Set a default playerclass to UBrowser to use in-case user reset their config and try to join a server without visiting their playersetup.
- Made clients connecting to server to load into the level as a client-side spectator until it receives a playerpawn from server (before you would be stuck in CONNECTING in entry).
- Added more options to Decoration > Cannon to have more useful options for mappers to use.
- Fixed a bug where if you stood in a knee-high painzone and walked into a wall it would instantly kill you because it would constantly spam you entering the zone every frame.
- Fixed RTNP not ending intro maps correctly if they were translated to a different map title.
- Fixed SCUBA gear from remaining active after mapchange.
UnrealScript:
- Removed Access None error when accessing 'optional out' parms that hasn't been assigned to anything.
- Added a new alias for IsValid -> IsDefined (can be used with 'optional out' parameters).
- Implemented an Access None error fix from UTv469 which fixes a crash if Access None happens before an Iterator or inside a Switch condition.
- Made Object.Rand function limit number to 15-bits for Linux (so Titan boulders don't spin with an insane speed).
- Added function Object.RandIntRange which supports up to 30-bits of random numbers for Windows.
- Added functions Object.LerpVector, LerpRotation and SlerpRotation to lineraly interpolate a vector or rotation or then to spherical rotate a rotation.
- Added function PlayerPawn.CanNetworkObject to check if server or client can replicate an object reference (returns false if its not in current sandbox).
- Fixed Script compiler from crashing on specific compiler errors.
- Added unicode conversion options for StatLogFile from UTv469.
- Added a shortcut ClearZ function to Canvas.
- Added variable modifier 'repnotify' which will make client callback OnRepNotify event when received from server.
- Added variable modifier 'norepnotify' which tells client to not call PostNetReceive event if that value was changed.
- Made Actor.BecomeViewTarget to get called client-side too (called by C++ codes when client receives a new ViewTarget from server).
- Fixed a compiler error when you tried to use AllObject(Class'Class') iterator.
- Added new line extent size parameter to Actor.DrawDebugLine to draw an axis aligned box along line.
- Added function Actor.SuggestFallVelocity from UE2+ which estimates a jump/fall velocity for actor in order to land a point in level.
- Cleaned up MakeCommandlet out window.
- Added function GameInfo.ConsoleMessage which is triggered by server console 'SAY' command.
- Fixed an UnrealScript crash where if a function returns a struct that contains dynamic arrays or string components and the function caller doesn't assign the value to anything (this will produce a new OpCode unique to 227j, so any mods compiled with such conditions wont be usable on pre-227j).
- Added a compiler error if you try to compile a class with 2 replication blocks.
- Added function modifiers 'reliable'/'unreliable' 'server'/'client' to have compiler add those functions directly to replication blocks, can even be used to override a replication polarity in a child class ('client' modifier also makes function simulated).
- Added another function modifier 'nonetwork' to disable a replicated function from being replicated in a child class.
- Added Object PlayerInteraction class which can be assigned to a player to override player input/movement/render.
- Made compiler throw a compiler error if you try to use a dynamic array function on a static array.
- Made Canvas.PushCanvasScale/PopCanvasScale also effect Console.FrameX/Y size.
- Added function GameInfo.SanitizeString to make input playername and chat safe for logs and HUD.
- Fixed Canvas.DrawText bugging out with NewLine characters.
Render:
- Made OpenGL and D3D9 reset texture cache for an texture if their format or resolution changes but their CacheID remains the same (instead of corrupting the texture).
- Fixed meshes disappearing on mirror reflections on a lot of cases.
- Added a seperate MeshDetailTextures option for render drivers to disable/enable detail textures on meshes.
- Made Emitter particles reset their lighting information whenever particles respawn (so mesh emitter particles don't fade lighting from previous position particle).
- Corrected blob shadow scale for RocketCans and RazorBlades ammo.
- Fixed so that invisible static meshes don't block lighting in-game.
- Added a CPU usage limit to skybox fogging.
- Corrected Krall mesh mouth clamps not being masked.
- Changed when player teleports to a new area it wont fade-in lighting to new area, but instead instantly swaps it.
- Added render option to how aggressively it should reduce BSP lightmap framerate detail ("Lightmap LOD" in UMenu).
- Added actor shadow occlusion distance ("Shadow draw distance" in UMenu).
- Fixed weapon muzzle flashes to be drawn during translucent render pass instead of same time as owner player itself, prevents muzzle flash from being drawn behind terrain meshes.
- Fixed decals to not to render on rotating mover surfaces to prevent them from glitching out.
- Implemented some HD game fonts by Krull.
- Fixed a bug where HUD scaling would stop working on HUD messages while UWindow was open.
- Fixed where Unreal custom cursor would stop working while RawHIDInput was enabled.
XOpenGL:
- Tweaked zNear (first person weapon projected onto screen) and ScreenFlash to match up with other render drivers.
User avatar
Neon_Knight
OldUnreal Member
Posts: 378
Joined: Tue Aug 25, 2009 9:02 pm

Re: New commands and functions in 227

Post by Neon_Knight »

Localization project coordinator/spanish maintainer

Only the people that do nothing but criticize don't make mistakes. Do things. Make mistakes. Learn from them. And screw those who do nothing but throw poison and criticize.
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Editor:
- Fixed BSP builder:
* Sometimes semi-solid brushes gets cut off from visibility bounds (disappearing at specific view angles).
* BSP holes caused by some math imprecision.
* Added Brush.bStrictMerging actor flag which tells builder to strictly merge it with other geometry in case where there are many surfaces parallel to each other.
* Added some BSP debug mode options under Build Menu -> Stats to help track down source of some BSP errors.
- Fixed an editor crash when trying to load old format 2D files for 2D shape editor.
- Implemented OBJ Brush exporter/importer.
- Fixed an editor bug where newly imported brush didn't update its bounding box (thus making red builder brush disappear from view at wrong offset).
- Made brush importer less strict with excluding tiny polygons.
- Fixed editor to support importing OBJ files without U/V mapping information.
- Change brush intersection/deintersection tool to operate with selected brushes only if you have other brushes (other then red builder brush) selected.
UnrealScript:
- Fixed a bug with ScriptHook where it wouldn't overwrite result value correctly.
User avatar
.:..:
OldUnreal Member
Posts: 1634
Joined: Tue Aug 16, 2005 4:35 am

Re: New commands and functions in 227

Post by .:..: »

Almost final version now:
Gameplay:
- Added a secret mirror mode gamemode.
- Added support for face skin selection in classic player select menu.
- Added Mutator selection menu for classic menu.
- Added support to attach trail emitter trails to regular particles on any emitters.
- Fixed game window not always starting focused.
- Fixed game window moving mouse cursor to center of screen even if it wasn't in focus.
Engine:
- Added support for multiple language paths.
- Made newly spawned players touch any overlapping triggers (only if spawning in air).
- Added to LevelInfo flags to disable level specific rigidbody physics (bDisableRbPhysics/bDisableSubLevelRbPhys - if you know you wont need it).
- Fixed so players never spawn as DemoRecSpectator when you load game from a save in which you've demo recorded on.
- Fixed a crash that could happen if you tried to resolve a really long URL (InternetLink.Resolve).
- Made so game/editor doesn't crash on boot if splash screen texture is missing.
- Fixed 'First time startup wizard' menu to have functional back button again.
Render:
- Made zero drawscale actors not drawn at all.
- Software render: Fixed an overflow crash when drawing too huge tiles on too large screen resolution.
- Made light effects LE_NonIncidence and LE_Cylinder behave more the same as on Meshes as with BSP.
- Made mesh lighting less flickery on bad framerate.
- Optimized Dynamic BSP (movers) and made it less flickery.
- Added new HD icons and fonts by Krull0r and Sly.
- Added a toggle option to enable/disable HD textures (for HUD and some mesh textures, found in WinDrv.WindowsClient as UseHDTextures=True).
Editor:
- Made BSP rebuilder triangulate concave BSP surfaces using same algorithm as 2D shape builder.
- Made DumpIntCommandlet merge changes with all languages.
- Made Selection preview also draw on ortho viewports (for example Dispatcher event or jump pad trajectory lines).
- Made BatchMeshExportCommandlet only load mesh objects from packages (so its more likely to work on outdated Unreal packages).
- Added a right-click menu option to preview interpolation path in editor.
- Fixed editor to cleanup post-light building junk data from BSP (reduce map filesize).
- Made editor better at packing light data into BSP (reduce map filesize).
- Added a progress bar for BSP zoning build step.
- Fixed 8bit paletted texture export as BMP.
- Fixed UnrealScript class exporter to include sub-objects in their defaultproperties.
- Improved editor performance when dragging actors while moving viewport with it (Ctrl+Shift+Drag).
UnrealScript:
- Added a new parm to Localize function for optional default string if localization failed.
- Added new functions to export/import object properties: function string ExportFullProperties( optional bool bDelta /*=true*/ ) and function ImportFullProperties( string S )
- Fixed Canvas.DrawClippedActor to take HUD scaling into account.
- Added new optional render FOV parms to Canvas.DrawActor/DrawClippedActor.
- Fixed a compiler crash if you had in code #exec obj load file=xxx package=yyy where file wasn't found or failed to load.
- Fixed a script warning if PHeart actor had a swapped mesh.
WinDrv fixes from UT469:
- Fixed editor to remember better what viewports had what render devices selected.
- Implemented shoulder button support (aka Button4 and Button5) for Win32 mouse input.
- Updated DirectInput from version 3 to 8. The former is utterly broken on Win10/11. The latter sort of works.
- Fixed various DirectDraw issues on Win10/11.
- Added InhibitWindowsHotkeys option to UWindowsClient. If set to its default value of FALSE, the game no longer blocks the Alt+Esc, Alt+Tab, Ctrl+Esc, and Ctrl+Tab hotkeys. Setting the option to TRUE restores the original UE1 behavior.
- Removed SlowVideoBuffering from UWindowsClient because this option no longer works on Win7+
- Made the DirectInput mouse handling code read the full DIMOUSESTATE2
- Made DXGI renderers (i.e., D3D10Drv and D3D11Drv) no longer mess up your WindowedViewportX and WindowedViewportY settings while ALT+Entering
- Disabled EnhancedPointerPrecision by default, except in Unreal Editor
- Fixed several bugs that broke mouse input in Unreal Editor if you had raw input enabled in-game
- Fixed a bug that could cause GetClipboardText to read invalid data from the clipboard
- Made UWindowsViewport::ShutdownAfterError send a WM_FORCEMINIMIZE to the viewport window. This fixes a bug where the viewport remains visible if the game crashes with raw input active
- Made lighting rebuilds use a minimal null renderer (WinDrv.TemporaryRenderDevice). This should speed up lighting rebuilds
- Fixed several bugs that caused raw input not to capture the mouse correctly when switching between windowed and fullscreen mode
- Fixed several bugs that could cause the windows mouse cursor to remain visible after switching between windowed and fullscreen mode
- Fixed a bug that made TryRenderDevice crash the game when you tried to switch to a renderer that is already active
- Added a comment on "exclusive fullscreen viewports"
- Made SoftDrv correctly reinitialize the DibSection after changing the viewport resolution
Post Reply

Return to “Unreal 227”