I just made a simple test map with the same rain properties as you and couldn't see any issues. They stay inside the func_rain entity fine.
map:
Code:
{
"ambient" "50"
"classname" "worldspawn"
// brush 0
{
( 240 100 612 ) ( 44 100 612 ) ( 44 -120 612 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
( 44 -100 620 ) ( 44 120 620 ) ( 240 120 620 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
( 52 -176 760 ) ( 248 -176 760 ) ( 248 -176 616 ) general_industrial/basecrete_seem_paint 0 -8 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
( 256 -104 760 ) ( 256 116 760 ) ( 256 116 616 ) general_industrial/basecrete_seem_paint 0 -8 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
( 232 344 760 ) ( 36 344 760 ) ( 36 344 616 ) general_industrial/basecrete_seem_paint 0 -8 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
( -44 116 760 ) ( -44 -104 760 ) ( -44 -104 616 ) general_industrial/basecrete_seem_paint 0 -8 0.00 0.500000 0.500000 0 0 0 +surfaceparm detail
}
// brush 1
{
( 256 352 832 ) ( -280 352 832 ) ( -280 -168 832 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
( -280 -168 840 ) ( -280 352 840 ) ( 256 352 840 ) common/caulk 0 16 0.00 0.500000 0.500000 0 160 0
( -280 -176 840 ) ( 256 -176 840 ) ( 256 -176 512 ) common/caulk 0 16 0.00 0.500000 0.500000 0 160 0
( 256 -168 840 ) ( 256 352 840 ) ( 256 352 512 ) common/caulk -16 16 0.00 0.500000 0.500000 0 160 0
( 256 352 840 ) ( -280 352 840 ) ( -280 352 512 ) common/caulk 0 16 0.00 0.500000 0.500000 0 160 0
( -280 352 840 ) ( -280 -168 840 ) ( -280 -168 512 ) common/caulk -16 16 0.00 0.500000 0.500000 0 160 0
}
// brush 2
{
( 256 -176 504 ) ( -280 -176 504 ) ( -280 -184 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 -184 832 ) ( -280 -176 832 ) ( 256 -176 832 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 -184 832 ) ( 256 -184 832 ) ( 256 -184 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 -184 832 ) ( 256 -176 832 ) ( 256 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 -176 832 ) ( -280 -176 832 ) ( -280 -176 504 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
( -280 -176 832 ) ( -280 -184 832 ) ( -280 -184 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
}
// brush 3
{
( -280 344 504 ) ( -288 344 504 ) ( -288 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -288 -176 832 ) ( -288 344 832 ) ( -280 344 832 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -288 -176 832 ) ( -280 -176 832 ) ( -280 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 -168 832 ) ( -280 352 832 ) ( -280 352 504 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
( -280 344 832 ) ( -288 344 832 ) ( -288 344 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -288 344 832 ) ( -288 -176 832 ) ( -288 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
}
// brush 4
{
( 256 352 504 ) ( -280 352 504 ) ( -280 344 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 344 832 ) ( -280 352 832 ) ( 256 352 832 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 344 832 ) ( 256 344 832 ) ( 256 344 504 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
( 256 344 832 ) ( 256 352 832 ) ( 256 352 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 352 832 ) ( -280 352 832 ) ( -280 352 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 352 832 ) ( -280 344 832 ) ( -280 344 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
}
// brush 5
{
( 264 344 504 ) ( 256 344 504 ) ( 256 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 -208 832 ) ( 256 312 832 ) ( 264 312 832 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 -176 512 ) ( 264 -176 512 ) ( 264 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 264 -176 512 ) ( 264 344 512 ) ( 264 344 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 264 344 512 ) ( 256 344 512 ) ( 256 344 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 344 512 ) ( 256 -176 512 ) ( 256 -176 504 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
}
// brush 6
{
( 144 144 504 ) ( -168 144 504 ) ( -168 -176 504 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -168 -176 512 ) ( -168 144 512 ) ( 144 144 512 ) general_industrial/basecrete_seem_paint 0 0 0.00 0.500000 0.500000 0 0 0
( -168 -176 512 ) ( 144 -176 512 ) ( 144 -176 416 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 256 -168 536 ) ( 256 152 536 ) ( 256 152 440 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( 176 344 512 ) ( -136 344 512 ) ( -136 344 416 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
( -280 160 512 ) ( -280 -160 512 ) ( -280 -160 416 ) common/caulk 0 0 0.00 0.500000 0.500000 0 160 0
}
}
// entity 1
{
"classname" "func_rain"
// brush 0
{
( 240 116 620 ) ( 44 116 620 ) ( 44 -104 620 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
( 44 -108 764 ) ( 44 112 764 ) ( 240 112 764 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
( 44 -176 764 ) ( 240 -176 764 ) ( 240 -176 748 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
( 256 -108 764 ) ( 256 112 764 ) ( 256 112 748 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
( 232 344 764 ) ( 36 344 764 ) ( 36 344 748 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
( -44 132 764 ) ( -44 -88 764 ) ( -44 -88 748 ) common/rain 0 0 0.00 0.500000 0.500000 0 128 0
}
}
// entity 2
{
"origin" "-144 232 728"
"classname" "light"
}
// entity 3
{
"origin" "-248 80 528"
"classname" "info_player_start"
}
// entity 4
{
"origin" "72 224 728"
"classname" "light"
}
// entity 5
{
"origin" "-176 -24 728"
"classname" "light"
}
// entity 6
{
"origin" "80 -40 728"
"classname" "light"
}
script:
main:
level waittill prespawn
level waittill spawn
level.rain_speed = "32"
level.rain_speed_vary = "16"
level.rain_length = "2"
level.rain_width = "1"
level.rain_density = "200"
level.rain_slant = "-10"
level.rain_min_dist = "1800"
level.rain_numshaders = 12
level.rain_shader = "textures/snow0"
end