Git Product home page Git Product logo

citadel-station-13 / citadel-station-13 Goto Github PK

View Code? Open in Web Editor NEW
79.0 79.0 405.0 1.26 GB

Repo for the original Citadel Station build that originated from /tg/ code.

License: GNU Affero General Public License v3.0

DM 90.93% Python 1.12% CSS 0.03% JavaScript 6.19% HTML 0.21% Batchfile 0.06% Shell 0.12% C# 0.10% C++ 0.04% PowerShell 0.04% PHP 0.13% Dockerfile 0.01% VBScript 0.01% SCSS 0.45% TypeScript 0.57%
hacktoberfest

citadel-station-13's Introduction

Citadel Station 13

Based and maintained from /tg/station.

Build Status Percentage of issues still open
Average time to resolve an issue

forthebadge forthebadge forthebadge forinfinityandbyond

Upstream Information

Citadel Station Information

DOWNLOADING

There are a number of ways to download the source code. Some are described here, an alternative all-inclusive guide is also located at http://www.tgstation13.org/wiki/Downloading_the_source_code

Option 1: Follow this: http://www.tgstation13.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)

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.

❗ How to compile ❗

On 2021-01-04 we have changed the way to compile the codebase.

Find Build.cmd in this folder, and double click it to initiate the build. It consists of multiple steps and might take around 1-5 minutes to compile. If it closes, it means it has finished its job. You can then setup the server normally by opening tgstation.dmb in DreamDaemon.

Building tgstation in DreamMaker directly is now deprecated and might produce errors, such as 'tgui.bundle.js': cannot find file.

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

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.

The TGS3 API is licensed as a subproject under the MIT 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.

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.

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

citadel-station-13's People

Contributors

actions-user avatar alexpienoticeme avatar arturlang avatar blackmajor avatar citadelstationbot avatar cyberboss avatar deathride58 avatar deltafire15 avatar detective-google avatar emeraldsundisk avatar ghommie avatar hatterhat avatar keronshb avatar letterjay avatar lettern avatar linzolle avatar lolman360 avatar mrjwhit avatar nik707 avatar optimumtact avatar poojawa avatar putnam3145 avatar sandpoot avatar seris02 avatar silicons avatar sishen1542 avatar timothyteakettle avatar trilbyspaceclone avatar vuonojenmustaturska avatar zeroisthebiggay 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

Watchers

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

citadel-station-13's Issues

Ninja steal research objective broken

Those who have been ninja even once (if science was working) know that even though you download the needed levels, it will not grant greentext. Can't check if it works on test server or not, but on the main it doesn't.

Micro Nerfs

Keeping micros (and smalls) in line with the other sizes is needed. Here's a nifty list of things to shut down those shitlords.

To-Do List:

  1. Stomping
  2. Gun Recoil
  3. Kicking/Punting/Throwing
  4. Remove their hearts with a spoon

Belly isn't being properly assigned to owner

Still working on this. Right now, when the mob is spawned in, the belly isn't being assigned right to its owner, resulting in M.forceMove(owner.loc) to not function properly.

The only way to get around this for now is to create a new belly in the panel and move the occupant there and then release.

callstack:

[17:38:53]proc name: release specific contents (/datum/belly/proc/release_specific_contents)
[17:38:53]  source file: belly_vr.dm,126
[17:38:53]  usr: Grayson Draudy (/mob/living/carbon/human)
[17:38:53]  src: Stomach (/datum/belly)
[17:38:53]  usr.loc: the floor (175,136,1) (/turf/open/floor/wood)
[17:38:53]  call stack:
[17:38:53]Stomach (/datum/belly): release specific contents(Ryan Goodman (/mob/living/carbon/human/dummy))
[17:38:53]/datum/vore_look (/datum/vore_look): vp interact("src=\[0x2102295f];insidepick=\...", /list (/list))
[17:38:53]/datum/vore_look (/datum/vore_look): Topic("src=\[0x2102295f];insidepick=\...", /list (/list))
[17:38:53]Bill (/client): Topic("src=\[0x2102295f];insidepick=\...", /list (/list), /datum/vore_look (/datum/vore_look))

Ghosts can fully interact with Abandoned Crates

[Note]: As a ghost, you can fully interact with abandoned crates to the extent of anything a living person can do to it short of pulling them. As a ghost, you can alt-click to enter a password, if and if the password is correct, it will unlock the crate. Unlocked crates (only unlocked loot crates) can then be opened and closed as many times as ghosts want.

[Admins]: # I only used admin powers to find out the code of the crate.

SOMEONE FUCKED MOB CODE SOMEWHERE

MOBS ARE NOT MOVING, WANDERING, ETC. SOMEONE LIKELY FORGOT A ..() SOMEWHERE OR SIMPLY DELETED SOMETHING THEY SHOULDN'T HAVE. THE LAST CHANGE TO LIVING MOBS AT A LOW LEVEL WAS living.dm FROM @Poojawa

Skateboards + Scooters don't function.

You can build them, but attempting to mount them just places you on them (or does nothing), and moving acts as if you are not on them. Also, if you pick up skateboards, a copy may be left where you picked it up from until someone moves through that tile.

Vomit Comet Mode

I don't know what the fuck I'm doing, but something caused, well, this.

Parallax was not enabled. Upon rejoin, everything just vanished.

Problem persists through multiple relogs, ghosting, etc. In addition, ghosting also proved that the "vanishing" of the "floating" shit is only local. Upon teleporting to a new area, the problem occurs again until a re-log, which makes everything vanish.

I don't even.

Cloner not working

Cloner has been reported as not working.
Apparently you can be scanned but not cloned.

Master Porting Checklist

Deadline is December 21, 2016

Here I will collaborate with others to create a list of everything that we wish to port from Citadel-Station-5th-Port and perhaps other repositories. Things will be subdivided into separate sub-lists. If there is something you wish to be ported, comment with this:
What it is:
Why we need it:
Source:


Feature List

  • Dogborgs
  • Xenos from 5th port (definitely buffed, guys)
  • Kinkmate
  • Pokemon
  • Donator species
  • Donator items?(I don't think we had many of these but we can try it out)
  • Expanded flavor text
  • Screams, other sounds
  • Table slam
  • Improved character preferences: Clothing, accessories, etc. (From Polaris)
  • Magboots in appropriate suit storage units
  • Plant bags of holding
  • Improved stickybans(I think tg already fixed this)
  • Xenobotany
  • Gateway missions, gateway specific content, etc.

Species List

  • Xenomorph
  • Octopus
  • Yautja
  • Carp
  • Corgi
  • Cow
  • Deer
  • Hawk
  • Leporid
  • Moth
  • Porcupine
  • Raccoon
  • Skunk
  • Hylotl
  • Horse
  • Ursine
  • Squirrel
  • Fungus
  • Glowfen
  • Crocodile
  • Pandas
  • Runacs

Mapping List

  • Maintenance Bar
  • MicroStation
  • Button into secure engineering storage(box)

Races need revision to ensure they're working as intended (12/21 Port)

I attempted to preserve as much of the furry race snowflake code as possible during the port update, as well as mutant colors 2 and 3.

In client/preferences.dm, Mutant 2 & 3 were slightly changed to follow what Mutant 1 color had changed.
Most body parts, including the xeno additions, were saved as much as I could find

Most accessories were also copied.

There is a new type of bodypart - Legs. Digilegs are now a thing for lizards, and obviously can be easily adapted to better fit our furry races. We can probably hijack this for Tauric body special rules as long as we sprite the adapted stuff like hardsuits and uniforms.

Stacking Chat Messages

Would it be possible to make repeated event messages stack or appear to be stacked?
so that:

Clown has hit John with spleen
John: "Help the clown is attacking me!"
Clown has hit John with spleen

would instead update to look like:

john: "Help the clown is attacking me!"
Clown has hit John with spleen (x2)

There are some anomalies (or sometimes even players) that end up flooding the chat log with red text, making it hard to actually read the log.

Safety Fire™

Players, when they catch fire, don't take damage from said fire, nor do their clothes. Full-tile (IE Plasmafire) causes burn damage, but being caught on fire does not. Bonfires and Dragonsbreath Rounds both cause Safety Fire™. You can sleep on a bonfire without you or your clothes taking damage, but it still damages items as intended. Likewise, Dragonsbreath rounds only cause brute and bleed damage.

Missing/Invalid Sand Sprite

image
typepath is /turf/open/floor/plating/beach/sand, found in the bio-dome beach in lavaland. Some of the turfs seem to be fine, most are pitch-black however.

Another lighting bug

We're experiencing huge amounts of lag from runtimes in the lighting code.

Some ruins seem to not be updating their lighting in lavaland. It seems to affect the entire area of the ruin so it's not attached to any area related vars.
picture

Inventory glitch?

citadel station 13 2016-11-29 111646
I found a glitch earlier while I was clearing space vines, when I got smothered by them and my vision was blinded I somehow lost my entire inventory hud, so I reconnected and my inventory was all missing, untill I moused clicked over it most of it came back but what has to be clicked dragged is permamently stuck on me and unable to be removed. Reconnecting doesn't seem to fix the issue.

Dogborgs not formatted properly (12/21 Port)

Cyborgs were refractored and cleaned up in the latest code. Dogborgs need to be updated to the new standard in borg code.

This includes the pixel positioning and special layering for Secdoge energy weapons as well.

Holodeck: Emergency Medical

Don't work. Tried resettin the console and switching between each of the holorooms. Still nothin. Probably just a bug in the code someplace.

Dogborg Bugs

Wide borgs do not retain their pixel_x values after their icon is updated/regenerated.
Medihound defibs return a 'bad proc' error for attack() or something.
Probably more.

something is causing memory leaks

This goes on forever. Seems to be due to the poor optimization. This should be fixed in the branch update, which will have it optimized better... we hope. This isn't my project, though. I've been told it's between @unusualcrow and @Poojawa

Angel wing sprite still broken

Issue still stands, only managed to test on local since I haven't been able to get a flight potion on the actual server for a bit.
On local tested it on bleeding edgy and tg patch branches with normal and clean compile too.

Unable to interact once cloned

[Note]: Chris and keilara can confirm. Got this from two players. When dying and the being cloned, The new cloned body cannot interact with the old one or any machinery at all. The old body is frozen in time and no one can take the items off short of admin drop-everything. Deleting the new body and reforming ti does not fix the unable to interact issue.

Shuttle manipulator doesn't work.

[Note]: Neither the actual central command console nor the admin button for the shuttle manipulator is borky. You can open the window and see the status tab, but you can't press Templates or Modifications. Press those do nothing at all.

Drones Cant Toggle Helm Sprites

I just wanted to bring up a few bugs, nothing crucial or anything.

The Drones cannot toggle masks anymore on their sprites, I've currently tested the welding mask and goggles and it doesn't seem to update on their sprites.

Holodeck: Winter Wonderland

The winter wonderland holodeck setting seems to only come in in patches that overlay the previous setting.

Lighting Bugs

Here's a list of anomalies that I've noticed so far.

  1. Shuttles: shuttle
    Shuttles have always been awful for lighting, even in the last system. The solution use to just be to make shuttles always illuminated. There must be a better solution than this, though.

  2. Roundstart: When the round starts, the lighting builds itself. This should happen in the pregame lobby during initialization.

rest of issues have been resolved

Invisible Flan Monsters in Space Ruins

One of the space ruins had a variant of the Flan simplemob
ss 2017-01-20 at 09 05 20
that had no icon, only could be seen by their floating health bars with medhud. 'Flame Flans' also had no icon and presumably, would be able to attack while remaining completely hidden without a medical hud like other iconless Flans.

Character Creation Window Issues.

The character creation window doesn't seem to include everything the player selects. Lizard snouts don't appear to be working either and character markings don't update as well. The wing section seems a bit useless as none of them appear to be working either.

Slipping/Falling Over

Slipping can cause your pixel_y and rotation to flip out. You can replicate this by slipping while you're already downed or switch your run/walk intent while you're knocked down from a slip. I don't know if this happens from things like stunbatons.

It fixes itself when you change your run/walk intent after you've stood up. While silly, this is actually pretty confusing if you're in combat or what not.

Here's a few dead syndicate who were exposed to a slipping foam grenade. They ended up becoming upright and offset down a bit. The character on the right is alive after slipping and switching move intent before standing up.
pic

Floor tile icon issue.

dreamseeker_2016-08-23_18-59-00

sooo... Here is what happened. A fire broke out and damaged the floor tiles. Before I removed them they were completely black, I removed them and exposed the Plating underneath but when I tried to place the normal floor tiles they seem to just come out a error. If I attempt to crowbar them I just expose the Plating again and get back a floor tile, placing the floor tile again just gives me a error icon on the floor...

BUG- Podmen healing got reversed?

[Note]: # (State what the issue is from a "whats wrong" prospective. Issue reports should clearly allow maintainers to understand whats wrong and how to test/reproduce if that is not obvious. Avoid ambiguity. Start your issue report below both of these lines (or remove them))

Hello I think the podmen regen got reversed somehow.

When I spawn my hunger quickly drops and I keep getting damaged all over my body. Cloning doesn't fix it. I have 2 screenshots of me dying if it helps.

https://i.gyazo.com/0341d301f1b9e971fb020bae43431165.png

https://i.gyazo.com/7fc3a62c1c68d8a3bee7e6b0ac1cdc01.png

(Test Server) Buying a shuttle function does not seem to work

By default the station has 5000 credits, but even if I join in as captain or use a sandbox ID, the purchase shuttle function brings me to a menu with the budget being displayed and no selectable options other than going back to the main menu.
screenshot 2017-01-11 09 05 50

(Test Server) Tentacle is almost entirely broken

The changeling's tentacle ability is almost entirely broken, must be something with recognizing hands/intents properly, because nothing other than help intent works as intended.
If you use help intent, it pulls in just fine.
If you use disarm, it says they have nothing in their hand to disarm even though they do.
If you use grab, it just pulls in without grabbing them (should go into aggressive grab).
If you use harm, it doesn't stab nor impale, seems like it doesn't actually recognize what do you have in your hand. This was checked with an armblade, a sharpened kitchen knife and a normal spear, neither of them worked.

On a sidenote: This was all tested on a monkey then humanized that monkey, same results. Just to clarify, it was NOT a player occupied human/monkey.

Minor Fixes / Changes Checklist

  • Make forked tongues optional for lizards
  • Make radstorms automatically temporarily remove maint access restrictions
  • Add sharks
  • Borg reset modules reported not working
  • Podmen not receiving light correctly

Space Parallax Overlays All Turf and Mobs

Issue concerning the Space Parallax for animated stars and what not.

-Issue caused just by a base compile from 510.1332 version of Dream Maker, which is the earliest version of Dream Maker able to compile Sixth Port without code issues. Runs on latest Dream Daemon.

c05eadb4069f6e4ae5623a3b0b3c4d91
921d8addfdb37badcb3d616ce9eb3a66

-Current workaround: Disable parallax through game preferences and restart Dream Seeker. Stops the parallax from being shown, thus removing it from overlaying everything.

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.