Skip to content

Commit

Permalink
Update Index.md
Browse files Browse the repository at this point in the history
  • Loading branch information
MrChickenRocket authored Mar 7, 2023
1 parent b961bee commit 4864d44
Showing 1 changed file with 82 additions and 7 deletions.
89 changes: 82 additions & 7 deletions Index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,95 @@
Chickynoid Documentation Overview
Chickynoid User Guide


# Getting Started

Be sure to read the readme.md for a project overview!

Note: For clarity, when talking about a module or file inside of chickynoid, it will be what the file is called inside the roblox workspace, not the git/rojo file location.

* Setting up
* "GameArea" Folder
* "Examples"
#### Make sure you include the contents of:

- ServerScriptService/chickynoid **(entrypoint for all server code)**
- StarterPlayer/StarterPlayerScripts/chickynoid **(entrypoint for all client code)**
- ServerScriptService/Bots **(bot support)**
- Workspace/GameArea **(for your collision geometry)**
- ReplicatedFirst/Packages **(everything else)**

Chickynoid also comes with a lot of **OPTIONAL** example modifications on how to do various things like implement hitpoints and kill bricks. Everything inside of the /examples/ folders are optional, but provide great insight in how to do various things.

#### The examples are located here:
- ReplicatedFirst/Examples
- ServerScriptService/Examples


# Major Systems

## Mods
### About Mods

Mods are dynamically loaded modules that get hooked into the existing systems of chickynoid, so that you don't have to change the core code to extend the functionality.

Mods do stuff like implement weapons, hitpoints, custom character movement, etc etc.

If you find you need to extend the core systems to do something that the mod system can't do, consider making it compatible with the mod system and opening a PR :)


### Configuration:

You can easily create your own mod systems, or change the location of the existing systems by editing the following files and changing where the systems register to:

**StarterPlayer/StarterPlayerScript/chickynoid** for client startup
**ServerScriptService/chickynoid** for server startup

### Adding a new Mod

Adding a new mod is just adding a module file to the right folder location. Mods don't require you to do anything special, but if you name certain methods they'll be called at the right time with the right parameters.
eg:
#### *function module:Setup(_client | _server)*
will be invoked by all modules when they are loaded

### Currently available mod systems:

**Client:**
- clientmods

**Server:**
- servermods

**Shared:**
- characters
- weapons


### Client mods implement:
#### *Setup(_client)*
Perform any setup code you require.
_client is the table of the ChickynoidClient module

#### *{model} GetCharacterModel(userId)*
*returns: a model instance*
Return a custom character model.

#### *Step(_client, deltaTime)*
Runs every frame (heartbeat)

#### *GenerateCommand(command, serverTime, deltaTime)*
*returns: a new command table*
Gives a mod a chance to append extra command data to the command stream, to be seen by the simulation code on client and server. Commands are the only intended way to pass input data into the player simulation state.

eg: extra button presses, item activations, etc.



* Major Systems

* "Mods"
# WIP
* Server
* Player management
* Character Types
* Bots
* Per player replication
* WorldData


* Client
Expand Down Expand Up @@ -79,4 +154,4 @@ When Roblox provide shapecasts, the collision library will be replaced by native
When roblox provides unreliable remotes, the client upstream remote for commands will be replaced, which will prevent logjams
When roblox provides more tools for serializing/sharing context data for parallel luau, a parallel version will be released

You can also always reach out on twitter or discord, I do take the occasional comission :)
You can also always reach out on twitter or discord, I do take the occasional commission

0 comments on commit 4864d44

Please sign in to comment.