
This is the developer's wiki. The main player wiki is not ready. It will be announced on the Discord, ๐ Discord
If you are having difficulties with logging into the game or building it, please try the following resources: ๐ Discord. This is the most active community of developers for Space Station 14. Ask a question on the General or Help channel. ๐ฎ Forums
Welcome
Welcome to the Funky Station Developer Wiki.
This goes over things like getting started, our design principles, and other miscellenious topics that might be developer related.
For other questions specific to RobustToolbox, you'd want to visit the Space Station 14 Developer Wiki
If you'd like to contribute to this wiki, make a Pull Request at our GitHub repo ๐ Discord. This is the Funky Station Community Discord. Ask a question on the General or Development channel. ๐ฎ Forums
How do I get my feature proposed?
You want to add a new feature, amazing! You can go ahead and fork this repository, add your feature via a document in the appropriate folder, then go ahead and PR it to here. There are templates provided that you need to use in order for a maintainer to look at it with the attention it deserves. Be descriptive, as it will give you an edge in getting your feature added!
What is This?
This is meant to be both a guide of how to get started contributing for SS14 and an introduction to development as a whole. The end goal is that you not only have successfully made a pull request (PR), but that you also have a decent understanding of what, why, and how you do so.
People with any sort of development experience may find sections of this guide redundant; please keep in mind that it is written with new developers in mind.
What's in This Guide?
This primarily focuses on introducing the tools you will be using to create a PR, rather than the nitty gritty of developing as a whole. Please consider looking at WizDen's developer docs if you want to learn more about the finer details.
Getting Started
This guide assumes you have Git, a GitHub account and the .NET 9.0 SDK. If you don't, it's fine, just go ahead and follow the links, select your platform, and watch the installers whirr. For GitHub, make an account if you don't have one already.
Navigate to the Funky Station GitHub repository, click on Fork on the right side of your screen. Name your fork whatever you want. Once it completes, you should see a new repository on your account. Click on the green Code button, select Local, HTTPS, and copy the URL in the box. Congratulations, you now have your very own development build of Funky Station.
Let's get it on your machine. Open a new explorer window (or whatever file manager you have), and create a new folder called funkystation
.
Go into the folder, and create a terminal window. If you've installed Git for Windows, then you can Right Click and then select Open Git Bash Here
, and it will create a terminal window for you.
In this terminal window, ensure the path
ends in /funkystation
. If it does, amazing, keep going. If not, double check you've created the folder, and have navigated to the folder in your terminal window.
In your terminal window, type git clone <your repo url here> .
(without the <>, and paste in the URL we just copied earlier) (AND REMEMBER THE PERIOD AT THE END). Let that work.
Let that work, if it errors, reread the guide and make sure you followed all the steps.
Congratulations, it's completed. To open a development build of Funky Station, you can now go to the Scripts
folder. If you are on Windows, use the bat files, and if you are on Linux, use the sh files. Run buildAll...
first, then runQuickAll
to get a build working. Use buildAllDebug
if you need to quickly load into a developer environment to test specific features, buildAllTools
if you are mapping, and buildAllRelease
if you need to test something in a simulated round.
If you get any errors relating to Robust Toolbox, such as it not being found or on the wrong version, make sure you have used one of the build scripts recently. Robust Toolbox does not get cloned with the primary repository, since it is a submodule. The build scripts will automatically install and update it, but you can also run the command "git submodule update --init --recursive" to update it manually.
Why not use Github's Web Editor?
I know it's tempting. Especially if you know that the change you want to make doesn't deal with actual C# code; maybe you want to fix a typo or rewrite one of the guidebook pages. Something small.
PLEASE DON'T!!!!!!!!!!!
Part of this is for future proofing--learning how to use these tools on a small change helps prepare you to do larger changes later. Just because your changes are small now doesn't mean they will be later.
The web editor, and Github in general, can not handle large changes. Plus, changes you might think are small might be larger than you think. As an example, try to open the 'Files Changed' tab of a PR that changes maps. Usually it crashes.
Github also likes to fuck up files if you try to upload them through Github, rather than setting up a local host and doing all of this. Things like images getting lossy, audio getting bit crushed, et cetera. It sucks.
Creating a Local Host
Please see Getting Started for information on how to get a local host on your computer. If you have an issues with this guide, you are always free to ask us in the Discord!
Similarly, if you want a more detailed version of the same guide, consider reading WizDen's Setting up a Development Environment
If you are using Windows and you get the following error: "Python was not found; run without arugments to install from the Microsoft Store, or disable this shortcut from Settings > Apps > Advanced app settings > App execution aliases"
Fuck Microsoft. Go into the settings it tells you to and disable the duplicate execution alias. Or just double click RUN_THIS.py. Whatever works.
Most commonly, these two files open your local host in Debug. There are other .bat files to open your local host in different configurations (modes), however, there are other ways to do this that are generally a little better.
The most common way is to use your IDE (integrated developer environment, the program you use to code) of choice. Use your IDE to open SpaceStation14.sln
and then navigate to the build button. In Jetbrains Rider, it's in the top right.
If you don't have an IDE, you can also use command line to run and configure a local host. Git Bash works for this, just make sure you are in the correct directory. Then run:
dotnet build
dotnet run --project Content.Server
dotnet run --project Content.Server
If you want to run your local host in a different configuration, add --configuration Release/Debug/Tools
at the end of the two run commands.
Updating a Local Host
Assuming you followed the guide in Getting Started, you can just press the "Sync Fork" button on Github's website. Then it updates your fork! Yay!
If you prefer to update things manually, then you can also add a remote to fetch and merge into your local version. Make sure you are on your master branch while doing this.
A remote is a way for Git to know to go to that specific repository (a codebase) and grab changes and code from there. In this case, you'll need to add a remote for Funkystation's Github. You can do this in Git Bash by running:
git remote add funkystation https://github.com/funky-station/funky-station.git
You can change funkystation
to anything you want. This is just the name of the remote, so pick something you can remember easily!
If you need to add a remote for a different repository (such as Wizden or Goobstation), you can run the same command with the name and link changed. The link you want can be acquired by going to the repository's Github page, clicking the green "Code" button and then copying the link there.
After this, you need to fetch the remote. Fetching something means you are telling Git to go get everything on the remote and hold onto it:
git fetch funkystation
Git Bash will spit out a lot of lines at you, assuming it's been a little while since you last updated your local host. This is good! If you get nothing, then that's also fine. It means whatever Git Bash is holding onto is up to date with Funkystation's repository. If you get an error, usually the error message is pretty obvious with what's wrong. If it's something like "Remote not found!" then make sure you typed in the name correctly.
Then, you need to merge the remote into your local code:
git merge funkystation/master
Notice the addition of /master
! This just means that you are telling Git to merge specifically the master branch (the main code) of Funkystation into your code. There are other branches in Funkystation's repository, which we generally don't want. Git Bash will tell you it's updating, and then it's done!
What Next?
So you've got a nice and updated local host, then obviously you want to jump in and figure out coding and your changes. However... you're not quite there yet!
If you make changes now, you'll be doing so on your master branch. Your PR will automatically be closed if it comes from your master branch, so first, you need to figure out how to use Git and make a new branch.
If you want a more in depth explanation of Git, please see Wizden's Git for the SS14 Developer. This also has some information on how to use TortoiseGit and SmartGit, if you prefer those over Git Bash.
DO NOT SUBMIT PRS FROM YOUR MASTER BRANCH.
Your PR will be closed automatically if you submit from your master branch.
It can also cause issues for you later, so don't do it! PLEASE!!
A branch another copy of your codebase, which you make your changes onto. You are "branching" off of the main tree in order to develop and test your changes. When these changes are done, we can then merge them into the main branch--also known as a pull request.
We do this in order to help organize development. If you end up doing multiple projects at once, or even something like a minor bug fix while you are working on something else, branches help keep everything neat and separate. If you prefer to see things visually, there are many resources online explaining branches with visual guides.
Working with Git
Now, you have to actually make a branch. To get started, open Git Bash in your directory (the /funkystation/ folder created prior). Unless you've worked with Git Bash before, this will open it on your master branch. You can tell what branch Git Bash is currently on by the cyan text in parenthesis, it should say "(master)."
The first command you need to know is git checkout
. This is how you move between branches, you are checking out from one to the other. To make a new branch, you can simply do:
git checkout -b branch-name
The -b tag means you want to make a new branch. You can replace branch-name
with anything you want, just make sure it's unique.
After that... You're on a new branch! You can actually start coding now. After you finish your work, or need to save your work, you'll need to do two commands to commit your changes:
git add -A
This "stages" the files to be committed. Basically you're telling Git that these are the files you edited and want to commit. The -A tag means all files, but you can remove it and individually add files for staging if you prefer.
git commit -m "commit message here"
A commit basically an entry in your log of changes. The -m tag is so Git knows that you're attaching a message to the commit. If you don't add the tag, Git will probably open VIM (or whatever command line text editor you have installed. If you don't know what that is, it's probably VIM).
The message is so you know what was edited at a glance, but Git helpfully saves detailed information about what was edited in a commit.
HELP IT OPENED VIM!! VIM looks like some yellow text on top, a bunch of blue text, and a fuck ton of ~s everywhere.
It's terrible to use and you'll probably struggle to use it without someone telling you how to.
First, see if it says "---INSERT---" at the bottom. If it does, great, if it doesn't, press i
.
Then type your commit message, press escape, and then type :x
. Then boom! VIM is gone!
After you've finished all of your changes and committed them, the last step is to push them to your origin, GitHub:
git push origin branch-name
Origin refers to Github, and branch-name
would be the name of your current branch. After you do this, go to Github's website find your forked repository (you can click your PFP and then "My Repositories").
Usually a nice little popup that says that the branch you were just working on had new changes. You can click "make a pull request" from there, or navigate to your branches and do the same thing. Then, you can make a pull request!
Pull Requests
A pull request is a way for you to showcase your changes and ask for them to be merged into the main codebase. You are requesting that your changes be pulled. A little bit of a confusing term if you don't know the prerequisite jargon.
The last section of Branching tells you how to navigate Github and start your actual pull request. From here, you can select which branch you are PRing to. By default it is Funkystation's master branch, and you usually want to keep that the same. You can also see the diff (the difference in files between your changes and the original codebase) here. Please make sure to review this, as you don't want any other changes sneaking into your PR.
Similarly, you'll want to fill out the description of your actual PR. Each section has an explanation in its comments, which are the sections enclosed with <!-- -->
. PRs are more likely to be reviewed and merged if these sections are properly filled.
Changelog Formatting
Enclosed in comments is a sample changelog for your usage. Please make sure your changelog is formatted completely correctly, otherwise it won't appear in game.
The format is as follows:
๐Username
- add:
- remove:
- tweak:
- fix:
For the username section, please make sure there are no special characters at all. Hyphens and exclamation points will break the changelog. You can also leave it blank if you prefer it to autofill your Github username.
Reviews
Once we receive a properly made PR, the maintainers will review your PR! We first look at things like test fails (CRLF check, YML linter, Content.Integration tests). Any related test fails will have to be corrected prior to being merged.
If the tests pass, great! We then review the code, discuss how it would impact the server, and then we either request changes, merge the PR, or close the PR. If you would like to know more about why or why not a PR was merged, please see our Design Principles.
Design Principles
Riffing off of what the Space Wizards have done with the game, these design principles go over what we should consider when designing new features for Funky Station.
Questions about game design should be discussed in Discord and requesting the presence of a maintainer or Tay.
For cool and fun features that you would to add (that aren't exactly a simple pull request), we suggest creating a design document using this template.
Caveats
- Just like WizDen says, these are living documents and will change over time.
- These documents are Funky Station's interpretation of what SS14 should be, and only reflects Funky Station's direction.
- Ideas should be discussed with the mindset of the games roleplay features being held above anything else.
What is MRP?
MRP, Medium Roleplay, is a version of the game where players are encouraged to take things straight and as they are.
The statement that a clown has ran into the supermatter should both be tragic and hilarious. A chemist blowing off all their limbs in an accident to make space meth should also be just as tragic and hilarious. Medium Roleplay is a stage where one player controls one character, and the players behind those screens are the audience. In-character actions have consequences, and sometimes the consequences are funnier than whatever gimmick the player might have thought up that round.
What is Funky Station?
Funky Station is a fork of Goob Station designed around being explicitly MRP.
Core Principles
Creating new features for Funky Station should not violate these core principles.
Seriously Silly
Funky Station is a play, with each round being a scene. The entire play revolves around a chartered corporation who's only interest is to keep their shareholders rich. Each character in that play, either directly or in-directly, is exposed to danger by other characters.
Increasing the chances of interactions like these playing out is essential when creating new features. Sometimes, something can be hilarious just for the sake of it (see the smoking on a bed may set you on fire PR.) Constantly players are having to poke death every 10 minutes or so, whether knowingly and unknowingly, which is the beauty of Funky Station.
Crazy situations happen, and must be embraced. When designing new features, think of possible outcomes and other systems your feature might interact with. And also consider how such a feature might be interacted with in a roleplay scenario. If the answer is very funny, it's probably a winner.
Maximize these silly situations whenever you possibly can.
There is no Winning or Losing
Space Station 14 is a game that can be ruined for someone very easily if they approach it with the wrong mindset. If you approach Space Station 14 in the same way you would approach Among Us or other social deduction games, you WILL become bored VERY quickly. Rather, ask yourself, what would my Felinid-Lizard-Moth abomination be thinking in this exact moment? Would they be thinking about winning? Or rather, thinking about when their next smokebreak is?
When designing a feature, ask yourself that question. Will this encourage players to engage with my feature with this win or lose mindset? Or does it help maintain the story telling and flow of a round?
This is especially true when designing new antagonist objectives. Sometimes, an objective is MEANT to be difficult to do, and is MEANT to be accomplishable by a manner that would be considered violent. Funky is a Space Opera, and a win or lose mentality only serves to compromise the fun. There is great fun to be had in failure, just like there is with success.
Maintaining Authenticity
Interactions should feel authentic, there is a reason why it is around 7 steps to light a cigarette in this game.
Making a feature feel authentic to real life does not always mean realism. Realism is a different goal that some other forks have in mind, but Realism =/= Authenticity.
Take for example reloading in games, there are more steps to reloading a gun in real life than there is on a game. You can get as granular as you want, even going as far as identifying individual muscle fibers to flex or whatever to achieve a reload. But most games, of course, don't do that. Sure, it'd be realistic, but would it be authentic? No. It would be annoying and tedious.
Just because something happens in real life, doesn't mean it should happen in game, if it takes away that feeling of authenticity.
Again, a cigarette taking 7 steps to light is authentic. The Supermatter being crazy as hell to maintain is also authentic. People getting up instantly after being exploded twice isn't.
Take Things Slow
Funky Station is built around 2 - 2:30 hour rounds. Many other servers balance their content and gameplay around an hour of gameplay. Thus, when designing new features, consider how much effort a player will have to put into interacting with your system. Things are meant to be complicated and difficult to understand, but first grasping the concepts shouldn't. The expectation players have when joining is that the round will go on for this long, so use this to your advantage.
Atmospherics is an example of this. An atmosians job is to make sure the station has a consistent (roughly) 80/20 mix of nitrogen and oxygen, at around 101KPA. This simple concept is easy for players new to atmospherics to understand, but the additions to atmospherics Funky Station has done has made the barrier to entry rather low, but full of mechanical depth and skill. The same goes with Chemistry, and other departments on Funky Station. See also the section on Maximizing Roleplay Potential, as these two things are very intertwined when considering regular department gameplay.
If you are adding a new gamemode or a weapon, consider TTK and think about how your feature can interact with added or in-progress medical systems. Not everything has to be survivable, but not everything has to be an instakill either. Consider using TTK for weapons or potential RR as deterrents for certain features, as this is one way to communicate to the player OOC that the thing you're working on is dangerous, and should be taken seriously.
Delimbing, targetting specific body parts or organs, or other things related should be considered with antagonists or weapon balance. People don't die in real life because they took 200 brute damage, people die in real life for specific causes, even if unknown. Consider the time investment a player has put into a round when considering antagonist or weapon balance. If death must occur, make sure it is a spectacle in its own right. In this regard, the aesthetics of dying matter.
When designing other features, consider the story you want to tell, and ask yourself if it is a worthwhile story a player wants to engage with for more than 15 minutes. Try justifying why it's worth it for an engineer to take 15 minutes to setup a single power engine, or why a chemist should spend 15 minutes creating a chemical. This is a co-operative game, so when designing things around regular department gameplay, leverage the social aspect of it all, and have people depend and rely on each other where ever it makes sense.
Being respectful of peoples time when they join Funky Station is important when designing a new system.
Maximizing Roleplay Potential (Avoid QOL slop)
When developing a new feature that is set to "optimize" a certain aspect of gameplay, think about the feature as a vector for roleplay. Does the previous feature introduce more ways for people to interact with each other? Or does this feature take away a vector for people to interact? If it does take away, is it a positive change in the long run?
These questions can be applied like so:
Say for instance you are changing the ChemMaster to have a way to produce bottles en masse, filled with a reagent of a chemists choosing. This, in our eyes, is a positive change that encourages healthier RP, as the previous method for chemists to distribute chemicals en masse to doctors and other crew members, is via jugs, which only serve as an intermediary tool and are rarely thought of. Bottles adds to the immersion that this is an actual item that someone made, and not just a bunch of reagents in a container. In this instance, aesthetics matter.
An instance where a feature would take away a vector for roleplay is the Stationwide Material Silo. Apply the questions like so:
"Does the previous feature introduce more ways for people to interact?" - The previous feature was cargo delivering materials to departments as ordered. While sloppy, it did encourage a lot of small talk and smaller interactions with characters, which is a positive.
"Does this new feature take away a vector for people to interact?" - Yes, cargo players can just deliver materials to a central point in the station, while not communicating with anyone at all.
"If it does take away, is it a positive change in the long run?" - No, hyperoptimizing a crucial part of the gameplay for a cargo tech, talking to random people on the station, is not healthy for the game. Having players be more entrenched in their departments is generally not good for the culture, and stationwide material silos, from the questions we just asked, encourage that very thing.
Dynamic Environment
Anything should be possible. Just like Wizard's Den, we feel that building an entire, functional station should be possible to do, if there is a considerable effort put into this undertaking.
What is a Proposal?
A proposal is a way to put your feature out there to the world. A chance for you to speak uninterrupted and for maintainers at Funky Station to give your feature the proper attention it deserves.
A proposal, given enough care and thought, will be reviewed by the Head Maintainer and other Maintainers. The community may also have a chance to speak up about things they like and do not like about your feature.
What can a Proposal be about?
A proposal can be about anything you want to add to the game. There are two categories for now, although this might be subject to change.
A Map Proposal
A map proposal is about adding a map into rotation for Funky Station. This helps maintainers ensure a level of quality when approving new maps, although typically mapping proposals need to go through multiple layers of approval before they are accepted.
The reason for why a mapping proposal may be denied include:
- Significant overhead already added ontop of maintaining several maps
- The mapping proposal is missing key features that is needed for a map to be viable
- The map does not fit into the vision the maintainers have for Funky Station
- The map may not recieve the proper care and support it needs after it is merged
- The map is unfriendly towards crucial features specific to Funky Station
There are a lot of hurdles, and consider these when designing a new map and request that it be added. Maintainers do not want to see a new map get added then forced out of rotation because of little support from the community.
A Gameplay Proposal
A gameplay proposal is about adding a new feature for players to interact with. This helps maintainers understand the thought put into a feature before it is merged, as well as gives admins the means to understand what your feature is doing and help provide support to players who may ask about it.
The reason for why a gameplay proposal may be denied include:
- Significant changes to code that may be modified by Upstream
- The gameplay proposal does not fit into the vision the maintainers have for Funky Station
- The gameplay proposal goes against one of the core design principles
- The gameplay proposal is not well thought out enough for certain scenarios
- The gameplay proposal that comes with a PR may have code that is not up to maintainer standard
A gameplay proposal that is "not well thought out enough" is a proposal that makes a significant change to a department or a core part of gameplay, then does not elaborate on how this may affect other systems or departments in the game.
For example, a gameplay proposal that suggests changing Science to another department and describes the features within this new department, excluding the changes that may come with Medical, Command, etc., is a proposal that is not well thought out enough.
This also may fit proposals that are too vague. Usually, a maintainer will spell out why a gameplay proposal is not being merged, so the exact wording will be more specific there.
What are the chances my proposal gets accepted?
To be truthful, we won't know until you propose it. We can give you some expectations though.
A mapping proposal will have a much harder time getting through because of the significance a map has to the game. Players remember good maps, and players especially remember maps that they do not enjoy.
A gameplay proposal might have an easier time getting through, especially if a demo PR is already made and tested, although this isn't to say cool things won't get merged because they need work done for them to work.
Short, Properly Capitalized Title
Your title should convey the basic jist of your proposed changes. It should be short because the text will be linked in the sidebar.
Designers | Implemented | GitHub Links |
---|---|---|
Your Names Here | โ Yes or โ ๏ธ Partially or โน๏ธ Open PR or โ No | PR Links or TBD |
Designers
should be the names that you use on GitHub and/or Discord. This is optional but strongly recommended, since:
- This acknowledges credit where it is due
- People who are confused about the written intent can use this information to contact the authors
Implemented
is the status of the feature.
Github links can include multiple PRs, if relevant.
Overview
A very short, maybe three sentence summary of what this proposal is about. A high level "overview" or "what this adds".
Background
Summarize any information that is needed to contextualize the proposed changes, e.g. the current state of the game.
Also link any relevant discussions on Discord, GitHub, or HackMD that are relevant to the proposal.
Features to be added
Give a description of what game mechanics you would like to add or change. This should be a general overview, with enough details on critical design points that someone can directly implement the feature from this design document. Exact numbers for game balance however are not necessary, as these can be adjusted later either during development or after it has been implemented, but mention what will have to be balanced and what needs to be considered when doing so.
Game Design Rationale
Consider addressing:
- How does the feature align with our Core Design Principles and game philosphy?
Roundflow & Player interaction
Consider addressing:
- At what point in the round does the feature come into play? Does it happen every round? How does it affect the round pace?
- How do you wish for players to interact with your feature and how should they not interact with it? How is this mechanically enforced?
Administrative & Server Rule Impact (if applicable)
- Does this feature introduce any new rule enforcement challenges or additional workload for admins?
- Could this feature increase the likelihood of griefing, rule-breaking, or player disputes?
- How are the rules enforced mechanically by way the feature will be implemented?
Technical Considerations
- Are there any anticipated performance impacts?
- Does the feature require new systems, UI elements, or refactors of existing ones?
- For required UI elements, give a short description or a mockup of how they should look like (for example a radial menu, actions & alerts, navmaps, or other window types)
Name of your Map
Designers | Implemented | GitHub Links |
---|---|---|
Your Names Here | โ Yes or โ ๏ธ Partially or โน๏ธ Open PR or โ No | PR Links or TBD |
Designers
should be the names that you use on GitHub and/or Discord. This is optional but strongly recommended, since:
- This acknowledges credit where it is due
- People who are confused about the written intent can use this information to contact the authors
Implemented
is the status of the feature.
Github links can include multiple PRs, if relevant.
Overview
A very short, maybe three sentence summary of what this map is themed around.
Population Expectation
The general population your map is expected to accomodate for. A sentence is perfectly fine.
Design Rationale
A place to talk about your design choices with this map, how it fits the theme of what your map is designed around, as well as any miscellaneous info that is relavent to the map.
Render / Screenshots
Place renders of your maps here, upload all files to the assets folder. Also place whatever else you used to help you design this map.
Hydroponics Changes
Designers | Implemented | GitHub Links |
---|---|---|
ReconPangolin | โ No | TBD |
Overview
Expands the role of botany by opening the design space through the rebalancing of existing features, a new mutation system, and the addition of new plants, machinery and mutations.
Background
I initially set out to incentivize shadowlands exploration by adding plants as interesting loot, however, the more I tested certain features the more potential problems I found. I discussed some of these problems with Terkala/The Fern of Functionality and they agreed that the current state of botany wouldn't support some of the more powerful plants I planned to add. As a result, the scope of this proposal has grown far beyond my initial expectations.
Features to be added
Unique plant crossbreeding
Feature Description
Different seeds can be crossbred together into new species. This would be achieved through a new roundstart machine that would consume seeds and potentially a catalyst to output a new species of plant.
One path could relate to steel-caps, for example:
- Combine papercane and steel-caps to create plastic-caps
- Combine plastic-caps and golden apples to create aurum-caps which could produce small amounts of gold
This feature would allow botany to grow plants that would have been too strong or would invalidate other departments if they existed purely in the current system. The process of mutating three unique plants, combining them together, and finally trying for self-harvesting mutations should be long and difficult enough to make salvage the much preferred route to gold, however, it allows botany to fill gaps in the manifest and provides a longer term goal. It's also easy to balance. If we wanted gold to be locked behind salvage we could make a requirement be salvage loot.
Motivation
Currently players need to apply unstable mutagen and hope for the best to mutate plants. In isolation this system if fine, although it has a heavy reliance on chemistry, there's limited skill expression and - provided you've got access to exotic seeds - you can grow everything almost immediately from round start. If I added new varieties of mutations they'd all be easy to achieve purely by dumping buckets of mutagen and then dylo/multiver/vitamins onto certain plants. I've also seen a common trend in botany of cryoing earlier after growing certain plants. Usually these plants consist of everything the chef could need or some combination of omni, cognizine, deathnettle and gatfruits. This new feature should encourage greater variety in the number of plants grown, add to the progression throughout a round and allow botany to grow plants that are useful to a variety of departments.
Machines
Plant Sequencer
Swabbing is completely random and fairly obtuse for new botanists, so I propose adding a new machine to aid the learning process and partially remove the randomness. It would be available as a tier 3 civilian services research.
The plant sequencer would consume two seeds to displays what traits could be spliced between them. The player would then manually choose some mutations and traits, limited by a new mechanic called 'genetic stability', and then the remaining traits would be spliced randomly, identical similar to the current system. More powerful traits would cost more genetic stability and this would only be recovered as plants grow. This machine requires a competent botanist and civ t3 to make full use of so I'll probably tune it higher to start and if it's problematic we can tune it down late.
Plant Analyzer
I'd like to make adjustments to the plant analyzer to give it different tiers so it can be available from roundstart as well as more powerful versions through research. At T1 the plant analyzer would be available at round start but it would only display less useful info such as potency, yield and potentially growth rates and use more power. At T2 it'd be the current plant analyzer with - potentially slightly faster with less information? - which would add information such as chemicals, gas and mutations. At T3 it'd be available from the T3 civ services research. It would be fairly fast and show details such as potency divisor, weed growth and threshold, and mutations.
Seed Splicer
A new machine for crossbreeding plant species. This would take two unique seeds in varying quantities and combine them into a new species. Certain plants may require more then one packet of seeds or catalyst (vestine, exotium, artifact shards) as a balancing measure.
Botany rebalance
Motivation
As mentioned earlier, the best method to achieve anything in botany right now is to throw a cocktail of chemicals on a plant. Whilst most of these chemicals aren't a huge concern there are a couple that I believe are problematic, notably diethylamine.
Diethyl can be used to speed up a plant's growth by increasing it's age. This bypasses anything that could affect the plants health so it can be abused to instantly grow any plant regardless of its requirements. I've managed to grow 9 gatfruits in under three minutes from round start using a single seed and 35 gatfruits in about five minutes with a bucket of diethyl, despite the fact that it's bugged to be less effective then intended. Diethyl greatly limits the botany design space as any plant with longer growth times, complex requirements, or unique conditions can be instantly grown.
Another issue is that multiver/dylo/vitamins can restore plant health and phalanx can remove an invalid gene so a plant can always be kept alive at no cost.
I'm proposing that we link plant health to growth rate and instead have diethyl speed up growth rate. A healthy plant with this change could grow even faster than in stable but plants with worse conditions or botanists with thousands of units of diethyl would have a harder time. As part of this change I'd be modifying mutations to remove some conditions that I've never once seen satisfied (Requires zauker/trit/bz) and adding some new ones - including intended features that were never finished.
Changes
- PlantGrowth now increases the rate a plant grows instead of instantly increasing a plant's age
- A plant's growth rate and health is increased or decreased based upon a formula rather than the current all or nothing system.
- Implemented missing features or features marked as TODO (such as improper light doing nothing, potentially pests if the playtests go well)
- Modified gas mutations to be safer (I'll talk to Terkala/Fern for this one)
- Removed a number of the health modifying mutations that will never be satisfied. (I don't think an atmosian has ever been or should ever be asked to trit flood botany and it's not an interesting way to punish excessive mutation)
- Colored the third hydroponics light to differentiate between what's impacting a plant's health
- Robust harvest has a 5-10? unit threshold so it won't punish botanists for being one or two units over
- Modified the mutation weights to be more enjoyable
The following are a few potential tentative and controversial changes to botany, most won't be implemented.
These are potential balancing levers for if more variety and content leads to powercreep, to potentially reduce entity spam, and to reduce the gap between standard plants and perfect plants to help newer botanists. If given the choice I'd rather have power in the variety, experimentation and content of botany rather than a few very strong plants.
- Specific plant species have a max yield
- Plants have a maximum chemical storage based on potency
- Chemicals are decreased the more that exist in a plant
- The potency divisor of certain chemicals is increased
- High yield plants take longer to grow, chemicals in a plant are potentially increased to compensate (Might require kitchen changes)
- Plants take slightly longer to grow if they're multi-harvest, increased for self-harvesting or these traits reduce yield
- Plants will always be able to be clipped exactly two times. Maybe can limit to 1 or 0 for extremely powerful plants so you need a lot of effort to grow one.
- Clipping will reduce the stats of the parent plant, clippings might be unaffected. Could use genetic stability so plants recover over time
New plants
Shadowlands Loot
I'll work with an artist and maintainer on the naming and theming of these.
The majority of these plants will be poisonous and grow better in low light conditions. This gives the option for engineering to help build a space but these plants could also be grown in the botany locker room (on most maps), grown in maints, or spliced to remove this trait. I'll also add some standard plants too, I'm just listing the ones that should be in a design document.
Ebonberry
Peer into the shadows
A berry obtained by crossbreeding a shadowlands plant and blue pumpkins. It grants nightvision to aid in exploration but it can also be beneficial for hiding or exploring maints.
Duskpalm
Obscure the world
A rare plant found responsible for creating the shadows found near shadow portals. It can be mutated into dawnpalm which has an intense glow that banishes away any nearby shadows. If science is using a shadow anomaly as a portal an expedition team can retrieve this and a botanist can mutate it to help deal the anomaly and it may be useful for exploring the shadowlands. I'll need to look into performance impacts for this one.
Spectra
Fade into darkness
A crossbreed of a chilly, glasstle and a rare shadowlands plant. Anyone who consumes this plant will become temporarily invisible.
Uses the upstream regent Spectra-Fade pull request.
Wormhole
Warp yourself into genpop
A crossbreed between an extra-dimensional orange, spaceman's trumpet and a rare shadowlands plant. Any player who consumes this regent will be teleported a short distance randomly, suffer heavy toxin damage and empty their stomach from the transition. It's a great escape from antags or for antags with a heavy risk attached. It should be difficult to use as a poison since it's extremely obvious, you don't want your target to teleport to safety, and it's consumed after one teleport.
Salvage Loot
Radium and Phosphorus plants
For when you've pestered chemistry too much
Currently there's only one component of mutagen available in plants without random mutation, chlorine. A plant would be available from salvage that could be crossbred with a few standard seeds to produce radium and/or phosphorus so botany could better mutate without a chemist.
Gaia
The only plant anyone ever suggests
With the introduction of rare plants and crossbreeding we can finally add Gaia back without breaking the game. Gaia would be the pinnacle of difficulty to obtain and require advanced mutations, salvage and potentially even an expedition to the shadowlands. Once it's been achieved plants will no longer need weeding, water or compost.
Catmint
Have any ahelp instantly answered!
A plant that contains drugs that only affect felinids and cats. Can be crossbred with blueberries into a plant that contains a regent similar to wehjuice that makes players meow. This regent can be used for a chem that can temporary polymorphs players into a cat. When scurrets/slugcats get merged upstream (VERY IMPORTANT) it'll also be used for scurret polymorphs.
Features that might be designed later
This is already long enough but here's a list of plants I'm looking into and some other features I might include
- Expanding the cap series of trees to include most resources the station could need - provided the right seeds are found and the right plants are mutated
- An expansion to syndicate botany that requires growing, mutating and crossbreeding gatfruit among other plants and vestine. It rewards more powerful guns at much greater risk of sec discovery and a big investment in time and resources
- A low capacity battery that can be grown that slowly recharges over time
- A plant that grows improved fibres to make slightly larger backpacks.
- A more consistent way to obtain anomaly berries
- More mutations
Suggestions
- Stunbaton equiv of nettle, might be fine if it uses the same salvage plant containing licoxide to crossbreed with difficult enough requirements
Game Design Rationale
Botany was the first department I started with in SS13 (and SS14) and I believe that it's unique in its position as beginner friendly job that's never required for the station to run whilst simultaneously having a high skill ceiling and potentially patch almost any issue in a station. If medical is understaffed you can produce omnizine, if materials are an issue you can supply the station with steelcap and random chemicals help keep the department fresh. Despite all it's very common to see reworks suggested and I agree there are improvements that could be made. I've reviewed proposals and pull requests across different repositories and the common threads are the following:
- Botany lacks interdepartmental interactions outside of providing ingredients to the chef and requiring chemicals from the chemist
- There is limited progression throughout a round
- Traits are obtuse and mutation is random
I disagree that botany only interacts with one, maybe two, departments since I've had botany specific interactions with almost every role, however, there's plenty of room for improvement and the new plants should aid in this. Additionally, the addition of crossbreeding should add long term goals and the loot can open up exciting possibilities for a botanist late into a round. New machinery alongside our previous addition of and improvements to the plant analyzer ashould aid players in learning how to mutate and splice traits from plants together.
Seriously Silly
The new plants should open up some very silly possibilities. I love the idea of bluespacing only to end in the worst location, invisibility timing out at the worst time, new fun chems to mess around with and overall just an improvement to the amount of people I roleplay with in a botany round. Also the image of a syndicate agent gearing up with plants instead of a hardsuit and high tech weapons is hilarious to me.
Maintaining Authenticity
Crossbreeding plants and genetically modifying them is a common part of modern agriculture. Kale, cauliflower, broccoli, cabbage and Brussels sprouts all were developed from the same plant and there's thousands of chilli varieties. Improving this feature should feel authentic and add to the idea that this station was primarily setup for research and development. I concede that some of the sillier plants aren't realistic although I think it's fine to sacrifice some realism for entertainment.
Dynamic Environment + There is no Winning or Losing
For this proposal these principles are intricately linked so to avoid repeating the same thing: At the moment botany can feel somewhat solved; while random chems in plants are great at creating roleplaying experiences and dynamic rounds they aren't consistent. Your best bet right now is to grow omnizine, deathnettle, gatfruit or killer tomatoes. I'm hoping these changes open up new strategies, unique options and expand on what makes botany dynamic rather than player's focusing on a small set of meta plants.
Roundflow & Player interaction
Roundflow
Most of these plants will be difficult to come by and require a competent botanist, chemist and salvage team working together and some features require T3 service research. In longer rounds you could see botany become a force to be reckoned with, however, plenty of other jobs (salvage, atmos, science, cargo) also scale well so I'm not expecting anything major to change we could always rein it in if it does and apply some nergs. If Verna or Fern become DAGD agents then I'm sure they could abuse these changes but that would be peak SS14.
Player interaction
Players would have many new options open to them and it these changes encourage other departments - notably salvage - talking to botany so this should be great for player interaction. I could see veterans being annoyed after going from an extremely skilled botanist to a new player so that could be a problem but I'd like to hope our playerbase is above flaming newbies for not being Verna. Some botanists might ignore the chef at the risk of breaking SOP and getting fired?
Administrative & Server Rule Impact
Everything added would just expand existing features so the admin load should be similar. There's the potential it would make it easier to self-antag or powergame as botanist but given the current system allows for botany to produce lethal amounts of BZ or trit I'd expect it to reduce workload if anything. There is also the potential for OOC mald at new players (which already exists in other departments) in a role that's well suited for new players.
Technical Considerations
If do my job correctly I don't expect any performance impact, there could be issues with entity spam but I'm planning on profiling the code and improving the current performance. There's been plenty of arguments on improving the botany code and switching to more of an ECS design pattern but I'm planning on working on content first and foremost rather then getting bogged down in making a perfect system and the code is workable for the most part, I'll look into it further down the development pipeline.
I'll develop a mockup for this UI if the proposal is received well and I'd require help spriting for this project since I'm horrific at drawing.
Command SOP
- Command members are to ensure the safety of the entire station, each primarily responsible for their own Department and respective duties;
- Command members are to ensure the wellbeing and dignity of Nanotrasen and its related assets;
- Command members may not slander or libel Nanotrasen;
- Command members must ensure that Nanotrasen corporate secrets remain confidential, and may reprimand or punish fellow command members who threaten this confidentiality;
- In the event of a confirmed threat to the station or Nanotrasen as a whole, command members may temporarily reveal related corporate secrets to crewmembers;
- Command members must report such confidentiality breaks as soon as the event is resolved;
- Command members must follow any Central Command officer's (such as the Nanotrasen Representative, Internal Affairs Agent, or the Magistrate) direction on corporate secrets;
- Command members must accept any fine, punishment, demotion, or death when a Central Command officer informs them of a wrongful break of their confidentiality agreement.
"Corporate Secrets"
Designers | Implemented | GitHub Links |
---|---|---|
correspond | โ | TBD |
Overview
The metashield, as it currently is, is confusing and heavily relies on OOC enforcement of IC actions. This is a proposal in order to rewrite the metashield as "corporate secrets," focusing on giving players a better way to react to the game in character.
The basic summary of corporate secrets is:
- Pretty much everything is shielded now, with some minor exceptions. Normal crewmates are here to do their job, and as such, NT does not tell them about any of the potential on-station threats.
- However, command is trained to deal with these threats. The metashield does not exist for them. However, these threats are corporate secrets, and command has signed some sort of NDA about them. Telling the crew about said threats (unless in emergency situations) is strictly prohibited.
- Since IAA, NTR and the Magistrate are directly from NT corporate, they are tasked with ensuring that command does not fearmonger and spill the secrets. In the case that a command member reveals corporate secrets unnecessarily, these three would be the ones to punish them IC. Admins are still encouraged to enforce the metashield OOC.
- The metashield can only be lifted one of two ways: Central Command announcements (think war ops, unusual activity, or blob biohazard announcements) or by command telling the crew.
Features to be added
Multiple new in-game and wiki documents:
Lasers and Armory Overhaul
Designers | Implemented | GitHub Links |
---|---|---|
Miiish | โ No | TBD |
Overview
This design doc outlines the removal of current ballistic weapons in the armory in favor of safer, more retro, family-friendly weaponry designed to melt station-ending threats.
Background
Ballistic weaponry from an in-universe common-sense/immersion perspective is not ideal whatsoever when bullets can break windows and space (very dangerous!!!) sections of the station, potentially killing crew if no protections are in place.
This design doc is made from the perspective of both allowing melee weapons to be more viable and to unify NanoTrasen standard weaponry in a way that makes more sense.
They are additionally the primary killing tools of the Syndicate (bad guys!!), and this works to differentiate NanoTrasen brand killing tools (good) and Syndicate brand evil killing tools (bad), as well as allow unique balancing around factional weaponry. Found bullet casings in maintenance? You probably can't blame that on a trigger-happy cadet anymore.
Why this is Good for the Game
These changes all aim to serve a few purposes:
Aesthetics: Energy weapons are cool and retro sci-fi-y, and very distinguishable as opposed to having 5 generic Gun sprites.
Melee, especially unique antagonist melee such as the energy sword and armblade, should be more viable as a method of killing, as a high risk-reward profile. The overall increase of Time-To-Kill on ranged weaponry should aim to incentivize the use of more 'up close and personal' killings and encourage antagonists to take on Security more.
The splitting up of Sec lethals should also encourage Security to use their other tools, like truncheons, more for better damage profiles instead of using their gun as a metaphorical hammer for everything.
This also aims to bring Sec more 'back to Earth', so to speak. By lowering the amount of pure weaponry they have access to roundstart, we curb the constant Sec - Antag cat-and-mouse balancing game that leads to intense powercreep, and makes crew cooperation and interdepartmental play somewhat more useful in ending station-wide threats, such as the Blob. In short, this helps allow for antagonist abilities to be imposing without having to be overwhelmingly powerful or durable.
Ranged weapons, due to their inherent safety and power over using melee, should require a bit more tactical use and forethought than just pointing in a direction and killing whatever's there. Lasers allow for more of this planning through the use of, for example, constructing windows to prepare for a threat. The lowered amount of charges and damage-per-charge/magazine also requires more forethought when bringing them out. Why use a gun when I can relatively safely use melee here?
Additions
Map into Armory
Temperature Gun
See https://github.com/space-wizards/space-station-14/pull/35447 for implementation. Main difference: this will be an Armory weapon and not researchable.
Ion Rifle
A powerful three-shot rifle that deals 50 ion damage on a direct hit as well as a 3x3 tile weak EMP where it lands. Very powerful against cybernetic threats, such as borgs, IPCs, or mechs, but only tactically useful against other energy-weapon users.
Energy Gun
A battery-powered carbine (can fit in the backpack) which can fire either disabling or laser bolts, with less charge than the base Laser Rifle. It has 15 charges.
Miniature Energy Gun
The replacement for both the Officer's disabler and pistol, this is simply a smaller version of the Energy Gun. It can fit in your pocket and has 12 charges, which can be used to disable or laser.
Cadets will also start with this, but it will be locked on Disable until the childproof plastic lock is broken using a screwdriver.
Possible Additions (to be added to Research, primarily)
Blue Laser Rifle
Same as the stock laser rifle but it deals cold damage because it's blue.
Force-bolt Pitcher
An energy weapon that fires slow-moving but long-lasting spheres of energy. This deals blunt and some stamina damage.
Inducer
A portable recharger. It takes battery-cells and charges at a very slow rate. Possibly upgradable with Science.
Changes to current Features / Gamestate
Armory (Mapping)
The removal of all ballistic weaponry from the Armory, in favor of the new laser-based weaponry.
Kammerers should stay as they are explicitly very CQB weapons, as opposed to the longer-range, more reliable lasers.
The addition of a disabler safe to all armories for emergency Command-arming reasons.
The removal of the WT-550 from the Head of Security office.
The removal of disablers from Sec officer lockers.
The removal of ballistic ammo that no longer corresponds to armory/on-station weaponry. Keep rifle, revolver, and shotgun ammo printing for the Chaplain, Detective, and armory respectively.
Overall, Armory would now contain:
- 1 disabler safe (containing 5 disablers)
- 3 energy guns
- 3 laser rifles
- 3 Kammerers
- 1 ion rifle
- 1 temperature gun
Note: Although the weekly rollouts can simply migrate weapon safes in the armory through migrations.yml, it would be best to have them also mapped out by their respective map's maintainers where possible.
Cargo
- The removal of the WT-550 SMG crate from Cargo.
- Replacing the Enforcer crate with the Kammerer crate.
- Replacing the smg and pistols crates with the Energy Gun and Miniature Energy Guns crates.
Technical / Misc. Tweaks
- One unified Laser Projectile and one unified Disabler Projectile defined in Funkystation files.
- An overall increase in laser damage.
- The removal of self-recharging from the HoS' multiphase gun (why is it a better captain's laser?)
- The removal of self-recharging from the EG-4 energy revolver (Blueshield)
- Reduce the Warden's energy shotgun to 6 shots.
- The removal of the mk58 pistol and disabler from the Security Officer loadout for the miniature energy pistol.
- Changing all laser-based weaponry from hitscan to projectile, except for the retro laser blaster because it is funny.
- Remove ion damage from disabling bolts.
- Reduction of the total amount of disabler shots-per-charge.
- Reduce the reflective vest's deflect chance from 100% to 66%
Possible (Future) Tweaks and Concerns
New Arsenal research paths for better energy / ballistic weaponry, printable by Sec to make up for the reduction in overall roundstart firepower.
Certain antag's heat resistances, most probably Nukeops and Dragons, will likely need to be tweaked down a significant margin.
Blob health might need tweaking as a result of the now mainly-heat-based armory.
Game Design Rationale
Seriously Silly
Laser guns are as dangerous as they are silly-looking and sounding and a staple of retro sci-fi. In short: they're flavorful and iconic, much more so than generic ballistic assault rifles.
Maintaining Authenticity
In the future corporate hellscape that is Space Station 14, anachronistic current-day technology exists with futuristic-but-not-really tech. Fax machines exist in the same station as alien artifacts and extradimensional anomalies. Dinky laser guns just fit the environment of a space station much better than a gun that would fit in the hands of a Vietnam War-era soldier.
Roundflow & Player Interaction
This should ideally encourage players in combat to fight in more up-and-personal ways, using more game mechanics while in combat. Slips, stuns, shoves, and antagonist abilities will have a chance to thrive when not every fight is a shootout.
Technical Considerations
This is all possible to do with purely .yml and mapping changes. Coordination will be required from mapping maintainers for armory changes.
More input will be required from the maintainers, particularly concerning the specifics of numbers.
The Metashield
Something that is "shielded" cannot be known by your character during a round until the "revealing condition" happens. This also means that your character cannot do things based on "shielded" information. Knowing or acting on something that is shielded before the revealing condition is met is referred to as metagaming.
Revealing conditions reveal the shielded information for the round, not for a specific instance. This means that once a revealing condition is met in a round, the shield no longer applies in any case for the remainder of the round.
Lifting the Shield
The metashield can be lifted one of two ways:
-
Any announcement from Central Command, relating to the specific antagonist. Such as:
- War declaration
- Unusual activity recalls
- Enemy communications
- Biohazard announcements
-
Command members (or any other player who is no longer under the metashield) telling others about specific antagonists
Lifting the metashield (spilling corporate secrets) is considered to be something only done with sufficient reason.
Corporate Secrets
The metashield is an out-of-character term used for admin actions; in character, this would be referred to as corporate secrets. You, as an average crewmember, are not trained to react to potential threats, nor do you remember the events between each round. Nanotrasen policy dictates that the average crewmate is here to do their job, not to worry about any potential threats. It is in Nanotrasen's best interest that the crew is unaware of any potential threat, as that would imply there is something to be afraid of.
As such, all information about specific antagonists is shielded. You do not know the objectives, tools, abilities, etc of any antagonist. Also included in metashielded knowledge is:
- Non-NT implanters
- Chameleon items and mysterious fibers
- Stealth items
However, all command members do not have a metashield. They are fully aware of any potential threats, and are specifically "trained" on how to deal with any threat. If the situation requires it, they are also allowed to tell crewmates what is happening and lift the shield. Security is still under metashield, however it is slightly modified and less strict. Please see the "Security Training Manual" for what they specifically know.
This comes at the expense of being against Nanotrasen policy. Wrongfully lifting the metashield, as a command member, has both IC and OOC consequences. Please see the general Command SOP for when it is considered wrong or right to lift the shield. The fact that Nanotrasen is hiding something from its crewmates is not shielded, but the actual secrets are shielded.
Examples
As a standard crew member, you do not know the objectives or abilities of any antagonist until the shield is revealed. However, you may know about rumors or concepts that relate to a specific antagonist, or that specific items or people are high-risk and require safekeeping. For example:
- Knowing that someone is a revolutionary is shielded; however, you may report them for unsolicited union activities.
- Knowing that someone is a heretic is shielded; however, you may report them for assault, kidnapping, etc.
- Knowing that someone is a traitor is shielded; however, you may report them for theft or murder.
- Knowing that someone is a changeling is shielded; however, genetic horrors beyond your imagination should probably not be on station. You can report them.
Essentially, do not take any action because you know that someone is antagonist, take action depending on what they have done. Avoid callouts that name the antagonist or game mode, at least until the shield has been lifted. If you find evidence that is inexcusably from an antagonist, bring it to a command member in order to "force" them to reveal the shield to you. Command is your boss, and you should consult them if you don't know what to do, IC or OOC.
This does not mean that the entire shift must play out without ever naming or dealing with the specific antagonists. As stated prior, the metashield is equal to corporate secrets, which do exist in character. This means that Nanotrasen is fully aware of any potential threats; they are just selective to who they give this information to.
Metafriending and Metagrudging
This section provides additional information on a concept that is prohibited by multiple metashield items that are never revealed IC. Giving a person or character preferential treatment based on something that your character should not know is considered metafriending. Treating a person or character negatively based on something that your character should not know is considered metagrudging.
Metafriending Examples
These are all examples of things that are prohibited by at least one metashield item that is never revealed IC.
- Giving a character additional access or a job because you are friends with the player who is playing that character.
- Trusting a character because you are friends with the player who is playing that character.
- Not fighting a character because you are friends with the player who is playing that character.
- Ignoring your objective to kill a character because your character and theirs became friends in a previous round.
Metagrudging Examples
These are all examples of things that are prohibited by at least one metashield item that is never revealed IC.
- Not giving a character additional access or a job because you are mad at or don't like the player who is playing that character.
- Not trusting a character because you are mad at or don't like the player who is playing that character.
- Starting a fight with a character because of something that they did last round.
- Starting a fight with a character because they killed you while you were playing a different character.
- Targeting or harassing a character based on anything which that character did outside the current round.
- Targeting or harassing a character based on anything which the character's player did while not playing the character.
Explicitly Not Shielded
The following is a list of things that are explicitly not shielded. If something is not on this list, it doesn't mean that it is shielded, but if something is on it then it definitely is not shielded.
- Non-NT aligned organizations exist, such as the Syndicate.
- The fact that the nuke disk must be protected and could be used by a bad actor to try to destroy the station.
- Certain items are high-risk and may be desired by outlaws or outside organizations (such as the Syndicate), and therefore are likely targets of theft.
- The idea that any Syndicate agent or other bad actor has goals or objectives that they are attempting to accomplish.
- The number of goals or objectives that a Syndicate agent or other bad actor has.
- The fact that the Syndicate are enemies of Nanotrasen.
- A character's typical appearance. Though you should keep in mind that multiple characters can share the same name.
Company Scrip
Designers | Implemented | GitHub Links |
---|---|---|
taydeo | โ No | TBD |
Overview
Scrip, a currency for regular crew to gamble with, purchase goods and services, and pressure heads of staff! Scrip is only valid on NanoTrasen stations.
Background
Spesos are fine and dandy as currency that is used with the TSF, but in-lore NanoTrasen is a chartered corporation that is given a complete monopoly on authority on its stations and any planets it may colonize. This concept is more accurately reflected when workers are paid in Company Scrip rather than Spesos. This falls in-line with the long term vision maintainers have for the lore of NanoTrasen. NanoTrasen now becomes a paternalistic entity that can be compared to the coal and timber companies of the United States during the 1900's. This also helps us form a more coherent narrative of NanoTrasen being more overtly evil.
Scrip now also adds a lot of dynamic interactions with crew, as there is now a viable currency that players can be bribed with.
Features to be added
For company scrip to be given the proper attention it deserves, it requires a large overhaul of these systems:
- Vending Machines
- New PDA Cartridge
Additional Systems should be added, for example:
- On-Demand Payment Square
- ATMs
- Station-wide Payout System
- Kiosks ran by Service Workers
- BankApp (CashApp rip off)
- Currency Exchanger
Scrip will also have an exchange rate of 3,000 to 1 speso. Yeah, it's worthless outside of NanoTrasen stations.
Vending Machines
Vending Machines need to automatically withdraw from a players spesos balance. This also means that Vending Machines should either have a flat price of all of the items they contain, or a method of specifying which items cost what. Vending Machines should also just not work when the ACC wire is snipped.
PDA Cartridge
PDA's should now come with a banking app that outlines how much Scrip they are getting next pay routine, their transactions, and their balance.
On-Demand Payment Square
An item that accepts payments when prompted by a user. These are handheld devices that can be used by Tidershops, Service Workers, etc. NanoTrasen issued payment squares have their funds sent to the Station Scrip Bank Account, which is then used as a means to pay out workers. Squares owned by individual people will have their funds deposited to their bank account, with a 5% tax.
Station-wide Payout System
The Station-wide Payout System is a system that, every 10 minutes, issues a set amount of scrip to the station. That money is then sorted through and given out to everyone. Salaries can be set by the HoP and bonuses can be given out by heads of staff if they observed their workers doing great work. It could also be used for anything else, for example, embezzeled by the Captain.
BankApp
The BankApp is another cartridge that players can aquire through Cargo or through the HoP. This Cartridge allows players to send funds to eachother, with the funds being recorded on the Station Records computer.
Players can use the BankApp to pay each other for favors, or whatever. A new entry to Space Law should be added, something along Circumventing Taxes. This law only applies if someone is considered to be running a business and using a non-NanoTrasen approved method to accept payment for goods or services, in order to avoid taxes.
Currency Exchanger
The currency exchanger bluespaces scrip out of the station and gives the player an appropriate amount of spesos; charged to their balance with a 2% conversion fee.
Game Design Rationale
Seriously Silly
Company Scrip sets the tone for what NanoTrasen is. Adding another tool that shows the player how evil NanoTrasen is and a tool that can be used as leverage against someone is perfect for this Seriously Silly sentiment.
Maintaining Authenticity
As said in Seriously Silly, Company Scrip sets the atmosphere. It reinforces the idea that you really are just a cog in a larger machine that's designed to make money. Exploited and easily replaced. This sentiment is what makes the atmosphere of Space Station 14 unique.
Dynamic Environment
Company Scrip can mean different things to different people. Some people don't care, others want to get rich quick. Adding another medium that can allow players to express themselves gives more weight to this dynamic environment as scrip could be used to brag, bribe, or not be used at all.
Roundflow & Player interaction
I don't forsee this having any major impact on round flow persay, an antagonist will still antagonize, but between players, this new feature opens up the door to many potential roleplay opportunities.
Bribes will have more of a weight to them, because scrip can be converted to spesos.
Administrative & Server Rule Impact (if applicable)
No additional stuff needed. Maybe more lenience for players who do choose to accept a bribe for a reasonable amount. No accepting bribes for 1 scrip or something.
Technical Considerations
Several new UI windows need to be made.
- BankApp
- ATM
- Balance App
- Vending Machines now need to display how much an item is worth in Scrip
A mass rebalancing of Cargo things need to take place as well, as there will be a way to generate spesos from Scrip.
More input will be required from the maintainers.
Security Training Manual
Welcome to your new job, officer!
We at Nanotrasen praise your dedication to safety and willingness to do anything for the wellbeing of the corporation. Below, you will find training material for your new position.
The following material is available for your reference, training, and use. The information is designed to assist Officers in their professional development. Please use the material to expand your understanding, enhance your professional knowledge, and to further your career.
Please also remember that all of this material is confidential, as per the NDA you signed on employment. Failure to comply with the terms of your employment will be met with swift legal action.
Section I. Corporate Secrets
As one of our field officers, you are primarily in charge of maintaining the wellbeing of the station's crew and ensuring that the crew properly performs their job. You are to ensure that the crew is kept in line and focused on this task, and you are also to ensure the crew's safety from any external forces. These forces may range from xenofauna, such as: snakes, spiders, or slimes, or other corporations, factions or individuals who may want to cause harm to Nanotrasen or its crew.
One of the primary organizations who may target the station is the Syndicate. The crew is aware that they exist, however, they are instructed that Nanotrasen will take care of any potential issues with it. You, as one of our officers, are the force that deals with any targetted attacks. The crew should not be involved in any capacity. Similarly, the crew is not to know that their immediate wellbeing is in danger, in the event of Syndicate espionage. In the event of a targetted attack, you should resolve it to the best of your ability without fearmongering within the crew.
The crew may be discontent with their current working conditions. You are, of course, to ensure that the cause of this disatisfaciton is not due to unsafe conditions. However, this dissatisfaction become unmanagable and cause the crew to consider a unionization, or even a revolt. In this event, the source of said discontent is likely caused by an outside force and can not be resolved through de-escalation. Refer to your command members for more instruction.
You may come across specific items or events that are unexplainable by natural means. These items may be magical in nature. Refer to your command members for more instruction.
Hydroponics Changes
Designers | Implemented | GitHub Links |
---|---|---|
ReconPangolin | โ No | TBD |
Overview
Expands the role of botany by opening the design space through the rebalancing of existing features, a new mutation system, and the addition of new plants, machinery and mutations.
Background
I initially set out to incentivize shadowlands exploration by adding plants as interesting loot, however, the more I tested certain features the more potential problems I found. I discussed some of these problems with Terkala/The Fern of Functionality and they agreed that the current state of botany wouldn't support some of the more powerful plants I planned to add. As a result, the scope of this proposal has grown far beyond my initial expectations.
Features to be added
Unique plant crossbreeding
Feature Description
Different seeds can be crossbred together into new species. This would be achieved through a new roundstart machine that would consume seeds and potentially a catalyst to output a new species of plant.
One path could relate to steel-caps, for example:
- Combine papercane and steel-caps to create plastic-caps
- Combine plastic-caps and golden apples to create aurum-caps which could produce small amounts of gold
This feature would allow botany to grow plants that would have been too strong or would invalidate other departments if they existed purely in the current system. The process of mutating three unique plants, combining them together, and finally trying for self-harvesting mutations should be long and difficult enough to make salvage the much preferred route to gold, however, it allows botany to fill gaps in the manifest and provides a longer term goal. It's also easy to balance. If we wanted gold to be locked behind salvage we could make a requirement be salvage loot.
Motivation
Currently players need to apply unstable mutagen and hope for the best to mutate plants. In isolation this system if fine, although it has a heavy reliance on chemistry, there's limited skill expression and - provided you've got access to exotic seeds - you can grow everything almost immediately from round start. If I added new varieties of mutations they'd all be easy to achieve purely by dumping buckets of mutagen and then dylo/multiver/vitamins onto certain plants. I've also seen a common trend in botany of cryoing earlier after growing certain plants. Usually these plants consist of everything the chef could need or some combination of omni, cognizine, deathnettle and gatfruits. This new feature should encourage greater variety in the number of plants grown, add to the progression throughout a round and allow botany to grow plants that are useful to a variety of departments.
Machines
Plant Sequencer
Swabbing is completely random and fairly obtuse for new botanists, so I propose adding a new machine to aid the learning process and partially remove the randomness. It would be available as a tier 3 civilian services research.
The plant sequencer would consume two seeds to displays what traits could be spliced between them. The player would then manually choose some mutations and traits, limited by a new mechanic called 'genetic stability', and then the remaining traits would be spliced randomly, identical similar to the current system. More powerful traits would cost more genetic stability and this would only be recovered as plants grow. This machine requires a competent botanist and civ t3 to make full use of so I'll probably tune it higher to start and if it's problematic we can tune it down late.
Plant Analyzer
I'd like to make adjustments to the plant analyzer to give it different tiers so it can be available from roundstart as well as more powerful versions through research. At T1 the plant analyzer would be available at round start but it would only display less useful info such as potency, yield and potentially growth rates and use more power. At T2 it'd be the current plant analyzer with - potentially slightly faster with less information? - which would add information such as chemicals, gas and mutations. At T3 it'd be available from the T3 civ services research. It would be fairly fast and show details such as potency divisor, weed growth and threshold, and mutations.
Seed Splicer
A new machine for crossbreeding plant species. This would take two unique seeds in varying quantities and combine them into a new species. Certain plants may require more then one packet of seeds or catalyst (vestine, exotium, artifact shards) as a balancing measure.
Botany rebalance
Motivation
As mentioned earlier, the best method to achieve anything in botany right now is to throw a cocktail of chemicals on a plant. Whilst most of these chemicals aren't a huge concern there are a couple that I believe are problematic, notably diethylamine.
Diethyl can be used to speed up a plant's growth by increasing it's age. This bypasses anything that could affect the plants health so it can be abused to instantly grow any plant regardless of its requirements. I've managed to grow 9 gatfruits in under three minutes from round start using a single seed and 35 gatfruits in about five minutes with a bucket of diethyl, despite the fact that it's bugged to be less effective then intended. Diethyl greatly limits the botany design space as any plant with longer growth times, complex requirements, or unique conditions can be instantly grown.
Another issue is that multiver/dylo/vitamins can restore plant health and phalanx can remove an invalid gene so a plant can always be kept alive at no cost.
I'm proposing that we link plant health to growth rate and instead have diethyl speed up growth rate. A healthy plant with this change could grow even faster than in stable but plants with worse conditions or botanists with thousands of units of diethyl would have a harder time. As part of this change I'd be modifying mutations to remove some conditions that I've never once seen satisfied (Requires zauker/trit/bz) and adding some new ones - including intended features that were never finished.
Changes
- PlantGrowth now increases the rate a plant grows instead of instantly increasing a plant's age
- A plant's growth rate and health is increased or decreased based upon a formula rather than the current all or nothing system.
- Implemented missing features or features marked as TODO (such as improper light doing nothing, potentially pests if the playtests go well)
- Modified gas mutations to be safer (I'll talk to Terkala/Fern for this one)
- Removed a number of the health modifying mutations that will never be satisfied. (I don't think an atmosian has ever been or should ever be asked to trit flood botany and it's not an interesting way to punish excessive mutation)
- Colored the third hydroponics light to differentiate between what's impacting a plant's health
- Robust harvest has a 5-10? unit threshold so it won't punish botanists for being one or two units over
- Modified the mutation weights to be more enjoyable
The following are a few potential tentative and controversial changes to botany, most won't be implemented.
These are potential balancing levers for if more variety and content leads to powercreep, to potentially reduce entity spam, and to reduce the gap between standard plants and perfect plants to help newer botanists. If given the choice I'd rather have power in the variety, experimentation and content of botany rather than a few very strong plants.
- Specific plant species have a max yield
- Plants have a maximum chemical storage based on potency
- Chemicals are decreased the more that exist in a plant
- The potency divisor of certain chemicals is increased
- High yield plants take longer to grow, chemicals in a plant are potentially increased to compensate (Might require kitchen changes)
- Plants take slightly longer to grow if they're multi-harvest, increased for self-harvesting or these traits reduce yield
- Plants will always be able to be clipped exactly two times. Maybe can limit to 1 or 0 for extremely powerful plants so you need a lot of effort to grow one.
- Clipping will reduce the stats of the parent plant, clippings might be unaffected. Could use genetic stability so plants recover over time
New plants
Shadowlands Loot
I'll work with an artist and maintainer on the naming and theming of these.
The majority of these plants will be poisonous and grow better in low light conditions. This gives the option for engineering to help build a space but these plants could also be grown in the botany locker room (on most maps), grown in maints, or spliced to remove this trait. I'll also add some standard plants too, I'm just listing the ones that should be in a design document.
Ebonberry
Peer into the shadows
A berry obtained by crossbreeding a shadowlands plant and blue pumpkins. It grants nightvision to aid in exploration but it can also be beneficial for hiding or exploring maints.
Duskpalm
Obscure the world
A rare plant found responsible for creating the shadows found near shadow portals. It can be mutated into dawnpalm which has an intense glow that banishes away any nearby shadows. If science is using a shadow anomaly as a portal an expedition team can retrieve this and a botanist can mutate it to help deal the anomaly and it may be useful for exploring the shadowlands. I'll need to look into performance impacts for this one.
Spectra
Fade into darkness
A crossbreed of a chilly, glasstle and a rare shadowlands plant. Anyone who consumes this plant will become temporarily invisible.
Uses the upstream regent Spectra-Fade pull request.
Wormhole
Warp yourself into genpop
A crossbreed between an extra-dimensional orange, spaceman's trumpet and a rare shadowlands plant. Any player who consumes this regent will be teleported a short distance randomly, suffer heavy toxin damage and empty their stomach from the transition. It's a great escape from antags or for antags with a heavy risk attached. It should be difficult to use as a poison since it's extremely obvious, you don't want your target to teleport to safety, and it's consumed after one teleport.
Salvage Loot
Radium and Phosphorus plants
For when you've pestered chemistry too much
Currently there's only one component of mutagen available in plants without random mutation, chlorine. A plant would be available from salvage that could be crossbred with a few standard seeds to produce radium and/or phosphorus so botany could better mutate without a chemist.
Gaia
The only plant anyone ever suggests
With the introduction of rare plants and crossbreeding we can finally add Gaia back without breaking the game. Gaia would be the pinnacle of difficulty to obtain and require advanced mutations, salvage and potentially even an expedition to the shadowlands. Once it's been achieved plants will no longer need weeding, water or compost.
Catmint
Have any ahelp instantly answered!
A plant that contains drugs that only affect felinids and cats. Can be crossbred with blueberries into a plant that contains a regent similar to wehjuice that makes players meow. This regent can be used for a chem that can temporary polymorphs players into a cat. When scurrets/slugcats get merged upstream (VERY IMPORTANT) it'll also be used for scurret polymorphs.
Features that might be designed later
This is already long enough but here's a list of plants I'm looking into and some other features I might include
- Expanding the cap series of trees to include most resources the station could need - provided the right seeds are found and the right plants are mutated
- An expansion to syndicate botany that requires growing, mutating and crossbreeding gatfruit among other plants and vestine. It rewards more powerful guns at much greater risk of sec discovery and a big investment in time and resources
- A low capacity battery that can be grown that slowly recharges over time
- A plant that grows improved fibres to make slightly larger backpacks.
- A more consistent way to obtain anomaly berries
- More mutations
Suggestions
- Stunbaton equiv of nettle, might be fine if it uses the same salvage plant containing licoxide to crossbreed with difficult enough requirements
Game Design Rationale
Botany was the first department I started with in SS13 (and SS14) and I believe that it's unique in its position as beginner friendly job that's never required for the station to run whilst simultaneously having a high skill ceiling and potentially patch almost any issue in a station. If medical is understaffed you can produce omnizine, if materials are an issue you can supply the station with steelcap and random chemicals help keep the department fresh. Despite all it's very common to see reworks suggested and I agree there are improvements that could be made. I've reviewed proposals and pull requests across different repositories and the common threads are the following:
- Botany lacks interdepartmental interactions outside of providing ingredients to the chef and requiring chemicals from the chemist
- There is limited progression throughout a round
- Traits are obtuse and mutation is random
I disagree that botany only interacts with one, maybe two, departments since I've had botany specific interactions with almost every role, however, there's plenty of room for improvement and the new plants should aid in this. Additionally, the addition of crossbreeding should add long term goals and the loot can open up exciting possibilities for a botanist late into a round. New machinery alongside our previous addition of and improvements to the plant analyzer ashould aid players in learning how to mutate and splice traits from plants together.
Seriously Silly
The new plants should open up some very silly possibilities. I love the idea of bluespacing only to end in the worst location, invisibility timing out at the worst time, new fun chems to mess around with and overall just an improvement to the amount of people I roleplay with in a botany round. Also the image of a syndicate agent gearing up with plants instead of a hardsuit and high tech weapons is hilarious to me.
Maintaining Authenticity
Crossbreeding plants and genetically modifying them is a common part of modern agriculture. Kale, cauliflower, broccoli, cabbage and Brussels sprouts all were developed from the same plant and there's thousands of chilli varieties. Improving this feature should feel authentic and add to the idea that this station was primarily setup for research and development. I concede that some of the sillier plants aren't realistic although I think it's fine to sacrifice some realism for entertainment.
Dynamic Environment + There is no Winning or Losing
For this proposal these principles are intricately linked so to avoid repeating the same thing: At the moment botany can feel somewhat solved; while random chems in plants are great at creating roleplaying experiences and dynamic rounds they aren't consistent. Your best bet right now is to grow omnizine, deathnettle, gatfruit or killer tomatoes. I'm hoping these changes open up new strategies, unique options and expand on what makes botany dynamic rather than player's focusing on a small set of meta plants.
Roundflow & Player interaction
Roundflow
Most of these plants will be difficult to come by and require a competent botanist, chemist and salvage team working together and some features require T3 service research. In longer rounds you could see botany become a force to be reckoned with, however, plenty of other jobs (salvage, atmos, science, cargo) also scale well so I'm not expecting anything major to change we could always rein it in if it does and apply some nergs. If Verna or Fern become DAGD agents then I'm sure they could abuse these changes but that would be peak SS14.
Player interaction
Players would have many new options open to them and it these changes encourage other departments - notably salvage - talking to botany so this should be great for player interaction. I could see veterans being annoyed after going from an extremely skilled botanist to a new player so that could be a problem but I'd like to hope our playerbase is above flaming newbies for not being Verna. Some botanists might ignore the chef at the risk of breaking SOP and getting fired?
Administrative & Server Rule Impact
Everything added would just expand existing features so the admin load should be similar. There's the potential it would make it easier to self-antag or powergame as botanist but given the current system allows for botany to produce lethal amounts of BZ or trit I'd expect it to reduce workload if anything. There is also the potential for OOC mald at new players (which already exists in other departments) in a role that's well suited for new players.
Technical Considerations
If do my job correctly I don't expect any performance impact, there could be issues with entity spam but I'm planning on profiling the code and improving the current performance. There's been plenty of arguments on improving the botany code and switching to more of an ECS design pattern but I'm planning on working on content first and foremost rather then getting bogged down in making a perfect system and the code is workable for the most part, I'll look into it further down the development pipeline.
I'll develop a mockup for this UI if the proposal is received well and I'd require help spriting for this project since I'm horrific at drawing.
Command SOP
- Command members are to ensure the safety of the entire station, each primarily responsible for their own Department and respective duties;
- Command members are to ensure the wellbeing and dignity of Nanotrasen and its related assets;
- Command members may not slander or libel Nanotrasen;
- Command members must ensure that Nanotrasen corporate secrets remain confidential, and may reprimand or punish fellow command members who threaten this confidentiality;
- In the event of a confirmed threat to the station or Nanotrasen as a whole, command members may temporarily reveal related corporate secrets to crewmembers;
- Command members must report such confidentiality breaks as soon as the event is resolved;
- Command members must follow any Central Command officer's (such as the Nanotrasen Representative, Internal Affairs Agent, or the Magistrate) direction on corporate secrets;
- Command members must accept any fine, punishment, demotion, or death when a Central Command officer informs them of a wrongful break of their confidentiality agreement.
"Corporate Secrets"
Designers | Implemented | GitHub Links |
---|---|---|
correspond | โ | TBD |
Overview
The metashield, as it currently is, is confusing and heavily relies on OOC enforcement of IC actions. This is a proposal in order to rewrite the metashield as "corporate secrets," focusing on giving players a better way to react to the game in character.
The basic summary of corporate secrets is:
- Pretty much everything is shielded now, with some minor exceptions. Normal crewmates are here to do their job, and as such, NT does not tell them about any of the potential on-station threats.
- However, command is trained to deal with these threats. The metashield does not exist for them. However, these threats are corporate secrets, and command has signed some sort of NDA about them. Telling the crew about said threats (unless in emergency situations) is strictly prohibited.
- Since IAA, NTR and the Magistrate are directly from NT corporate, they are tasked with ensuring that command does not fearmonger and spill the secrets. In the case that a command member reveals corporate secrets unnecessarily, these three would be the ones to punish them IC. Admins are still encouraged to enforce the metashield OOC.
- The metashield can only be lifted one of two ways: Central Command announcements (think war ops, unusual activity, or blob biohazard announcements) or by command telling the crew.
Features to be added
Multiple new in-game and wiki documents:
Lasers and Armory Overhaul
Designers | Implemented | GitHub Links |
---|---|---|
Miiish | โ No | TBD |
Overview
This design doc outlines the removal of current ballistic weapons in the armory in favor of safer, more retro, family-friendly weaponry designed to melt station-ending threats.
Background
Ballistic weaponry from an in-universe common-sense/immersion perspective is not ideal whatsoever when bullets can break windows and space (very dangerous!!!) sections of the station, potentially killing crew if no protections are in place.
This design doc is made from the perspective of both allowing melee weapons to be more viable and to unify NanoTrasen standard weaponry in a way that makes more sense.
They are additionally the primary killing tools of the Syndicate (bad guys!!), and this works to differentiate NanoTrasen brand killing tools (good) and Syndicate brand evil killing tools (bad), as well as allow unique balancing around factional weaponry. Found bullet casings in maintenance? You probably can't blame that on a trigger-happy cadet anymore.
Why this is Good for the Game
These changes all aim to serve a few purposes:
Aesthetics: Energy weapons are cool and retro sci-fi-y, and very distinguishable as opposed to having 5 generic Gun sprites.
Melee, especially unique antagonist melee such as the energy sword and armblade, should be more viable as a method of killing, as a high risk-reward profile. The overall increase of Time-To-Kill on ranged weaponry should aim to incentivize the use of more 'up close and personal' killings and encourage antagonists to take on Security more.
The splitting up of Sec lethals should also encourage Security to use their other tools, like truncheons, more for better damage profiles instead of using their gun as a metaphorical hammer for everything.
This also aims to bring Sec more 'back to Earth', so to speak. By lowering the amount of pure weaponry they have access to roundstart, we curb the constant Sec - Antag cat-and-mouse balancing game that leads to intense powercreep, and makes crew cooperation and interdepartmental play somewhat more useful in ending station-wide threats, such as the Blob. In short, this helps allow for antagonist abilities to be imposing without having to be overwhelmingly powerful or durable.
Ranged weapons, due to their inherent safety and power over using melee, should require a bit more tactical use and forethought than just pointing in a direction and killing whatever's there. Lasers allow for more of this planning through the use of, for example, constructing windows to prepare for a threat. The lowered amount of charges and damage-per-charge/magazine also requires more forethought when bringing them out. Why use a gun when I can relatively safely use melee here?
Additions
Map into Armory
Temperature Gun
See https://github.com/space-wizards/space-station-14/pull/35447 for implementation. Main difference: this will be an Armory weapon and not researchable.
Ion Rifle
A powerful three-shot rifle that deals 50 ion damage on a direct hit as well as a 3x3 tile weak EMP where it lands. Very powerful against cybernetic threats, such as borgs, IPCs, or mechs, but only tactically useful against other energy-weapon users.
Energy Gun
A battery-powered carbine (can fit in the backpack) which can fire either disabling or laser bolts, with less charge than the base Laser Rifle. It has 15 charges.
Miniature Energy Gun
The replacement for both the Officer's disabler and pistol, this is simply a smaller version of the Energy Gun. It can fit in your pocket and has 12 charges, which can be used to disable or laser.
Cadets will also start with this, but it will be locked on Disable until the childproof plastic lock is broken using a screwdriver.
Possible Additions (to be added to Research, primarily)
Blue Laser Rifle
Same as the stock laser rifle but it deals cold damage because it's blue.
Force-bolt Pitcher
An energy weapon that fires slow-moving but long-lasting spheres of energy. This deals blunt and some stamina damage.
Inducer
A portable recharger. It takes battery-cells and charges at a very slow rate. Possibly upgradable with Science.
Changes to current Features / Gamestate
Armory (Mapping)
The removal of all ballistic weaponry from the Armory, in favor of the new laser-based weaponry.
Kammerers should stay as they are explicitly very CQB weapons, as opposed to the longer-range, more reliable lasers.
The addition of a disabler safe to all armories for emergency Command-arming reasons.
The removal of the WT-550 from the Head of Security office.
The removal of disablers from Sec officer lockers.
The removal of ballistic ammo that no longer corresponds to armory/on-station weaponry. Keep rifle, revolver, and shotgun ammo printing for the Chaplain, Detective, and armory respectively.
Overall, Armory would now contain:
- 1 disabler safe (containing 5 disablers)
- 3 energy guns
- 3 laser rifles
- 3 Kammerers
- 1 ion rifle
- 1 temperature gun
Note: Although the weekly rollouts can simply migrate weapon safes in the armory through migrations.yml, it would be best to have them also mapped out by their respective map's maintainers where possible.
Cargo
- The removal of the WT-550 SMG crate from Cargo.
- Replacing the Enforcer crate with the Kammerer crate.
- Replacing the smg and pistols crates with the Energy Gun and Miniature Energy Guns crates.
Technical / Misc. Tweaks
- One unified Laser Projectile and one unified Disabler Projectile defined in Funkystation files.
- An overall increase in laser damage.
- The removal of self-recharging from the HoS' multiphase gun (why is it a better captain's laser?)
- The removal of self-recharging from the EG-4 energy revolver (Blueshield)
- Reduce the Warden's energy shotgun to 6 shots.
- The removal of the mk58 pistol and disabler from the Security Officer loadout for the miniature energy pistol.
- Changing all laser-based weaponry from hitscan to projectile, except for the retro laser blaster because it is funny.
- Remove ion damage from disabling bolts.
- Reduction of the total amount of disabler shots-per-charge.
- Reduce the reflective vest's deflect chance from 100% to 66%
Possible (Future) Tweaks and Concerns
New Arsenal research paths for better energy / ballistic weaponry, printable by Sec to make up for the reduction in overall roundstart firepower.
Certain antag's heat resistances, most probably Nukeops and Dragons, will likely need to be tweaked down a significant margin.
Blob health might need tweaking as a result of the now mainly-heat-based armory.
Game Design Rationale
Seriously Silly
Laser guns are as dangerous as they are silly-looking and sounding and a staple of retro sci-fi. In short: they're flavorful and iconic, much more so than generic ballistic assault rifles.
Maintaining Authenticity
In the future corporate hellscape that is Space Station 14, anachronistic current-day technology exists with futuristic-but-not-really tech. Fax machines exist in the same station as alien artifacts and extradimensional anomalies. Dinky laser guns just fit the environment of a space station much better than a gun that would fit in the hands of a Vietnam War-era soldier.
Roundflow & Player Interaction
This should ideally encourage players in combat to fight in more up-and-personal ways, using more game mechanics while in combat. Slips, stuns, shoves, and antagonist abilities will have a chance to thrive when not every fight is a shootout.
Technical Considerations
This is all possible to do with purely .yml and mapping changes. Coordination will be required from mapping maintainers for armory changes.
More input will be required from the maintainers, particularly concerning the specifics of numbers.
The Metashield
Something that is "shielded" cannot be known by your character during a round until the "revealing condition" happens. This also means that your character cannot do things based on "shielded" information. Knowing or acting on something that is shielded before the revealing condition is met is referred to as metagaming.
Revealing conditions reveal the shielded information for the round, not for a specific instance. This means that once a revealing condition is met in a round, the shield no longer applies in any case for the remainder of the round.
Lifting the Shield
The metashield can be lifted one of two ways:
-
Any announcement from Central Command, relating to the specific antagonist. Such as:
- War declaration
- Unusual activity recalls
- Enemy communications
- Biohazard announcements
-
Command members (or any other player who is no longer under the metashield) telling others about specific antagonists
Lifting the metashield (spilling corporate secrets) is considered to be something only done with sufficient reason.
Corporate Secrets
The metashield is an out-of-character term used for admin actions; in character, this would be referred to as corporate secrets. You, as an average crewmember, are not trained to react to potential threats, nor do you remember the events between each round. Nanotrasen policy dictates that the average crewmate is here to do their job, not to worry about any potential threats. It is in Nanotrasen's best interest that the crew is unaware of any potential threat, as that would imply there is something to be afraid of.
As such, all information about specific antagonists is shielded. You do not know the objectives, tools, abilities, etc of any antagonist. Also included in metashielded knowledge is:
- Non-NT implanters
- Chameleon items and mysterious fibers
- Stealth items
However, all command members do not have a metashield. They are fully aware of any potential threats, and are specifically "trained" on how to deal with any threat. If the situation requires it, they are also allowed to tell crewmates what is happening and lift the shield. Security is still under metashield, however it is slightly modified and less strict. Please see the "Security Training Manual" for what they specifically know.
This comes at the expense of being against Nanotrasen policy. Wrongfully lifting the metashield, as a command member, has both IC and OOC consequences. Please see the general Command SOP for when it is considered wrong or right to lift the shield. The fact that Nanotrasen is hiding something from its crewmates is not shielded, but the actual secrets are shielded.
Examples
As a standard crew member, you do not know the objectives or abilities of any antagonist until the shield is revealed. However, you may know about rumors or concepts that relate to a specific antagonist, or that specific items or people are high-risk and require safekeeping. For example:
- Knowing that someone is a revolutionary is shielded; however, you may report them for unsolicited union activities.
- Knowing that someone is a heretic is shielded; however, you may report them for assault, kidnapping, etc.
- Knowing that someone is a traitor is shielded; however, you may report them for theft or murder.
- Knowing that someone is a changeling is shielded; however, genetic horrors beyond your imagination should probably not be on station. You can report them.
Essentially, do not take any action because you know that someone is antagonist, take action depending on what they have done. Avoid callouts that name the antagonist or game mode, at least until the shield has been lifted. If you find evidence that is inexcusably from an antagonist, bring it to a command member in order to "force" them to reveal the shield to you. Command is your boss, and you should consult them if you don't know what to do, IC or OOC.
This does not mean that the entire shift must play out without ever naming or dealing with the specific antagonists. As stated prior, the metashield is equal to corporate secrets, which do exist in character. This means that Nanotrasen is fully aware of any potential threats; they are just selective to who they give this information to.
Metafriending and Metagrudging
This section provides additional information on a concept that is prohibited by multiple metashield items that are never revealed IC. Giving a person or character preferential treatment based on something that your character should not know is considered metafriending. Treating a person or character negatively based on something that your character should not know is considered metagrudging.
Metafriending Examples
These are all examples of things that are prohibited by at least one metashield item that is never revealed IC.
- Giving a character additional access or a job because you are friends with the player who is playing that character.
- Trusting a character because you are friends with the player who is playing that character.
- Not fighting a character because you are friends with the player who is playing that character.
- Ignoring your objective to kill a character because your character and theirs became friends in a previous round.
Metagrudging Examples
These are all examples of things that are prohibited by at least one metashield item that is never revealed IC.
- Not giving a character additional access or a job because you are mad at or don't like the player who is playing that character.
- Not trusting a character because you are mad at or don't like the player who is playing that character.
- Starting a fight with a character because of something that they did last round.
- Starting a fight with a character because they killed you while you were playing a different character.
- Targeting or harassing a character based on anything which that character did outside the current round.
- Targeting or harassing a character based on anything which the character's player did while not playing the character.
Explicitly Not Shielded
The following is a list of things that are explicitly not shielded. If something is not on this list, it doesn't mean that it is shielded, but if something is on it then it definitely is not shielded.
- Non-NT aligned organizations exist, such as the Syndicate.
- The fact that the nuke disk must be protected and could be used by a bad actor to try to destroy the station.
- Certain items are high-risk and may be desired by outlaws or outside organizations (such as the Syndicate), and therefore are likely targets of theft.
- The idea that any Syndicate agent or other bad actor has goals or objectives that they are attempting to accomplish.
- The number of goals or objectives that a Syndicate agent or other bad actor has.
- The fact that the Syndicate are enemies of Nanotrasen.
- A character's typical appearance. Though you should keep in mind that multiple characters can share the same name.
Company Scrip
Designers | Implemented | GitHub Links |
---|---|---|
taydeo | โ No | TBD |
Overview
Scrip, a currency for regular crew to gamble with, purchase goods and services, and pressure heads of staff! Scrip is only valid on NanoTrasen stations.
Background
Spesos are fine and dandy as currency that is used with the TSF, but in-lore NanoTrasen is a chartered corporation that is given a complete monopoly on authority on its stations and any planets it may colonize. This concept is more accurately reflected when workers are paid in Company Scrip rather than Spesos. This falls in-line with the long term vision maintainers have for the lore of NanoTrasen. NanoTrasen now becomes a paternalistic entity that can be compared to the coal and timber companies of the United States during the 1900's. This also helps us form a more coherent narrative of NanoTrasen being more overtly evil.
Scrip now also adds a lot of dynamic interactions with crew, as there is now a viable currency that players can be bribed with.
Features to be added
For company scrip to be given the proper attention it deserves, it requires a large overhaul of these systems:
- Vending Machines
- New PDA Cartridge
Additional Systems should be added, for example:
- On-Demand Payment Square
- ATMs
- Station-wide Payout System
- Kiosks ran by Service Workers
- BankApp (CashApp rip off)
- Currency Exchanger
Scrip will also have an exchange rate of 3,000 to 1 speso. Yeah, it's worthless outside of NanoTrasen stations.
Vending Machines
Vending Machines need to automatically withdraw from a players spesos balance. This also means that Vending Machines should either have a flat price of all of the items they contain, or a method of specifying which items cost what. Vending Machines should also just not work when the ACC wire is snipped.
PDA Cartridge
PDA's should now come with a banking app that outlines how much Scrip they are getting next pay routine, their transactions, and their balance.
On-Demand Payment Square
An item that accepts payments when prompted by a user. These are handheld devices that can be used by Tidershops, Service Workers, etc. NanoTrasen issued payment squares have their funds sent to the Station Scrip Bank Account, which is then used as a means to pay out workers. Squares owned by individual people will have their funds deposited to their bank account, with a 5% tax.
Station-wide Payout System
The Station-wide Payout System is a system that, every 10 minutes, issues a set amount of scrip to the station. That money is then sorted through and given out to everyone. Salaries can be set by the HoP and bonuses can be given out by heads of staff if they observed their workers doing great work. It could also be used for anything else, for example, embezzeled by the Captain.
BankApp
The BankApp is another cartridge that players can aquire through Cargo or through the HoP. This Cartridge allows players to send funds to eachother, with the funds being recorded on the Station Records computer.
Players can use the BankApp to pay each other for favors, or whatever. A new entry to Space Law should be added, something along Circumventing Taxes. This law only applies if someone is considered to be running a business and using a non-NanoTrasen approved method to accept payment for goods or services, in order to avoid taxes.
Currency Exchanger
The currency exchanger bluespaces scrip out of the station and gives the player an appropriate amount of spesos; charged to their balance with a 2% conversion fee.
Game Design Rationale
Seriously Silly
Company Scrip sets the tone for what NanoTrasen is. Adding another tool that shows the player how evil NanoTrasen is and a tool that can be used as leverage against someone is perfect for this Seriously Silly sentiment.
Maintaining Authenticity
As said in Seriously Silly, Company Scrip sets the atmosphere. It reinforces the idea that you really are just a cog in a larger machine that's designed to make money. Exploited and easily replaced. This sentiment is what makes the atmosphere of Space Station 14 unique.
Dynamic Environment
Company Scrip can mean different things to different people. Some people don't care, others want to get rich quick. Adding another medium that can allow players to express themselves gives more weight to this dynamic environment as scrip could be used to brag, bribe, or not be used at all.
Roundflow & Player interaction
I don't forsee this having any major impact on round flow persay, an antagonist will still antagonize, but between players, this new feature opens up the door to many potential roleplay opportunities.
Bribes will have more of a weight to them, because scrip can be converted to spesos.
Administrative & Server Rule Impact (if applicable)
No additional stuff needed. Maybe more lenience for players who do choose to accept a bribe for a reasonable amount. No accepting bribes for 1 scrip or something.
Technical Considerations
Several new UI windows need to be made.
- BankApp
- ATM
- Balance App
- Vending Machines now need to display how much an item is worth in Scrip
A mass rebalancing of Cargo things need to take place as well, as there will be a way to generate spesos from Scrip.
More input will be required from the maintainers.
Security Training Manual
Welcome to your new job, officer!
We at Nanotrasen praise your dedication to safety and willingness to do anything for the wellbeing of the corporation. Below, you will find training material for your new position.
The following material is available for your reference, training, and use. The information is designed to assist Officers in their professional development. Please use the material to expand your understanding, enhance your professional knowledge, and to further your career.
Please also remember that all of this material is confidential, as per the NDA you signed on employment. Failure to comply with the terms of your employment will be met with swift legal action.
Section I. Corporate Secrets
As one of our field officers, you are primarily in charge of maintaining the wellbeing of the station's crew and ensuring that the crew properly performs their job. You are to ensure that the crew is kept in line and focused on this task, and you are also to ensure the crew's safety from any external forces. These forces may range from xenofauna, such as: snakes, spiders, or slimes, or other corporations, factions or individuals who may want to cause harm to Nanotrasen or its crew.
One of the primary organizations who may target the station is the Syndicate. The crew is aware that they exist, however, they are instructed that Nanotrasen will take care of any potential issues with it. You, as one of our officers, are the force that deals with any targetted attacks. The crew should not be involved in any capacity. Similarly, the crew is not to know that their immediate wellbeing is in danger, in the event of Syndicate espionage. In the event of a targetted attack, you should resolve it to the best of your ability without fearmongering within the crew.
The crew may be discontent with their current working conditions. You are, of course, to ensure that the cause of this disatisfaciton is not due to unsafe conditions. However, this dissatisfaction become unmanagable and cause the crew to consider a unionization, or even a revolt. In this event, the source of said discontent is likely caused by an outside force and can not be resolved through de-escalation. Refer to your command members for more instruction.
You may come across specific items or events that are unexplainable by natural means. These items may be magical in nature. Refer to your command members for more instruction.
Maintainers
A maintainer means a lot of different things. There are Art Directors, Wikitainers, and regular Maintainers. Funky Stations development structure is organized to make sure the flattest possible hierarchy exists.
In order for someone to be a maintainer, they must agree and adhere to these principles.
What is a Funky Station maintainer?
A Funky Station maintainer is someone who is trusted with certain responsibilities. Different maintainers are responsible for different things, but generally, to whatever feature or service they are tasked with maintaining, come the following expectations:
- A promise to the community that they will manage features with the best interest of the Funky Station community in-mind
- An expectation that a maintainer will not involve themselves with administrative actions taken against community members or themselves
- An expectation that a maintainer will discuss features with the community in a faithful and honest manner
- That anything a maintainer creates is to the best possible quality they can provide
- That features are discussed with other maintainers before they are fully implemented, and not just the Head Maintainer
The description is kept brief, because a maintainer does not only do things related to game code / content. There are also services that need to be kept updated, servers that need to be checked on, documentation that has to be written, wiki's that need to be kept up to date, etc. It is better to ask a maintainer directly what it is they manage / are working on.
Maintainers can also organize workgroups on their own, for features or initiatives that require a substantial amount of work.
Workgroups
Workgroups are the biggest organizational unit for a feature. Members within workgroups can be players, contributors, even other maintainers, with the appropriate Workgroup Leader being either the Author of the feature in question, or someone else appointed by the Head Maintainer. Workgroup Leaders may not even be maintainers at all, but they are someone who the Maintainers can have a discussion with about the feature in question.
A workgroup is typically formed after a design document that is PR'ed to the Docs repository is accepted by the Maintainer team. Otherwise, Workgroups are organized by Maintainers.
A Workgroup can be made up of hundreds of people, or made up of one.
A Workgroup can also have positions within them, so long as they are approved by the Workgroup Leader.
Workgroup names are typically "[name of feature] Workgroup." For example, if someone was working on the Xenobio design document, the workgroup for that would be the Xenobio Workgroup.
After a feature is considered complete, the workgroup may continue to exist or be disbanded by the discretion of either the workgroup leader, a maintainer, or the Head Maintainer.
If a feature is considered abandoned by a Maintainer or the Head Maintainer, work may either be picked up by someone else who is interested and makes the appropriate contact to the Maintainer, or by a Maintainer. Otherwise, the feature is considered dead, and work is archived.
A Maintainer or a group of Maintainers may choose to sponsor a workgroup and offer guidance and support to a specific feature.
PR Review
Any Maintainer can review a PR for quality, although not every Maintainer can speak for the features involved in a PR. Maintainers are always encouraged to bring up these discussions in the appropriate Discord Chat or on the PR itself. A Maintainer is not to merge a PR unless it is labelled as a critical fix. Smaller tweaks, like balance changes, are encouraged to be brought up to other Maintainers first before it is merged, even if the consensus is just a quick "Yup" or "No".
Any Maintainer may hold a PR to not be merged unless concerns about it are addressed by the rest of the Maintainers.
Some specific reasons for why a Maintainer might want to hold a PR for review could be:
- Worry about Quality
- Goes against Funky Stations Design Principles
- Code and/or Assets may not be properly attributed or stolen
Feedback given on a PR must be addressed with the same level of care given by the author. Focus on the content of their PR when giving feedback.
Who should get involved with a PR
- The Art Director(s)
They are in-charge of making sure art assets in the game are consistent. A PR may be denied because the art involved may not be up-to-standard.
- The Wikitainers
They are in-charge of making sure that features are properly documented, and a big enough feature that lacks guidebook documentation or other such documentation will need to be shared with them.
- Regular Maintainers
A standard Maintainer will check if code or content added in a PR is squared away and given the proper accreditation.
Stance on AI
AI being used to assist programmers with formulas or other such things is allowed. Disclosing that you used AI for said PR is encouraged.
No art made with AI is to be merged.
No music made with AI is to be merged.
Features built with a heavy reliance on AI are not to be merged.
Changing Policy
This policy can be changed at anytime by the Head Maintainer. The Head Maintainer will inform other Maintainers in a timely manner about when these changes are made (typically within a day.)
Funky Update Policy
Servers are restarted Weekly on Monday at around 9 AM CST.
Monday-Friday: Any Open PRs are to be considered and merged if possible. Any PRs that miss this deadline can just wait for next week. Bugfix PRs or other time-critical PRs are to be merged whenever possible.
Saturday: Maintainers come together and discuss PRs merged as well as possible future PRs. The Update Write-up on changes should be written up in preparation for publication for that week.
Sunday: The Update Write-up is published both on Discord and Forum, with discussion being encouraged on the Forum.
The @Update Pings
role will also be pinged with a link to the forum.