#Alpine Faction
1 messages ยท Page 5 of 1
weird
oh
oh
OH
i know what it was
i copied the properties
so it copied the file dest
my bad
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
Cool
Do you have something triggering that set_skybox event, like a when_dead? Don't think sky will appear til the event is triggered.
Add a when_dead and link it to the set_skybox.
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 )
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.
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)
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. ๐
Variety is the spice of life! The more options the better! ๐
i want it to be anchored because i want you to feel like you're moving through the space
in my DM02 theres far more opportunities to see the sky so XD
Then just make sure the anchor is dead center and keep realitive position to a minimum. On 2D skys you can't have the camera move too much or it breaks the illusion.

@brave crown alright next is dynamic lights
added a cloud layer aswell just to help sell the illusion ๐
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...
dont add more than 8 because goober effed up
actually wasn't anything I did at all :p but either way that's fixed now
not critical @brave crown but do you think the keyframe rotate axis line width could do with broadening slighty to be more visible
How come tribeam hit vclip looks so different in dx11 compared to dx9? ๐ค It like triples in size and gets extra spikey. ๐
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
I see. I think I prefer the more subtle DX9 look but I guess it is what it is. ๐
can the colour of it be changed?
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
how do you uncapp fps from 240
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
ah
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
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
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?
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
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
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?
clearly not multi
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 )
It doesn't work on listen servers, just works in SP and dedicated servers. Mentioned this a few months ago. Can't remember if you looked into it. ๐
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
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
also on this - generally anything i implement like this is restricted to only maps made after the change is made
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
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
Unless I'm misremembering, dedicated servers don't render particles apart from those from flamethrowers (for damage calculation)
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
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. ๐
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 ๐
is it only skyboxes?
i dunno if we've checked all glass kinda things
i never saw any messed up windows tho
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
Weird, so transparency renders very different in dx9 vs 11? I Can't see through the glass at all then in dx11, but dx9 it is very transparent. ๐ค
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
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.
Oh! That would make sense
So full dark + dark glass = no see, full bright+ dark glass = somewhat see
Crisis averted, we just have to spread the word that lightmaps work in skyboxes now so mappers light them how they want them to look. ๐
I'll let romek know in case he want's to do an update.
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 ๐
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
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
how does this affect the team modes 
here's the commands to control it
each team has its own splits
ah
this is not a "spectator team" - that will come later
this is just grouping of different types of players on the scoreboard
yeye ๐
gotcha
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)

@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?
they are yes
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
@brave crown i see you fixed the driller bits so you cant see inside them
when will anti aliasing be implemented for DX11 ?
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
that would probably also work
ill give it a go
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
nice that worked! thanks
hmm not sure if nuke town meant to be this dark? think @desert crown brought it up some time ago.
that map was made when the lightmap clamping floor was hardcoded, it may need a compatibility tbl
whats the rfl filename
Dm-NukeTown2050.rfl
will it be possible to have character model separate from the environment/background when applying picmip?
yea that's something that might need to change for it to be a more usable setting
I think the most practical split would be:
- World geometry
- Static meses
- Skeletal meshes
- 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
Is it possible to fix the msaa setting dropdown with using DX11. Having to do all that for turning AA is huge jank.
#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
It's really weird though. Like, you have a GTX 1080 right?
I do
Obviously it supports AA on DX11, no questions
Even my laptop integrated GPU supports AA in DX11
of course - that's my point, it is reporting that it doesn't even though it obviously does
I don't have Nvidia and they also report that they don't support AA
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
is this a yes ? ๐
yeah thats goober for yes
The background is accurate depiction of how the game looks like when using picmip setting.
r_fov
what does r stand for
rendering
k
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
Thank yoooo gooober
The colour
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 moversis 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_fpsavgui_scale_damage_notifyui_scale_player_labelui_scale_ping_labelcl_wh_flagoverdrawcl_wh_cpoverdrawui_scoreboard_split_spectatorsui_scoreboard_split_botsui_scoreboard_split_browsersui_scoreboard_split_idleui_scoreboard_simplesplitui_color_reticleui_color_reticle_lockedui_colorize_custom_reticlesui_scale_reticle
what caused ornaments to crash?
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
how did you figure that out,
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
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
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
you think many other old maps have this bug?
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
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 ?
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
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
did u intend to leave ping on in run servers
yes - ping is enabled for all players in run mode (not just your team obviously, since you have no team)
ok just checking
Those debug commands aren't functional in dx11 (other than light map). I should actually disable them though rather than crash
you doing that in multi or single ?
sp
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
๐ฉ
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
I've been looking into this... a few things
RF stock dynamic lights look like absolute shit ๐ DX11 lights look way nicer. Example:
(dx11 first, dx9 second)
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 AF1.2 stock (DX11)
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
Thats a massive improvement ! thanks for chasing this up.
oh @brave crown one last thing. prevent Full bright textures from going "geo dark" when geo is created
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
ok
lol, I never realized that "fullbright" in dx9 wasn't actually fullbright, but rather the level's ambient light level
is that the discrepancy in that snowglobe map?
i don't think so - pretty sure that's skybox lighting. but will check, good call
doesn't seem like it - that map has fullbright faces but none in the glass of the globe
was actually way easier than I expected lol
just skipped the in-game lightmap generation for faces with the fullbright flag (guessing this is something Volition forgot to do)
Hooray!
Btw, I always wondered what the deal is with that "texture" which only shows up when a surface is lit with stuff like muzzle flash lighting etc.
Reminds me of that "Detail Texture" feature from UE1 and if this quirk can be used to have similar Detail Texture feature for RF
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
Very bizarre
In UE, different surfaces can have different (appropriate) detail textures and I have a sweet spot for that feature ngl.
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. 
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
Weird, I have not noticed a difference between the way full bright looks in dx9 vs dx11. (Except in RED sometimes full bright doesn't appear full bright but is fine in game.) Will have to experiment later. You sure something didn't just break recently in dx9? ๐
pretty sure, I don't believe any lightmap application code has been changed for a very long time
if you could select a texture and add UID of a light you want to ignore, that would be helpful
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. ๐
i wonder if it's different for detail and/or mover brushes vs normal geometry
Doesn't appear to be. Most of those things are just normal geometry in Galileo and some are a mix of both detail and normal but full bright looks the same.
do you see the same if you group it out?
Not sure what you mean by group it out?
group out some of your geometry from that map into a new rfl
ah. let me try
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.
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
Yeah seems to be. DX11 the faces just do what you tell them to do no matter if they share a texture or aren't the majority. ๐
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.
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. ๐
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
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 moversis 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_fpsavgui_scale_damage_notifyui_scale_player_labelui_scale_ping_labelcl_wh_flagoverdrawcl_wh_cpoverdrawui_scoreboard_split_spectatorsui_scoreboard_split_botsui_scoreboard_split_browsersui_scoreboard_split_idleui_scoreboard_simplesplitui_color_reticleui_color_reticle_lockedui_colorize_custom_reticlesui_scale_reticlecl_hitsounds_min_intervalcl_gibchunkscl_gibvelocityscalecl_giblifetimems
Oh yeah we're turning this on
@crude oyster
- Add Ctrl + Khotkey in level editor to create links in the opposite direction from the standardK hotkey
Yeah no biggie, doesn't seem like an issue that really comes up in an actual edit considering I've never seen it before.
Ok now I'm actually done for v1.2.1 lol
added these commands
cl_gibchunkscl_gibvelocityscalecl_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)
when 32 players explode.
technochunk
I had nothing to do with any of this
Ooh!
C'mon!
Game Nights about to look explosive 
Alpine Faction v1.2.1 has been released! ๐ฅณ
Available here: https://alpinefaction.com/
https://www.redfactionwiki.com/wiki/Alpine_Faction_Release_Highlights
and this page is updated
Below are the most important highlights from each major Alpine Faction release. This page assumes you are already familiar with Red Faction, and prior versions of Alpine Faction, and is intended just as a "quick start guide" to summarize key features for each release.
IMPORTANT: This is not an exhaustive changelog!
This page only has what I feel...
Only explosive damage?!?!?!
๐ ๐
I can't say for certain...but I would guess there are a few PR/AR/HMG/RAIL/SNIPER WHORES out there that would LOVE gibbing for all damage types ๐
a server host could definitely configure that if they wanted to :p
[base.rules.gibbing]
enabled = true
all_damage_types = true
damage_threshold = 0
The gibbing settings aren't on https://dedi.alpinefaction.com (they will be shortly) but yeah those settings are available
something im experimenting with
can't wait to put it in the videos 
the rocket and c4 could be more of a flash than a fade
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
a fast fade then ๐
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
that should only happen when u baton them
i dont think lights really flash when u shoot them
they just stop being lights
tbf the mini explosion vclip that plays when you destroy a light seems to be suffice
i think if they explode they would :p
ehhh
maybe yeah
oaky well then you need to implement light_type
LEDs should just go out
maybe other types can ignite
:>
We had a bright idea and put a light bulb up against the destructive power of a bullet. What happens next? Only one way to find out. See more at gunclub.ea.com!
of course
ignore entities standing close to it lol
shoot a light and a guard runs screaming on fire
accidentally turning rf into an imsim
to be fair most LEDs still look pretty shit
well finish the HD object project and we could have
these values feel better I think
yeah that looks good
Good work. Though I notice that the first person model of C4 is fully lit, which shouldn't be the case.
hey are u playing on map that ive made ?
the audacity to just showcase it here
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
+1
i mean if u play 
come play rn ya punk
sorry speedrunning diff game xoxo
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_explosionflashweaponsandcl_explosionflashenv
on DX9 the light is kinda green
stinky
unless you make explosive lights exclusive to DX11 only
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
can you detect how many people are using DX11, do you have any percentages ?
No I don't have stats on that
It's not surprising, dx9 doesn't seem to really play nice with colour shades on dynamic lights, it tends to mess them up, best to stick with primarys if it needs to look the same on both. I've had to change light colours b4 because they looked good on dx11 but totally wrong on dx9. ๐
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
I would be sad if DX9 is removed though, since I have performance issues with DX11
you can use github actions to automatically provide rolling release builds, there's already actions set up but i don't think its set up to automatically upload the builds it generates
i don't think it would be removed anytime soon, DX9 is still very much the "full" working version, i think theres still a ways to go before we get there, and if someone like yourself who i think only really plays the SP (if you MP forgive me i just haven't seen you)
then you can feel free to stay on the latest version that sitll has dx9 
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
thinking the flickering should be toned down, and the fade out lasts a tad too long, but thought this was neat :p
those were my thoughts exactly. damn so cool to see though. Volition missed out on this. looks great amazing
yo goober, though you was going to reinstate the RED 1.0 lighting settings regarding dynamic lights
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
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
it's really damn cool to see the dynamic lights from the burning flailing entities illuminate other entities lol
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
lol absolutely support this ^

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.
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
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.
no way, you have nowhere near that many variables here
the most common preferences i guess
just stick with sane defaults and don't build out another wizard/config process to maintain
but yeah, I agree - well, other than restoring things that are objectively broken/crash/etc. of course but ya
if u end up implementing actually big gfx features like AO or something down the line then presets become more of a thing
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_roomscommand as described above
these rocks explode for some reason when shot at with explosives beginning of SP
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
confirm can't even hit them with guns 
Yeah default all new features to on or else people that aren't following this thread or the change logs won't even know they exist. ๐ Then if they don't like it, give an option in the menu to turn it off.
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?
Still missing 1 new dynamic light, the primary fire on the flamethrower could use one. ๐
That will require a bit of a different approach because of how muzzle flash lights work, but yeah it's on the list ๐
Hmm... I'm not sure about their intensity to be honest. They are a bit dimmer than DX9, but they also look way nicer and still seem to illuminate geometry fine I think?
Headlamps are not going to be DX11 exclusive though, no
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)
it is not out yet no, will be later today
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
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 ?
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?
yeh
yeye
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. ๐
Also the remote charge seems to always be full bright in DX11.
Hey goober, missed out on a beautiful electric blue dynamic light here:
you should probably get a version semantic cause if i were you i would put x.x.2 as an optional client patch but 1.2.2 updates RFL version so
the most common version semantic is https://semver.org/ which has incompatible API changes that dont work backwards marked as first number
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
What change did 1.2.2 bring that needed a new rfl version? ๐ค
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?
yep!
yeh
ye
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.
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
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...
like cloudberries
ive never eaten them : (
I vote "Pinus" for 1.4 for the lols
My friends and I had a different definition for that in high schoolโฆ
@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!
#workshop message
simply a copy pasting user error on my part fwiw 
Please do share said definition lol ๐
@brave crown Never thought you would run out of trees and have to rely on berries....but keep up the good work u maniac! ๐ 
can you name 1.3.1 as BaKeDaPPle in honor of all the stoners that play RF? aka @earnest iron ๐
@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?
@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
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.
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.
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. 
AF 1.2.2 (and all previous versions of RF PC):
Current AF dev build (what im working on):
Making the decal alpha property functional?
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)
@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 ๐
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
I guess you could just put a water texture on a mover ๐
yeah that was my concern
It also performs very very poorly for the record :p
This would be wayyyy easier to make presentable, id expect
@green cobalt i asked 
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
Run maps I can't think of any either but aquest has stuff like that in sp
Yeah multiple
O_o
In the Egyptian section
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
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
ahh yes, like waves of the threat
ye
thats not shabby
but it doesn't really achieve the goal of the water rising and therefore deadge
would just have to use restart level cmd alot ๐ brings me back to tony hawk pro skater and restarting mission 897379750 times
i think to really achieve what im thinking of would involve a TC server mod. anyways just an idea fart in the wind
fair
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
Spike also made Tomb Run which had part of the level fill with sand and you had to evade it.
very cool
Idk how much it would matter for a run map that the water isn't synced in mp. Movers already aren't synced
Neat. Although what would be more useful is adding an option to tile U & V instead of just U or V. ๐ There's been a couple times where I wanted to use a square tiled decal but couldn't.
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
I don't remember much about RF2, so not sure what you mean by light glow decals. ๐ค
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.
they're pretty handy for adding a "light" without needing to use lightmaps for it :p like if lightmap generation isn't cooperating for some reason. They also can be a really great way to reduce repetition on textures
RF2 uses them extensively
evidently RF2 had a much higher decal limit lol
I've seen RF2 maps with 500 decals
I guess they realized RED is really bad at calculating lighting but they were too lazy to fix it, so they just decided to up the decal limit and fake all the lighting instead. ๐
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
probably some kind of ps2 specific optimization
Airship sequence in RF2? You mean the gunship turret level right.
At any rate, it would be nice to have this limit raised for RF1 as well
@brave crown You know with DX11 being more stable with geo, have you tested how much can be done with geo?
You mean before the map disappears or such?
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
@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
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 
i haven't looked but probably not hard
in theory would just need to grab world velocity for the player entity and normalize it
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)
well that was easy
(it's not ready to be shipped at current, needs some more work lol but yeah)
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
yes
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?
hmi dont think so
you think it includes vertical?
yeah
wouldn't that make the ups balloon while youre coming down from a jump though
rather than stay constant if you dont move mouse
i kind of want to see my speed when falling at the end of run challenge 1
horizontal speed only now and lol the jump pad on pdm07
XD
im curious what this is lol
same tbh
Perfect, I will do some testing later today, I believe that this should solve the issue ๐ค๐
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? ๐ค
Sadly once u get used to doom eternals fast place playstyle. Every fps feels slow by comparson.
Even competitive multiplayer can feel slow
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.
Indeed. as I'm play testing my map now I keep trying to double jump over things and move around quick but can't. I haven't recalibrated back to RF speeds yet. ๐
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
Walking speed yeah it's definitely faster, Doom eternal regular movement is probably similar speed to default RF MP. It's all the other movement mechanics that make it feel so much faster. ๐ But yeah would be neat to implement some other movement mechanics in RF.
tbh it's easier to do in RF than it would be in many other games, since RF has purely clientside movement lol
Just need AF to give us some more variables for mods. ๐ Don't think there's any table edits I can make currently that will enable double jumping or short bursts of super speed? ๐ค
Lego multiplayer 2026 edition is gonna be lit! ๐
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
no worries, take your time, hope everything turns out ok, ๐
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 triggersoption added toAF_HealeventsAF_Healevents no longer incorrectly forwards received messages- IR scanner mesh culling fixed
- On-HUD speedometer (
ui_show_speed)
Community patch for Red Faction (2001) with modern features and many bug fixes - GooberRF/alpinefaction
@elfin moth ^
be sure you read the "Mappers" section closely
you didn't put the speed in it? or just not listed ๐
oops
๐
it is in, I forgot to list it - fixed

actually, does that work for vehicles? Just thought of that
it may need special handling for that
where is this "Mappers" section you speak of?
In the post above with the beta: #1376930844597551146 message
correct - it doesn't work, they need something else
double checked 
found a casualty of the DX11 lighting
silencer doesn't get adjusted like the rest of the weapon does
i know of 3 static meshes now that don't get proper lighting:
- Gibs
- Silencer
- Remote charge
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)
this ideally will change over time though
thanks for noting it, these all do need to be dealt with
fair
they're just not quite as high priority as some of the other lighting issues have been ๐
yah for sure
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
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
@elfin moth did you test the new version after? Just wanted to ensure the new approach met the feature request you had
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
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
I see,
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
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.
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)
looks white
eh
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)
Holy shit. That's kind of insane.
What all is being saved that would make it that large? I haven't seen that map before.
here, have a look ๐ The new format is plaintext readable
(though the format definitely isn't final, so don't try to load this savegame file on the eventual Alpine release that can load these)
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 
(also the reviewer just didn't explore enough)
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
gotcha 
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.
i really do wish i knew what caused the silencer XD
This is surprising, I did extensively test that both with triggers and items ๐ฎ though framerate likely does play a role, and I was testing in a blank map so that could perhaps be the source of the inconsistent behaviour. Hm
Understood. The first thing I will do when the eventual Alpine release comes out is try to load this.
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.
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
Well as long as that mod could be used at game night without requiring the server to run the mod or be configured with any special settings, then that could work. Otherwise probably wouldn't be worth the effort it would take to create the custom gibs for 20+ characters, since I'd want to use it specifically for game night. ๐
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
Neat! Didn't know that ability was added.
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
I just added the feature request to your never ending github list lol. ๐

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
I don't care because someone told me how to switch it off.
[base.rules.gibbing]
enabled = false
all_damage_types = false
damage_threshold = 0
Yeah that also needs to be added to the config builder on https://dedi.alpinefaction.com as an option, I just haven't gotten to it yet
A Switch that is on for switching off gibbing ?
It won't look quite like that, but yes
Switched on as default and would need to add code for disbaling gibbing when the switch is switched off ...
No, it'll be a section like spawn weapon
i like it being on by default tbh ๐คฃ
Maby find a way to make gibs a client side cosmetic option.
It already is - in MP the server decides whether clients can allow gibs. The client still decides whether they ultimately do
Via cl_gorelevel
oopsies
now we cant get here with
no player collision
enabled
yeah, that's the one map that needs to have collision manually turned back on in level-specific rules
no rush ๐ we went onto the next one ^_^
actually so sad, love seeing this map played
@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
It will advertise alpine, but dash users would be able to join right? no matter what version?
This is true, if your server isn't doing anything that explicitly requires Alpine. For example, gamemodes other than DM/TDM/CTF always require Alpine. Match mode always requires Alpine, so does no player collide, etc.
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
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 ๐
the "Server rules auto-require alpine" line means that because of some specific rule (like gametype = KOTH for example), Alpine is required
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
yea that makes sense lol
so i guess also things like:
spawn loadouts?
as you said before KOTH and other modes
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)
clear :>
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 ๐
The screen was flickering a little for me today too
in the boundaries?
Yeah
@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.
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
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.
it runs very well
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?
no i'm not a psychopath
I knew I still had a niche to fill.
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.
well, the controls on the deck include touchpads and the touch screen
so you technically do have a keyboard and mouse
That's fair game. Though I imagine it will be horrible.
for RED? yeah, probably
Which is exactly why I'm gonna do it.
generally it's not that bad for browsing and general tasks (consumptive tasks, at least)
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.
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
Lemme go ahead and move to #tech-talk so Goober doesn't smite me with his Canadian, syrup-scented wrath.
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
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
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 (
-nodlcmd line switch to disable) sv_loadpackfilesconsole 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
@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
@prisma dirge this thread
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
That's driven by ideal player count
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
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
PURPLE ? eww @desert crown
jk jk
also when new rf battlepass drops ?
LOL
Purple because it stands out :p
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
More manly purple worth of a Saint
what can i say he understands good colour scheming 
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? ๐ค
is there a command to download all the maps that are in rotation but not on server map folder
not a command, the server now automatically does that when you launch (unless you use the -nodl switch to turn that function off)
oh cool
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
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?
I'm honestly not sure, but will look into that logic when I get a sec to at least get an answer as to how it works
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
] 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.
Guess I need to upload the maps to FF.
Yeah please do ๐ Great to see you're making good use of that command ๐
Not needing to check 1032 maps manually is definitely nice
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.
yes please don't include that map in an actual rotation ๐
It could check maps in the SP category, just that map, because it's not intended to be played with more than 1 player, so autodl is intentionally disabled for it
doesn't make much sense to autodownload SP maps after all :p
Added to cobra
Just needs one way glass rail room
Well I have bots establishing a connection and spawning properly now... movement is going to be the hardest part of this, though
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?
"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?
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
are you referring to the FF pub or another server?
The bots the FF pub runs shouldn't have a rapid fire problem, and they also are subject to the same click limiter rate as all players
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
I believe that's afaction
Oh
I'm not sure if the click rate can vary - i don't think it can but I don't know how those bots are configured
Thanks anyway
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
... Found a way to start it using RED
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
How can I test the bots?
You can't yet, they're not ready, and the code isn't in the repo
What I showed above is added by the server with the command bot_add, but yeah the code isn't in the repo currently
Assuming you are planning to make it into a botmatch mode like how Quake 3/UT have. How will you manage to implement map navigation and if there is going to be bot navigation files, where will they be placed?
#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
didn't think we'd get dota2's OpenAI tech in RF in 2026 
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
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
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
@glacial storm for reference on how it works
(for the record this is still very beta)
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)
that will fix one of the biggest issues with the bots, the other thing you need to fix is the problem where the bots are too strong when up very close and too bad when at a distance
its the side effect of the way the aim shake works
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
when do you think they will be ready
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
will we all have access to it on servers
most likely
I will say tho that making good bots is an extensive undertaking, so this will absolutely be an iterative process
is there no way to reverse engineer the ps2 code to see how that was done?
Can't make any commitments with how they will work because it's still very early in the process. But I would like to simply have them built into the server so any server could add bots, yes
PS2 bots are just sp entities that can respawn - there's almost nothing about them that isn't in the PC game anyway
apart from the net code ๐
?
The PS2 has no online
๐ด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ
There is no netcode for them
Huh?? That is my answer literally every time
unless i'm mandelaing - its always been - theres no netcode for the bots from ps2
And for longer than 5 years :p
There's no netcode for bots period, including on the ps2
glass mousemat is gooood
excited for matches
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
what mouse feet do i get for glass
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
i heard you want a arm sleeve for glass but it seems fine without it so far
i always just burned through hyperglides and cans of pledge back in the day
I'm guessing hand sweat would catch up to you on glass?
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
straight vibing with my soft mouse pad 
are you still using same desk
yes
the one thats too small
deal with it 
bot functionality is coming along. Still very very basic
it doesn't seem to
it's not in a release yet
reeeeeee
what wizardy is that, guiding bots to their path nodes?
run this beta #1376930844597551146 message
are you familiar with the toml thing for not requriing mod to join server
i cant find the option on the website
nvm found it
im not
can u do a video without the grid? its impossible to see the bot ๐
i can after sure, but the bot navigating using the grid was kinda the point of the video ๐
Now the big question.. will there be an Alpine mode that'll make brushes mirrored instead of making it ourselves in the editor?
Idk if there will be a button in RED to mirror geometry, but you can already do it yourself with REDUX
What's Redux
#1376912225578647592
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.
redux can take a group file and mirror it
Goober stop being based challenge (impossible)
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?
to be frank if it works im sure aldaris will also drop the bots ๐
@desert 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
and this is what happens in a map that doesn't have a waypoint grid already built 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
That is a really cool system. Reminds me of what John Carmack wanted to achieve with Quake 3's bots back in the day.
I guess that means you gotta be careful unless you want to teach the bots some of your best stuff.
quake3's bots are better than this architecturally
They're some of my favorite bots ever.
I still regularly play botmatches in Quake 3 and Quake Live by myself.
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.
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
theoretically even if a map has a grid set by the author (a non get fucked bots grid) could players playing over time end up getting the bots in weird situations or will it have some kind of preference to the original grid?
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)
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
someone getting headjumped up into the sky
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
as current no - he knows he can't fly. But he still knows that is a route, and so he needs to evaluate whether he should take it. The answer will be no, but it's still a calculation he needs to run for no reason
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
bots definitely do need to know how to jump
i see
I was wondering. Will you add a functionality of some sort in RED or in-game, where mappers can define/create the bot pathnodes themselves.
Of course this won't help the already released maps, but would be good for new maps.
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
or in-game
Oh I missed this part. Yeah, a person can create a waypoint grid for a map using the system in-game for sure. Doesn't matter if the map was created 25 years ago or 25 minutes ago. Just not in RED
Maybe take some inspiration from Red Faction II's bots?
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.
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
when a geo happens, create a waypoint and join it to the grid so the bot knows about the new route
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 ๐
hm?
the waypoint is created by the explosion
there's no link going through the wall until the explosion makes the hole
ohhhh
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
autogeneration tbh is coming along very very well
You really putting your system through tough time I see (looking at FPS)
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
How are you storing these waypoints?
Are prebuilt waypoints being stored in the RFL file, an external waypoint file like Quake, or how do you handle that?
toml-based files in the user_maps\waypoints directory with the same name as the rfl file
That's a super smart way to go about it.
TOML is a good format for this usage case.
Are the auto-generated waypoints being stored in TOML as well, or just created on the fly dynamically each time the map loads?
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
I agree. That's why I was curious. So, you could generate a waypoint grid, then use that as a base for further tuning?
yes, or make one from scratch if you wanted to
Neato. That's really nice.
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
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.
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
Very good. I can see they're already shaping up to be more flexible than the PS2 bots.
(Which is fantastic.)
yeah the ps2 bots are SP AI, this doesn't use SP AI at all
Yep, the PS2 bots were very weirdly bashed together lol.
they were challenging because you had to use a controller lol
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.
I'm done yapping. Tell me about zones, please.
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
Ooooh. That's excellent. Essentially free intelligence without bloating the actual AI.
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
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.
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
Will TC mods be able to bundle in their own bot profiles?
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)
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
Oh, I meant the bots/personality settings themselves. But that's also a consideration for later, yes.
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.
they would not really be able to play legomp properly without significant legomp specific work
Oh, trust me, I know. That's why I want to see it. It would be funny.
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
it will probably have a wonky value matrix for the weapons in those mods, but apart from that it'd probably work fine
I don't expect it to have any problems with the PS2 TC at all.
likely not
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.
Good work, though, man. You're making something that was previously thought impossible, possible.
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.
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
^ 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
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.
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
that's okay as long as they also dodge properly when the player is trying to rail them through a wall :>
they can dodge your crosshair if I really want them to lol
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
agreed. Long way to go before that behaviour is on the agenda, but yes definitely agreed
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.
Hey, the rail exists and players can do it. Fair game. They are meant to simulate players to a degree.
(Although if it's a problem people complain about, maybe have a server flag of some kind that disables that behavior?)
It would be like quake3. if you don't like the railer, kick xaero or don't add them
Well, me? I want to get railed.
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
What gun?
hmg/shotgun so far
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
perhaps
They should shoot properly most of the time though?
Huh o.o
For SMG/ar/hmg?
except the flamethrower lol
thats what iheard with hmg
havn't seen them use ar/smg
oh ok
Play a bit more - that shouldn't be happening
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
Now they will stop firing when they lose los to target so maybe that's what you say before
You don't need to do that :p
i know but their pathing improved over time so ๐
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
i blew it up and let them find the amp
They will use it if you open it but they won't try to blow it
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 ๐
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
