{"id":23132398,"url":"https://github.com/dbotthepony/ppm2","last_synced_at":"2026-01-15T22:45:34.717Z","repository":{"id":158559959,"uuid":"92041014","full_name":"DBotThePony/PPM2","owner":"DBotThePony","description":"Pony Player Models 2","archived":false,"fork":false,"pushed_at":"2025-01-25T03:33:06.000Z","size":95720,"stargazers_count":2,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-02-09T18:46:20.015Z","etag":null,"topics":["gmod","moonscript","mylittlepony"],"latest_commit_sha":null,"homepage":"https://gitlab.com/DBotThePony/PPM","language":"MoonScript","has_issues":false,"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/DBotThePony.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2017-05-22T10:24:31.000Z","updated_at":"2025-01-25T03:33:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"bfeb4b00-99a2-41f8-95e4-44f3f80c9ff1","html_url":"https://github.com/DBotThePony/PPM2","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBotThePony%2FPPM2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBotThePony%2FPPM2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBotThePony%2FPPM2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBotThePony%2FPPM2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DBotThePony","download_url":"https://codeload.github.com/DBotThePony/PPM2/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142032,"owners_count":20890651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["gmod","moonscript","mylittlepony"],"created_at":"2024-12-17T11:18:41.581Z","updated_at":"2026-01-15T22:45:34.679Z","avatar_url":"https://github.com/DBotThePony.png","language":"MoonScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# PPM/2\n\n## What is It?\nPPM/2 Is a Garry's mod addon that allows you to play as customizable pony!\nAddon extends the original PonyPlayerModels idea about customizable ponies for player; by full code rewrite and new models!\n\n## The addon is part of [Ponyscape](http://steamcommunity.com/groups/Ponyscape) server project! You can connect to [Ponyscape here](steam://connect/ps.ponyscape.com)!\n![Ponyscape logo](https://i.dbotthepony.ru/2017/05/Ponyscape%27s%20PPMv2%20Text.png)\n\nThe code is licensed under MIT License\n\nNew models are licensed under [Microsoft Game Content License](http://www.xbox.com/en-us/developers/rules)\n\nThis project use assets from [Dynamic Surroundings](https://github.com/OreCruncher/DynamicSurroundings), especially it's [sounds](https://github.com/OreCruncher/DynamicSurroundings/blob/master/CREDITS.md#sounds)\n\nThis project use assets from deviantart user [Digivee](https://www.deviantart.com/digivee)\n\nThis project use assets from Steam user [DarkSunriseHD](https://steamcommunity.com/profiles/76561198071101489) (Discord: `\u003c@140410213181161472\u003e` or `DarkSunriseHD#5803`)\n\n# Features\n * Fully customizable ponies! Even **more customizable than you think**! Just checkout advanced mode in editor!\n * Total code rewrite; now all functions are working on Event Oriented Programming; it means that PPM/2 can work much faster with more features included when compared to original PPM\n * New models - it allows to add huge amount of manes and tails\n * Multisupport - Don't worry! PPM/2 supports **three** various ponies models. It includes the new one; the CPPM one and the old one; no needs to remake your PACs!\n * Flexes - **YES!** your ponies now show their feelings! Sad; anger; fear and other emotes you can see on new ponies models! Also you can use them in your PACs!\n * Out-of-box support for URL textures. You can now throw away the PAC3 submaterial parts, because PPM/2 already allows you to put URL textures on pony parts!\n * Yes; you can import the old data.\n * On new models, manes and tails works as separated models; like TF2 hats.\n\n# ConVars\n## Serverside accessable cvars\n```\ncvar list\n--------------\nppm2_bots                                : 1        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Whatever spawn bots as ponies\nppm2_debug                               : 0        : , \"sv\", \"demo\", \"lua_server\" : Enables debug printing. LOTS OF IT. 1 - simple messages; 2 - messages with traceback.\nppm2_disable_flexes                      : 0        : , \"sv\", \"demo\", \"lua_server\" : Disable pony flexes controllers. Saves some FPS.\nppm2_fly                                 : cmd      :                  :\nppm2_no_hoofsound                        : 0        : , \"sv\", \"rep\", \"demo\", \"lua_server\" : Disable hoofstep sound play time\nppm2_sv_allow_resize                     : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Allow to resize ponies. Disables resizing completely (visual; mechanical)\nppm2_sv_dmg                              : 1        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Enable hitbox damage scailing\nppm2_sv_dmg_chest                        : 1        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in chest\nppm2_sv_dmg_head                         : 2        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in head\nppm2_sv_dmg_lbhoof                       : 0        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in back-forward hoof\nppm2_sv_dmg_lfhoof                       : 0        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in left-forward hoof\nppm2_sv_dmg_rbhoof                       : 0        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in back-forward hoof\nppm2_sv_dmg_rfhoof                       : 0        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in right-forward hoof\nppm2_sv_dmg_stomach                      : 1        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Damage scale when pony-player got shot in stomach\nppm2_sv_draw_hands                       : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Should draw hooves as viewmodel\nppm2_sv_edit_no_players                  : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : When unrestricted edit allowed, do not allow to edit players.\nppm2_sv_edit_ragdolls_only               : 0        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Allow to edit only ragdolls\nppm2_sv_editor_dist                      : 0        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Distance limit in PPM/2 Editor/2\nppm2_sv_flight                           : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Allow flight for pegasus and alicorns. It obeys PlayerNoClip hook.\nppm2_sv_flight_force                     : 0        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Ignore PlayerNoClip hook\nppm2_sv_flight_nocheck                   : 0        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Suppress PlayerNoClip clientside check (useful with bad coded addons. known are - ULX, Cinema, FAdmin)\nppm2_sv_flightdmg                        : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Damage players in flight\nppm2_sv_new_ragdolls                     : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Enable new ragdolls\nppm2_sv_newhull                          : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Use proper collision box for ponies. Slightly affects jump mechanics. When disabled, unexpected behaviour could happen.\nppm2_sv_ragdoll_damage                   : 1        : , \"sv\", \"nf\", \"demo\", \"lua_server\" : Should death ragdoll cause damage?\nppm2_sv_ragdoll_physgun                  : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Allow physgun usage on player death ragdolls\nppm2_sv_ragdoll_toolgun                  : 0        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Allow toolgun usage on player death ragdolls\nppm2_sv_ragdolls_collisions              : 1        : , \"sv\", \"nf\", \"rep\", \"demo\", \"lua_server\" : Enable ragdolls collisions\n--------------\n 28 convars/concommands for [ppm2]\n```\n\n## Clientside Accessable CVars\n```\ncvar list\n--------------\nppm2_cl_draw_hands                       : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Should draw hooves as viewmodel\nppm2_cl_emotes_chat                      : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Show emotes list while chatbox is open\nppm2_cl_emotes_context                   : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Show emotes list while context menu is open\nppm2_cl_hires_body                       : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Use high resoluation when rendering pony bodies. AFFECTS ONLY TEXTURE COMPILATION TIME (increases lag spike on pony data load)\nppm2_cl_hires_generic                    : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Create 1024x1024 textures instead of 512x512 on texture compiling\nppm2_cl_no_hoofsound                     : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Disable hoofstep sound play time\nppm2_cl_reflections                      : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Calculate eye reflections in real time. Needs beefy computer.\nppm2_cl_reflections_drawdist             : 192      : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Reflections maximal draw distance\nppm2_cl_reflections_renderdist           : 1000     : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Reflection scene draw distance (ZFar)\nppm2_cl_reflections_size                 : 512      : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Reflections size. Must be multiple to 2! (16, 32, 64, 128, 256)\nppm2_cleanup                             : cmd      :                  :\nppm2_debug                               : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Enables debug printing. LOTS OF IT. 1 - simple messages; 2 - messages with traceback.\nppm2_disable_flexes                      : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Disable pony flexes controllers. Saves some FPS.\nppm2_draw_legs                           : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Draw pony legs.\nppm2_editor                              : cmd      :                  :\nppm2_editor3                             : cmd      :                  :\nppm2_editor_advanced                     : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Show all options. Keep in mind Editor3 acts different with this option.\nppm2_editor_fullbright                   : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Disable lighting in editor\nppm2_editor_model                        : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : What model to use in editor. Valids are 'default', 'cppm', 'new'\nppm2_editor_reload                       : cmd      :                  :\nppm2_editor_width                        : 384      : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Width of editor panel, in pixels\nppm2_emote                               : cmd      :                  :\nppm2_flashlight_pass                     : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Enable flashlight render pass. This kills FPS.\nppm2_flight_djump                        : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Double press of Jump activates flight\nppm2_horn_firstperson                    : 1        : , \"nf\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Visual horn effetcs in first person\nppm2_horn_glow                           : 1        : , \"nf\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Visual horn glow when player uses physgun\nppm2_horn_nobeam                         : 1        : , \"nf\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Hide physgun beam\nppm2_horn_particles                      : 1        : , \"nf\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Visual horn particles when player uses physgun\nppm2_legs_new                            : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Use RenderOverride function for legs drawing\nppm2_new_editor                          : cmd      :                  :\nppm2_new_editor_reload                   : cmd      :                  :\nppm2_no_hoofsound                        : 0        : , \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Disable hoofstep sound play time\nppm2_old_editor                          : cmd      :                  :\nppm2_old_editor_reload                   : cmd      :                  :\nppm2_reload                              : cmd      :                  :\nppm2_reload_materials                    : cmd      :                  :\nppm2_render_legsdepth                    : 1        : , \"nf\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Render legs in depth pass. Useful with Boken DoF enabled\nppm2_render_legstype                     : 0        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : When render legs. 0 - Before Opaque renderables; 1 - after Translucent renderables\nppm2_render_stare                        : 1        : , \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Make eyes follow players and move when idling\nppm2_require                             : cmd      :                  :\nppm2_sv_allow_resize                     : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Allow to resize ponies. Disables resizing completely (visual; mechanical)\nppm2_sv_draw_hands                       : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Should draw hooves as viewmodel\nppm2_sv_edit_no_players                  : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : When unrestricted edit allowed, do not allow to edit players.\nppm2_sv_edit_ragdolls_only               : 0        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Allow to edit only ragdolls\nppm2_sv_editor_dist                      : 0        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Distance limit in PPM/2 Editor/2. 0 - means default (400)\nppm2_sv_flight                           : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Allow flight for pegasus and alicorns. It obeys PlayerNoClip hook.\nppm2_sv_flight_force                     : 0        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Ignore PlayerNoClip hook\nppm2_sv_flight_nocheck                   : 0        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Suppress PlayerNoClip clientside check (useful with bad coded addons. known are - ULX, Cinema, FAdmin)\nppm2_sv_flightdmg                        : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Damage players in flight\nppm2_sv_new_ragdolls                     : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Enable new ragdolls\nppm2_sv_newhull                          : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Use proper collision box for ponies. Slightly affects jump mechanics. When disabled, unexpected behaviour could happen.\nppm2_sv_ragdoll_physgun                  : 1        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Allow physgun usage on player death ragdolls\nppm2_sv_ragdoll_toolgun                  : 0        : , \"nf\", \"rep\", \"demo\", \"server_can_execute\", \"cl\", \"lua_client\" : Allow toolgun usage on player death ragdolls\n--------------\n 53 convars/concommands for [ppm2]\n```\n\n# Technical\n## Old Model Bones\n\n```lua\n-- 0   LrigPelvis\n-- 1   LrigSpine1\n-- 2   LrigSpine2\n-- 3   LrigRibcage\n-- 4   LrigNeck1\n-- 5   LrigNeck2\n-- 6   LrigNeck3\n-- 7   LrigScull\n-- 8   Lrig_LEG_BL_Femur\n-- 9   Lrig_LEG_BL_Tibia\n-- 10  Lrig_LEG_BL_LargeCannon\n-- 11  Lrig_LEG_BL_PhalanxPrima\n-- 12  Lrig_LEG_BL_RearHoof\n-- 13  Lrig_LEG_BR_Femur\n-- 14  Lrig_LEG_BR_Tibia\n-- 15  Lrig_LEG_BR_LargeCannon\n-- 16  Lrig_LEG_BR_PhalanxPrima\n-- 17  Lrig_LEG_BR_RearHoof\n-- 18  Lrig_LEG_FL_Scapula\n-- 19  Lrig_LEG_FL_Humerus\n-- 20  Lrig_LEG_FL_Radius\n-- 21  Lrig_LEG_FL_Metacarpus\n-- 22  Lrig_LEG_FL_PhalangesManus\n-- 23  Lrig_LEG_FL_FrontHoof\n-- 24  Lrig_LEG_FR_Scapula\n-- 25  Lrig_LEG_FR_Humerus\n-- 26  Lrig_LEG_FR_Radius\n-- 27  Lrig_LEG_FR_Metacarpus\n-- 28  Lrig_LEG_FR_PhalangesManus\n-- 29  Lrig_LEG_FR_FrontHoof\n-- 30  Mane01\n-- 31  Mane02\n-- 32  Mane03\n-- 33  Mane04\n-- 34  Mane05\n-- 35  Mane06\n-- 36  Mane07\n-- 37  Mane03_tip\n-- 38  Tail01\n-- 39  Tail02\n-- 40  Tail03\n```\n\n## New model bones\n```lua\n-- 0    LrigPelvis\n-- 1    Lrig_LEG_BL_Femur\n-- 2    Lrig_LEG_BL_Tibia\n-- 3    Lrig_LEG_BL_LargeCannon\n-- 4    Lrig_LEG_BL_PhalanxPrima\n-- 5    Lrig_LEG_BL_RearHoof\n-- 6    Lrig_LEG_BR_Femur\n-- 7    Lrig_LEG_BR_Tibia\n-- 8    Lrig_LEG_BR_LargeCannon\n-- 9    Lrig_LEG_BR_PhalanxPrima\n-- 10   Lrig_LEG_BR_RearHoof\n-- 11   LrigSpine1\n-- 12   LrigSpine2\n-- 13   LrigRibcage\n-- 14   Lrig_LEG_FL_Scapula\n-- 15   Lrig_LEG_FL_Humerus\n-- 16   Lrig_LEG_FL_Radius\n-- 17   Lrig_LEG_FL_Metacarpus\n-- 18   Lrig_LEG_FL_PhalangesManus\n-- 19   Lrig_LEG_FL_FrontHoof\n-- 20   Lrig_LEG_FR_Scapula\n-- 21   Lrig_LEG_FR_Humerus\n-- 22   Lrig_LEG_FR_Radius\n-- 23   Lrig_LEG_FR_Metacarpus\n-- 24   Lrig_LEG_FR_PhalangesManus\n-- 25   Lrig_LEG_FR_FrontHoof\n-- 26   LrigNeck1\n-- 27   LrigNeck2\n-- 28   LrigNeck3\n-- 29   LrigScull\n-- 30   Jaw\n-- 31   Ear_L\n-- 32   Ear_R\n-- 33   Mane02\n-- 34   Mane03\n-- 35   Mane03_tip\n-- 36   Mane04\n-- 37   Mane05\n-- 38   Mane06\n-- 39   Mane07\n-- 40   Mane01\n-- 41   Lrigweaponbone\n-- 42   right_hand\n-- 43   wing_l\n-- 44   wing_r\n-- 45   Tail01\n-- 46   Tail02\n-- 47   Tail03\n-- 48   wing_l_bat\n-- 49   wing_r_bat\n-- 50   wing_open_l\n-- 51   wing_open_r\n```\n\n## Flexes\n```\n0   eyes_updown\n1   eyes_rightleft\n2   JawOpen\n3   JawClose\n4   Smirk\n5   Frown\n6   Stretch\n7   Pucker\n8   Grin\n9   CatFace\n10  Mouth_O\n11  Mouth_O2\n12  Mouth_Full\n13  Tongue_Out\n14  Tongue_Up\n15  Tongue_Down\n16  NoEyelashes\n17  Eyes_Blink\n18  Left_Blink\n19  Right_Blink\n20  Scrunch\n21  FatButt\n22  Stomach_Out\n23  Stomach_In\n24  Throat_Bulge\n25  Male\n26  Hoof_Fluffers\n27  o3o\n28  Ear_Fluffers\n29  Fangs\n30  Claw_Teeth\n31  Fang_Test\n32  angry_eyes\n33  sad_eyes\n34  Eyes_Blink_Lower\n35  Male_2\n36  Buff_Body\n37  Manliest_Chin\n38  Lowerlid_Raise\n39  Happy_Eyes\n40  Duck\n41  Fatbutt2\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbotthepony%2Fppm2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbotthepony%2Fppm2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbotthepony%2Fppm2/lists"}