This update introduces support for most content from Serious Sam Revolution, opens up new opportunities via intricate features and fixes a lot of annoying bugs from both the engine and the previous versions of the patch.
Check out the FAQ and the setup instructions before playing, as well as the rest of the wiki for the new commands and such!
Changes since 1.6.2
Introducing: Serious Sam Revolution support
- Implemented mounting of Serious Sam Revolution and its workshop via
SSRDir
andSSRWorkshop
config properties, just like The First Encounter.
Note
The First Encounter v1.05 patch only supports workshop mounting and doesn't support level conversion. It's mostly useful for content replacements and player models.
- Patched world info reading to support worlds from Revolution.
- Patched dictionary and file reading to support weird/incorrect file paths from Revolution.
- Revolution worlds can now be opened and edited in any Serious Editor of your choice.
Common changes
- Replaced CD path usage for The First Encounter installation directory with an entirely new game directory system.
- Reworked resource loading priority from different directories. Now instead of loading resources from GRO packages in an alphabetical order, they are loaded from GRO packages in this order:
- Mod directory.
- Mod directory on a CD.
- Extra content directories specified in
Data/ContentDir.lst
. - Root game directory.
- Directories of other game installations.
- CD path.
- Fixed streams not reading text lines correctly that didn't have a line break before EOF: SamClassicPatch/EnginePatches#1
- Patched entity creation method to allow non-existent classes (or class files) to be substituted with other ones, just like other resources.
- Fixed entity property type 29 (
EPT_DOUBLE
) from Serious Sam Revolution being read incorrectly. - Patches for world methods are now also applied in Serious Editor.
- Enabled full integration of patch functionality into tool applications, i.e. file system extensions and 64-bit system support via the new
FullAppIntegration
switch in the patch config. Works with both vanilla tools and Steam-patched ones. - Fixed file replacement upon reading entity properties not actually replacing anything.
- Made file replacement work during the game by reading the list with replacement entries from
Data/BaseForReplacingFiles.txt
.
- Made file replacement work during the game by reading the list with replacement entries from
- Implemented system with gameplay extensions from the patch for customizing gameplay experience:
- If the gameplay extensions are enabled for a new session, game saves and demos will write extra information into them that makes them incompatible with vanilla games (
gex_bEnable
command). On the contrary, vanilla saves and demos can be properly loaded and played. - Added patches for entity logic timers to fix the infamous slowdown bug (
gex_bFixTimers
command). - Added various settings for customizing player movement (only for custom mod entities).
- If the gameplay extensions are enabled for a new session, game saves and demos will write extra information into them that makes them incompatible with vanilla games (
- Added special interface for easier interaction with the patch via mods by including a single standalone header or by creating new config files.
- Added ability to create custom lists of game difficulties similar to level categories.
- Added array of constants that contains values of current input axes (
inp_afAxisValues[AXIS_CT]
commands). - Added shell function for retrieving index of a plugin by its display name (
GetPluginIndex()
command). - Fixed INI configs crashing upon trying to read empty values without surrounding quotes (e.g.
Key =
). - Patched sound objects to allow local (
SOF_LOCAL
) sounds to play properly instead of silencing/skipping them while playing with prediction turned on. - Prevented FOV from being unpatched on non-player views (
sam_bUseVerticalFOV = 2
) if the game isn't running (to align it with the projection).
Mod changes
- Rewrote map type determination to display the world map more reliably (which incorrectly displayed a TSE map for TFE levels sometimes): SamClassicPatch/Mod#3
- Ability to toggle big font in console or just last lines for better chat readability that also scales with resolution (
con_iBigFont
command). - Added local indicators for spawn invulnerability via an active power-up and a power-up sound (
plr_iSpawnInvulIndicator
command). - Fixed
Woman
class not actually detaching an attached kamikaze in the editor, if needed. - Fixed
Walker
not being removed from fuss forMusicHolder
after dying that kept the fight music active for another 10 seconds. - Added arrays for each controls axis (translation, rotation & view rotation) for mimicking joysticks using keyboard keys by adding values to them per local player (
ctl_afAddTranslation[3]
,ctl_afAddRotation[3]
andctl_afAddViewRotation[3]
commands). - Fixed Minor Bio-mechanoids (
WalkerSmall
) having rocket launcher attachments instead of lasers in NETRICSA. - Extended compatibility with The First Encounter levels:
- Added key types from The First Encounter.
- Rebalanced Highlander Reptiloid (
Beast
class) by lowering its health and attack run speed, and weakening its projectiles. - Prevent particles from
ParticlesHolder
from being hidden upon deactivation.
- Compatibility with Revolution levels:
- Aforementioned TFE key types.
- Added support for new blend modes to
BlendController
,WorldBase
andWorldSettingsController
. - Added support for new surface types (gravel, no impact versions etc.).
- Added cut down version of the "Serious Jump" powerup (acting more like an additional mode for "Serious Speed").
- Marked
gam_iQuickSaveSlots
as "persistent" to save its value inPersistentSymbols.ini
between sessions. - Applied vertical screen edge offset from "Advanced HUD" plugin (
ahud_iScreenEdgeY
command) to centered & pickup messages and "Analyzing..." label. - If
hud_bShowClock
is set to anything higher than1
, it will now display seconds as an extra.
Game changes
- Made update checks a bit more reliable and made it send only one request to GitHub every 6 hours. Otherwise it shows a prompt to download the version that was received within the last 6 hours.
- Added ability to create up to 16 custom difficulties for mods.
- Added new options for filtering levels in the list: by world format and by display title.
- Level filtering options can now also be toggled (
sam_bLevelFiltering
command).
Server changes
- Master server will not start upon starting the server anymore if server enumeration is disabled.
- Fixed an issue with player characters being copied and reset after loading an old quicksave: SamClassicPatch/CoreLib#9
Warning
This is fixed by simply forcing GUID masking to be disabled in all cases other than running a multiplayer server (not local split screen).
- If gameplay extensions are enabled, the server will now append its settings while replying to the client with the server's session state (something like custom session properties).
- Fixed entity property extension packets setting received values into float properties incorrectly.
- Declared entity flags (
ENF_*
) and entity physics flags (EPF_*
) exactly how they are in Serious Engine code as extra shell constants for use with entity extension packets. - Added support for server administrators and server operators that can log in using
!login
chat command during the game with passwords configured by the server (ser_strAdminPassword
andser_strOperatorPassword
commands). - Added
!rcon
chat command for server operators for executing console commands on the server side. - Added
!save
chat command for server operators for saving a game on the dedicated server's computer (like pressing "SAVE" in the menu).
Other changes
- Added shell commands for replacing individual ammo types (
sutl_iAmmoType<0 - 30>
commands) or all of them at once (sutl_iReplaceAmmo
command) to "Server Utilities" plugin. - Changes to the "Advanced HUD" plugin:
- Added display of remaining lives (credits) above the messages in Cooperative mode in the style of early builds of Serious Sam Xbox (
ahud_bShowLives
command). - Removed the gap between the messages and the screen edge.
- If
hud_bShowClock
is set to anything higher than1
, it will now display seconds as an extra.
- Added display of remaining lives (credits) above the messages in Cooperative mode in the style of early builds of Serious Sam Xbox (
- Adapted a bunch of code for 1.10 engine version and specifically Serious Sam Revolution.
- Added an experimental build configuration for building the project under the Serious Sam Revolution engine.
- SamClassicPatch/WorldEditor#2 issue seems to have resolved itself a few releases ago and doesn't seem to happen anymore, so it is temporarily marked as fixed. If you encounter further issues with it, please leave a comment on that issue.
- Added button to context menu of any terrain editing mode for exporting the height map of a terrain that's usable on terrain primitives/brushes (next to 8-bit/16-bit export buttons).
Known issues
Installation
- Download desired version of the patch (
TFE1.05_<date>.zip
orTSE1.07_<date>.zip
for Steam). - Navigate to the game folder and extract contents of the ZIP archive into it.
- Agree to replace existing files (original unmodified copies of the files are included with an
_OG
suffix at the end of the name). - (Optional) Download
SE1_ClassicsPatch_RUS.gro
and drop it into the game folder to install Russian localization.