github SamClassicPatch/SuperProject 1.7
1.7 update - "Compatibility Mode"

latest releases: 1.9, 1.9-pre1, 1.8...
12 months ago

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 and SSRWorkshop 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:
    1. Mod directory.
    2. Mod directory on a CD.
    3. Extra content directories specified in Data/ContentDir.lst.
    4. Root game directory.
    5. Directories of other game installations.
    6. 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.
  • 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).
  • 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 for MusicHolder 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] and ctl_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 and WorldSettingsController.
    • 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 in PersistentSymbols.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 than 1, 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 and ser_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 than 1, it will now display seconds as an extra.
  • 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

  1. Download desired version of the patch (TFE1.05_<date>.zip or TSE1.07_<date>.zip for Steam).
  2. Navigate to the game folder and extract contents of the ZIP archive into it.
  3. Agree to replace existing files (original unmodified copies of the files are included with an _OG suffix at the end of the name).
  4. (Optional) Download SE1_ClassicsPatch_RUS.gro and drop it into the game folder to install Russian localization.

Don't miss a new SuperProject release

NewReleases is sending notifications on new releases.