Code Monkey home page Code Monkey logo

beestation / nsv13 Goto Github PK

View Code? Open in Web Editor NEW
115.0 11.0 256.0 1.85 GB

NSV13, a Ship-to-ship Combat SS13 Server

License: GNU Affero General Public License v3.0

Dockerfile 0.01% Python 1.15% DM 88.56% CSS 0.05% HTML 2.01% JavaScript 6.35% Shell 0.10% Batchfile 0.01% C# 0.14% C++ 0.05% PowerShell 0.04% PHP 0.16% Java 0.21% SCSS 0.48% TypeScript 0.69%
game ship atmospheric-modelling clowns wavy-sticks tgstation bodged totally-a-practical-language byond-game-engine byond

nsv13's Introduction

BeeStation codebase

forthebadge forthebadge forinfinityandbyond

Website: https://www.beestation13.com Code: https://github.com/beestation/beestation Wiki https://beestation.beeskee.com/wiki

DOWNLOADING

Option 1: Follow this: https://www.beestation13.org/wiki/Setting_up_git

Option 2: Download the source code as a zip by clicking the ZIP button in the code tab of https://github.com/tgstation/tgstation (note: this will use a lot of bandwidth if you wish to update and is a lot of hassle if you want to make any changes at all, so it's not recommended.)

Option 3: Download a pre-compiled nightly at https://tgstation13.download/nightlies/ (same caveats as option 2)

Option 4: Use our docker image that tracks the master branch (See commits for build status. Again, same caveats as option 2)

docker run -d -p <your port>:1337 -v /path/to/your/config:/tgstation/config -v /path/to/your/data:/tgstation/data tgstation/tgstation <dream daemon options i.e. -public or -params>

INSTALLATION

First-time installation should be fairly straightforward. First, you'll need BYOND installed. You can get it from https://www.byond.com/download. Once you've done that, extract the game files to wherever you want to keep them. This is a sourcecode-only release, so the next step is to compile the server files. Open tgstation.dme by double-clicking it, open the Build menu, and click compile. This'll take a little while, and if everything's done right you'll get a message like this:

saving tgstation.dmb (DEBUG mode)
tgstation.dmb - 0 errors, 0 warnings

If you see any errors or warnings, something has gone wrong - possibly a corrupt download or the files extracted wrong. If problems persist, ask for assistance in irc://irc.rizon.net/coderbus

Once that's done, open up the config folder. You'll want to edit config.txt to set the probabilities for different gamemodes in Secret and to set your server location so that all your players don't get disconnected at the end of each round. It's recommended you don't turn on the gamemodes with probability 0, except Extended, as they have various issues and aren't currently being tested, so they may have unknown and bizarre bugs. Extended is essentially no mode, and isn't in the Secret rotation by default as it's just not very fun.

You'll also want to edit config/admins.txt to remove the default admins and add your own. "Game Master" is the highest level of access, and probably the one you'll want to use for now. You can set up your own ranks and find out more in config/admin_ranks.txt

The format is

byondkey = Rank

where the admin rank must be properly capitalised.

This codebase also depends on a native library called rust-g. A precompiled Windows DLL is included in this repository, but Linux users will need to build and install it themselves. Directions can be found at the rust-g repo.

Finally, to start the server, run Dream Daemon and enter the path to your compiled tgstation.dmb file. Make sure to set the port to the one you specified in the config.txt, and set the Security box to 'Safe'. Then press GO and the server should start up and be ready to join. It is also recommended that you set up the SQL backend (see below).

UPDATING

To update an existing installation, first back up your /config and /data folders as these store your server configuration, player preferences and banlist.

Then, extract the new files (preferably into a clean directory, but updating in place should work fine), copy your /config and /data folders back into the new install, overwriting when prompted except if we've specified otherwise, and recompile the game. Once you start the server up again, you should be running the new version.

HOSTING

If you'd like a more robust server hosting option for tgstation and its derivatives. Check out our server tools suite at https://github.com/tgstation/tgstation-server

MAPS

/tg/station currently comes equipped with five maps.

All maps have their own code file that is in the base of the _maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility.

The map that will be loaded for the upcoming round is determined by reading data/next_map.json, which is a copy of the json files found in the _maps tree. If this file does not exist, the default map from config/maps.txt will be loaded. Failing that, BoxStation will be loaded. If you want to set a specific map to load next round you can use the Change Map verb in game before restarting the server or copy a json from _maps to data/next_map.json before starting the server. Also, for debugging purposes, ticking a corresponding map's code file in Dream Maker will force that map to load every round.

If you are hosting a server, and want randomly picked maps to be played each round, you can enable map rotation in config.txt and then set the maps to be picked in the maps.txt file.

Anytime you want to make changes to a map it's imperative you use the Map Merging tools

AWAY MISSIONS

/tg/station supports loading away missions however they are disabled by default.

Map files for away missions are located in the _maps/RandomZLevels directory. Each away mission includes it's own code definitions located in /code/modules/awaymissions/mission_code. These files must be included and compiled with the server beforehand otherwise the server will crash upon trying to load away missions that lack their code.

To enable an away mission open config/awaymissionconfig.txt and uncomment one of the .dmm lines by removing the #. If more than one away mission is uncommented then the away mission loader will randomly select one the enabled ones to load.

SQL SETUP

The SQL backend requires a Mariadb server running 10.2 or later. Mysql is not supported but Mariadb is a drop in replacement for mysql. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: https://www.tgstation13.org/wiki/Downloading_the_source_code#Setting_up_the_database

If you are hosting a testing server on windows you can use a standalone version of MariaDB pre load with a blank (but initialized) tgdb database. Find them here: https://tgstation13.download/database/ Just unzip and run for a working (but insecure) database server. Includes a zipped copy of the data folder for easy resetting back to square one.

WEB/CDN RESOURCE DELIVERY

Web delivery of game resources makes it quicker for players to join and reduces some of the stress on the game server.

  1. Edit compile_options.dm to set the PRELOAD_RSC define to 0
  2. Add a url to config/external_rsc_urls pointing to a .zip file containing the .rsc.
    • If you keep up to date with /tg/ you could reuse /tg/'s rsc cdn at http://tgstation13.download/byond/tgstation.zip. Otherwise you can use cdn services like CDN77 or cloudflare (requires adding a page rule to enable caching of the zip), or roll your own cdn using route 53 and vps providers.
    • Regardless even offloading the rsc to a website without a CDN will be a massive improvement over the in game system for transferring files.

IRC BOT SETUP

Included in the repository is a python3 compatible IRC bot capable of relaying adminhelps to a specified IRC channel/server, see the /tools/minibot folder for more

CONTRIBUTING

Please see CONTRIBUTING.md

LICENSE

All code after commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU AGPL v3.

All code before commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU GPL v3. (Including tools unless their readme specifies otherwise.)

See LICENSE and GPLv3.txt for more details.

tgui clientside is licensed as a subproject under the MIT license. Font Awesome font files, used by tgui, are licensed under the SIL Open Font License v1.1 tgui assets are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. The TGS3 API is licensed as a subproject under the MIT license.

See tgui/LICENSE.md for the MIT license. See tgui/assets/fonts/SIL-OFL-1.1-LICENSE.md for the SIL Open Font License. See the footers of code/__DEFINES/server_tools.dm, code/modules/server_tools/st_commands.dm, and code/modules/server_tools/st_inteface.dm for the MIT license.

All assets including icons and sound are under a Creative Commons 3.0 BY-SA license unless otherwise indicated.

nsv13's People

Contributors

anturk avatar aranclanos avatar changelingrain avatar cheridan avatar coiax avatar covertcorvid avatar cyberboss avatar duncathan avatar giacom avatar ikarrus avatar imtakingabreakdontatme avatar incoming5643 avatar jordie0608 avatar kmc2000 avatar korphaeron avatar lzimann avatar mrstonedone avatar optimumtact avatar phil235 avatar qwertyquerty avatar razharas avatar remierichards avatar shizcalev avatar silicons avatar ss13-beebot avatar tgstation-server avatar theoperand avatar tkdrg avatar vasily2013 avatar zeskorion 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  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

nsv13's Issues

Compiling all borgs

Make it so administrators can see a complied list of Cyborg, AI and Synths.

Thanks

-Head Administrator

Invisible blockade in Bar

Round ID:

20

Reproduction:

In the Bar infront of the Booze-O-Mat is a invisible thing blocking the path. The photo shows the exact location.
image

Fixing Atmosia

this should help fix atmosia. Do not forget to fix the airlocks, as they still use Engineering access, not Atmos

Atmos fix, minor changes

[Aegis] Arrival shuttle door

So... I opened the aft door on the arrival shuttle and it just leads straight into the wall. If you could map that out, that would be fine and dandy.

Reactor Control Rod Tuning

I think it would be better to have the reactor control rods for the drive be manipulable by more than just four positions. This would let engineers fine-tune the reactor and perhaps provide benefit in combat for living on the edge of safe.

Weapon overlay persistance

basically, i stabbed myself with a fork and the ghost image of the fork stayed stuck on my character for a long while. this is possibly due to intense lag and poor hardware, but might also be indicitive of an underlying issue. feel free to close this report if it is simply the code running slowly.

[Aegis] QM has no QM office, and consequently none of its gear.

There is no Quartermaster's Office on Aegis.dmm, which means the QM is deprived of most of his uniqueness as a Quartermaster. Notable exclusions include the Quartermaster's Cloak, the Quartermaster's Stamp, the Quartermaster's Megaphone, and most critically the Cargo budget card.

Distro Mapping Issues

Round ID:

10

Reproduction:

image
Empty node is to the right.
Gases come from atmos to the left.
dreamseeker_7ofVGWqcUH

Caused by dual-port vents, likely related to issue #54
Someone used dual-port vents and assumed they're just a vent that lets gases through and can be used as an in between for air supply. This is wrong, however, and dual-port vents let in seperate gas mixes from two different pipes. There is also some scrubbers underneath vents which hides the scrubbers and looks odd. RD room gets cold and it's missing a pipe underneath the server room door.

camera problemo

Round ID:

10

the problem

well this most pressing issue is almost exlusive to sec and the AI where you cannot connect to other cams on other z levels and you can only look at the cams on that level. currently the only way to avoid this as a AI is via networks which do not inlcude the bridge level which makes it entirely unaccesible unlike the other 2 level which you can get to via networks.

Reproduction:

play a AI try to go to another room/person on another z level

Combat and stunning

People have talked about how combat is unbalanced (which it is) so here is some thought and discussion on various key issues and things various servers have used.

Gameflow:
What are you going for? Do you want a combat system that's perfectly balanced, relies on hp, and therefore strip stuns out of the game? Do you want a more roleplay-heavy style where it's hard to kill anyone for any reason? What do you want, what do you want players to do, and how do you go about encouraging that?
The basic questions you should ask yourself before rewriting combat - and understanding why things are what they are.

Stunning and capturing:
Stunning and capturing need to be relatively easy in comparison to murder. This is to keep new and old players from simply switching to killing everyone. A security guard will not taser people if it takes multiple taser shots and then they have to wrestle a target to the ground with handcuffs, no matter how realistic it is, when they can shoot them once in the torso with a shotgun.

Realism:
Needs to take a back seat to game-ism. It's useful as an information resource to make the game more interesting and deep, but not as a punishment mechanic.
See: The whole lung-popping business of bay and actually researching barotrauama and lung rupturing.

TG/Goon-Combat
I'm putting them in the same category because the only difference is you can cry for help in Goon even when incapacitated basically instantly. Very stun heavy, very high lethality, fast-paced, anything short of nearly killing you won't put you out for very long. You can whip out any bullshit tool instantly and use it.
Bay
Nearly no stuns, or the stuns that exist are basically resisted for arbitrary reasons to the point people would rather beat each other to death. Medical system that results in you rapidly dying from any injury. Has a lot of RNG built into gun accuracy and in straight combat gear-checks you.
Still has the same insta-stunning as goon/tg if you know what you're doing.
Basically the worst of all worlds, although you can see their vestigial attempts to promote squad tactics and slow down combat.
CM/CM
What Bay was trying to do but failed and taken in a different direction. No stuns, crippling injuries can happen but don't stop you from fighting until you drop, weapon damage is fairly balanced across the board, high-lethality for the expectation that you'll just respawn.
Lifeweb
Focus on a unique combat system that concentrates on a combination of paying attention and using the tools available and stat-checking RNG based on what role you've chosen. Discourages non-coms to perform combat, danger of even minor injuries developing infection discourages random fights, respawn is determined entirely by whoever kills you. Unless you both die, then it's time for zombies.
Adds a delay between drawing a weapon and attacking, doesn't let you access your backpack while you're wearing it. Looking at someone can determine combat readiness. Lack of skills in certain directions means keeping specific roles alive because you need their help to survive long-term.
Has some dumb RNG permadeath stuff, is dark and grainy like a decaying VCR tape to the point it's difficult to see anything going on.

tl;dr
Combat isn't just about 'combat.' It's about other pressures that might encourage or discourage people from killing each other, both social and physical, coupled with access to equipment and post/pre-consequences of performing combat.
Fundamentally, ss13 has always been a high lethality game. There's no surviving being sucked out into deep space without gear.

Can't construct basic metal walls

Don't know why, just couldn't patch a hole in the hull with metal.

edit: Engineering on Ageis is also lacking in the project-specific materials required to create project-specific walls.

Medical Megathread

Referencing #84 and my own issue;

Virology currently has no office, there are two geneticist slots when there's only one station, and there are generally a few too many medical doctors for such a cramped space.

...this feels like it should be longer for the term "megathread" tbh but like

Kitchen and cafeteria Map issues

Round ID: 10

Chef needs chefdrobe, freezer floor starts out well, freezing, no soy/egg/flour fridge. Stairs still exist instead of ladder.

Bridge Radar is highly deceptive.

The Dradis console's overlay image makes you believe that you're facing contacts, not that you are that single blue blip moving across the overmap.

I suggest replacing the Dradis image entirely with just a more traditional radar appearance, or some kind of representation of space since your ship won't be centered in it. Removes any confusion you might have, like trying to chase that blip on the radar for close to an hour.

As well, having the radar automatically update for the pilot would be a huge help. Perhaps expand on using the console individually, like giving information about nearby contacts.

Genetics not functioning

Issue reported from Round ID: 14 (NSV 13)

Reporting client version: 512.1471

Genetics currently completely non-functional - after repeating the process multiple times on multiple mutations, nothing worked except for the already-solved monkified mutation.

image
image
image

Bridge Officers incorrect rank

Issue reported from Round ID: 11 (NSV 13)

Reporting client version: 512.1485

Bridge officers show up as Lance Corporals instead of Sergeants as they should, and also have no access.

Atmos door access

Round ID: 10

Engineering doors lack atmos access, including the atmospheric doors.

Bots don't have set pathways

Issue reported from Round ID: 11 (NSV 13)

Reporting client version: 512.1484

Bots that patrol like medibots or janibots don't have set pathways to patrol on and immediately disengage.

Reactor Startup Procedure

The reactor startup procedure is sort of janky and not totally clear about what needs to happen in order to turn the reactor on. It also lacks basic troubleshooting help.

Add signs to Ageis

It can be hard to spot things considering the door sprites are unfamiliar, or hidden, or generic.

RD Server room

Round ID: 10

RD server room does not have scrubber, and should probably have a space heater in the outer office.

Doesn't properly prioritize job prefs

Select a job (typically something with one open slot) to HIGH.
Have other preferences set to medium/low.

Someone else gets the HIGH job.

Instead of being set to one of your medium-low preferences, it instead completely randomizes which job you join as.

Old bug.

no viro office

Round ID: does it matter?

Testmerges:

Reproduction: be virologist and look for your office

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.