<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8493],{1017:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/contribute",function(){return n(1770)}])},4953:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var a=n(1527),i=n(4548),o=n(1689);let r={logo:function(){let{resolvedTheme:e}=(0,i.F)();return(0,a.jsxs)("div",{style:{display:"grid",gridAutoFlow:"column",alignItems:"center"},children:[(0,a.jsx)("img",{src:"light"===e?"/logo512-black.png":"/logo512-white.png",style:{height:"calc(var(--nextra-navbar-height) - 25px)"},alt:"MUD logo"}),(0,a.jsx)("p",{style:{fontWeight:"bold",fontSize:"25px",marginTop:"6px",paddingLeft:"4px"},children:"MUD"})]})},useNextSeoProps(){let{asPath:e}=(0,o.useRouter)();return{titleTemplate:"/"===e?"%s":"%s – MUD"}},project:{link:"https://github.com/latticexyz/mud"},docsRepositoryBase:"https://github.com/latticexyz/mud/tree/main/docs",head:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("meta",{property:"title",content:"MUD documentation"})}),footer:{text:"MIT 2023 \xa9 MUD"},primaryHue:28};var d=r},1770:function(e,t,n){"use strict";n.r(t);var a=n(1527),i=n(2585),o=n(1728),r=n(4953);n(6815);var d=n(6736);n(8823);let s={MDXContent:function(){let e=arguments.length&gt;0&amp;&amp;void 0!==arguments[0]?arguments[0]:{},{wrapper:t}=Object.assign({},(0,d.ah)(),e.components);return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)},pageOpts:{filePath:"pages/contribute.mdx",route:"/contribute",headings:[{depth:2,value:"Contribute",id:"contribute"},{depth:3,value:"Local development setup",id:"local-development-setup"},{depth:3,value:"Pull requests",id:"pull-requests"}],pageMap:[{kind:"Meta",data:{index:"Introduction","quick-start":"Quick start","what-is-mud":"What is MUD?",store:"Store",world:"World","client-side":"MUD client",mode:"MODE",cli:"CLI",ecs:"ECS and MUD",plugins:"Plugins",tutorials:"Tutorials",contribute:"Contribute",roadmap:{title:"Roadmap",type:"page",href:"https://roadmap.mud.dev",newWindow:!0},community:{title:"Community",type:"page",href:"https://community.mud.dev",newWindow:!0},twitter:{title:"Twitter",type:"page",href:"https://twitter.com/latticexyz",newWindow:!0},discord:{title:"Discord",type:"page",href:"https://lattice.xyz/discord",newWindow:!0}}},{kind:"MdxPage",name:"cli",route:"/cli"},{kind:"MdxPage",name:"client-side",route:"/client-side"},{kind:"MdxPage",name:"contribute",route:"/contribute"},{kind:"MdxPage",name:"ecs",route:"/ecs"},{kind:"MdxPage",name:"index",route:"/"},{kind:"MdxPage",name:"mode",route:"/mode"},{kind:"MdxPage",name:"plugins",route:"/plugins"},{kind:"MdxPage",name:"quick-start",route:"/quick-start"},{kind:"Folder",name:"store",route:"/store",children:[{kind:"Meta",data:{installation:"Installation","reading-and-writing":"Reading and writing to Store",config:"Store Config","advanced-features":"Advanced features of Store",indexing:"Indexing",spec:"Specification","gas-efficiency":"Gas efficiency","using-without-world":"Using Store without World",internals:"Internal tables"}},{kind:"MdxPage",name:"advanced-features",route:"/store/advanced-features"},{kind:"MdxPage",name:"config",route:"/store/config"},{kind:"MdxPage",name:"gas-efficiency",route:"/store/gas-efficiency"},{kind:"MdxPage",name:"indexing",route:"/store/indexing"},{kind:"MdxPage",name:"installation",route:"/store/installation"},{kind:"MdxPage",name:"internals",route:"/store/internals"},{kind:"MdxPage",name:"reading-and-writing",route:"/store/reading-and-writing"},{kind:"MdxPage",name:"spec",route:"/store/spec"},{kind:"MdxPage",name:"using-without-world",route:"/store/using-without-world"}]},{kind:"MdxPage",name:"store",route:"/store"},{kind:"Folder",name:"tutorials",route:"/tutorials",children:[{kind:"Meta",data:{emojimon:"Emojimon",minimal:"Modifying the getting started example",walkthrough:"Walkthrough"}},{kind:"Folder",name:"emojimon",route:"/tutorials/emojimon",children:[{kind:"Meta",data:{"preface-the-ecs-model":"Preface: the ECS model","getting-started":"Getting started","players-and-movement":"1. Players and movement","map-and-terrain":"2. Map and terrain","a-wild-emojimon-appears":"3. A wild Emojimon appears","make-it-multiplayer":"4. Make it multiplayer","deploy-to-testnet":"5. Deploy to testnet"}},{kind:"MdxPage",name:"a-wild-emojimon-appears",route:"/tutorials/emojimon/a-wild-emojimon-appears"},{kind:"MdxPage",name:"deploy-to-testnet",route:"/tutorials/emojimon/deploy-to-testnet"},{kind:"MdxPage",name:"getting-started",route:"/tutorials/emojimon/getting-started"},{kind:"MdxPage",name:"make-it-multiplayer",route:"/tutorials/emojimon/make-it-multiplayer"},{kind:"MdxPage",name:"map-and-terrain",route:"/tutorials/emojimon/map-and-terrain"},{kind:"MdxPage",name:"players-and-movement",route:"/tutorials/emojimon/players-and-movement"},{kind:"MdxPage",name:"preface-the-ecs-model",route:"/tutorials/emojimon/preface-the-ecs-model"}]},{kind:"MdxPage",name:"emojimon",route:"/tutorials/emojimon"},{kind:"Folder",name:"minimal",route:"/tutorials/minimal",children:[{kind:"Meta",data:{add_system:"Add a system"}},{kind:"MdxPage",name:"add_system",route:"/tutorials/minimal/add_system"}]},{kind:"MdxPage",name:"minimal",route:"/tutorials/minimal"},{kind:"Folder",name:"walkthrough",route:"/tutorials/walkthrough",children:[{kind:"Meta",data:{"minimal-onchain":"Onchain components of getting started"}},{kind:"MdxPage",name:"minimal-onchain",route:"/tutorials/walkthrough/minimal-onchain"}]},{kind:"MdxPage",name:"walkthrough",route:"/tutorials/walkthrough"}]},{kind:"MdxPage",name:"what-is-mud",route:"/what-is-mud"},{kind:"Folder",name:"world",route:"/world",children:[{kind:"Meta",data:{"world-101":"World 101",config:"World Config",deployer:"Deployer",subsystems:"Pattern: Sub-systems",modules:"Modules","community-computers":"Community Computers",querying:"Querying",internals:"Internal tables &amp; systems","snap-sync":"Snap Sync"}},{kind:"MdxPage",name:"community-computers",route:"/world/community-computers"},{kind:"MdxPage",name:"config",route:"/world/config"},{kind:"MdxPage",name:"deployer",route:"/world/deployer"},{kind:"MdxPage",name:"internals",route:"/world/internals"},{kind:"MdxPage",name:"modules",route:"/world/modules"},{kind:"MdxPage",name:"querying",route:"/world/querying"},{kind:"MdxPage",name:"snap-sync",route:"/world/snap-sync"},{kind:"MdxPage",name:"subsystems",route:"/world/subsystems"},{kind:"MdxPage",name:"world-101",route:"/world/world-101"}]},{kind:"MdxPage",name:"world",route:"/world"}],flexsearch:{codeblocks:!0},title:"Contribute"},pageNextRoute:"/contribute",nextraLayout:o.ZP,themeConfig:r.Z};function l(e){let t=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",ol:"ol",li:"li",pre:"pre",code:"code",span:"span"},(0,d.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"contribute",children:"Contribute"}),"\n",(0,a.jsxs)(t.p,{children:["We'd love your support in improving MUD! This monorepo includes all of MUD's source code, and pull requests are always welcome. To discuss new features or changes ",(0,a.jsx)(t.a,{href:"https://lattice.xyz/discord",children:"join our Discord"}),"."]}),"\n",(0,a.jsx)(t.h3,{id:"local-development-setup",children:"Local development setup"}),"\n",(0,a.jsxs)(t.p,{children:["The following steps are only necessary if you want to contribute to MUD. To use MUD in your project, ",(0,a.jsx)(t.a,{href:"/quick-start",children:"set up a new project with the MUD cli"}),"."]}),"\n",(0,a.jsxs)(t.ol,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["Install go (required to build ",(0,a.jsx)(t.a,{href:"/mode",children:"MODE"}),"): ",(0,a.jsx)(t.a,{href:"https://go.dev/doc/install",children:"https://go.dev/doc/install"})]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["Install the foundry toolkit (required to build and test MUD solidity packages): ",(0,a.jsx)(t.a,{href:"https://getfoundry.sh/",children:"https://getfoundry.sh/"})]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsx)(t.p,{children:"Install pnpm"}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,a.jsx)(t.code,{"data-language":"bash","data-theme":"default",children:(0,a.jsxs)(t.span,{className:"line",children:[(0,a.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"npm"}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"install"}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pnpm"}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,a.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"--global"})]})})}),"\n",(0,a.jsxs)(t.ol,{start:"4",children:["\n",(0,a.jsx)(t.li,{children:"Clone the MUD monorepo"}),"\n"]}),"\n",(0,a.jsx)(t.pre,{"data-language":"text","data-theme":"default",children:(0,a.jsx)(t.code,{"data-language":"text","data-theme":"default",children:(0,a.jsx)(t.span,{className:"line",children:(0,a.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"git clone https://github.com/latticexyz/mud"})})})}),"\n",(0,a.jsxs)(t.ol,{start:"5",children:["\n",(0,a.jsx)(t.li,{children:"Install MUD dependencies and setup local environment"}),"\n"]}),"\n",(0,a.jsx)(t.pre,{"data-language":"text","data-theme":"default",children:(0,a.jsx)(t.code,{"data-language":"text","data-theme":"default",children:(0,a.jsx)(t.span,{className:"line",children:(0,a.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"cd mud &amp;&amp; pnpm install"})})})}),"\n",(0,a.jsx)(t.h3,{id:"pull-requests",children:"Pull requests"}),"\n",(0,a.jsxs)(t.p,{children:["MUD follows the ",(0,a.jsx)(t.a,{href:"https://www.conventionalcommits.org/en/v1.0.0/",children:"conventional commit specification"})," for commit messages and PR titles. Please keep the scope of your PR small (rather open multiple small PRs than one huge PR) and follow the conventional commit spec."]})]})}t.default=(0,i.j)(s)}},function(e){e.O(0,[9774,4762,2888,179],function(){return e(e.s=1017)}),_N_E=e.O()}]);</pre></body></html>