Skip to content

Mod Descriptions

data-bomb edited this page Sep 5, 2024 · 102 revisions

Silica Logo

Getting Started with Mods

Installing Mods

To install any MelonLoader mod, place the .dll file in the Silica\Mods directory. Any specialized installation instructions will be mod-specific and found below.

Note

The server must be offline before replacing any existing mods. Any new mods that are added while the server is running will not take effect until the next server restart.

Tip

Most of the mods discussed here are included in the Releases section; however, some are external mods made by other developers in the Silica or MelonLoader communities. In these cases, a link is provided in the title of the mod to the download location for those mods.

Prerequisites

Caution

All of the mods in the release package require the Admin Mod (Si_AdminMod.dll) to be installed in the Silica\Mods directory. Not installing Admin Mod will result in failures of the other mods.

Adjusting Mod Preferences

If a mod creates a preference then this will appear in the MelonLoader preferences file: Silica\UserData\MelonPreferences.cfg. Most mods will place their preferences under the Silica category. In order to have the preference appear in the preferences file the mods must be loaded and then the server must be cleanly shut down. One of the last lines you'll see in the server console when cleanly shutting down the server is: Preferences Saved! which means that the preferences file was updated and any missing preferences were placed in there with the default values.

Important

It is not possible to adjust preferences in the preference file when the server is running. If a host needs to adjust a preference on-the-fly then there is a command to do that in the server console.

Mod Descriptions

Admin Mod

This is the central mod that provides limited API capabilities to the other mods for registering commands and certain events such as when someone selects to be a commander or when someone sends a chat message.

Host Commands

Note

These commands must be entered using the Server Commander or similar application (SilicaServerCommander.exe)

  • sam_say <message> will relay a text message to the player's on the server and say that the message is from the SERVER CONSOLE
  • sam_addadmin <player> <powers> <level> will find the targeted player and assign them the admin powers and level desired
  • sam_cvar <preference-name> [optional: new-value] will find a current preference by its name and allow the host to see the current value or set a new value without needing to restart the server

Tip

The cvar command must include the exact name of the preference found in MelonPreferences.cfg and it is case-sensitive

Preferences

  • Admin_AllowTeamChatCommands (default: false), if enabled, will recognize commands when they're entered in the team chat. if disabled, only commands entered in all-chat will be recognized.
  • Admin_VoteDuration_Seconds (default: 30), is the number of seconds a vote will last before the ballot box is closed and votes are counted
  • Admin_ReplicateCheatsForPrivateServers (default: true), if enabled, will mask whether or not cheats has been enabled/disabled by an admin
  • Admin_EnableDebugLogging (default: false), if enabled, will log extra messages to the Latest.log file for troubleshooting purposes

Important

On public servers (e.g., servers that are not password-protected), when an admin enables/disables cheats then all players are notified in chat of the change to ensure a level of fairness and honesty is maintained.

  • Admin_PreventNonAdminCheats (default: false), if enabled, will only tell players who are an admin whether cheats has been enabled

Warning

If Admin_PreventNonAdminCheats is disabled then whenever cheats has been turned on by an admin then all players can execute several cheat commands locally which may persist long after cheats has been turned back off by the admin. A non-exhaustive list of possible exploitable commands are as follows:

team
dayscale
sunscale
moonscale
fog
health
damagegrid
damagedebug
lights

AFK Manager

The AFK manager performs a check every 60 seconds to see if any players have not joined a team. If they haven't joined a team then they fail the AFK check. After a certain number of consecutive AFK checks have failed then that player will be deemed AFK and may be kicked, depending on the host's settings.

Important

Because the AFK check is rather rudimentary, players will not be deemed as being AFK until after a map switch occurs and they still have not selected a team. Movement and angle-based AFK checks are possible and may be added in the future.

Admin Commands

  • !kick<player> will remove the current player from the game server and they are free to rejoin
  • !afk can be used to immediately kick all players who have been deemed AFK

Tip

The !afk admin command is useful when AFK_KickIfServerNotFull is false but the admin wants to clear out room on the server to increase performance.

Preferences

  • AFK_KickIfServerNotFull (default: false) If enabled, any AFK players are immediately kicked once they've been deemed AFK. If disabled, players who are deemed AFK are only kicked as a last resort when the server only has 2 or less free player slots available.
  • AFK_MinutesBeforeKick (default: 7) is the number of consecutive checks that the user must be away before being deemed as AFK. Players deemed AFK are not necessarily immediately kicked (see above).

Announcements

The server will broadcast a message from the list of announcements. Announcements are broadcast one line at a time to all players on the server. The next announcement is chosen by looking to the next line in the list of announcements.

Announcements File

The file is a simple text file located in Silica\UserData\announcements.txt. Each line of the text file corresponds to one announcement.

Tip

The announcement lines can contain colors and other style choices using the Unity markup system.

Note

To match the markup of the mod [SAM] chat messages, refer to the lines found here.

Preferences

  • Announcements_SecondsBetweenMessages (default: 420) will wait the specified number of seconds before sending another chat announcement to the players
  • Announcements_ShowAnnouncementWhenLastChatWasAnnouncement (default: true)

Anti-Grief

This provides some basic anti-grief mechanisms. Some of these interventions are simply raising awareness of the issue to everyone in chat so players can recognize and moderate their own behavior. Here are the current anti-grief mechanisms:

  • When a player team-kills another player then a chat message is sent alerting everyone of the teamkill
  • When a player accumulates too many negative kills (e.g., joining the server and killing all teammates in sight) then they are kicked or banned
  • When a player destroys a friendly structure then a chat message is sent alerting everyone of the destruction
  • When an Alien player attempts to use "T" to despawn a high-value Alien unit then this is prevented and chat is alerted to the potential malicious activity
  • When an Alien player attempts to takeover a Shrimp, it can be prevented depending on the server's preference settings.

Note

Alien units are considered high-value units when they cost 500 biotics or higher (e.g., Hunter or higher).

Preferences

  • Grief_NegativeKills_Threshold (default: -125) is the lowest permitted Kills score a player can have before they are either kicked or banned
  • Grief_NegativeKills_Penalty_Ban (default: true), if enabled, will issue a ban for any player which reaches the threshold value
  • Grief_IgnoreFriendlyNodesDestroyed (default: true), if enabled, will withhold any friendly structure destruction for the Alien's Node.
  • Grief_BlockShrimpTakeOver (default: false), if enabled, will block takeover of any shrimp by players.

Tip

Alien's nodes are relatively cheap and intentionally destroying them can be a valid tactic to hide portions of the Alien's network. As such, keeping the Grief_IgnoreFriendlyNodesDestroyed preference enabled is encouraged.

Basic Banlist

Retains a memory of kicked players across server instances in a JSON file. Allows admins to both ban and unban players.

Admin Commands

  • !ban <player> or !kickban <player> will kick the target player and add them to the banned users list so they will be kicked whenever they attempt to rejoin the server
  • !banid <Steam64> <playername> will ban an offline player based on the provided Steam64 ID as well as the player's name.
  • !unban <playername | Steam64> will unban based on either a name or Steam64 ID provided

Tip

When using the !unban command, the provided parameter must match exactly either the OffenderName or the OffenderSteamId of an entry found in the banned_users.json file or the unban will not be processed.

Ban File Location

If anyone has been banned then the information is stored in the Silica\UserData\banned_users.json file.

Note

The banned users file is only read once when the server is starting up. Any bans entered manually when the server is online will likely be overwritten. To add a manual ban when the server is online then use the !banid command.

Ban File Format

The file format is a JSON file and each ban captures the Steam ID, name, time, and any optional comments.

[  
  {
    "OffenderSteamId": 76561199481137087,
    "OffenderName": "just_emil",
    "UnixBanTime": 1685631735,
    "Comments": "cheat developer from Denmark"
  },
  {
    ...
  }
]

Preferences

  • Ban_HostKickButton_Permabans (default: false), if enabled it will cause Listen Servers to trigger a permanent ban whenever the host clicks the Kick button from the player scoreboard screen (seen when hitting the Tab in-game).

Warning

When this is enabled then other kick actions on the server (such as kicks caused by the Anti-Grief mod) will result in bans rather than kicks. This should remain disabled for dedicated servers.

Basic Team Balance

Only allows players to cause so much team imbalance; otherwise, this mod will deny the player's request to switch teams. The maximum permissible imbalance (measured in player count difference between the most-crowded and least-crowded teams) is determined by the formula below. The formula allows a greater level of flexibility to allow more or less imbalance with the server population; however, a tip is provided to emulate a simpler balance style which only permits a constant level of imbalance across all server populations.

Admin Commands

  • !team [optional:<player>] <teamname> moves a player to a specified team by name. If no playername parameter is specified then it's assumed the admin using the command should have their team switched.

Global Preferences

  • TeamBalance_Prevent_EarlySwitching (default: false), if enabled, will prevent anyone from switching teams once they're on a team in the early portion of the game
  • TeamBalance_Prevent_EarlySwitching_For_Seconds (default: 75), specifies the number of seconds after the round beguns that the mod should prevent a player from switching teams

Balance Formula

$\lceil \frac{\text{Number of Players on Server}}{\text{Team Divisor Value}} + \text{Team Addend Value} \rceil \forall x [0,54]$

Important

Team divisor values must be greater than zero to avoid exceptions. Addend values should not be negative but can be 0 or higher.

Balancing Two-Team Games

  • TeamBalance_TwoTeam_Divisor (default: 8.0) is the team divisor value that will be used for any game that has two active teams
  • TeamBalance_TwoTeam_Addend (default: 1.0) is the team addend value that will be used for a game that has two active teams

Two Team Balance Plot

image

Note

The x-axis represents the total number of players in the server while the y-axis represents the maximum difference between the least-crowded and most-crowded team before it's deemed to be an imbalance.

Balancing Three-Team Games

  • TeamBalance_ThreeTeam_Divisor (default: 10.0) is the team divisor value that will be used for any game that has three active teams
  • TeamBalance_ThreeTeam_Addend (default: 0.0) is the team addend value that will be used for a game that has three active teams

Three Team Balance Plot

image

Tip

As an alternative, if the host would like to enforce a maximum of 2 player difference between teams on either two or three-team variants (regardless of the number of current players on the server), the divisor would be set to the maximum player count (54) and the addend would be set to 1. The balance plot to enforce max 2-player differences.


Better Spawns

This allows the host to change the location of where player's respawn to. Currently each HQ in the game adds 16 spawn points while each Barracks adds only 4 spawn points, and the default spawn methods choose a random spawn point. So, unless there are 4 Barracks for each HQ then players are more likely spawned at an HQ location. This provides the host options to change the behavior and favor a Barracks location as the initial spawn.

Preferences

  • BetterSpawns_Humans_SetReselectSpawns (default: true), is triggered whenever a Human player uses 'T' to respawn, and (if enabled) this will find a random barracks
  • BetterSpawns_Humans_SetInitialSpawns (default: true), is triggered whenever a Human player respawns, and (if enabled) this will find the closest barracks to where they died
  • BetterSpawns_Aliens_SetReselectSpawns (default: true), is triggered whenever an Alien player uses 'T' to respawn, and (if enabled) this will find a random Lesser Spawn
  • BetterSpawns_Aliens_SetInitialSpawns (default: true), is triggered whenever an Alien player respawns, and (if enabled) this doesn't do anything yet. eventually I want to make a smarter algo to find Lesser Spawns closer to Greater+ Spawns so Alien players can get back into the fight quicker

Chat Silence

Allows admins with Mute power to be able to control whether a player can send text chat messages to any other players on the server.

Admin Commands

  • !silence <player> will stop the server from relaying any chat messages from the targeted player for their player session
  • !unsilence <player> will re-allow the targeted player to communicate to others via chat messages
  • !mute <player> will stop the server from relaying any voice messages from the targeted player for their player session
  • !unmute <player> will re-allow the targeted player to communicate to others via voice messages

Commander Management

Primarily, this changes the selection of the commander from a first-come, first-serve model to a random lottery where players can throw their hat in if they'd like to take on a commander role and the server will randomly select one name from the hat to start the round as commander for each team. It also adds administrative control over who can act as a commander and allows manual demotion of a team's current commander. Lastly, players have an option to trigger a mutiny against their current commander to demote them.

Note

In order to encourage more participation, the mod will silently remove anyone who won the commander lottery the last round from winning the commander lottery again. Effectively preventing a commander from being chosen for two consecutive rounds.

Caution

Any player who throws their hat into the commander lottery system will temporarily be in freecam mode for the first ~15 seconds until the round begins. This could be abused by applicants and work-arounds are being investigated.

Admin Commands

  • !commanderban <player> will prevent the targeted player from taking on the commander role (both from lottery and by directly picking the role)
  • !removecommanderban <player> will remove a player that's on the server from the commander bans file so they can freely play as a commander again
  • !demote <team> will find the commander for the targeted team and send them back to an Infantry role

Player Commands

  • !commander will check if the player has thrown their hat in for the commander lottery. If they have then it removes their hat and they will play as Infantry. If they haven't then it throws their hat in so they have a chance at being selected.
  • !mutiny will make the player a mutineer against their current commander. If enough players are mutineers then it triggers a mutiny where the commander is demoted.

Commander Ban File Location

If anyone has been banned from the commander role then the information is stored in the Silica\UserData\commander_bans.json file.

Commander Ban File Format

The file format is a JSON file and each ban captures the Steam ID, name, time, and any optional comments.

[  
  {
    "OffenderSteamId": 76561198872740506,
    "OffenderName": "Torva",
    "UnixBanTime": 1685944790,
    "Comments": "banned from playing commander by databomb"
  },
  {
    ...
  }
]

Preferences

  • BlockRoundStartUntilCommandersApplied (default: true), if enabled, will reset the game start countdown timer to 25 seconds until all teams that have players on them have someone willing to step up to be the commander
  • CmdrMgr_CommanderResponses_TeamOnly (default: false), if enabled, will only send chat messages about who has applied for commander to teammates rather than the whole server

Warning

Many players will not be on a team yet, so if CmdrMgr_CommanderResponses_TeamOnly is enabled then many people may never see who has applied for commander even for their own team.


Default Spawn Units

This allows the host to override the default spawn units based on the team's current tech tier level.

Preferences

  • DefaultSpawn_Human_TechTier_0 (default: "Soldier_Scout")
  • DefaultSpawn_Human_TechTier_I (default: "Soldier_Rifleman")
  • DefaultSpawn_Human_TechTier_II (default: "Soldier_Rifleman")
  • DefaultSpawn_Human_TechTier_III (default: "Soldier_Rifleman")
  • DefaultSpawn_Human_TechTier_IV (default: "Soldier_Commando")
  • DefaultSpawn_Alien_TechTier_0 (default: "Crab")
  • DefaultSpawn_Alien_TechTier_I (default: "Crab_Horned")
  • DefaultSpawn_Alien_TechTier_II (default: "Wasp")
  • DefaultSpawn_Alien_TechTier_III (default: "Wasp")
  • DefaultSpawn_Alien_TechTier_IV (default: "Wasp")

A plugin that provides Discord Rich Presence Status for the server.

image

Installation

This is a plugin, so place the DLL in the Plugins\ directory rather than the Mods directory.


Eject Player

Provides an admin command to remove a player from their vehicle.

Admin Commands

  • !eject <playername> will eject the targeted player from the vehicle they're driving

End Round

Provides a simple couple mod admin commands as an alternative to the in-game admin endround console command.

Admin Commands

  • !endround or !endgame will immediately force the round to end

Can automatically change the priority of the game executable upon launch

Preferences

  • SetGamePriorityToHigh (default: false) will elevate the CPU priority of the server if set to true

Logging

The main feature of the logging mod is to generate log files in the Half-Life Log Standard format and replicate the log details to the server console for the host to see. The mod also adds an optional kill feed in the player's console as well as an option to capture performance data from the server at regular intervals.

Location of Log Files

  • Logs are stored in the Silica\UserData\logs\ directory with filenames in the format LyyyyMMdd.log

Preferences

  • Logging_LogDamage (default: false) will log all player-involved damage to the log file. Given the number of players on some servers this can contribute to a degradation of performance with too many calls to write damage entries to the log file.
  • Logging_LogKills_IncludeAIvsPlayer (default: true) will log a kill if a player kills or dies to an AI-controlled unit
  • Logging_PlayerConsole_Enable (default: true) will enable sending certain log events to each player's console
  • Logging_PerfMonitor_Enable (default: true) will enable recording performance data from the server into a CSV file
  • Logging_PerfMonitor_LogInterval (default: 60.0) is the number of seconds between when performance data is captured
  • Logging_ParserExePath (default: "parser.exe") is the name of the parser file to parse stats from the logs\ files

Tip

While the performance monitor logging is not resource-intensive, it's only recommended to capture data at most every 10 seconds to avoid unweildly CSV file sizes.

Performance Monitor

If the Logging_PerfMonitor_Enable preference is turned on then the following information is logged to the Silica\UserData\PerfMonitorData.csv file:

  • Unix Time
  • Server FPS
  • Player Count
  • Structure Count
  • Construction Sites Count
  • Network Component Count
  • Unit Count
  • Units with Lights On Count
  • Upload Rate (Kbps)
  • Download Rate (Kbps)

Player Console Logging Events

If the Logging_PlayerConsole_Enable preference is turned on then the following events are broadcast to all players's console:

  • Round End Victory
  • Round End Draws
  • Round Starts
  • Team joins/changes
  • Player-involved kills/deaths
  • Player disconnects
  • Map Changes

The following events are broadcast to only teammates' console:

  • Players killing structures

Mapcycle

This adds a basic mapcycle feature as well the rock the vote feature allowing players to change the map to what they desire without an admin present.

Admin Commands

!map <mapname> will immediately switch to the specified map

Player Commands

  • rtv or !rtv or rockthevote or !rockthevote will trigger a map vote when enough people register to vote.
  • !nominate <mapname> will add a specified map to the map vote if enough people register to vote
  • nextmap will say what the next map is the mapcycle and the number of rounds left before the map change will occur
  • currentmap will say what the current map is

How Many Players Needed to Rock the Vote

The number of players needed to register via rtv depends on the number of players on the server.

image

Mapcycle File

The mapcycle file is located in Silica\UserData\mapcycle.txt and contains one line for each map in the mapcycle. If mapcycle.txt does not exist then a default mapcycle is added, which is:

RiftBasin
GreatErg
Badlands
NarakaCity

Note

Changing the mapcycle file requires the server to be offline for the changes to be recognized.

Preferences

  • Mapcycle_RoundsBeforeMapChange (default: 2) is the number of rounds that are played on the currentmap before an automatic mapchange to the nextmap in the mapcycle
  • Mapcycle_DelayBeforeEndgameMapChange_Seconds (default: 9) is the number of seconds to wait before switching to the nextmap in the mapcycle after the Mapcycle_RoundsBeforeMapChange'th round ends
  • Mapcycle_RockTheVote_PercentNeeded (default: 0.31) is the percentage of the current players on the server that are needed to trigger a rock the vote event

No Unit Limits

Allows hosts to adjust the unit limits for a dedicated server. For listen servers this isn't necessary since there is an in-game slider that allows adjusting these values.

Caution

Server performance can be severely degraded if the UnitCap is set to 0. This is compounded on larger maps such as NarakaCity and in versus modes with the most teams (e.g., Humans vs Humans vs Aliens). Only attempt to set infinite units on top-of-the-line CPUs and only leverage performance cores.

Preferences

UnitCap (default: 0) specifies the unit limits. See table below for what value to select.

UnitCap Value Max Human Infantry Max Human Vehicles Max Small Aliens Max Large Aliens
0 inf. inf. inf. inf.
1 30 60 60 120
2 60 120 120 240
3 90 180 180 360
... ... ... ... ...
n 30*n 60*n 60*n 120*n

Repair Facility

Creates a repair zone for Human vehicles at Light Vehicle Factories. Each Light Vehicle Factory has two human-sized doors that open, and to begin repairing vehicles players will need to park the vehicles next to either of the two doors.

image

Preferences

In addition to creating a vehicle repair capability, the mod also allows fine-tuning of all of the repair rates that are built into the game. The default rates are the ones that are set in the base game (as of game version 0.8.57). Each preference value is the percentage of the unit's total health that will be healed every healing cycle. The game and the mods healing cycle is set to trigger once every 5 seconds. (e.g., 1.15% is represented as 0.015).

Tip

Valid HealRate values range between 0.0 and 1.0; although, only smaller values (e.g., less than 2-4%) are practical to avoid units which can heal faster than they can be damaged.

  • RepairFacility_HumanInfantry_HealRate (default: 0.015)
  • RepairFacility_Alien_SmallUnit_HealRate (default: 0.02)
  • RepairFacility_Alien_MediumUnit_HealRate (default: 0.012)
  • RepairFacility_Alien_LargeUnit_HealRate (default: 0.01)
  • RepairFacility_Alien_Queen_HealRate (default: 0.01)
  • RepairFacility_Alien_Structure_HealRate (default: 0.01)
  • RepairFacility_HumanVehicle_HealRate (default: 0.035)

Resources

Provides several knobs for hosts to dial in for balance related to the resources.

  • Provides a way to adjust the starting resources for aliens versus human-based teams.
  • A non-cheat admin command to adjust resources for a team.
  • A way to reveal the closest resource point when the round starts for each team.

Admin Commands

  • !resources <amount> [optional:<teamname>] will give (or take) the specified whole number of resources from a team. If no team is specified then the resources are given (or taken) from the admin's current team

Important

The !resources admin command can only be used to give up to the resource capacity of a team (e.g., the command cannot be used to provide 99999 resources to a team like the built-in cheat command does).

Preferences

  • Resources_Centauri_StartingAmount (default: 8000)
  • Resources_Sol_StartingAmount (default: 8000)
  • Resources_Aliens_StartingAmount (default: 8000)
  • Resources_Aliens_RevealClosestAreaOnStart (default: false)
  • Resources_Humans_RevealClosestAreaOnStart (default: true)

Tip

When a RevealClosestAreaOnStart preference is set to true then the mod will search through all the resource areas that are harvestable by that team and put a starting unit on top of that to immediately reveal that location. image


Spawn Configs

Allows admins to create elaborate scenarios or simply save and restart a match at a given point (with limitations). Structures/units can be created the normal way, using console cheats, or using the !spawn <classname> command (where valid classnames can be found by typing spawn in console)

  • Limitations: Currently only structures (along with tech tier status) and units are saved. Bunker capture status, resources mined, and locations of random structures like bunkers and balterium and biotics are not saved yet.

Admin Commands

  • !saveconfig <name> will generate a config entry of all current structures/units at Silica\UserData\SpawnConfigs\<name>.json
  • !loadconfig <name> will remove all current structures/units and load the structures/units from the specified config file
  • !addconfig <name> will keep all current structures/units and add the structures/units from the specified config file
  • !spawn <classname> will spawn a given structure/unit at the admin's current location
  • !undospawn will remove the last structure/unit spawned with the !spawn command

Surrender

This provides an option for commander and infantry players to end the game prematurely. When a surrender occurs then the team's existing construction, structures, and units are all destroyed.

Note

A surrender will destroy all of the team's active construction sites, structures, and units.

Commander Commands

  • !surrender will cause an immediate, irrevocable surrender for the team.

Infantry Commands

  • !surrender will cast a vote towards a surrender. The number of infantry players needed to trigger the surrender vote will vary depending on the number of infantry players currently on the team. Each time a new infantry player casts a vote to surrender then the mod will evaluate if enough players have cast votes. The number of infantry players needed to surrender is determined by taking the total number of infantry players on the team and multiplying by 0.31

Plot of Number of Infantry Teammates Needed to Surrender

image


Time Of Day

This opens up some configurability for the time of the day. In addition, at the beginning of each round (before the vote completes to set the time and versus mode) the time will be set to the local time of the server.

Admin Commands

  • !time [optional: time value (0.0 - 23.99)] will give the current time (if no argument is provided) or set the server to the specified time of the day. (e.g., 23.50 would set the time to 11:30PM.)

Preferences

  • TimeOfDay_DayLight_Ratio (default: 0.75) is the ratio of day to night. A value of 0.50 will result in an even amount of playtime for the day and night.
  • TimeOfDay_LengthOfDay_InRealMinutes (default: 120) is the number of minutes that it takes for a complete transition of one game day.

This is a plugin that will check GitHub for the latest release packages to ensure any mods that you have loaded are up-to-date every time the server is launched.

image

Installation

This is a Plugin so place it in the Plugins\ directory rather than the Mods directory.


Webhooks

This mod will relay any in-game chat to a Discord server and channel of the host's choosing. This also allows players to grab the attention of moderators on Discord in case they need an in-game admin to join.

Warning

This does leverage the Steam library for sending web traffic. As a result, starting the dedicated server will tell Steam that you're "In-game (Silica)" and make it difficult to launch the Silica client or another Steam game.

Player Commands

  • !report [optional: description of problem] will tag admins in Discord that help is needed on the server and relay any problem description that was provided

image

Preferences


Worm Bounty

This mod primarily introduces a bounty program for the death of a Great Worm. If a player-controlled unit deals the final blow to a Great Worm then that player's team is awarded a bounty of resources. This mod also enables an admin command to spawn a Great Worm near someone as well as allow the host to modify some worm-related parameters in the game.

Admin Commands

  • !devour <playername> will spawn a Great Worm right near the target player

Worm Bounty Preferences

  • GreatWorms_Bounty_BaseAmount (default: 500) will provide the base amount of resources that is guaranteed for the worm bounty
  • GreatWorms_Bounty_Bonus_RandomMax (default: 750) will provide a random aspect to the bounty which will award anywhere from 0 up to the RandomMax (in increments of 10).

Worm Gameplay Preferences

  • GreatWorms_MaxNumber (default: 2) will adjust the total number of Great Worms allowed on the map at a given time
  • GreatWorms_SpawnChance (default: 0.25) will adjust the percentage chance that a Great Worm will try and spawn when a smaller Worm is murdered

Deprecated Mods

Warning

Mods which have been deprecated are not currently supported and will not be patched as the game is updated.

Auto Teams Mode Select

This was the very first Silica server-side C# mod. This mod chose a pre-defined versus mode (e.g., HvH, HvA, HvHvA) when the versus mode selection screen appeared. This mod was necessary because there were only listen servers when the game was first released and the server host needed to re-select the versus mode every time the map restarted or all players would become stuck, which was problematic when trying to run a listen server unattended. The mod also had an override feature where the host could hold down the spacebar key to manually select the versus mode of their choice. This mod is deprecated because the game added a voting system to select the versus mode each round.

Preferences

  • VersusAutoSelectMode where valid configuration options are "HUMANS_VS_HUMANS", "HUMANS_VS_ALIENS", or "HUMANS_VS_HUMANS_VS_ALIENS"

Friendly Fire Limits

Configurable options for hosts to adjust percentages of friendly fire.

Preferences

  • FriendlyFire_UnitAttacked_DamageMultiplier (default: 0.75) allows the given percentage of non-explosive damage to reach friendly units
  • FriendlyFire_UnitAttacked_DamageMultiplier_Exp (default: 0.85) allows the given percentage of explosive damage to reach friendly units
  • FriendlyFire_StructureAttacked_DamageMultiplier_NonExp (default: 0.0) allows the given percentage of non-explosive damage to reach friendly structures
  • FriendlyFire_StructureAttacked_DamageMultiplier_Exp (default: 0.65) allows the given percentage of explosive damage to reach friendly structures
  • FriendlyFire_Passthrough_Harvester_Damage (default: true) allows all damage done to a Harvester to ignore any of the friendly fire limitations

Headquarterless Humans Lose

When the game was first released the Alien team would instantly lose after the last Nest was destroyed; however, Human teams would only lose after almost every structure was destroyed. This could create odd situations where the Humans have no Headquarters but can still spawn, or (worse?) the Humans have no where to spawn but still have a few players roaming the battlefield. This mod introduced parity for losing conditions by ending the game as soon as a Human team loses their last Headquarters. This was incorporated into the base game and so the need for the mod was diminished.

There is still some functionality added by this mod such as alerting everyone in chat which player destroyed the last Headquarters or Queen.


Tech Glitch

This was an attempt to correct a game bug involving a de-sync between the server and players on the current tech tier level. This mod was found to not be helpful in the majority of cases because of the location of the de-sync. The mod assumed the de-sync was on the player side and the server simply needed to re-send what it thought was the tech tier; however, this player-oriented de-sync only occurred roughly 20% of the time. In the other 80%, the server itself had the wrong information and the !techglitch command did not fix the problem. This mod is deprecated because a game patch largely addressed these de-sync issues.

Clone this wiki locally