{"id":47681722,"url":"https://github.com/taedlar/es2_mudlib","last_synced_at":"2026-04-02T14:01:44.036Z","repository":{"id":319121128,"uuid":"543078841","full_name":"taedlar/es2_mudlib","owner":"taedlar","description":"ES2 is a LPMud (up since 1994) with compact object hierarchy and flexible combat system.","archived":false,"fork":false,"pushed_at":"2026-03-26T08:48:16.000Z","size":1016,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-27T02:54:30.029Z","etag":null,"topics":["lpmud","mud","mudlib"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taedlar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"docs/AGENTS.md","dco":null,"cla":null}},"created_at":"2022-09-29T11:15:04.000Z","updated_at":"2026-03-26T08:48:17.000Z","dependencies_parsed_at":"2025-10-21T10:18:05.617Z","dependency_job_id":null,"html_url":"https://github.com/taedlar/es2_mudlib","commit_stats":null,"previous_names":["taedlar/es2_mudlib"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/taedlar/es2_mudlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taedlar%2Fes2_mudlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taedlar%2Fes2_mudlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taedlar%2Fes2_mudlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taedlar%2Fes2_mudlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taedlar","download_url":"https://codeload.github.com/taedlar/es2_mudlib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taedlar%2Fes2_mudlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lpmud","mud","mudlib"],"created_at":"2026-04-02T14:01:19.803Z","updated_at":"2026-04-02T14:01:44.021Z","avatar_url":"https://github.com/taedlar.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n[ES2](https://zh.wikipedia.org/zh-tw/%E6%9D%B1%E6%96%B9%E6%95%85%E4%BA%8B2_%E5%A4%A9%E6%9C%9D%E5%B8%9D%E5%9C%8B) is a LPMud started by\n[Annihilator](https://github.com/taedlar) since 1994. It is the first open source LPMud in Taiwan (and in the whole Chinese culture).\nThere are many Chinese MUDs thereafter started base on its code base and developed their own contents.\n\n## Usage\n\nStarting from v1.5, ES2 Mudlib requries the [neolith-1.0.0](https://github.com/taedlar/neolith) LPMud driver (alpha-8 or later) to run.\nThe Neolith driver offers consistent Linux/Windows LPMud environment and **coding agent-friendly** language features (see [dot-call syntax](#neolith-dot-call-syntax)).\nLegacy LPMud or MudOS is no longer supported.\n\nTo run ES2 Mudlib,\n1. Build Neolith\n2. `git clone --recurse-submodules` a copy of ES2 Mudlib from this repository to a local directory.\n3. Make a copy of [neolith.conf](neolith.conf) and edit the path settings to fit your local directory.\n4. Run  \n```\nneolith -f neolith.conf\n```\n5. Then you shall be able to connect to the mud by `telnet localhost 4000`. Enjoy.\n\n### Client Software\n- ES2 Mudlib is compatible with classical telnet client and vt100 terminal, with ANSI coloring.\n- You can also use a MUD client such as [TinTin++](https://github.com/scandum/tintin), or [Mudlet](https://github.com/Mudlet/Mudlet).\n\n### Neolith Console Mode\nWith `neolith-1.0.0.alpha.6` or later, ES2 mudlib supports the **console mode** that allows connecting to the MUD directly on the console.\nThis enables mudlib developer to start and test the MUD quickly or integration automation scripts on the mudlib code.\n\nTo connect in console mode, add the `-c` option to neolith:\n```\nneolith -f neolith.conf -c\n```\n\u003e [!CAUTION]\n\u003e External ports works as usual when in console mode.\n\u003e Interruption (Ctrl-C) on console mode brings down the MUD server process and disconnect all users immediately.\n\n## Versioning\n- The `main` branch is for v1.5 onwards and requires the Neolith driver.\n- The `v1.4` branch is the legacy version compatible with MudOS or FluffOS (with minor fixes).\n- A GitHub workflow `release.yml` is added to automate ES2 mudlib main branch releases.\n\n### Neolith dot-call syntax\nIn Neolith's LPC, the form `receiver.efunction(args ...)` is equivalent to `efun::efunction(receiver, args ...)` (without routing through master object `valid_override` policy check).\n\nThe rationale is to encourage more **AI coding agent friendly** coding style:\n- Dot-call provides a **static compile-time binding** semantic that eliminates the ambiguity of simul_efun calls and efun calls.\n- It allows more intuitive code style with **chaining dot-call** instead of nested function calls. (e.g. `user.environment().first_inventory()` vs `first_inventory (environment (user))`)\n- It is a **common OOP syntax** in other popular modern programming languages like Python and Java. AI coding agent already seen lots of examples in their training data.\n- Type checking and **efunction contracts** still hold, allowing AI coding agent to troubleshoot invalid usages at compile-time.\n\n\u003e [!IMPORTANT]\n\u003e Not all efuns allow the dot-call syntax. Only **safe** efuns declared in a `#pragma allow_dot_call` context can be called this way.\n\u003e See [lpc.md](neolith/docs/manual/lpc.md#allowed-efuns) for a table of latest efun contracts.\n\n## License\n\nThe original release of ES2 mudlib is licensed under a roughly written notice that forbids commercial-use and requires displaying the name\nof \"ES2 mudlib\". Since 2022, it is released on github by Annihilator and placed under **MIT license**, so those old restrictions are no\nlonger required. Please note the initial commit in github repository is based on the ES2 mudlib v1.3b release. Annihilator also grant you\nthe choice to use any earlier released versions of ES2 mudlib under MIT license for less restrictions.\n\nWith the change of license, please note:\n\n### Commercial Use\n\n**Yes**, the ES2 mudlib under MIT licnese allows commercial-use.  \n\nHowever, a LPMud mudlib requires a compatible LPMud driver to run on. Currently ES2 mudlib is known compatible with MudOS and\n[Neolith](https://github.com/taedlar/neolith) (a MudOS fork, specially customized for ES2 mudlib), while both of them do not allow commercial-use\ndue to the restrictions of original LPMud source from Lars.\n\n### Displaying \"ES2 mudlib\"\n\nYou are **no longer required** to display the name of ES2 mudlib if you start a mud with the ES2 mudlib. Annihilator still hold the copyright\nof the name \"ES2 mudlib\". Since the original license requires (and grant user the rights) to display the name, changing to MIT license should\nnot affect how old users use the name. Annihilator grant you the PERMISSION TO DISPLAY \"ES2 mudlib\" in you MUD's login screen with the\ndisclaimer that ES2 mudlib is PROVIDED AS-IS and SHALL NOT BE LIABLE TO ANY DAMAGE possibly caused by the software to your assets or users.\n\n### Open Source\n\nYou are **not required** to open source your MUD game built on ES2 mudlib. This is technically the same in old license and in MIT license,\nand this is why MIT license is choosed rather than GPL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaedlar%2Fes2_mudlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaedlar%2Fes2_mudlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaedlar%2Fes2_mudlib/lists"}