#Alpine Faction

1 messages ยท Page 5 of 1

brave crown
#

You shouldn't need to redo configs

desert crown
#

weird

#

oh

#

oh

#

OH

#

i know what it was

#

i copied the properties

#

so it copied the file dest

#

my bad

desert crown
#

Trying to make the skybox set but all that happened is the skybox vanished ๐Ÿ˜ฉ

#

wiki says set to none so i did

#

@brave crown

#

ive been tryin to follow the wiki but im just confused

viral light
brave crown
#

oh, I guess they just don't work on mobile lol

#

either that or I'm going crazy

desert crown
#

Cool

crude oyster
desert crown
#

...

#

i tried to read the wiki

#

is there a tutorial for it

#

all i have

crude oyster
brave crown
#

oh sorry i totally missed this

#

but yeah you do need to trigger it

#

you can use when_dead or trigger auto - either will work

#

(trigger auto might be more "correct"(?) but either will work lol )

crude oyster
# desert crown all i have

Also going to want to make sure that Anchor_Marker is in the exact center of the box or its going to break the illusion of an infinite sky because the sky will look distorted and you'll be able to tell it's just a box.

brave crown
#

You also don't need to have an anchor if you don't want to

#

It will use the stock behaviour if you don't (which puts it in the center)

crude oyster
#

Although if you only have one skybox and don't plan on using relative position, then there's no need to even use the set_skybox event. Just set the room effect to sky room, get rid of the events and be done with it. ๐Ÿ˜›

desert crown
#

omg that a lot of Also's and Althoughs

#

๐Ÿ˜ญ

crude oyster
desert crown
#

in my DM02 theres far more opportunities to see the sky so XD

crude oyster
desert crown
desert crown
#

@brave crown alright next is dynamic lights

#

added a cloud layer aswell just to help sell the illusion ๐Ÿ˜„

crude oyster
#

Added a few reminders for the stuff we were talking about earlier to the git hub, so they don't get forgotten. This song is now about Goober haha. https://www.youtube.com/watch?v=60XTSx29OnM

Provided to YouTube by Universal Music Group

99 Problems ยท JAY-Z

The Black Album

โ„— 2003 S. Carter Enterprises, LLC., Distributed by Roc Nation

Released on: 2003-01-01

Composer Lyricist, Studio Personnel, Producer, Mixer: Rick Rubin
Recording Engineer, Studio Personnel, Mixer: Andrew Scheps
Programmer: Jason Lader
Composer Lyricist: Shawn...

โ–ถ Play video
boreal ether
brave crown
#

actually wasn't anything I did at all :p but either way that's fixed now

boreal ether
#

not critical @brave crown but do you think the keyframe rotate axis line width could do with broadening slighty to be more visible

crude oyster
#

How come tribeam hit vclip looks so different in dx11 compared to dx9? ๐Ÿค” It like triples in size and gets extra spikey. ๐Ÿ˜›

brave crown
#

those spikes are actually supposed to be there in the dx9 one as well the game just doesn't render them because the resolution is so tiny :p

crude oyster
brave crown
#

making lines thicker isn't generally very easy, but also I think it would look very strange. Changing colours is RED's standard way to make things stand out in ortho views though

boreal ether
#

how do you uncapp fps from 240

brave crown
#

just change the maxfps in the menu or console

#

note though that you'll still be capped for 240 in multiplayer unless you're in a server that allows you to run uncapped

boreal ether
#

duuuudde!!

#

particle emitters are way not efficient from 170fpos with to 1000fps without. you need to look into if its possible to make them more efficient

brave crown
#

particle emitters have always been extremely inefficient ๐Ÿ˜› It's something I do want to look into in the future - to see if optimizations are practical - but they're always going to perform far worse than static geometry for example

#

just to note though, you can use active distance, and things like "die on impact" to help improve performance when using them

boreal ether
#

so i test in single player and im getting 700fps but then i test in multi and im only getting 170 fps. whats going on here?

brave crown
#

It's a good question, but it's one I can't answer with only the information you've provided - there are just too many variables. I'd definitely be curious to see the results of your troubleshooting though - maybe there are optimizations that can be made in Alpine to help that

boreal ether
#

ah ! particle emitter active distance is ignored in multi

#

there's one for the next alpine update

#

wonder if it could break some older maps though, from a visual sense

brave crown
#

Huh? ๐Ÿ˜ฎ active distance didn't work in the base game at all, it's an alpine only thing. I thought it worked in both sp and mp though?

boreal ether
#

clearly not multi

brave crown
#

hmm @crude oyster have you experienced (asking you because I think you're the only one to have used active distance in a released map so far :p )

crude oyster
brave crown
#

ohhh right yeah I remember that now

#

Yeah, I did briefly but not very far. And then I forgot lol. Working for clients is far more important though, so that's the main thing

gaunt lotus
#

that might not be fixable either, it would be a good idea to do performance testing/final pass on a dedicated server (even running locally) always. the listen server probably needs (right now at least) to "render" those particles always, even if the other connected clients don't. when you are running the client in listen server/create mp mode - it is the server as well.

unclear as to whether dedicated servers render those particles as well, but i'd guess they probably do to be able to tell the clients what state they're in

brave crown
#

The only exception I can think of is how I made the "Force Orient" option on movers not crash your client when you load the map like it always used to

#

and I think that's just unquestionably an improvement :p

brave crown
gaunt lotus
#

that makes sense

#

If they don't then maybe the listen server wouldn't need to either

brave crown
#

in theory the listen server doesnt need to render particles except flamethrowers and what it would otherwise render as a client

#

honestly it's a bit surprising to me that active distance works in SP but not as a listen server - unless there's an "is multi" check, those normally behave the same

#

I'd need to look deeper into it

crude oyster
#

One more DX11 bug, however Romek set up his skybox in Snow Globe doesn't show up in DX11. Didn't even know the map had a sky til I just saw it now in the screen shot and then tried DX9 and it's there in that mode. ๐Ÿ˜›

brave crown
#

I did notice that - I'm not sure if I'd define it as a bug though :\ It is visible, it's just that the glass is very very opaque so you can barely see through it

#

the difference in opacity is annoying but I'm not sure if it's an issue with DX11 or DX9 ๐Ÿ˜›

gaunt lotus
#

is it only skyboxes?

#

i dunno if we've checked all glass kinda things

#

i never saw any messed up windows tho

brave crown
#

the skybox is rendering properly in that map (if you free look outside the map)

#

its the glass surrounding it, the very dark opaque black glass

crude oyster
brave crown
#

i thought it was fully opaque too, but if you zoom the camera up very close to it you can faintly make out the outline of a box :p

#

I think it has something to do with the layering, because there are 2 separate glass layers on the exterior of the globe

#

2 different textures

crude oyster
#

ooooohh I know the issue!!! Its the lightmaps. In DX9 the sky is rendered as full bright, in DX11 the faces were't set to full bright so it is rendering as full dark.

brave crown
#

Oh! That would make sense

crude oyster
#

So full dark + dark glass = no see, full bright+ dark glass = somewhat see

crude oyster
#

I'll let romek know in case he want's to do an update.

brave crown
#

Good news - fixed the crash in dm-oranmentsb2.rfl ๐Ÿฅณ

Had nothing to do with the map specifically and technically could happen elsewhere, though I've never seen it elsewhere. It's an issue with how the game calculates shooting through alpha-masked textures, which that map has a ton of (for the tree branches)

https://github.com/GooberRF/alpinefaction/commit/3b4268152c35bb3a19fbceb2f9a8a50e829d4598

The bad news is that this is strictly a clientside fix, so there's nothing that can be done to prevent it until the next Alpine client version is released. Either way, the map will work without issue ๐Ÿ™‚

brave crown
#

fixed fullbright third person weapon models, and fixed skybox rotation earlier today. That clues up all the features I'm aware of that the D3D11 renderer was lacking ๐Ÿฅณ

There definitely could still be bugs to troubleshoot of course, but at least that's all the functionality that needs to be replicated, I believe

brave crown
#

you can now split the scoreboard out so different categories of players are grouped together

#

default behaviour splits browsers and spectators out from active players

desert crown
#

how does this affect the team modes Eyes

brave crown
#

here's the commands to control it

brave crown
desert crown
#

ah

brave crown
#

this is not a "spectator team" - that will come later

#

this is just grouping of different types of players on the scoreboard

desert crown
#

yeye ๐Ÿ˜›

desert crown
#

gotcha

brave crown
#

and ui_sb_simplesplit controls whether each broken out category is split independently, or whether everything that is broken out is all lumped into the one split

#

(this screenshot shows ui_sb_bots = true, ui_sb_spectators = true, and ui_sb_simplesplit = false)

desert crown
desert crown
#

@brave crown something tanker brought up that idk if you're able to affect

#

Bomb key inputs are hard coded to the arrow keys (I think?)

#

would it be possible for future alpine to rebind those?

brave crown
# desert crown would it be possible for future alpine to rebind those?

I wouldn't want to have 4 new binds just for that - extremely limited use, and there's a hard limit on the number of binds that can exist (127 if my memory is correct) so I don't want to waste entries on very low value stuff ๐Ÿ˜›

It would in theory be possible to allow you to alias them in alpine_settings.ini (just like skip cutscene already is), but the better route perhaps is to just alias the player's forward/back/side keys to the bomb up/down/left/right

#

so you could use WASD

desert crown
#

yeah fair enough

#

if thats a thing for future that'd be cool ๐Ÿ™‚

boreal ether
#

@brave crown i see you fixed the driller bits so you cant see inside them

#

when will anti aliasing be implemented for DX11 ?

brave crown
#

anti-aliasing already works on DX11 (depending on GPU support). The strange thing is, the dropdown in the menu is populated based on what the GPU is saying it supports ๐Ÿ˜›

#

For me, the dropdown has no AA options available. But if I force it on in the registry, it works

boreal ether
#

hmm where do i find this registry?

#

do i force it through nvidia control panel ?

brave crown
#

that would probably also work

boreal ether
#

ill give it a go

brave crown
#

HKEY_CURRENT_USER\SOFTWARE\Volition\Red Faction\Alpine Faction\MSAA is the key for reference

Easies tthing to do would be to set the game to DX9 and turn on MSAA, see what that reg key changes to, then change the game to DX11 and hit OK, then go in and change the reg key to whatever that key was when you enabled MSAA in DX9

boreal ether
#

nice that worked! thanks

#

hmm not sure if nuke town meant to be this dark? think @desert crown brought it up some time ago.

brave crown
#

that map was made when the lightmap clamping floor was hardcoded, it may need a compatibility tbl

#

whats the rfl filename

boreal ether
#

Dm-NukeTown2050.rfl

green cobalt
#

will it be possible to have character model separate from the environment/background when applying picmip?

gaunt lotus
#

yea that's something that might need to change for it to be a more usable setting

brave crown
#

I think the most practical split would be:

  1. World geometry
  2. Static meses
  3. Skeletal meshes
  4. Effects
#

The only weirdness might come up in instances where a single material is used throughout multiple of those 4 categories. But I don't see that as being common

glacial storm
brave crown
#

#1376930844597551146 message

This is the issue with that - the GPU is reporting that it doesn't support it, but it actually does

I can try to see if there's a different way to poll the GPU for this info - that'd probably be the only realistic way. Other than just letting players pick it even if their GPU doesn't support it, but that would likely result in the game failing to load, so avoiding giving those sorts of options in the options panel is a good idea

glacial storm
#

It's really weird though. Like, you have a GTX 1080 right?

brave crown
#

I do

glacial storm
#

Obviously it supports AA on DX11, no questions

#

Even my laptop integrated GPU supports AA in DX11

brave crown
#

of course - that's my point, it is reporting that it doesn't even though it obviously does

glacial storm
#

I don't have Nvidia and they also report that they don't support AA

gaunt lotus
#

the less fucky way to do this is to use an app profile in your graphics driver to force enable it

#

but yeah i would assume it's not getting the info from the gpu correctly here or there's another way to retrieve that info

gaunt lotus
#

yeah thats goober for yes

split sleet
#

lawl

glacial storm
# split sleet

The background is accurate depiction of how the game looks like when using picmip setting.

boreal ether
#

what is command to chnage fov

#

cl_fov?

gaunt lotus
#

r_fov

boreal ether
#

what does r stand for

gaunt lotus
#

rendering

boreal ether
#

k

brave crown
#

also just to mention - if there's ever any command you can't remember or are curious about, you can use the . command to search the command list

. fov

For example, will search for any commands with fov in the command text or description message ๐Ÿ™‚

#

example

brave crown
split sleet
#

HUGE

#

CHANGING RETICLE MIDROUND

#

LESSGO

green cobalt
#

OH SHIT

#

the reticle itself, or the color of the reticle?

brave crown
#

The colour

brave crown
#

Alpine Faction will be getting a minor release soon: v1.2.1

This update will not contain as many new goodies as the major updates have to date, but it will fix some annoying bugs and add several useful features people have been asking for.

Here's a list of highlights for v1.2.1
Features:

  • Improve FPS and ping display
  • Allow configuring scale values for damage notifications, player labels, and location ping text
  • Split out list for spectators/browsers vs. normal players on the scoreboard (configurable)
  • Reticles can now be recoloured using the console
  • Persist free look spectator mode between levels
  • Larger RED UV unwrap window

DirectX 11 fixes/improvements:

  • Multiple instances of the same static mesh no longer all share lighting data
  • Dynamic lights are no longer limited to 8
  • Skybox rotation is now supported
  • Held third person weapon models are now properly lit by ambient light
  • Rocket Launcher/Fusion IR scanners are no longer semi-transparent
  • Vehicles now render properly in Rocket Launcher/Fusion IR scanners
  • Anti-aliasing can now be selected in the launcher

Fixes:

  • No more character derendering/dynamic light issues when Legacy movers is false
  • Fixed crash in dm-oranmentsb2.rfl (the one we experienced at Game Night)
  • Fixed client disconnect when viewing extremely long remote server configs

New commands:

  • ui_fpsavg
  • ui_scale_damage_notify
  • ui_scale_player_label
  • ui_scale_ping_label
  • cl_wh_flagoverdraw
  • cl_wh_cpoverdraw
  • ui_scoreboard_split_spectators
  • ui_scoreboard_split_bots
  • ui_scoreboard_split_browsers
  • ui_scoreboard_split_idle
  • ui_scoreboard_simplesplit
  • ui_color_reticle
  • ui_color_reticle_locked
  • ui_colorize_custom_reticles
  • ui_scale_reticle
silk tinsel
#

what caused ornaments to crash?

brave crown
#

technically nothing specifically related to the map, it's just most prevalent in the map because you're shooting alpha masked surfaces very often in the map (the branches)

This is the fix if you're curious: https://github.com/GooberRF/alpinefaction/commit/3b4268152c35bb3a19fbceb2f9a8a50e829d4598

Long story short - the code that detects whether a bullet should be able to pass through an alpha-masked surface or not would sometimes crash

silk tinsel
#

how did you figure that out,

brave crown
#

it was an annoying one to trace for sure

#

Intharth sent me a crash log which showed where in the code it crashed, then I had to figure out why and fix it

silk tinsel
#

so the engine couldn't decide if those branches are passive or not cause of the semi transparent textures when firing multiple bullets on them huh

brave crown
#

not quite

#

Essentially it was... after a bullet hits a surface, the engine needs to map that location on the surface to where it is on the texture file (since it's tiled on the surface), then the alpha value at that position on the texture file dictates whether the bullet should pass through

When it was mapping to the position on the texture file, it necessarily has to round to the nearest pixel, but when it did that, if the bullet was more than 50% through the last pixel on the texture, that round put it to 1 pixel past the end of the texture, which is unrelated memory (so, if the texture was 256px wide, the round could have put the bullet location at pixel 257, which is invalid)

Usually that just caused an unpredictable result on whether the bullet should pass through it or not (still a bug, but not the biggest problem in the world). But if that memory was invalid and an attempt was made to read it, the process crashes

#

My guess is that this issue is probably the cause of some of the random crashes we've all encountered over the years lol. And the fact that it only crashes a subset of the time is probably why it wasn't identified previously. It's usually a pretty invisible bug

silk tinsel
#

you think many other old maps have this bug?

brave crown
#

it's not a bug in any specific map, it's a bug in how the game handles alpha-masked textures. So, technically any map that has at least 1 alpha-masked texture that can be shot at with a bullet weapon could experience it

#

it's just obviously far more likely in maps (like Ornaments) that have a lot of those textures

boreal ether
#

oh gooober, was playing a couple nights ago on rat style maps. I found it very hard to locate players that were shooting at me because the dynamic gun flash is alot dimmer on DX11 . Its game changing. could that be something you can look into before this upcoming release ?

brave crown
#

the problem with that is - as many people have already noted, dynamic lights look better on DX11 already. To make gun flashes more visible would involve making them look worse or overriding tbl values

Perhaps a hacky way to kind of give that would be to expose an intensity multiplier in the console that would be applied to weapon muzzle flashes

boreal ether
#

ok. But it isnt a cosmetic problem it really does effect original game play when playing on big maps. Frankly i was getting kinda annoyed with it. It does need addressing

desert crown
#

did u intend to leave ping on in run servers

brave crown
desert crown
#

ok just checking

desert crown
#

uh

#

@brave crown

#

i just typed debug trigger and crashed

brave crown
#

Those debug commands aren't functional in dx11 (other than light map). I should actually disable them though rather than crash

desert crown
#

oh.

#

can we fix that ๐Ÿ˜„

boreal ether
#

you doing that in multi or single ?

desert crown
#

sp

boreal ether
#

kk

#

wish triggers/ jump reg etc would show up in multi. really good for run maps

brave crown
# desert crown can we fix that ๐Ÿ˜„

Everyone of those debug features would need them be specifically written again:p not that it's impossible but it's not a priority when they are strictly debug features and are accessible in dx9 already

desert crown
#

๐Ÿ˜ฉ

brave crown
#

If someone else wants to write that I am definitely willing to accept a PR of course. Otherwise I'm sure I'll get to it some day but it won't be now

brave crown
#

so that said, I don't have any desire to replicate the awful look. I do agree though that stock DX11 lights are very dim though, which could be improved

#

This is AF 1.2.1 (DX11) with the changes I've made. What do you think? This seems like it strikes a good middle ground I think between looking nice and being visible

boreal ether
boreal ether
#

oh @brave crown one last thing. prevent Full bright textures from going "geo dark" when geo is created

brave crown
#

thats not a simple thing by any means

that happens because they have no light maps - the solution is to apply a default lightmap which isn't static but just an ambient light level, but that's by no means a simple task :p

boreal ether
#

ok

brave crown
#

lol, I never realized that "fullbright" in dx9 wasn't actually fullbright, but rather the level's ambient light level

gaunt lotus
#

is that the discrepancy in that snowglobe map?

brave crown
#

i don't think so - pretty sure that's skybox lighting. but will check, good call

brave crown
brave crown
#

just skipped the in-game lightmap generation for faces with the fullbright flag (guessing this is something Volition forgot to do)

boreal ether
#

Hooray!

glacial storm
brave crown
#

it is, but it is applied to the dynamic light bitmap rather than the geometry itself

#

which means you have a rocky detail map on all surfaces

glacial storm
#

Very bizarre

#

In UE, different surfaces can have different (appropriate) detail textures and I have a sweet spot for that feature ngl.

crude oyster
# brave crown lol, I never realized that "fullbright" in dx9 wasn't actually fullbright, but r...

It's the shadows that are the level amb light level, no? If i set my level to 40 40 40 and set a face to full bright, It's gonna be a lot brighter then 40. ๐Ÿค” Or is there another amb light level setting somewhere that affects full bright faces?

Now that you're digging into full bright, how hard would it be to add a full dark checkbox that tells the face to ignore all lights and just set brightness of the face to the amb light level, so it matches the shadows? ๐Ÿ˜› Would be super handy for stopping lights from leaking on to things that shouldn't be lit, since RED loves to ignore walls when calculating lighting. tongue

brave crown
#

If i set my level to 40 40 40 and set a face to full bright, It's gonna be a lot brighter then 40.
This is what I'm seeing in DX11 (which is correct), but not in DX9 (after calculating lights anyway)

Now that you're digging into full bright, how hard would it be to add a full dark checkbox that tells the face to ignore all lights and just set brightness of the face to the amb light level
As of now - very ๐Ÿ˜› Not out of the question down the road, I'd just need to extend the flags field, which is far more surgery than this change was

crude oyster
brave crown
#

pretty sure, I don't believe any lightmap application code has been changed for a very long time

boreal ether
crude oyster
# brave crown pretty sure, I don't believe any lightmap application code has been changed for ...

This appears to be some sort of RF bug I can't figure out. I used full bright extensively in Galileo 2 Starliner. All posters, screens, mirrors, fridge fronts, the glowey tube in engineering, elevator rooms, the light around the jukebox, some bathroom stall walls, and some other odd spots where lights weren't cooperating, are all full bright and are full bright in dx9 and dx11. That map was built in DF1.8, but even if I open that map in AF1.2 RED and rebuild and re calculate lights, the full bright spots are still full bright. Yet If I create a new empty map that's just a box and a light, and set 1 wall to full bright, it appears full dark instead of full bright in dx9. Makes no sense. ๐Ÿ˜

brave crown
#

i wonder if it's different for detail and/or mover brushes vs normal geometry

crude oyster
brave crown
#

do you see the same if you group it out?

crude oyster
brave crown
#

group out some of your geometry from that map into a new rfl

crude oyster
crude oyster
# brave crown group out some of your geometry from that map into a new rfl

I think I might have figured it out part of the puzzle at least. It seems that the setting on most of the faces on a brush that share a texture determine if it will full bright or full dark. So if you just want one of the faces to be full bright, that face has to be a different texture then what's on the rest of the brush.

Just grouped one of the Galileo elevator shafts which are 12 side cylinders with the top and bottom not full bright but all the sides are full bright. The sides share a texture and top and bottom are different textures. Imported it to a new map and full bright was still working as expected. But then created the same brush with the same settings but didn't apply a texture and now the top and bottom were full bright too even though they weren't set to be. So applied a texture to top and bottom and now they wern't full bright. Then made the full thing not full bright and set one face to full bright and it was full dark instead. Applied a diff texture to that one face and now it was full bright as expected. Set everything back to default texture and set faces full bright 1 by 1. The whole cylinder tuned to full bright instead of full dark when either the 12 sides were full bright but not top and bottom, or 11 sides were full bright + top and bottom.

brave crown
#

O.o

#

that is very, very, VERY strange lol

#

This inconsistently only exists in DX9, right?

#

I haven't seen it in DX11 at all

crude oyster
crude oyster
# brave crown that is very, very, VERY strange lol

Now the only place in Galileo that either all the faces aren't full bright or the full bright face isn't a different texture, is some of the toilet/shower stalls. Some of those are detail with carves while others are just solid with a couple air brushes. So perhaps the bug doesn't apply to more complex geometry? Can confirm full bright always works as expected on keyframe alone, but just being solid or detail doesn't seem to be enough to make it work right.

crude oyster
#

This bug just keeps getting weirder and weirder. Seems other brushes in the same room with the same texture also affect if full bright will work or not. Just created an empty air box. Textured the walls with the first wall cement texture on the list, then created a smaller solid box hovering in the center of the room and just left it as default texture. Set one face on the hovering box to full bright and it didn't full bright. Set that one face to the same cement texture as the walls in the room and still no full bright. Then set that one face to the next wall cement texture in the list and now full bright works on it. Then set the rest of the walls in the room to the same texture and full bright stopped working again..

#

Anyways I'm tired of trying to figure out RED's logic for this issue. ๐Ÿ˜ตโ€๐Ÿ’ซ I just have to remember going forward to check that my full bright faces are working properly in DX9 and if any aren't, either try portalling the brush into a new room, make the brush a keyframe, or give the face a duplicate texture with a new name. ๐Ÿ˜›

brave crown
brave crown
# crude oyster Anyways I'm tired of trying to figure out RED's logic for this issue. ๐Ÿ˜ตโ€๐Ÿ’ซ I j...

Yeah it is certainly annoying :\ It's also a tough one to even consider doing anything about, because it's been broken that way for so long, any change would end up impacting maps unpredictably. Unless it were tied to a legacy switch in level properties, but even then it'd only apply to the old renderer... which is pretty crap for a level properties advanced setting.

And I really don't have any interest in intentionally implementing a bug in dx11 ๐Ÿ˜›

Down the road I could see adding a way to control whether a surface is fullbright or flat ambient light coloured, which is the right way to do what this bug provides an inconsistent/wrong way to do. That's not a small undertaking though, and won't be right this second

brave crown
#

There have been a lot of changes since the last time I announced this, so... ๐Ÿ˜›

Alpine Faction will be getting a minor release soon: v1.2.1

This update will not contain as many new goodies as the major updates have to date, but it will fix some annoying bugs and add several useful features people have been asking for.

Here's a list of highlights for v1.2.1
Features:

  • Improve FPS and ping display
  • Allow configuring scale values for damage notifications, player labels, and location ping text
  • Split out list for spectators/browsers vs. normal players on the scoreboard (configurable)
  • Reticles can now be recoloured using the console
  • Persist free look spectator mode between levels
  • Larger RED UV unwrap window
  • Gibbing from explosive damage is now supported in multiplayer

DirectX 11 fixes/improvements:

  • Multiple instances of the same static mesh no longer all share lighting data
  • Dynamic lights are no longer limited to 8
  • Skybox rotation is now supported
  • Held third person weapon models are now properly lit by ambient light
  • Rocket Launcher/Fusion IR scanners are no longer semi-transparent
  • Vehicles now render properly in Rocket Launcher/Fusion IR scanners
  • Anti-aliasing can now be selected in the launcher
  • Fix dynamic lights being way too dim

Fixes:

  • No more character derendering/dynamic light issues when Legacy movers is false
  • Fixed crash in dm-oranmentsb2.rfl (the one we experienced at Game Night)
  • Fixed client disconnect when viewing extremely long remote server configs
  • Fix extremely loud hitsounds (ie. from shotgun blasts)
  • Fix "Full Bright" faces going dark when geo happens
  • Fix players having to wait 1 second to queue spawns
  • Fix "Blue P" browsers not being properly detected as browsers (and therefore being denied entry to KOTH servers, for example)

New commands:

  • ui_fpsavg
  • ui_scale_damage_notify
  • ui_scale_player_label
  • ui_scale_ping_label
  • cl_wh_flagoverdraw
  • cl_wh_cpoverdraw
  • ui_scoreboard_split_spectators
  • ui_scoreboard_split_bots
  • ui_scoreboard_split_browsers
  • ui_scoreboard_split_idle
  • ui_scoreboard_simplesplit
  • ui_color_reticle
  • ui_color_reticle_locked
  • ui_colorize_custom_reticles
  • ui_scale_reticle
  • cl_hitsounds_min_interval
  • cl_gibchunks
  • cl_gibvelocityscale
  • cl_giblifetimems
desert crown
#

Oh yeah we're turning this on

brave crown
#

@crude oyster

- Add Ctrl + Khotkey in level editor to create links in the opposite direction from the standardK hotkey

brave crown
crude oyster
brave crown
#

Ok now I'm actually done for v1.2.1 lol

added these commands

  • cl_gibchunks
  • cl_gibvelocityscale
  • cl_giblifetimems

And added a configurable gibbing section for dedicated server hosts with these options available:

  • Enable/disable gibbing entirely
  • Set damage threshold for when a player should gib
  • Enable/disable whether gibbing happens for all damage types or just explosives (which is the default)
silk tinsel
viral light
#

technochunk

brave crown
#

I had nothing to do with any of this

viral light
#

Ooh!

brave crown
#

C'mon!

desert crown
#

Game Nights about to look explosive kekekw

brave crown
fast crescent
fast crescent
brave crown
brave crown
gaunt lotus
#

that looks pretty good

#

can't wait to turn it off

#

:>

desert crown
#

can't wait to put it in the videos salute

boreal ether
#

the rocket and c4 could be more of a flash than a fade

brave crown
#

yeah im still messing with the values

#

it probably should be a little shorter

#

technically they're all fades because it looks nicer that way

#

but it can be a very short fade

boreal ether
#

a fast fade then ๐Ÿ˜›

brave crown
#
    ExplosionFlashVclipSpec{"charge_explode", 8.0f, 1.5f, 0.95f, 0.72f, 0.16f, 1000},
    ExplosionFlashVclipSpec{"shoulder_cannon_explode", 25.0f, 1.5f, 0.95f, 0.72f, 0.16f, 1600},
    ExplosionFlashVclipSpec{"rocket_impact", 8.0f, 1.5f, 0.95f, 0.72f, 0.16f, 1000},
    ExplosionFlashVclipSpec{"flame_can_explode", 12.0f, 1.5f, 0.95f, 0.8f, 0.09f, 3650},

these are the values shown in that video, values in this order:
vclip name, radius, intensity, red, green, blue, duration_ms

#

grenade and rocket both use rocket_impact

#

considering applying this to clutter destruction vclips too, might be nice to see a little extremely short dynamic light flash when you kill a light idk

gaunt lotus
#

that should only happen when u baton them

#

i dont think lights really flash when u shoot them

#

they just stop being lights

desert crown
#

tbf the mini explosion vclip that plays when you destroy a light seems to be suffice

brave crown
gaunt lotus
#

ehhh

#

maybe yeah

#

oaky well then you need to implement light_type

#

LEDs should just go out

#

maybe other types can ignite

#

:>

#

of course

desert crown
#

so you're saying set it on fire instead

#

is what i got from that

brave crown
#

shoot a light and a guard runs screaming on fire

gaunt lotus
#

accidentally turning rf into an imsim

brave crown
#

this future is lame

gaunt lotus
#

to be fair most LEDs still look pretty shit

desert crown
#

well finish the HD object project and we could have

brave crown
gaunt lotus
#

yeah that looks good

glacial storm
#

Good work. Though I notice that the first person model of C4 is fully lit, which shouldn't be the case.

split sleet
#

the audacity to just showcase it here

brave crown
#

Curious - would anyone be interested in a regular Alpine beta "release"?

What I mean is - I'd provide a beta build somewhat regularly (probably in this thread), which would give anyone who wants to, the ability to immediately try out the cool stuff that is currently under development, with the understanding that there may very well be as-of-yet undiscovered bugs.

The benefit for Alpine as a project is that more eyes would be on everything, meaning that any bugs that do exist are far more likely to be found so I can fix them before the public release

desert crown
#

+1

split sleet
#

being part of the secret beta testing clique is way more appealing

desert crown
#

i mean if u play KappaKan

split sleet
#

come play rn ya punk

desert crown
#

sorry speedrunning diff game xoxo

brave crown
#

Alpine beta build - Jan 01, 2026

IMPORTANT: Feel free to use this beta version to test the latest in-development Alpine Faction features. DO NOT replace your stable Alpine Faction installation with this beta.

As always, this is a beta build and may have bugs. PLEASE let me know if you find any bugs or other issues so I can deal with them.

Mappers: Please DO NOT release any maps made with this beta. The map format and/or editor may go through changes before the next stable release. Additionally, please be warned that the possibility does exist that maps saved with the editor in this beta may become corrupt - keep regular backups made using the stable AF v1.2.1 or AF v1.2.0 editor.

Notable changes in this build:

  • Dynamic flashes from explosions. Turn on with cl_explosionflashweapons and cl_explosionflashenv

Changelog: https://github.com/GooberRF/alpinefaction/blob/92267c12e8e9946dddb7749a10331ce6b6da3be4/docs/CHANGELOG.md

GitHub

Community patch for Red Faction (2001) with modern features and many bug fixes - GooberRF/alpinefaction

boreal ether
#

on DX9 the light is kinda green

gaunt lotus
#

stinky

boreal ether
#

unless you make explosive lights exclusive to DX11 only

brave crown
#

I actually meant to do that (for performance, and because the dx9 lights look so much worse), it's surprising for the colour to be different though o.o

boreal ether
#

can you detect how many people are using DX11, do you have any percentages ?

brave crown
#

No I don't have stats on that

crude oyster
gaunt lotus
#

ideally within a few versions dx11 becomes the default, with dx9/dx8 as fallbacks

#

dx9, as of right now (at least to my knowledge) is not even "true" dx9 - it's just the stock engine code (which was dx8 or maybe 8.1) running through the wrapper DLL - which brings some benefits in terms of compatibility and performance over running dx8 on its own now

#

at the point dx11 becomes the default, there's an argument that the d3d8to9 wrapper and the option for dx9 in the launcher should probably be removed (as the wrapper is forked/pulled from a separate project). the way it's implemented is potentially confusing and would need to be tested in perpetuity. it's reasonably safe to assume dx8 will continue to open/work without issue on windows (reasonably) but while it has not been a problem, i could imagine something weird happening with future proton updates - even though crosire's dll is kinda heavily in wide use across thousands of games, i'm not sure to what extent it is embedded in any official game distros/remasters/etc. usually it's better for the user to opt-in to using wrappers i'd think and the way this works right now isn't terribly clear

#

might not be the most founded concern though given how the wrapper works in general, it should be pretty transparent to the OS and any compat layer

glacial storm
#

I would be sad if DX9 is removed though, since I have performance issues with DX11

fallow valley
desert crown
brave crown
#

there is no plan as of now to remove access to a legacy renderer (DX8 and/or DX9) in the foreseeable future. What will continue to happen though is that optimizations and some net-new graphical features will only be supported in DX11 (already the case for some things, like colourblind modes). In theory, if the difference between renderers were to end up so relevant that it would impact fairness in MP, I could imagine a server-configurable setting to require clients use DX11 to play in that particular server, but even that is very far out (if it ever happens at all)

And just to be clear - this entire point is very forward-looking. DX11 isn't even "recommended" yet, though that is on the horizon

brave crown
#

thinking the flickering should be toned down, and the fade out lasts a tad too long, but thought this was neat :p

boreal ether
#

yo goober, though you was going to reinstate the RED 1.0 lighting settings regarding dynamic lights

brave crown
#

I looked into that - there are some settings that are easy to carry over, but it looks like Volition actually deleted some of them (the on/off times specifically) from the editor ๐Ÿ™ so it will be more extensive than just adding back the UI elements

brave crown
#

got sidetracked by a dx11 crash with @elfin moth 's map lol ( #workshop message )

the issue is that while both D3D8/9 and D3D11 loaded rooms into the same rendering cache (which has a hard unprotected limit of 256 at any given time), D3D8/9 load rooms as you explore, whereas D3D11 tried to do it all at initial level load (this is the way D3D11 was originally implemented in Dash). In very large and complex maps, that cache would overflow on initial level load and lead to unexpected behaviour (some kind of corruption or most often a crash).

I fixed the issue by shifting Alpine in D3D11 mode to a new rendering cache that doesn't have the hard unprotected limit of 256. Instead, there's now "no limit" (except by system resources of course). The map loads without issue now.

I also took the opportunity to implement a new cvar - r_precache_rooms

This cvar is available in the D3D11 renderer only, and controls whether the game pre-loads all rooms on level load (like D3D11 always has) or loads them as you encounter them while exploring (like the stock game on D3D8/9 does)

With r_precache_rooms on, initial level load times are longer, but there should be virtually no hitching during gameplay when you explore new areas. With r_precache_rooms off, initial level load times are shorter, but you'll experience hitching when you go to areas you haven't visited before. When I tested with ice's map, my load time with precaching on was 13.52 seconds and with precaching off, 8.72 seconds

brave crown
#

it's really damn cool to see the dynamic lights from the burning flailing entities illuminate other entities lol

gaunt lotus
#

ok yeah that's fire

#

since we have gibbing now, and hopefully corpse gibbing in mp eventually... maybe corpse burning too

#

actually, can you enable corpse pickup/dropping in mp?

#

i want to pick people up and re-arrange them

#

@low citrus agrees

low citrus
#

lol absolutely support this ^

brave crown
#

Should these dynamic light features default to on ๐Ÿค”

kinda thinking yes but not entirely sure. It is a deviation from the stock game behaviour, and it's not a cut stock feature (like gibbing), so I'm not sure. But I can't really see a world where the average player would desire this feature to be off. Hm.

gaunt lotus
#

well, i can see a world where they want it off

#

but maybe not one where they want this off and not the rest of dynamic lighting as well

#

but it's a decent guiding principle that it should always be possible to revert to as close to a stock experience as possible

#

that doesn't need to be the default, but yeah

brave crown
#

Tbh I think it's nearing the point where a little wizard thing on initial install to guide initial config could be a good idea

#

have 3 graphics presets

Minimal
Vanilla
Modern

ask for the player's name, etc.

gaunt lotus
#

no way, you have nowhere near that many variables here

brave crown
#

the most common preferences i guess

gaunt lotus
#

just stick with sane defaults and don't build out another wizard/config process to maintain

brave crown
gaunt lotus
#

if u end up implementing actually big gfx features like AO or something down the line then presets become more of a thing

brave crown
#

Alpine beta build - Jan 02, 2026

IMPORTANT: Feel free to use this beta version to test the latest in-development Alpine Faction features. DO NOT replace your stable Alpine Faction installation with this beta.

As always, this is a beta build and may have bugs. PLEASE let me know if you find any bugs or other issues so I can deal with them.

Mappers: Please DO NOT release any maps made with this beta. The map format and/or editor may go through changes before the next stable release. Additionally, please be warned that the possibility does exist that maps saved with the editor in this beta may become corrupt - keep regular backups made using the stable AF v1.2.1 or AF v1.2.0 editor.

Notable changes in this build:

  • Dynamic glow from burning entities (cl_burningentityglow)
  • Dynamic flashes from explosions and burning entities locked to d3d11 only
  • Fix for the room caching crash described above
  • r_precache_rooms command as described above

Changelog: https://github.com/GooberRF/alpinefaction/blob/ad157200592fa5d3cdcc219df72018b1b64509b9/docs/CHANGELOG.md

GitHub

Community patch for Red Faction (2001) with modern features and many bug fixes - GooberRF/alpinefaction

boreal ether
#

these rocks explode for some reason when shot at with explosives beginning of SP

#

has that always been a thing ?

brave crown
# boreal ether has that always been a thing ?

I think so - not at my PC right now but I'm 99.9% sure those clutter classes have a life value, so that would be expected. They might have a damage modifier for non explosive damage though, I'm pretty sure they can't be destroyed with bullets

desert crown
#

confirm can't even hit them with guns salute

crude oyster
boreal ether
#

Goober, not sure if you want to up the intensity of the head lamp and vehicle lights. Very dim on DX11 compared to the former. Are you planning to have these lights exclusive to DX11 too?

crude oyster
#

Still missing 1 new dynamic light, the primary fire on the flamethrower could use one. ๐Ÿ˜›

brave crown
brave crown
boreal ether
#

i can barely see them when on dx11

brave crown
# boreal ether i can barely see them when on dx11

i will experiment with this and find some dx11-specific values that make more sense. Will be for the next release after today though

There will be a 1.2.2 release later today. I wasn't planning to do another release so soon after 1.2.1 but 1.2.1 unfortunately has a bug where the game crashes when gibbing corpses in SP, which is something a lot of people will run into, so I want to deal with it sooner for everyone rather than waiting.

The added benefit is that the explosion/burning dynamic light feature will be available to everyone in this update as well, way sooner than it otherwise would have been ๐Ÿฅณ (and a handful of other minor bug fixes and features)

boreal ether
#

this out yet?

#

its the 4th here

brave crown
#

it is not out yet no, will be later today

brave crown
#

as mentioned

https://www.factionfiles.com/ff.php?action=file&id=8336

๐Ÿฅณ

Barring some unexpected but serious bug, this should be the stable release for at least a little while

boreal ether
#

congratulations goober

#

btw holy fuck i clicked join server on FF RFSB and it put me in a game in like less than 3 seconds. have you improved that ?

desert crown
#

i feel like its PC dependent

#

the first time i open RF on a given day it takes like idk

#

10s to open

#

after that its almost instant

#

was it the second time you opened RF?

boreal ether
#

yeh

desert crown
#

yeye

crude oyster
#

Noticed one more thing that doesn't seem to work on DX11. Lighting trick built in to maps. Seems that in DX11 it applies to clutter and items but doesn't apply to player models. Noticed in Kerpal's new map I had to go turn full bright on manually because players were too dark to see without it, even though the map already had full bright amb light set. Not a big deal because It can always be flicked on manually in the menu, just a minor inconvenience. ๐Ÿ˜›

crude oyster
#

Also the remote charge seems to always be full bright in DX11.

boreal ether
#

Hey goober, missed out on a beautiful electric blue dynamic light here:

fallow valley
#

the most common version semantic is https://semver.org/ which has incompatible API changes that dont work backwards marked as first number

brave crown
#

I have been thinking for a little while that AF versioning ought to be done differently, but was kicking the can to after this version release (which was in a hurry) so there's some time to figure out the best way to do it. I really don't like the way versioning is done currently - to be transparent I didn't put much thought into it, just replicated Dash's approach to versioning. I was also a bit apprehensive of bumping major version to 2 because some might confuse it with a patch for Red Faction 2

Another approach I've considered is just straight YY.MM.DD versioning. Not sure how much I like that though

crude oyster
brave crown
#

Added the When_Round_Ends event

#

Oh I forgot to ask but wanted to confirm - did everyone get the "what's new in 1.2.2" popup when you launched alpine for the first time after updating?

desert crown
#

yep!

boreal ether
#

yeh

zinc quiver
#

ye

wraith comet
#

I did!

#

Also, I wanted to tell you that apparently you're getting enough traffic for my Google auto-complete to finish the Alpine Faction query for me.

brave crown
#

I've coded Alpine major version 1.3.0 as Bakeapple

Because I know someone is going to (pretty reasonably) ask me what the fuck a bakeapple is.... here: ๐Ÿ˜›

Bakeapples are a fruiting plant common in northern/arctic nations and they look like this. They're called "Cloudberries" elsewhere, but "Bakeapples" in my home province Newfoundland and Labrador, where they are very heavily harvested and used to make some of the most incredible jams and baked goods on the planet

https://en.wikipedia.org/wiki/Rubus_chamaemorus

Rubus chamaemorus (also known as cloudberry, and poetically referred to as Arctic Gold or The King of Berries) is a species of flowering plant in the rose family.
A herbaceous perennial, it produces amber-colored, edible fruit similar to the blackberry. It is native to cool temperate regions, alpine and Arctic tundra, and boreal forest.
Its Engl...

split sleet
#

those guys love them :

silk tinsel
#

like cloudberries

split sleet
#

ive never eaten them : (

crude oyster
#

I vote "Pinus" for 1.4 for the lols

nimble sierra
#

My friends and I had a different definition for that in high schoolโ€ฆ

zinc quiver
#

@prisma dirge @brave crown @desert crown
Goober are you able to load: DM-Abkhรฎn-B1
for Willson and me it loads the glass house (which means it doesnt load the map)
what did you do to make it able to load? or was this not tested ๐Ÿ™‚
thanks!

desert crown
crude oyster
fast crescent
#

@brave crown Never thought you would run out of trees and have to rely on berries....but keep up the good work u maniac! ๐Ÿ˜› lolpup

#

can you name 1.3.1 as BaKeDaPPle in honor of all the stoners that play RF? aka @earnest iron ๐Ÿ˜‰

elfin moth
#

@brave crown
Messing with AF heal, love the new functionality.
(I can implement a nice game wide base heal mechanic for the BR)

I've been looking to do dynamic damage with the BR rings for a while. But there is an issue with the way that triggers apply to players.

For example, if there are 2 or more players inside a normal (non solo) trigger, only one player will receive damage till they are dead, then the next player will receive damage.

In order for this to work with the BR all players inside the trigger need to receive damage.

And obviously, if you check solo trigger, the server never gets the signal. Its almost like we need a hybrid solo trigger option.
Any ideas?

brave crown
#

@elfin moth hmmm... initially I was thinking Inside_Gate could be used to do this but I think that would need a way to create a link to the player

#

I can't think of a way off the top of my head to do that

The particular issue with this use case is that it has to be activated on the server since only the server's record of player's health matters

crude oyster
# elfin moth <@185856114506727434> Messing with AF heal, love the new functionality. (I can ...

Instead of one giant trigger, you could use one or many small ones on keyframes that circle the map super quick, so it's unlikely 2 players would ever be in the trigger at the same time.

Or acompany the rings with a solid invisible wall that just pushes the players into the play area and blocks them from leaving. Then just put an insta kill trigger outside the wall for any players that manage to get past the invisa wall. I'd probably prefer this option because it can sometimes be confusing trying to figure out which way I need to run when the rings start closing and I end up dying from the ring. ๐Ÿ˜› I rather just be pushed into the play area and blocked from leaving, then dying if I walk in the wrong direction.

elfin moth
#

Can't spare the resources to try something like that, In order to fit 32 players, you can only have a total of 256 triggers, weapons, clutter objects with player collision in the map. Actually less then 256, more like 175 probs, because things like rockets & player collision boxes take up a slot for the time they are alive.
The entire map has about 72 triggers, and 75 guns and no collision clutter objects. (I think you can do objects that will collide with bullets, that doesn't count, but not clutter objects that have collision for players)

60 of the triggers are dedicated to damaging players outside of the ring.
I have a little room left in the budget to implement Duo's and other odds and ends ๐Ÿ™‚

Also triggers sync funky when you keyframe them and continuously move them in MP, would not recommend, they cannot move accurately and sync correctly with all players in MP. In the BR, the triggers are all In-place already, they become activated when the ring descends from the sky.

crude oyster
# elfin moth Can't spare the resources to try something like that, In order to fit 32 players...

If their only purpose is to hurt players that cross the line then sync doesn't really matter. Not being in sync would actually be even better because it's even less likely 2 players would be in the same trigger at the same time. You wouldn't need more resources, you'd just use the triggers you already have in place.

Still think just making the ring walls solid though would be better. Then you could delete like 90% of those hurt triggers and use the resources elsewhere. tongue

brave crown
#

AF 1.2.2 (and all previous versions of RF PC):

#

Current AF dev build (what im working on):

crude oyster
brave crown
#

Yep

#

(only in new levels of course - this is another thing that did nothing for so long, so mappers almost definitely - even Volition in some cases - set the value and it had no effect, need to ensure compatibility for legacy levels)

desert crown
#

@brave crown say...

#

Ghost was dming me and i got a question

#

Since Dash fixed how water height works

#

could you do that in a run map

#

where the water is chasing you up a level

#

and you have to stay above it

#

or you die

#

or is that really just a SP property and its still to jank for MP ๐Ÿ˜‚

brave crown
#

It works in MP, it's just not network synced. It would be a bit weird for a run map though because you'd need to reset it somehow

desert crown
#

I guess you could just put a water texture on a mover ๐Ÿ˜‚

#

yeah that was my concern

brave crown
#

It also performs very very poorly for the record :p

brave crown
desert crown
#

@green cobalt i asked salute

#

he asked if there were any run maps like this

#

where theres a constant threat as you scale upwards

#

i couldn't think of any

brave crown
#

Run maps I can't think of any either but aquest has stuff like that in sp

desert crown
#

does it

#

i can't remember

brave crown
#

Yeah multiple

desert crown
#

O_o

brave crown
#

In the Egyptian section

desert crown
#

OH YEAH

#

the spike mover

green cobalt
#

yeah, i feel like subconsciously thats where i got the idea from. but i think it'd be cool to be able to do it with friends in MP

#

but like you mentioned, the 'reset' if you failed would probably be too hard to implement so it'd be once per map. ice's BR walls moving in got me thinking about this same concept but moving vertically instead of inwards to a smaller circle

desert crown
#

I mean you could do it on a timer

#

so that if you failed at a specific part, the bottom is able to be restarted

#

if it was a texture on a mover, i suppose

#

like say you expect the map to take 10 minutes to beat going upwards

#

you could have a cyclic timer of this mover group that starts every couple of minutes and just slowly makes its way up

#

you would run into trouble if u failed and had to restart

#

because you'd be stuck in a timer

green cobalt
#

ahh yes, like waves of the threat

desert crown
#

ye

green cobalt
#

thats not shabby

desert crown
#

but it doesn't really achieve the goal of the water rising and therefore deadge

green cobalt
#

would just have to use restart level cmd alot ๐Ÿ˜„ brings me back to tony hawk pro skater and restarting mission 897379750 times

desert crown
#

theres also save loading which i guess you'd have to do scouts honour over

#

๐Ÿ˜‚

green cobalt
#

i think to really achieve what im thinking of would involve a TC server mod. anyways just an idea fart in the wind

desert crown
#

fair

brave crown
#

you could probably also just have it entirely clientside

#

so each client gets their own instance

#

it would be strange to spectate but to play should feel fine

boreal ether
#

Spike also made Tomb Run which had part of the level fill with sand and you had to evade it.

nimble sierra
#

very cool

viral light
#

Idk how much it would matter for a run map that the water isn't synced in mp. Movers already aren't synced

crude oyster
brave crown
#

I specifically wanted to fix the alpha param so I can use light glow decals like rf2 does if I'm honest :p

Interesting though I've never tried using the tile settings on decals

#

That may be possible, I can look into it

crude oyster
crude oyster
# brave crown this kind of thing

I see. Seems strange using a decal for that when it looks like just using another light could do the same thing. ๐Ÿค”

I guess it could be useful if a light is calculating badly or for creating a shape a light can't make.

brave crown
#

RF2 uses them extensively

#

evidently RF2 had a much higher decal limit lol

#

I've seen RF2 maps with 500 decals

crude oyster
brave crown
#

that's definitely part of it lol

#

they also used decals for all the window layouts on the sides of the big buildings in the airship sequence

#

i think that map has over 2000 decals if my memory is correct

gaunt lotus
#

probably some kind of ps2 specific optimization

glacial storm
#

At any rate, it would be nice to have this limit raised for RF1 as well

boreal ether
#

@brave crown You know with DX11 being more stable with geo, have you tested how much can be done with geo?

brave crown
#

My understanding is that is due to a per-room polygon limit. The DX11 implementation does have higher limits in general, so it's possible but I haven't specifically tested that no

brave crown
#

@elfin moth thinking about your ask wrt AF_Heal...

I added an option to AF_Heal to apply to players in linked triggers

if that option is used, every time AF_Heal is activated, it will apply the effect to every player entity within the bounds of any triggers the event is linked to

that should satisfy your ask (I believe?), and is also something with many other applications outside of your specific use case

desert crown
#

how hard would it be to implement a velocity checker? or a speed checker of some kind - would be good for debugging speed on ramps and such Prayge

brave crown
#

i haven't looked but probably not hard

#

in theory would just need to grab world velocity for the player entity and normalize it

desert crown
#

just occurred to me cuz im like, walking in different maps on ramps to see how the speed feels on each one but without a numerical checker its hard to go based on feel (for me)

brave crown
#

well that was easy

#

(it's not ready to be shipped at current, needs some more work lol but yeah)

gaunt lotus
#

is this updating every frame?

#

like fps

#

(err, maybe not like fps)

#

if it is i could use it to answer an odd question i've had lol

brave crown
#

yes

desert crown
#

lmfaooo

#

ezpz

brave crown
#

oh this is 3d speed rn, that's not right lol

#

it should be horizontal speed I would think?

#

(ie. not include speed from acceleration due to gravity while falling)

#

@gaunt lotus am I correct that that is how quake does it

#

pretty sure?

gaunt lotus
#

hmi dont think so

brave crown
#

you think it includes vertical?

gaunt lotus
#

yeah

brave crown
#

wouldn't that make the ups balloon while youre coming down from a jump though

#

rather than stay constant if you dont move mouse

desert crown
#

i kind of want to see my speed when falling at the end of run challenge 1

gaunt lotus
#

hmm maybe it doesn't

#

yeah i think ur correct

brave crown
#

horizontal speed only now and lol the jump pad on pdm07

desert crown
#

XD

brave crown
desert crown
#

same tbh

elfin moth
# brave crown

Perfect, I will do some testing later today, I believe that this should solve the issue ๐Ÿค™๐ŸŽŠ

crude oyster
#

Since were talking about speed, I just decided to give Doom Eternal a go (yes I'm like 5 years behind haha) and beat it over the last few days. But now going back to RF, oh boy does it ever feel slow and heavy haha. I think RF now needs a double jump and quick dash/double dash option servers can enable. ๐Ÿ˜› I wonder how hard that would be to add? ๐Ÿค”

grand ocean
#

Sadly once u get used to doom eternals fast place playstyle. Every fps feels slow by comparson.
Even competitive multiplayer can feel slow

gaunt lotus
#

u can always play lego mod

crude oyster
# gaunt lotus u can always play lego mod

Thats faster but still can't jump like 100m gaps in lego mod or double jump way over someone's head and turn around and shoot em in the back while still in the air then fire off a double dash while still in the air and land on the other side of the arena haha.

crude oyster
brave crown
#

Fwiw I'm pretty sure Lego is way faster than doom eternal :p

#

But for real, I had been planning to investigate movement tech at some point for mods, just haven't gotten around to it yet

#

Personally I'd love bhopping around the sp campaign just for fun lol

#

And it would be an interesting speed run mechanic

crude oyster
brave crown
#

tbh it's easier to do in RF than it would be in many other games, since RF has purely clientside movement lol

nimble sierra
#

Dashing would be interesting in rf

#

How possible would a grappling hook be in rf?

crude oyster
brave crown
#

there are not, that's correct

#

I would have used that in lego if there were :p

crude oyster
brave crown
# elfin moth can you send me this build?

I actually can't - in the middle of a pretty rough wind storm and my power has been out for the past 3 hours lol

I'll send you a dev build tomorrow so you can see

elfin moth
#

no worries, take your time, hope everything turns out ok, ๐Ÿ™

brave crown
#

Alpine 1.3.0-beta1 - Jan 13, 2026

IMPORTANT: Feel free to use this beta version to test the latest in-development Alpine Faction features. DO NOT replace your stable Alpine Faction installation with this beta.

As always, this is a beta build and may have bugs. PLEASE let me know if you find any bugs or other issues so I can deal with them.

Mappers:

  • Please DO NOT release any maps made with this beta. The map format and/or editor may go through changes before the next stable release.
  • Please understand that Alpine 1.3.0 saves RFLs with version 304, which requires Alpine 1.3.0+ to load. Feel free to test out the features in this version of the editor of course, but do not work on your primary level file in this editor. Use the stable AF v1.2.2 editor for that.
  • Please be warned that the possibility does exist that maps saved with the editor in this beta may become corrupt - keep regular backups.

Notable changes in this build:

  • Alpha param in Decal properties works now (DX11 only)
  • Players in linked triggers option added to AF_Heal events
  • AF_Heal events no longer incorrectly forwards received messages
  • IR scanner mesh culling fixed
  • On-HUD speedometer (ui_show_speed)

Changelog: https://github.com/GooberRF/alpinefaction/blob/b084f6cf3eb0432ee43d8b02bc9a0cf1ec0f00d4/docs/CHANGELOG.md

GitHub

Community patch for Red Faction (2001) with modern features and many bug fixes - GooberRF/alpinefaction

brave crown
#

@elfin moth ^

be sure you read the "Mappers" section closely

desert crown
#

you didn't put the speed in it? or just not listed ๐Ÿ˜

brave crown
#

oops

desert crown
#

๐Ÿ˜›

brave crown
#

it is in, I forgot to list it - fixed

desert crown
brave crown
#

actually, does that work for vehicles? Just thought of that

#

it may need special handling for that

elfin moth
brave crown
desert crown
#

double checked salute

desert crown
#

found a casualty of the DX11 lighting Prayge silencer doesn't get adjusted like the rest of the weapon does

brave crown
#

i know of 3 static meshes now that don't get proper lighting:

  • Gibs
  • Silencer
  • Remote charge
desert crown
#

well i just found this out so i sent it ๐Ÿ˜

#

silencer not getting it affects 1% of cases so its nbd

#

(I imagine most people just playing the SP would likely default to DX 9 if they aren't interacting with us anyway)

brave crown
#

thanks for noting it, these all do need to be dealt with

desert crown
#

fair

brave crown
#

they're just not quite as high priority as some of the other lighting issues have been ๐Ÿ˜›

desert crown
#

yah for sure

brave crown
#

Working on the new alpine savegame file format... idk why but for some reason I just find it really cool to see saved GeoMod craters written out in plain text lol

    [[levels.geomod_craters]]
    flags = 1
    hit_normal = [ 32767, 0, 0 ]
    orient = [ -4439, -7694, 2524, 13532 ]
    pos = [ 0, 31873, 30781 ]
    room_index = 0
    scale = 17.074081420898438
    shape_index = 0
brave crown
#

And stuff like this

[common.game]
difficulty = 0
messages_total_height = 48
newest_message_index = 1
num_logged_messages = 2

    [[common.game.logged_messages]]
    display_height = 24
    message = 'OK, Parker, this is the training phase of your Red Faction probationary period.'
    speaker = 4
    time_string = 1768367981

    [[common.game.logged_messages]]
    display_height = 24
    message = "If you survive, you'll be ready to help lead the miner rebellion against Ultor, when the time comes."
    speaker = 4
    time_string = 1768367986
brave crown
#

@elfin moth did you test the new version after? Just wanted to ensure the new approach met the feature request you had

elfin moth
#

Just checked it, yes it works ๐Ÿ‘
had to solve the mystery on how to hook it up properly from the error messages.
Trigger --> AF heal + AF heal --> Trigger

#

tested in a dedi, as always

brave crown
#

Actually I think it would be much better (and absolutely far more performant) to just have a Cyclic_Timer running from map start and firing every 1 second (or some interval), hitting AF_Heal

#

then link AF_Heal to the trigger, which is used as a zone only - not actually to trigger anything

#

the AF_Heal event when "players in linked triggers" is selected doesn't care who or what triggers the event - as long as it's on the server

elfin moth
#

I see,

brave crown
#

You can just have a Cyclic_Timer always running (basically a tick), firing AF_Heal every 1 second on the server. Then link the AF_Heal to all the red zone triggers, and every time the Cyclic_Timer ticks, any player that's in one of those trigger areas will take damage

#

I would also suggest putting a Scope_Gate in between the Cyclic_Timer->AF_Heal, as an optimization. Set the Scope_Gate to "Server". That way there's no Cyclic_Timer tick running on clients pointlessly (it won't do anything anyway)

#

wait hang on I described that wrong

#

Put the Scope_Gate between the Trigger Auto and the Cyclic_Timer

That way the Cyclic_Timer starts ticking on map load, but only on the server. On clients, the Cyclic_Timer will never start, which is an optimization since the functinality is entirely serverside and running it on clients is just unnecessary overhead

elfin moth
#

Cool, yeah i will implement that

#

I need to build a system filter the inputs to implement variable damage. I will add it to the map whenever you get a stable build released.

brave crown
#

Perfect. You can do variable damage on the AF_Heal by using Set_Variable events with Switch_Random (or another selection mechanism, using goal_gates for example)

desert crown
#

eh

split sleet
#

that skin looks pricey inthy

#

how much was it ?

brave crown
#

Well DM-RFU8-Catan.rfl takes the cake for the largest alpine savegame file I've seen so far lol

#

over 1MB of data

#

(obviously not an SP map so there's no practical need to make a savegame file on it, but I was curious lol)

wraith comet
#

What all is being saved that would make it that large? I haven't seen that map before.

brave crown
desert crown
#

the review made me me try this mod

#

it might be minor but maybe something down the road to stop msg spill in custom campaigns Prayge

#

(also the reviewer just didn't explore enough)

brave crown
#

Msg spill? ๐Ÿ˜ฎ

#

Do you mean the line breaks?

#

Those are totally busted yeah. Honestly the message log window is just totally broken on high resolutions. I need to overhaul that window for the idea in #1376911026330665065 anyway so fixing the line breaks is probably just a component of that

desert crown
#

gotcha Prayge

crude oyster
#

BTW @brave crown I can doubly confirm now, the fix you added to stop players from picking up stuff during teleport only seems to work in SP. First saw it happening on Catan and now on graveyard remaster when I was just testing something on a dedi. I'd assume it'd be the same story for triggers if I had one between teleport points.

desert crown
#

i really do wish i knew what caused the silencer XD

brave crown
wraith comet
crude oyster
#

Would it be possible in a future alpine version, to have custom gibs models for every MP character? As well as not be a random selection of meshes, but 1 of every gib mesh for that character, so there's not like 2 heads gibbing out of 1 player? ๐Ÿค” Then maybe just fall back to the current gib models if no custom gib models are present. I could probably assist with breaking the character models into pieces and creating the gib skins if this were to become a thing.

brave crown
# crude oyster Would it be possible in a future alpine version, to have custom gibs models for ...

it is definitely possible. Doing per-character meshes is a bit dicey for a number of reasons (mostly because every character in MP is technically the miner1 entity type :p ), but is doable for sure.

Having 1 of each mesh is also doable, but would need to be thought out a bit more, especially given there is a configurable value for the number of chunks to spawn

Perhaps the way to do it would be to have 2 gib "modes" - one which would spawn X chunks randomly and one which would spawn the specific list of chunks

Putting this in Alpine stock though... is something I'm not sure is a good idea. The gib implementation in Alpine is as it is because it's effectively a carbon copy of RF's original gib implementation before it was cut (well, with configurable values now but yeah). I'd be reluctant to change that for the stock experience. Exposing parameters that could be changed via a clientside mod would probably be the best way to handle something like this

crude oyster
brave crown
#

Yeah, if it were implemented the way I just outlined it would be clientside moddable

it'd probably just be in af_client.tbl

#

Alpine made a hard pivot away from the stock game's approach of "tbl files can never be modded clientside in multiplayer" to "tbl files can always be modded clientside, unless they can be used to cheat" ๐Ÿ˜›

#
    "strings.tbl",
    "hud.tbl",
    "hud_personas.tbl",
    "personas.tbl",
    "credits.tbl",
    "endgame.tbl",
    "ponr.tbl",
    "af_client.tbl"

these can all be modded in clientside mods in Alpine

crude oyster
brave crown
#

That was one of the first big changes back in Alpine 1.0 - the problem is that honestly in retrospect, there was so much in that version that it was difficult to actually make people aware of it all :p

crude oyster
#

I just added the feature request to your never ending github list lol. ๐Ÿ˜›

brave crown
brave crown
#

Does anyone have any thoughts on whether gibs should be enabled by default in the server config? I had a request to set the default to false (it is currently true), wanted to see what everyone thought about it.

It is a deviation from the stock game feel, so that would be the argument to default it to off

prisma dirge
brave crown
prisma dirge
#

A Switch that is on for switching off gibbing ?

brave crown
#

It won't look quite like that, but yes

prisma dirge
#

Switched on as default and would need to add code for disbaling gibbing when the switch is switched off ...

brave crown
#

No, it'll be a section like spawn weapon

desert crown
#

i like it being on by default tbh ๐Ÿคฃ

grand ocean
brave crown
#

Via cl_gorelevel

zinc quiver
#

oopsies
now we cant get here with
no player collision
enabled

brave crown
#

yeah, that's the one map that needs to have collision manually turned back on in level-specific rules

zinc quiver
#

no rush ๐Ÿ™‚ we went onto the next one ^_^

elfin moth
zinc quiver
#

@brave crown I am trying to understand how the alpine restriction works:

If i put the following settings:
[alpine_restrict]
advertise_alpine = true
clients_require_alpine = false
reject_non_alpine_clients = false
alpine_require_release_build = false
only_welcome_alpine = false

It will advertise alpine, but dash users would be able to join right? no matter what version?

to be more clear, i have put this under:
[inactivity]
enabled = true
kick_after_warning = false

and above:
[base]
[base.rules]

#

Results with dash 1.8.0

Frenzy server: can enter server, but not join
Test server: can enter server and join
DM server: can enter server and join
Mix server: your multiplayer version is incompatible

The Frenzy, Test & Mix server have identical settings (alpine restriction setup like the code show above this message).
The DM server does not have alpine restriction setup.

-- all servers are on 1.2.2

brave crown
#

There is a notification displayed on the dedi config builder when you configure a setting that will restrict your server to Alpine only

The easiest way to know who can join your server is to run sv_restrict_status

that will print information about the specific client versions and what they will be able to do in the current situation

zinc quiver
#

okay thank you
seems all this time i had not set it up correctly :>
ill check more thoroughly how to set it up this weekend ๐Ÿ™‚

brave crown
#

example

#

of the output of sv_restrict_status

zinc quiver
#

cool, that will help!

#

merci

brave crown
#

the "Server rules auto-require alpine" line means that because of some specific rule (like gametype = KOTH for example), Alpine is required

zinc quiver
#

makes sense
i totally overlooked on this lol

#

thanks for the fast response

brave crown
#

no worries

#

I will quickly add that the only rules that will force your server to require clients be running Alpine are the features that require a clientside portion to function

#

so, no player collide for example, requires clients be running Alpine because without that, Alpine players will collide with legacy client players, but legacy client players will not collide with Alpine players... it would just cause a huge mess lol

zinc quiver
#

yea that makes sense lol

#

so i guess also things like:
spawn loadouts?
as you said before KOTH and other modes

brave crown
#

if my memory is correct spawn loadouts will require Alpine if they are anything other than just the baton and a changed spawn weapon

#

(because legacy clients wont know the proper info in such a case)

zinc quiver
#

clear :>

desert crown
#

I know this is like a 5 people only issue but when i go oob the screen is flickering (DX11)

#

SS doesn't capture it for some reason lol cute

#

ok thats crazy lol it only happens in RF the OBS looking at it doesn't see it wtf ๐Ÿ˜‚

obsidian warren
#

The screen was flickering a little for me today too

desert crown
#

in the boundaries?

obsidian warren
#

Yeah

wraith comet
#

@brave crown I have plans to acquire a Steam Deck. Do you think you'd be interested in me doing a thorough test of Alpine on it?

#

From what I understand, the stock game actually does work on SteamOS. But I am very curious to see how Alpine performs. I imagine it'll probably be okay.

brave crown
#

I am always interested in hearing more first hand experience with Steam Deck and Alpine for sure - but I know @gaunt lotus has also done extensive testing of Alpine on the Deck already

wraith comet
#

Oh? Neat! I am going to try to get an OLED myself, if I can.

#

RF1 with Alpine is obviously one of the first games I'm putting on there as well as a selection of JPRGs and other indie games.

gaunt lotus
#

it runs very well

wraith comet
#

I'll still chime in and tell you how it goes, but that is very reassuring.

#

I have to ask... did you try running RED on the Deck?

gaunt lotus
#

no i'm not a psychopath

wraith comet
#

I knew I still had a niche to fill.

gaunt lotus
#

but i mean.. you could, in desktop mode

#

there's no reason it wouldn't work

wraith comet
#

I volunteer to try and make the first level on the Steam Deck. And I will make it a glorious shrine to Gaben.

#

And I will do it using only the controls on the Deck, no keyboard or mouse. Because I am a psychopath.

#

That, and... well, I just think it'd be really funny.

gaunt lotus
#

well, the controls on the deck include touchpads and the touch screen

#

so you technically do have a keyboard and mouse

wraith comet
#

That's fair game. Though I imagine it will be horrible.

gaunt lotus
#

for RED? yeah, probably

wraith comet
#

Which is exactly why I'm gonna do it.

gaunt lotus
#

generally it's not that bad for browsing and general tasks (consumptive tasks, at least)

wraith comet
#

The primary reason I want to get one if you want me to be honest, aside from my desktop just being very aged, is that I'm tired of being stuck at my desk and it'd be nice to be able to go sit on the couch with my family while playing a game. It'd also be easier to show my Mom games that way, instead of lugging my PC out to the living room.

#

So regardless, I think it could be a very positive addition, and I don't really mind the fact that I'm not getting raw fidelity out of it. That isn't what you buy these for anyway.

#

So, I'm just kinda curious to see how it feels to play RF1 on the Deck, use RED, and play some multiplayer in GN.

gaunt lotus
#

the deck is great, i love mine and get a fair amount of use out of it

#

i will say the form factor is not entirely ideal for what i play on the go typically (shmups)

#

but i rarely fly anywhere without it right now

wraith comet
#

Lemme go ahead and move to #tech-talk so Goober doesn't smite me with his Canadian, syrup-scented wrath.

brave crown
#

I don't think I actually showed this here before, but Alpine now automatically downloads levels specified in the server config at launch, if the server doesn't have them installed

brave crown
#

added support for rcon profiles today. So, instead of specifying just a single rcon password to provide access to the standard commands that rcon could always use, you can now customize profiles with unique passwords, to provide varying levels of rcon access to various people

Here's how it's configured

[[rcon_profiles]]
name = "superadmin"
password = "sadmin"
full_admin = true

[[rcon_profiles]]
name = "poweruser"
password = "pwusr"
full_admin = false
allowed_commands = ["kick", "level", "map"]

full_admin = allowed to execute all rcon commands. Otherwise, you can specify a list of commands that profile is allowed to use

brave crown
#

Alpine 1.3.0-beta2 - Feb 1, 2026

IMPORTANT: Feel free to use this beta version to test the latest in-development Alpine Faction features. DO NOT replace your stable Alpine Faction installation with this beta.

As always, this is a beta build and may have bugs. PLEASE let me know if you find any bugs or other issues so I can deal with them.

Mappers:

  • Please DO NOT release any maps made with this beta. The map format and/or editor may go through changes before the next stable release.
  • Please understand that Alpine 1.3.0 saves RFLs with version 304, which requires Alpine 1.3.0+ to load. Feel free to test out the features in this version of the editor of course, but do not work on your primary level file in this editor. Use the stable AF v1.2.2 editor for that.
  • Please be warned that the possibility does exist that maps saved with the editor in this beta may become corrupt - keep regular backups.

Notable changes in this build:

  • On launch, dedicated servers automatically attempt to download and install maps in their rotation (-nodl cmd line switch to disable)
  • sv_loadpackfiles console command (dedicated servers only) to load packfiles newly added to user_maps folders since server has been running
  • Add rcon profiles for dedicated servers, permitting servers to configure various levels of privilege for different passwords
  • Revamp FactionFiles account linking workflow to make it far more user friendly. Process is initiated in the launcher

Changelog: https://github.com/GooberRF/alpinefaction/blob/67d2de2d89cd7a566a459e18a7f6f4a3fc523458/docs/CHANGELOG.md

GitHub

Community patch for Red Faction (2001) with modern features and many bug fixes - GooberRF/alpinefaction

brave crown
#

@prisma dirge this build has the exclude_bots_from_player_countsetting for dedicated servers that you asked for

#

new FFLink flow - just press the big purple button ๐Ÿ˜› Much more simple

brave crown
#

@prisma dirge this thread

prisma dirge
#

Works like expected on the server where I use this parameter.'
Problem on server where I didnt use the setting: bots are not allowed to spawn

brave crown
#

That's driven by ideal player count

prisma dirge
#

It is not set
gonna add
ideal_player_count = 5

#

solved by adding the ideal_player_count config
For the tile-frency-map server I leave the playercount active, because, even a stillstanding target is better than no player and should be displayed somehow ... gonna wait how it works

#

Problem solve by adding the ideal_player_count. ๐Ÿ™‚

BTW, the autodownload of maps for server, is there need to add something to the serverconfig or does it work by default?

And, is there a possibility to set the server-console background to some color like Blue or red for differentiating the consoles?

I am starting the server with the win32-console, Maybe there is a simply trick because it is a DOS-Window but I can't find out.
"C:\games\Alpine Faction\AlpineFactionLauncher.exe" -ads ###7755_tile_frenzy.toml -port 7759 -win32-console

brave crown
#

the autodownload of maps for server, is there need to add something to the serverconfig or does it work by default?
No, just specify the maps in your config and it'll download them if they're missing

And, is there a possibility to set the server-console background to some color like Blue or red for differentiating the consoles?
No, with win32-console its a Windows cmd window - I think there's a way in Windows to set those colours but not in Alpine

split sleet
#

jk jk

#

also when new rf battlepass drops ?

brave crown
brave crown
#

just added this command:

#

Should be helpful for server hosts in understanding if they're running levels that aren't on the autodownloader, so they can get them uploaded

silk tinsel
#

More manly purple worth of a Saint

desert crown
crude oyster
#

Just noticed active distance on emitters doesn't seem to help any when it comes to loosing the particles from weapons, like rocket smoke, explosions and flamethrower. My map has 127 emitters but they all have an active distance of like 20-25m. I can see the active distance is working as expected, however even when I'm in a room so far away from any emitters not a single one would be turned on, I still don't have any weapon particles. Even when I engage my player triggerable "low graphics mode", that disables all emitters map wide, the weapon particles still don't return. Does RF just look at the amount of emitters in a map and decide on map load if weapon particles will be enabled or not and not take into account how many particles are actually being emitted? ๐Ÿค”

slow yarrow
brave crown
#

not a command, the server now automatically does that when you launch (unless you use the -nodl switch to turn that function off)

slow yarrow
#

oh cool

viral light
#

im hoping that either goober or i can find time soon to redo the config generator so you can search ff for maps and make the ui less terrible

#

i did some testing with it and it's very cool that all you need to set up a server, outside of the rf+af install of course, is just the config file

brave crown
#

something I'm cooking

very very early stages, but what you are looking at is a waypoint grid that hopefully will eventually (ETA TBD - assume valve time) be used by bots to know how to navigate a map

prisma dirge
# brave crown just added this command:

] sv_checkmaps
Checking FactionFiles for 1114 levels. This may take a moment...
1032 unique levels on server rotation. 10 are NOT available for autodownload from FactionFiles:
dm02-TargetPractice.rfl
DM_ROUNDHOUSE.rfl
dmboxforest.rfl
DM_sonsrailkhaos.rfl
DM_Mystery_Railz.rfl
dm02custom.rfl
DM_LIL_ROUNDHOUSE.rfl
DM_Lindum_Villa.rfl
DMMineRace.rfl
dmbigroom.rfl
] ver
Alpine Faction 1.3.0-dev (Bakeapple), build date: Feb 4 2026 10:13:19
]
Guess I need to upload the maps to FF.
Yeah, I cloned the repository and compiled it with Visual Studio, just for checking with this command.

brave crown
crude oyster
# prisma dirge ] sv_checkmaps Checking FactionFiles for 1114 levels. This may take a moment... ...

The first one is on FF. I guess autodownloader just doesn't check maps listed as SP. ๐Ÿ˜› I put it under SP because there's no logic in place to handle multiple players. If multiple players were to play it at the same time, the target spawns wouldn't be synced between players and you would probably reach a point where it is spawning targets it doesn't know have been killed already by other players. So there would be none visible to shoot at, even though they all haven't been killed yet.

desert crown
#

yes please don't include that map in an actual rotation ๐Ÿ˜…

brave crown
#

doesn't make much sense to autodownload SP maps after all :p

slow yarrow
#

Just needs one way glass rail room

brave crown
#

Well I have bots establishing a connection and spawning properly now... movement is going to be the hardest part of this, though

obsidian warren
#

Them bots and their rapid fire while I'm not allowed to click, is mildly annoying btw.. Is that some broken mechanism or does the server just exempt them from it?

brave crown
#

"not allowed to click"?

#

and which bots are you talking about specifically?

There is a bug I know of with some bot software that is floating around that causes them to rapid fire pistol/PR endlessly (and hold fire on automatic weapons). My understanding is that issue has been resolved for the bots on the FF servers for a long time

#

by "not allowed to click" are you referring to the click limiter throttling clicks, or are you not able to shoot at all?

obsidian warren
#

Yeah always the click limiter ๐Ÿ™‚

But the bot thing was a serious query
Normally it feels like theyre sitting at 6 or 7 or whatever they do, then some clips will sound and feel twice as quick

brave crown
obsidian warren
#

Whichever one had Hendrix bot

#

Like its not crazy fast, I could probably shoot faster, it just sounds twice as quick as the rest of his clips

brave crown
#

I believe that's afaction

obsidian warren
#

Oh

brave crown
obsidian warren
#

Thanks anyway

prisma dirge
#

How can I test the bots? Currently I have cloned the AF Gihub Repository, did some obscure setting in CMakelist for x86 and Release instead of debug version, it has still the same Version Number Bakeapple 1.30 and I don't find Bot Settings in the RF-Client.
_ Is this bot a server setting? How do I activate the bots?

Btw, Ehm, didn't find where I can start usermaps of type single in RedFaction embarrased ... Found a way to start it using RED

brave crown
#

Some SP maps are TC mods. THose are started like any other mod

The ones that aren't, after installing them, you run level FILENAME in console

brave crown
#

What I showed above is added by the server with the command bot_add, but yeah the code isn't in the repo currently

glacial storm
brave crown
#

#1376930844597551146 message
yeah that's the idea with these

#

they're modeled after bot nav meshes in Sauerbraten/Tesseract if you've seen those

#

essentially a player runs around a map and takes all the paths everywhere. As they run around they drop waypoints, which create links to other nearby waypoints, forming a mesh network. Items and spawn points automatically have waypoints so when you walk over them they get joined to the grid. Also, players playing the map drop additional waypoints as they do, so the entire time people are playing, the bots are learning additional pathways

desert crown
#

didn't think we'd get dota2's OpenAI tech in RF in 2026 KappaKan

brave crown
#

here for example, I spawned at the red circle, walked out, over 2 item pickups, then suicided where the corpse is so I could enter free look spectate and take this screenshot

#

waypoints dropped along the way, automatically creating bidirectional links with eachother and the items I picked up along the way

desert crown
#

so like

#

this is a modular system in that - it only works if players have been on the map, for the bots to pick up the track essentially?

#

eventually more players walk over those lines connecting them to other parts of the nav field

brave crown
#

it's not a centrally managed thing (that would end very badly because players would just make bullshit paths and mess up bots everywhere lol)

Someone (typically the map author at least for new maps) would run through it once and make the saved waypoint grid. On map load, a server loads that grid. The grid is then added to as players play the map

brave crown
#

special handling is likely to be required for things like jump pads, control points, ctf flags, etc.

#

and it produces files that look like this:

[header]
author = 'Goober'
checksum = 1576196549
compressed = true
level = 'dmabruptdecayrc1.rfl'
revision = 4
saved_at = '2026-02-04 01:05:57'
version = 1

[[w]]
l = [ 394, 389 ]
p = [ 19540, 4425, 23665 ]
s = 0
t = 0

[[w]]
l = []
p = [ 23145, 5478, 22755 ]
s = 14
t = 2

[[w]]
l = []
p = [ 23598, 5478, 22300 ]
s = 19
t = 2
#

(with [[w]] waypoint sections for each waypoint)

slow yarrow
#

its the side effect of the way the aim shake works

brave crown
#

What I'm working on with these bots is entirely separate from the existing bot software that hooks into a client - if it goes the way I am hoping it will go, it'll use the same aim logic as enemies use in SP

desert crown
#

great their gonna crosshair dodge NOOOO

#

๐Ÿ˜

slow yarrow
#

when do you think they will be ready

brave crown
#

I am making 0 promises with this - it's something I'm motivated to get working because I really want it to exist (and to use it myself) but making commitments or giving timelines gets me into trouble so I'm not doing that :p

slow yarrow
#

will we all have access to it on servers

desert crown
#

most likely

brave crown
#

I will say tho that making good bots is an extensive undertaking, so this will absolutely be an iterative process

desert crown
#

is there no way to reverse engineer the ps2 code to see how that was done?

brave crown
brave crown
desert crown
#

apart from the net code ๐Ÿ˜›

brave crown
#

?

desert crown
#

well i mean

#

you don't have their net coding

brave crown
#

The PS2 has no online

slow yarrow
#

๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ

brave crown
#

There is no netcode for them

desert crown
#

๐Ÿคจ

#

thats not been the answer over 5 years of this topic what ๐Ÿ˜ญ

brave crown
#

Huh?? That is my answer literally every time

desert crown
#

unless i'm mandelaing - its always been - theres no netcode for the bots from ps2

brave crown
#

And for longer than 5 years :p

#

There's no netcode for bots period, including on the ps2

desert crown
#

๐Ÿ˜

#

this has been a long day for me i see

slow yarrow
#

glass mousemat is gooood

slow yarrow
#

excited for matches

gaunt lotus
#

i think what's often said is: there's no netcode for the bots, or the bots don't have netcode

#

that doesn't imply the ps2 had netcode for them

desert crown
#

im not in it for round 2

#

ive conceded

#

let me go ๐Ÿ˜ญ

slow yarrow
gaunt lotus
#

no idea, good luck

#

well, there is a roll of a special plastic you can get which works well in my experience

#

i forget what it's called

#

you can also get pledge surface cleaner and use it to lube the surface for more glide if you really don't want to hit anything

slow yarrow
#

i heard you want a arm sleeve for glass but it seems fine without it so far

gaunt lotus
#

i always just burned through hyperglides and cans of pledge back in the day

brave crown
#

I'm guessing hand sweat would catch up to you on glass?

gaunt lotus
#

ye it does

#

sleeve depends on the surface and your skin individually i guess

#

i would be on glass if i cared at all anymore but you need to be practicing/playing daily to have any benefit on it imo

desert crown
#

straight vibing with my soft mouse pad vibe

slow yarrow
desert crown
#

yes

slow yarrow
#

the one thats too small

desert crown
#

deal with it salute

brave crown
viral light
#

it's not in a release yet

slow yarrow
silk tinsel
#

what wizardy is that, guiding bots to their path nodes?

viral light
slow yarrow
#

i cant find the option on the website

#

nvm found it

viral light
#

im not

desert crown
brave crown
desert crown
#

i know but i can't even see it doing it cuz of all the shit

#

๐Ÿ˜›

silk tinsel
#

Now the big question.. will there be an Alpine mode that'll make brushes mirrored instead of making it ourselves in the editor?

brave crown
silk tinsel
#

What's Redux

brave crown
#
#

#1376912225578647592

silk tinsel
#

so if i were having a blender file i can export it into a group via redux for the editor ?

#

guess i was living in the cave about this thread.

brave crown
#

redux can take a group file and mirror it

wraith comet
#

The fact you're adding proper bots is so cool.

#

Does this mean the legacy client-style bots are going to be retired from AF servers?

desert crown
brave crown
#

he currently has a bit of a problem knowing how to use automatic weapons, he keeps trying to tap fire, doesn't work the best for SMG and AR lol

#

but other than that and some very minor navigation oddities, he's doing really well

#

he got me good at 1:38 in that video lol

#

he can shoot but he can't move until the human players in the game teach him how to navigate the map

#

of course that also applies to maps that do have waypoint grids - he learns the routes the players take, if they're not already covered by the grid

wraith comet
#

I guess that means you gotta be careful unless you want to teach the bots some of your best stuff.

gaunt lotus
#

quake3's bots are better than this architecturally

wraith comet
#

I still regularly play botmatches in Quake 3 and Quake Live by myself.

prisma dirge
#

Found this pdf which is trying to describe quake3 bots https://www.cs.rochester.edu/u/brown/242/docs/QuakeIII.pdf

I was already glad having a bot that spawns when the map is changing, for the gambler2#tile-frenzy-for-poor-server.
The bot must not move, because it is just for practising spawnkills.

A more intelligent bot, that does not only spawn, but shoot all 10 seconds with railgun was already perfect to me for exploring maps and spawnpoints.
Of course, more intelligent bots are in need for playing Warlords without need to wait for other players.

I am curious how this will work once the next Version of AF is available. And maybe the bots should be scalable, from "only spawning" up to being able to play CTF and so on.

brave crown
#

The plan is for bots to have varying behaviours driven by adjustable personalities. I don't know exactly what that will look like yet or how it will be configured, but there will be at least some flavour of that

desert crown
brave crown
#

will need to see about what that looks like after some testing

The bot certainly needs to be intelligent enough to know how to identify bad routes that it shouldn't take (which it already is to some degree)

desert crown
#

i guess define a bad route? like what action (outside of getting yourself into a softlock spot) would get a bot in a bad spot

brave crown
#

someone getting headjumped up into the sky

desert crown
#

lmfao

#

would he try to jump at you? ๐Ÿ˜‚

brave crown
#

someone jumping off an edge into lava

#

also even just sitting in place and jumping creates a waypoint in midair at the apex of the jump, so there would be a lot of pointless routes that are just costing processing power to have to evaluate

brave crown
desert crown
#

i suppose a bot has no reason to jump could you disable its jump state ?

#

i mean, well, i guess it would need to have some sort of pathing to go up

brave crown
#

bots definitely do need to know how to jump

desert crown
#

i see

glacial storm
brave crown
#

If this were 2000 and I was Volition, my answer would be yes. My answer now in 2026 is no, simply because thousands of maps already exist, so a solution that can apply to existing maps rather than just new maps is far more important. And at that point, that same approach can just be applied to new maps when they are created

#

It would be ideal to just use the nav point system that RF SP already uses - which is actually pretty good. But to go back and apply that to thousands of existing maps would take a completely unreasonable amount of effort. If bots were supported when the game launched, every playable map would already have them, but we don't live in that timeline unfortunately

#

@glacial storm sry meant to tag

brave crown
wraith comet
#

RF2 has a genuinely good bot customization system. You could lift that more or less.

#

Then have some built-in default bots to fall back on if the player hasn't created any custom ones. You could either have a collection of built-in profiles for bots, or simply initialize them from a single default template and assign a built-in name.

#

There's enough flexibility here in what you're building. I think it will work very well in the end.

#

Either way, you probably should have a basic default template to fall back on just in case a bot's data fails to load properly.

#

At least in that circumstance the bot would still function. Then you could print the error in the console.

brave crown
#

continuing to build out the waypoint generation

capturing as much info about the map as possible - item types, objectives, etc. so that bots can consider this information in decisionmaking and routing

brave crown
#

when a geo happens, create a waypoint and join it to the grid so the bot knows about the new route

desert crown
#

im sure itl have enough in its "brain" to know that if the wall is solid that thing doesn't work and ignored the path node right?

#

im just asking the obvious questions i know ๐Ÿ˜

brave crown
#

hm?

the waypoint is created by the explosion

#

there's no link going through the wall until the explosion makes the hole

desert crown
#

ohhhh

brave crown
#

figured I'd share because I thought this looked cool :p

waypoint grid autogeneration will never be perfect of course, but I'm hopeful it can get to a point where autogenerated grids are usable in many cases, and manual effort is only required to resolve issues in autogeneration

desert crown
#

thats kind of cool ๐Ÿ˜‚

#

i didn't realise it was IACS map till i got it bigger

brave crown
#

autogeneration tbh is coming along very very well

glacial storm
brave crown
#

lol :p

nah, FPS always tanks when screenshots are taken. Also most of the framerate hit with these is the debug rendering of lines/spheres - the waypoints actually existing is effectively 0 performance impact

wraith comet
#

Are prebuilt waypoints being stored in the RFL file, an external waypoint file like Quake, or how do you handle that?

brave crown
#

toml-based files in the user_maps\waypoints directory with the same name as the rfl file

wraith comet
#

That's a super smart way to go about it.

#

TOML is a good format for this usage case.

brave crown
wraith comet
#

Are the auto-generated waypoints being stored in TOML as well, or just created on the fly dynamically each time the map loads?

brave crown
#

the file stores 3 types of records:

  • waypoints
  • zones
  • targets
#

autogeneration is a pretty intensive task. Technically it could be done at map load but I don't think it's a good idea. Currently it happens when you run the waypoints_generate console command

#

then waypoints_save to write the waypoints in the current world out to file

wraith comet
#

I agree. That's why I was curious. So, you could generate a waypoint grid, then use that as a base for further tuning?

brave crown
#

yes, or make one from scratch if you wanted to

wraith comet
#

Neato. That's really nice.

brave crown
#

waypoint grids built from scratch will probably always be "better" than autogenerated ones, assuming they're built by someone who knew what they were doing. But it's an onerous task

#

I'll probably end up manually doing them for a handful of my own maps and maybe some defaults that get played frequently, but the idea is that autogenerated ones should be "good enough" in 99% of cases

wraith comet
#

I always prefer when waypoints or navmeshes are stored in an external file separately from the map. Preferably in an easily edited format like this. So, you have my approval. It makes it easier to patch navigation if needed.

brave crown
#

this is what targets are used for - identifying a location where the bot should consider causing a geomod. They tell the bot where to shoot the rocket, and tell them what the waypoint connection will look like if they do, so they know the value of opening that secret and can consider it in the decisionmaking process

wraith comet
#

Very good. I can see they're already shaping up to be more flexible than the PS2 bots.

#

(Which is fantastic.)

brave crown
#

yeah the ps2 bots are SP AI, this doesn't use SP AI at all

wraith comet
#

Yep, the PS2 bots were very weirdly bashed together lol.

brave crown
#

they were challenging because you had to use a controller lol

wraith comet
#

I kinda wonder how creative the use-cases for these bots could be if someone was creative enough.

#

(My co-op cope continues.)

#

But this is fantastic. Excellent work.

wraith comet
brave crown
#

oh, zones are one of these types currently (to be expanded probably):

  • control point
  • liquid area
  • damage region
  • instant death region

they store the UID of a trigger or room, OR can be specified with a bounding box drawn between 2 world points

each waypoint record has a list of zones on it, so the waypoint can be associated with one or more zones

this is the way for example, for a bot who knows he needs to capture point 2 in an ESC game, to find a way to get to that zone

it's also a way for a bot to avoid routing to waypoints that result in death, or consider the risk vs. reward of routing to waypoints that cause damage to pass through

wraith comet
#

Ooooh. That's excellent. Essentially free intelligence without bloating the actual AI.

brave crown
#

well the whole purpose of the waypoint grid really is to ensure that the bot has all the data it needs to be able to make decisions and find paths

#

so the bot will consider all this data, combined with the data it gets on LOS using raycasts, to evaluate options and drive behaviour

wraith comet
#

Yeah, it's a rather elegant solution that also maintains compatibility. I think it's great.

#

It avoids bloat in the map format and retains compatibility, while also avoiding making the AI a bit too... pasta-fied.

brave crown
#

and currently most waypoint and zone types are supported by the autogenerator.

Exceptions are where you land after taking a jump pad, and geomod targets. I have a plan for the logic for autogenerating geo targets just haven't done it yet

wraith comet
#

Will TC mods be able to bundle in their own bot profiles?

brave crown
#
std = 0,
    std_new = 1,
    item = 2,
    respawn = 3,
    jump_pad = 4,
    lift_body = 5,
    lift_entrance = 6,
    lift_exit = 7,
    ladder = 8,
    ctf_flag = 9,
    crater = 10,
    tele_entrance = 11,
    tele_exit = 12,

these are the waypoint types

(std = standard, loaded from file, std_new = standard, dropped this game session)

brave crown
# wraith comet Will TC mods be able to bundle in their own bot profiles?

will need to come up with something for TCs, idk what that looks like yet. It's not as simple as profiles. The bot needs to know, for example, that the flame can is usually useless. That type of context is very difficult to provide in a profile. So yeah idk, specific behaviour for TCs is a later problem to solve :p

wraith comet
#

Thankfully I know my mod should work with this out of the box.

#

Just promise me you'll test these bots as-is with LEGO MP just to see what happens. I think this would be very funny and is essential.

gaunt lotus
#

they would not really be able to play legomp properly without significant legomp specific work

wraith comet
#

Oh, trust me, I know. That's why I want to see it. It would be funny.

gaunt lotus
#

other mods like weird series, eko, ISM, hive, etc. might work okayish out of the box though

#

the more they deviate from RF movement the more unlikely they are to work properly without custom tuning

brave crown
#

it will probably have a wonky value matrix for the weapons in those mods, but apart from that it'd probably work fine

wraith comet
#

I don't expect it to have any problems with the PS2 TC at all.

brave crown
#

likely not

wraith comet
#

It's so close to stock that it probably doesn't even actually matter.

#

It'd be nice to let them know how broken the shotgun alt fire is lol. But should work very well out of the box.

wraith comet
#

That's huge and I hope you know it's appreciated.

#

It's going to be a particularly big game changer, I think. It will help me and my friends a lot. Our private games with our friend group will be a lot more fun having bots to fill space.

gaunt lotus
#

actually good bots is something I think everyone has wanted since like 2001

#

I would expect the first shipped version of this to be kind of clunky. Temper your expectations, but they should at least be a lot more fun to play with than any past attempt

brave crown
#

^ this, I fully expect the bot behaviour to be something that improves over time. It will not be perfect at the start. They're already pretty fun to play with, but they do still need a ton of work

gaunt lotus
#

I'll also say that it will be extremely difficult to get them to play maps that are not default-esque arena maps to the same standard - the heuristics of even just simple navigation change a lot when you're dealing with gigantic/dense/weird maps. Even bad players are comparably very good at tuning signal to noise (I don't need to go over here for this item, I don't need to attack this player right now, etc.) but that's much more expensive and difficult for bots. Best case scenario is something on the rough intelligence level of Quake3's bots. They should be able to move around on them freely but teaching them to position and route intelligently is another matter entirely

But these might be harder mechanically to play against on higher difficulties than Quake3's, since RF is primarily a hitscan game.

brave crown
#

also these bots, unlike existing RF bots, will be very, very aware that the rail driver can kill through walls. Yes, I am an asshole

gaunt lotus
#

that's okay as long as they also dodge properly when the player is trying to rail them through a wall :>

brave crown
#

they can dodge your crosshair if I really want them to lol

gaunt lotus
#

we can talk about dodging when you get to it but yeah that should be something that they are capable of doing to some extent

brave crown
#

agreed. Long way to go before that behaviour is on the agenda, but yes definitely agreed

wraith comet
#

I play a lot of bot match in any game that lets me that has decent bots. I am pretty happy about this.

#

It lets me practice a lot more reliably since I won't need internet.

wraith comet
#

(Although if it's a problem people complain about, maybe have a server flag of some kind that disables that behavior?)

gaunt lotus
#

It would be like quake3. if you don't like the railer, kick xaero or don't add them

brave crown
#

the ff dm pub is up for a bit, running alpine bots on autogenerated waypoint grids as a test. No promises it works well, still obviously a WIP

#

but if you want to try playing against them, they're there at least for a bit

desert crown
#

they seem to have fire issues

#

is that expected

#

they sometimes don't fire at all

brave crown
#

What gun?

desert crown
#

hmg/shotgun so far

brave crown
#

Ive not seen that, unless they're out of ammo or something and need a reload, that's possible. I can't remember if I taught them how to reload

#

Will need to do that :p

desert crown
#

perhaps

brave crown
#

They should shoot properly most of the time though?

desert crown
#

single shots yeah

#

no automatics

brave crown
#

Huh o.o

desert crown
#

as in

#

they seem to tap fire

#

like u said the other day

brave crown
#

For SMG/ar/hmg?

desert crown
#

except the flamethrower lol

#

thats what iheard with hmg

#

havn't seen them use ar/smg

#

oh ok

brave crown
#

Play a bit more - that shouldn't be happening

desert crown
#

now the boti fired hmg properly

#

tbh i was spending the majority of the map running around trying to give the bots more path nodes

brave crown
#

Now they will stop firing when they lose los to target so maybe that's what you say before

desert crown
#

i know but their pathing improved over time so ๐Ÿ˜›

brave crown
#

The only thing they wouldn't know already would be how to fall off the second level down to the first

#

On that map

#

Oh and they won't know how to use the geo secret yet

desert crown
#

i blew it up and let them find the amp

brave crown
#

They will use it if you open it but they won't try to blow it

desert crown
#

from what i can see they try and optimise corners by hugging the wall

#

like it doesn't appear like they are heading to the middle of the hall they will aim at the corner and then just don't go around it properly (take longer)

#

i will say they are harder to beat now cuz they aren't doing the sreen shake shit anymore ๐Ÿ˜›

brave crown
#

For the record these are specifically configured as "middle of the road" currently - the piece to config/track personality and skill profiles is not working just yet