S&box Wiki
Home
/
Edit Getting Started With Libraries
View
Edit
History
No Category
Developer Overview
The Project System
Publishing To Asset Party
Getting Started With Hammer
Mapping Basics
Mapping Entities
Advanced Mapping Techniques
Getting Started with Modeldoc
Animgraph & Animation
Physics
Modeldoc Nodes
Advanced Modelling
UI Basics
Styles & Stylesheets
Razor Templates
Game Menus
Materials
Built In Shaders
Shaders
Shader Reference
Sounds & Audio
Particles
Getting Started
Making Games
Input
Networking
Physics
Rendering
Editor & Tools
VR
Misc
Playing Guides
Console Commands & Variables
Dedicated Server
Log in to edit
Getting Started With Libraries
<cat>Dev.Projects</cat> <title>Getting Started With Libraries</title> #Getting Started with Libraries Making games is awesome, but so are creating tools to help others make games. So let's make a Library. Libraries can be components, editor tools, helpers, etc. Anything you can think of really. Libraries are different from assets, requiring a special tab to create and publish, we'll start at the beginning. ## Creating a Library First, [you'll need a project if you don't have one](https://wiki.facepunch.com/sbox/Games/GettingStarted). Don't worry, if you're in the middle of making a game you can use that project as well. Libraries are like self-contained mini-projects. Now that we're in a project, let's open the `Library Manager`. If this isn't displayed by default, you can find it by clicking `View` in the top left of your editor and selecting the Library Manager. This will open a new window that you can dock anywhere you want, for now, let's dock it next to the Asset Browser. With the Library Manager opened, we can make our Library by clicking the + button <upload src="b3f81/8dd46b30ef02b48.png" size="3636" name="image.png" /> You should then be prompted to name your library, name it whatever, probably something that pertains to your goal. Your library should now show up in the `Installed` category. If it hasn't try restarting your editor. Now all you need to do is make your way over to your IDE and find your Library. ## Coding with Libraries Libraries are pretty much identical in structure to a normal project. You will have your standard and editor projects. All if not most information that can be gleaned from the docs can be used in a Library context. <upload src="b3f81/8dd46b47e5c47c8.png" size="1879" name="image.png" /> Additionally, much like normal editor projects, the editor project of your Library will not be subjected to the S&Box whitelist and you will still be allowed to upload your library. ## Publishing a Library You've just made your awesome Library, so now let's share it with the world. Head back over to the Library Manager and right-click your library, you will have the option to `Publish Project`, click that and your Publisher wizard will show up. Now's a good time to give a proper name if you haven't. You will also need to select the organization you wish to list it under here as well. <upload src="b3f81/8dd46b9bbf6e4bc.png" size="133004" name="image.png" /> <warning>Names *can* be changed after publishing, your indent, however, is permanent.</warning> <warning>Due to a bug, Libraries that do *not* have a `Code` folder with a valid .cs file inside will *not* work correctly for users. Please make sure you have this before publishing, otherwise your Library is unusable. Drag the default MyLibraryComponent into the Code folder to ensure this does not happen. <upload src="b3f81/8dd46b76e749609.png" size="3984" name="rider64_8UvhbqehTY.png" /> </warning> Then, just hit next and your Library is now published, it won't be public, however. You'll need to head to [sbox.game](https://sbox.game) ## Configuring your Library on sbox.game With a published library, we'll now be able to right-click our Library in the Library Manager, and `View in Browser`. This will take us immediately to our Library's page. From here, we'll hit `Configure`. Set a good description for your library, and make sure the end-user will be able to know exactly what this library is accomplishing just from your page. ***They shouldn't need to download it to see what it does!*** Add screenshots showcasing your Library's functionality in the `Screenshots` tab, and if you have a really nice video you want to share, you can upload it through the `Videos` tab. Make sure to properly tag your library and set its category as well. Once you're finished configuring, let's flip the switch and turn `Hidden` to `Released` and `Save Changes`.
S&box Wiki
Development
Developer Overview
7
Community Council
Editor Overview
General FAQ
System Requirements
The s&box wiki
Troubleshooting
Useful Links
The Project System
5
Adding Assets
Creating a Project
Getting Started With Libraries
Project Settings Window - Games
Project Templates
Publishing To Asset Party
2
Uploading Assets
Uploading Projects
Hammer
Getting Started With Hammer
3
Getting Started With Hammer
Making Your First Map
Mapping Resources
Mapping Basics
6
Cordons
Hotspot Materials
Selection Sets
Standard Mapping Dimensions
Tool Materials
Tools Visualisation Modes
Mapping Entities
1
Light Entities
Advanced Mapping Techniques
7
Collaborating With Prefabs and Git
Instances
Prefabs
Tilesets
Tilesets-Advanced
Tilesets-Proxies
VIS Optimizations
Models & Animation
Getting Started with Modeldoc
7
Automatic Model Setup
Breakpieces
Creating a Model
Importing Rust Weapons
LODs
ModelDoc FAQ & best practices
Overview of Models
Animgraph & Animation
4
Animations without Animgraph
AnimEvents, AnimGraph Tags, Attachments
Animgraph
Delta Animations
Physics
3
Cloth Physics
Collisions, Physics & Surface Types
Jiggle Bones
Modeldoc Nodes
1
Custom ModelDoc nodes
Advanced Modelling
6
Bodygroups
Citizen
First Person
IKChains and Stride Retargeting
Morphs
Vertex Normals
User Interface
UI Basics
5
Custom Fonts
Embedding Websites
Enabling Pointer Events
Events and Input
UI Tips & Tricks
Styles & Stylesheets
1
Video Backgrounds
Razor Templates
2
A Razor Overview
Aliases and SetProperty Attributes
Game Menus
1
Making a Custom Pause Screen
Materials & Shaders
Materials
5
Material Attributes
Material Resources
Overview of Materials
Texture Settings
Using Dynamic Expressions
Built In Shaders
2
Foliage Shader
Glass Shader
Shaders
5
Compute Shaders
Constant Buffers
Material API
Shader Learning Resources
Shading Model
Shader Reference
5
Anatomy of Shader Files
Getting rid of Tex2D macros
Shader Reference
Shader States
Texture Format Cheat-Sheet
Other Assets
Sounds & Audio
4
Overview of Sounds
Overview of Soundscapes
Sound Events
Sound Occlusion
Particles
5
Creating animated sprites
Creating your first particle effect
Understanding Particle Editor
Using custom sprites
Using particle systems from C#
Coding
Getting Started
4
Learning Resources
Setting up Rider
Setting up Visual Studio
Setting up Visual Studio Code
Making Games
2
Components
GameObjects
Input
2
Input System
Speech Recognition
Networking
3
Lobby System
Networking Basics
Networking Cheat Sheet
Physics
5
Collisions
Hitboxes
Joints
Traces
Triggers
Rendering
3
Render Tags
RenderHooks
Scenes
Editor & Tools
7
Hammer API
Hammer Gizmos
Hotload Performance
NavigationView
Overview of DebugOverlay
Overview of Widgets
Widget Docking
VR
3
Getting Started
VR Input
VR Overlays
Misc
8
Asset Types
Attributes and Component Properties
Backend API
Code Accesslist
CPU Performance Profiling
package/find
Threaded Tasks
TypeLibrary
Playing
Playing Guides
3
Default Keybinds
Proton
s&box on macOS (Experimental)
Console Commands & Variables
1
Launch Arguments
Dedicated Server
1
Dedicated Servers