Code Monkey home page Code Monkey logo

smod2's People

Contributors

cyanox62 avatar eklei avatar electronicsarchiver avatar grover-c13 avatar irebbok avatar karlofduty avatar laserman367 avatar malicean avatar michalpetryka avatar mrmith avatar rnen avatar secondfry avatar shingekinorex avatar thekigen avatar vgw-courtney-m avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smod2's Issues

Error spam. 2.0.7

no free events for message in the queue

(Filename: Line: 473)

no free events for message in the pool

(Filename: Line: 479)

Error spam 2.0.6. Probably GameBug

ArgumentException: Insufficient Space
Parameter name: bytes
at System.Text.UTF8Encoding.InternalGetBytes (System.Char* chars, Int32 count, System.Byte* bytes, Int32 bcount, System.Char& leftOver, Boolean flush) [0x00000] in :0
at System.Text.UTF8Encoding.GetBytes (System.String s, Int32 charIndex, Int32 charCount, System.Byte[] bytes, Int32 byteIndex) [0x00000] in :0
at Dissonance.Networking.PacketWriter.Write (System.String s) [0x00000] in :0
at Dissonance.Networking.PacketWriter.Write (System.String playerName, UInt16 playerId, CodecSettings codecSettings) [0x00000] in :0
at Dissonance.Networking.PacketWriter.WriteHandshakeResponse[HlapiConn] (UInt32 session, UInt16 clientId, System.Collections.Generic.List1 clients, System.Collections.Generic.Dictionary2 peersByRoom) [0x00000] in :0
at Dissonance.Networking.Server.BroadcastingClientCollection1[Dissonance.Integrations.UNet_HLAPI.HlapiConn].ProcessHandshakeRequest (HlapiConn source, Dissonance.Networking.PacketReader& reader) [0x00000] in <filename unknown>:0 at Dissonance.Networking.BaseServer3[Dissonance.Integrations.UNet_HLAPI.HlapiServer,Dissonance.Integrations.UNet_HLAPI.HlapiClient,Dissonance.Integrations.UNet_HLAPI.HlapiConn].NetworkReceivedPacket (HlapiConn source, ArraySegment`1 data) [0x00000] in :0
at Dissonance.Integrations.UNet_HLAPI.HlapiServer.OnMessageReceivedHandler (UnityEngine.Networking.NetworkMessage netmsg) [0x00000] in :0
at UnityEngine.Networking.NetworkConnection.HandleReader (UnityEngine.Networking.NetworkReader reader, Int32 receivedSize, Int32 channelId) [0x00000] in :0
at UnityEngine.Networking.NetworkConnection.HandleBytes (System.Byte[] buffer, Int32 receivedSize, Int32 channelId) [0x00000] in :0
at UnityEngine.Networking.NetworkConnection.TransportReceive (System.Byte[] bytes, Int32 numBytes, Int32 channelId) [0x00000] in :0
at UnityEngine.Networking.NetworkServer.OnData (UnityEngine.Networking.NetworkConnection conn, Int32 receivedSize, Int32 channelId) [0x00000] in :0
at UnityEngine.Networking.NetworkServer+ServerSimpleWrapper.OnData (UnityEngine.Networking.NetworkConnection conn, Int32 receivedSize, Int32 channelId) [0x00000] in :0
at UnityEngine.Networking.NetworkServerSimple.HandleData (Int32 connectionId, Int32 channelId, Int32 receivedSize, Byte error) [0x00000] in :0
at UnityEngine.Networking.NetworkServerSimple.Update () [0x00000] in :0
at UnityEngine.Networking.NetworkServer.InternalUpdate () [0x00000] in :0
at UnityEngine.Networking.NetworkServer.Update () [0x00000] in :0
at UnityEngine.Networking.NetworkIdentity.UNetStaticUpdate () [0x00000] in :0

(Filename: Line: -1)

Calling commands from code does not work

string[] feedback = plugin.pluginManager.CommandManager.CallCommand(plugin.pluginManager.Server, "roundrestart", new string[0]);
string response = "";
foreach (string line in feedback)
{
    response += line + "\n";
}

The above code returns the response Command roundrestart does not exist!. Laserman also tested player.RunCommand() and it did not work.

Config to Disable Chaos + SCP win condition / Warhead Detonation = Chaos Win?

I want to change one of my servers to separate the shared win condition between Chaos and SCP, and make it so that if the Warhead goes off, Chaos automatically win. This way, each of the 3 teams has a shared objective:

  • MTF + Chaos: Evacuate Scientists + D-class
  • Chaos + SCPs: Fight against Foundation control
  • MTF + SCPs: Prevent Chaos from activating the nuke

I'm sure there would be some people who would want separate config variables for each of these, in case they don't want warheads to instantly win the game, or for a single SCP to drag out the game against a whole server of MTF.

  • ci_share_scp_win_condition (default: true)
  • ci_warhead_detonation_win_condition (default: false)

the game will not load

when I try to launch SCP SL itself will Smod2 it shows that it isnt loading anything with task manager, in order to fix it i have to validate my files and reinstall Smod2 only for it to happen again. plz fix

ev.Round.Duration causes error

Trying to get the ev.round.Duration in OnRoundEnd(RoundEndEvent ev) causes an error
(Was trying to print how long the round lasted)

[03:13:55] [ERROR] [Event]  Event Handler: AdminToolbox.RoundHandler Failed to h
andle event:Smod2.Events.RoundEndEvent
[03:13:56] [ERROR] [Event]  Object reference not set to an instance of an object

[03:13:56] [ERROR] [Event]    at AdminToolbox.RoundHandler.OnRoundEnd (Smod2.Eve
nts.RoundEndEvent ev) [0x00000] in <filename unknown>:0
  at Smod2.Events.RoundEndEvent.ExecuteHandler (IEventHandler handler) [0x00000]
 in <filename unknown>:0
  at Smod2.Events.EventManager.HandleEvent[IEventHandlerRoundEnd] (Smod2.Events.
Event ev) [0x00000] in <filename unknown>:0

Was just using something like int myRoundDuration = ev.Round.Duration

What happened to the allow_*_remote_admin?

What happened to these commands?

  • allow_project_manager_remote_admin
  • allow_scpsl_staff_to_use_remoteadmin
  • allow_scpsl_beta_tester_to_use_remoteadmin
  • allow_scpsl_patreon_to_use_remoteadmin

I have reports of an SCP staff member using remote admin on my server to abuse. I don't want to ban this staff member if I don't have to. This is the last version of ServerMod2 that I see with these commands.

Is Smod3 incompatible with v6.2.0?

I just updated to v6.2.0 on Linux and downloaded the Assembly-CSharp.dll and Smod2.dll from GitHub. As soon as I started the server with Smod3 files, I received this error:

[13:28:40] MultiAdmin for SCP: Secret Laboratory made by Courtney (Grover_c13), who is not a girl.
[13:28:40] Heavily modified but based off LocalAdmin by Hubert Moszka.
[13:28:40] You can request LocalAdmin source code at [email protected].
[13:28:40] You can find MultiAdmin source code at https://github.com/Grover-c13/MultiAdmin/.
[13:28:40] Released under CC-BY-SA 4.0
[13:28:40] Do you have too much money? appreciate multiadmin/servermod? consider sending me some!
[13:28:40] Paypal: [email protected]
[13:28:40] Failed to open log for github error submission, the SCPSL exe for that session is still shutting down.
[13:28:58] Warning: program is running low on memory (294 MB left)
[13:28:58] Warning: program is running low on memory (292 MB left)
[13:28:59] Warning: program is running low on memory (-2942 MB left)
[13:29:00] Warning: program is running low on memory (-6202 MB left)
[13:29:01] Warning: program is running low on memory (-7318 MB left)
[13:29:02] Warning: program is running low on memory (-7818 MB left)
[13:29:03] Warning: program is running low on memory (-8320 MB left)
[13:29:04] Warning: program is running low on memory (-8814 MB left)
[13:29:05] Warning: program is running low on memory (-9312 MB left)
[13:29:06] Warning: program is running low on memory (-9804 MB left)
[13:29:07] Warning: program is running low on memory (-10304 MB left)
[13:29:07] Restarting due to lower memory error evaluating name
[13:29:07] Restarting the server at end of the round due to low memory
[13:29:08] Game engine exited/crashed/closed/restarting: No such file or directory
[13:29:08] Cleaning Session

I'm just running vanilla for now to push to update out to my users.

Crash when I turn on putty

Hello, sometime when i open putty the console crash and the server stay on.
646ec9044386ec4a7b3dd>:0
at MultiAdmin.MultiAdmin.Server.Write (System.String message, System.ConsoleColor color, System.Int32 height) [0x00031] in :0
at MultiAdmin.OutputThread.Read (MultiAdmin.MultiAdmin.Server server) [0x007da] in :0
at MultiAdmin.MultiAdmin.Server.<.ctor>b__55_1 () [0x00000] in :0
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <65984520577646ec9044386ec4a7b3dd>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <65984520577646ec9044386ec4a7b3dd>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <65984520577646ec9044386ec4a7b3dd>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <65984520577646ec9044386ec4a7b3dd>:0
at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <65984520577646ec9044386ec4a7b3dd>:0

Loot replacement doesn't work.

replace_item_loot = 13:14, 3:0, 2:14, 4:16, 21:20, 23:16;
add_item_loot = 14;
remove_item_loot = 1;

Doesn't replace any of items.

Please specify compatible SCP:SL versions in every ServerMod2 release

I'm very happy that ServerMod 3.1.12 specified that it is updated for 7.3.1, but I feel like if we want to stop having to repeat this:

Q: Why is ServerMod no longer working?
A: If the main game updated, ServerMod needs to update. Unless in the release notes of a release it says it's been updated for the game version, it won't work.

We should tell people what exact version of the game each ServerMod release was created for, maybe with a link to the SCP: SL announcement for the game version so that people can click that and know if Smod2 is outdated or not.

Suggestions

  • Add plugin_path to config and have multiple folders

  • API to teleport or set(get) player's position

  • API to set(get) player's health, speed and godmode(if possible)

  • Add the attacker(if there is one) for IEventPlayerHurt and IEventPlayerDie

  • Able to block the event (like blocking IEventPlayerHurt to turn godmode on)

  • Add a command that shows the list of working plugins

Admin class

Can only be set also add

Noclip + Godmode commands

Also if someone is the admin class anyone can win. they dont count towards that

Critical error since 2.0.7

Log spam error:

host id {0} out of bound or host has been already removed
(Filename: Line: 514)

host id {0} invoked wrong io operation and will be deleted
(Filename: Line: 548)

This leads to server's file system overload and crash.
Log is over 300mb in 3 minutes after start.

Version 2.0.6 doesn't have this issue. I am using only 1 plugin: risky ip check

Remote Admin Issues after installation...

I'm having problems with my remote admin and being able to see player specific info. I can no longer see the players' colors on the left side, and when I go to player specific info and request their info, it says I have insufficient permissions, no matter what server role I am. Any idea if there's a config option I can enable or something I'm missing? I have enable_ra_server_commands set to true, and i have my steam id 64 in a list for server_command_whitelist, and I've even tried enabling bypass_server_command_whitelist, but to no avail.

pd_random_exit teleports players into the void

So I reset pd_random_exit: true after seeing that I could exclude room IDs in the newest update because too many of my players complained about teleporting into SCP-079's or the MicroHiD's room and getting stuck.

Anyway, I re-enabled the configuration setting today and the pocket dimension is doing one of two things:

  1. The safe hallway in the pocket dimension doesn't go anywhere. Players can walk to the end of the hallway and walk back out.
  2. The safe hallway teleports players into the void where they slowly fall and die.

This was with no setting for pd_random_exit_ignore_rids. I then decided to set this config, only allowing the rooms LC-HC_A,LC-HC_B,HC_096_CR,HC_106_CR,HC_SERVERS:

pd_random_exit_ignore_rids: CROSSING,HC_079_CR,HC_079_HALL,HC_079_MON,HC_457_CR,LC_914_CR,LC_ARMORY,LC_CAFE,nukesite,Offices_PCs,Offices_PCs,Offices_upstair,Shelter,Smallrooms2,Straight_4

Setting this didn't seem to change anything. The two ill effects mentioned above are still happening.

verification key problems...

does installing servermod2 mess up something with the verification key? because now when i try to make my server public it says my passcode is not correct. any fix or do i just need to email them to get a new passcode?

ServerMod Suggestions

  • Add config lines for server admins to be able to modify access level to locked doors. I'd like to give them grant to all doors except Entrance Gate.

  • Add config lines for making Alpha Warhead lock after X seconds it was started.

  • Add config lines to edit item's spawn rarity.

  • Add config lines to modify weapons damage and SCP "armor" (bullet damage resistance)

Remark: can be done by plugin

  • Add Kill log so admins can find who is teamkilling.

  • Remove items in X seconds with ignore list. So admins can choose which items shoudn't be deleted.

  • Add config line to disable automatic doors open when Alpha Warhead detonation was started.

Pocket Dimension cleanup is easilly exploitable

Before your mate exits dimension you can see if he's dead or not locking your mouse at him. While he's coming out you can see his role changing to Spectator. If you didn't see it - he's left pocket dimension alive.

SM Logs folder crash

Server won't start if there's no folder Logs inside servers/%serverid% folder.
You need to manually create it.
I think it's better to create folder if not exist already.

Stack overflow from setting role in an Set Role event.

Setting role calls set role event. We either need to make it not do this or stop it from calling the same event with the same parameters in a short time (this will still cause issues if someone sets it to one role one call and then another role another call).

Documentation about API

Hello,

I would like to make plugins for this mod but any documentation about the API would be nice.

I can't know the functions it uses without it.

[API] Health, previous states, and new events/event chaining

I'm creating my first plugin for Smod2 and I'm having quite a difficult time getting it to work. Here is a list of all the things I'd like to see in the API in the future that would make it easier to use.

  • In the Player class, a readonly public variable Health that allows reading the player's health. A method SetHealth would probably be needed for setting health positively, unless negative values can be supplied to Damage
  • OnAssignTeam is passed a Teams previousTeam parameter that allows checking the previous team of the player
  • OnSetClass is passed a TeamClass previousTeamClass parameter that allows checking of the previous class of the player
  • A new IEvent, OnPlayerSpawn, that is fired after the OnAssignTeam and OnSetClass events fire only when the player is physically in the server. Example use case: a player does friendly fire damage to other players and on respawn, the player is damaged equal to the damage done
  • A new IEvent, OnPlayerSpectate, that is fired after the OnPlayerDie event that functions the same as OnAssignTeam.
  • A new IEvent, OnPlayerEscape that triggers when Scientists or D-class escape the map. Use case: force scientists and d-class to drop their items when they escape.
  • Either the ability to fire events from within events (such as killing a player after spawning as a punishment), or chaining events together, (for instance if a class is changed for OnSetClass, it calls another OnSetClass until teamclass == teamclassOutput)
  • A Vector as an out parameter in events that respawn players, so that players can be respawned in certain saved locations
  • When spawnRagdoll = false, it should disable the hidden Vector that controls where a player will be respawned when the player is turned into SCP-049-2. If there's no ragdoll, there should be no respawn point other than SCP-049's spawn point.
  • A TeamClass factory so that TeamClass classes for a Classes value can be retrieved. I tried to do new TeamClass(), or modify an existing TeamClass with teamclassOutput.Team = Teams.SCP; teamclassOutput.ClassType = Classes.SCP_049_2;, but the TeamClass enums are readonly. I used Server.getClasses() and set it to a Dictionary in my plugin to finally get access to all the classes in the game.
  • The ability to change a player's respawn Vector to control where they respawn as zombies, or set the Vector to null and have them respawn in SCP-049's base

Let me explain what I am personally trying to do so that my requests will make more sense. I have an epidemic of zombies killing themselves intentionally either by tesla gate or by falling to their deaths in the Heavy Containment Y-junction.

If you're better off reading the code, here is my ZombieSuicideHotlineEventHandler.cs file.

These are all the things I've tried in the past 24-hours to get this working:

  1. Respawn SCP-049-2 with health set to 999999 to survive the tesla gate, and then set back down to normal levels assuming they moved. There is no code for this because there is no interface for it, but this was one of my first thoughts. Also doesn't work with Y-junction deaths.
  2. Fire a respawn event, such as OnPlayerSpawn, from OnPlayerDie, so that the player is immediately respawned. As mentioned above, the zombies would be instantly dead.
  3. Change the player's class back to SCP-049-2 using player.ChangeClass in OnPlayerDie, and then teleport using player.Teleport to SCP-049's spawnpoint. player.ChangeClass and player.Teleport do not work in OnPlayerDie.
  4. Add zombies that committed suicide to a Dictionary in the plugin in OnPlayerDie. Then, in OnSetClass if a player is flagged in zombieSuicides, set teamclassOutput to Classes.SCP_049_2. The event OnSetClass does not trigger when a player is killed and set to Spectator. If the player is spawned in in the next NTF/Chaos wave, the player will respawn as SCP-049-2 and die instantly to the tesla gate or infinite pit of death.
  5. Add zombies to a Dictionary in OnPlayerDie. In OnSetClass, set the zombies to SCP-049 to respawn them in a safe space. Then, chain another OnSetClass by moving the player from zombieSuicides to deadDoctors and then set the player to SCP-049-2 in the second OnSetClass. Cannot chain events.

There are more that I thought of during development and I'll add them when I remember them.

I'm also putting all my ideas for plugins here that can't currently be implemented in the API as example use cases for implementing the suggestions above:

  • Spawn Protection - NTF and Chaos have their health set to 999999 for 10 seconds after spawning in to prevent spawn camping
  • Zombie Suicide Prevention - respawns zombies that kill themselves at a safe location
  • Zombie Plague - Every human killed by a zombie becomes a zombie

Suggestion: Reserved Player Slots

I own a server, and sometimes i want to play. I want a way to allow for reserved player slots that can be in addition to setting the max players, allowing for staff to join if the server is full or not.

ServerMod 2.0.11 causes screen corruption and kicks every user

This seems to be happening on other servers running 2.0.11, but when I did a wget on Assembly-CSharp.dll and Smod2.dll and booted up my servers. it did the screen corruption where if you press N it shows up and get stuck behind the player count, and the message to use Q in the top right becomes a bunch of vertical lines.

Timeout on restart

Hello, since the new update when the server restarts completely (Out of ram ...), my server time out and restarts

SCP*_HP settings do not work

I doubled the SCP's health to test this, and then spawned myself in as each of the SCPs as someone read my health to me each time. For every single SCP, I had the default health.

SCP049_HP: 2400
SCP049-2_HP: 800
SCP096_HP: 4000
SCP106_HP: 1400
SCP173_HP: 4000

WarheadStartEvent is not fired OnStartCountdown

class NukeCountDown: IEventHandlerWarheadStartCountdown
    {
        public void OnStartCountdown(WarheadStartEvent ev)
        {
            plugin.Info("Called");
        }
}

This was also confirmed by Evan (Evan#7181) when I first brought this up (14-06-2018).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.