Contribute
Pick a scope. Prove it in the game.
Join us on Discord, choose a piece of work, and build it with the team. People and coding agents are both welcome. We will help you get the game open, review your pull request, and get your first change merged.
Join the Discord
Join our Discord and say hello. Tell us what you would like to help with and we will find a first issue together. You do not need to be a programmer to join in.
Pick something
Choose a good first issue or an unclaimed M1 scope below. Each issue says what to change and how to prove it. Comment that you are taking it so we can coordinate.
Build and playtest
Follow the issue, work in your own worktree, and test the change in the game. The repo has a playtest town and a prompt below to get a coding agent set up.
Raise a PR; ship it together
Open a pull request with the evidence. The team reviews it with you, helps resolve feedback, and merges it when it is ready.
Core or flagship
Where your change belongs
The core decides what the game can do. The flagship pack decides what our 1989 Everon server is. A new system, rule, or config setting is core work. A place, a name, a price, a sign, a vehicle in the catalogue, or a piece of story is flagship content.
Today both live in addons/LifeFramework/. M3 moves the content into its own addon, LF_Everon1989, and the core must never reference it. So write systems that do not assume 1989, and put every value in config. Each issue on the roadmap is tagged Core or Flagship.
- CoreA new system, a rule, a config setting, persistence, the UI kit, a test
- FlagshipPlaces, names, signs, prices, jobs on our server, the vehicle catalogue, the period look, the story
Grow with the team
From contributor to approver
After a few solid pull requests have landed and the team has seen your reviews, we can grant approval and merge access. We want that step to happen quickly: trusted contributors help review and merge the next changes, so good work keeps moving.
Open the town
Bring a coding agent to the playtest
Paste this into your coding agent from the repository root. It will check the local setup, open the playtest, and leave the checkout ready for you to choose an issue.
Setup and open the playtest
I want to help with Life Framework. Prepare this checkout so I can open the current M1 playtest town. Do not make code changes yet. 1. Read AGENTS.md, CONTRIBUTING.md, docs/setup.md, and docs/playtest.md. 2. Run tools\cli status and check the local Reforger and Workbench setup. Follow docs/setup.md for local paths; do not commit machine-specific settings. 3. Check tools\cli playtest status. If the playtest is stopped, run tools\cli playtest and wait until the server is ready and the game is connected. Do not start a second instance. 4. Tell me how to register and suggest a few things to try in the town. Keep the checkout unchanged and wait for me to choose an issue. 5. Once I choose an issue, help me coordinate in Discord, use a named worktree, follow the issue's proof requirements, and open a PR for the team to review and merge.
AI-first
Build with your agent
Claude Code reads CLAUDE.md, which points at AGENTS.md. opencode, Codex, and Cursor read AGENTS.md directly. Skills in .claude/skills/ add the workflows. Once you have picked an issue, give your agent its number and the agent-scope skill. It covers the path from a fresh worktree through a reviewed pull request.
A pull request is not the finish line. Stay in the conversation, fix review notes, and learn the team's review standards.
Never guess an Enfusion API. Look it up through the MCP tools (tools\cli call api_search) before writing script.
One scope, start to finish
tools\cli wt new m1-19-paper-fine # your own worktree and ports tools\cli validate # cheap repo checks, run often tools\cli test --no-build --tier fast # the in-game suite, ~10 s node agent-box/harness.mjs flow <name> # walk it as a player tools\cli wt ship m1-19-paper-fine --closes 104
M1 issues nobody is on
Open now
- #199Esc does not close a UI sheet the server opened (wanted card, ledger after founding)Esc (MenuBack) does nothing on a UI kit sheet that the server opened. The wanted card at the police station, and the organization ledger right after "Sign and pay", stay on screen.Needs a hand
- M1-01#116follow-up: print sign titles on LF_Sign_Pub and LF_Sign_ChalkboardFollow-up to M1-01 (#86). The sign system prints the title on the prop through a render target (LF_SignComponent + UI/Layouts/Signs/LF_SignFace.layout + Assets/Signs/Data/LF_SignFace.emat, BCRMap "$rendertarget", the vanilla...Needs a hand
- M1-24#109Playtest release: guide, Workshop, showcaseM1 is published on the Workshop, hosted from the maintainer's PC, and collects feedback through GitHub issues. docs/playtest.md still describes Workbench play.Needs a hand
- M1-23#108Journey proof on a dedicated serverM1 is done only when every loop is proven from the player's view on a dedicated server with several clients, including a restart.Needs a hand
- M1-11#96Police station on the street: duty desk and wanted boarddocs/playtest.md says go on duty at Roadmap_Police_Desk, but that desk has no components at all (Roadmap.layer, 204 0 120); duty lives at PoliceStation_Debug (170,120) on another layer.Needs a hand
Not only code
Other ways to help
Play a session
Run the test world on your own PC and write down what you did, what you expected, and what broke. That note becomes the next agent's prompt.
Report a bug
Use the bug or playtest template on GitHub. Say where you were standing, what you pressed, and what happened.
Fix the docs or this site
Both are built from the repo. Every page under Docs has an edit link, and the site lives in
website/.
Credits
Who has shipped code
Counted by GitHub from the commit history. Most agent-written commits carry the name of the person who ran the agent. Life Framework started as a continuation of Everon Life by Arkensor and its contributors.